MCP Unipile · Webhooki
Webhooki LinkedIn, WhatsApp i e-mail podłączone przez agenta kodującego
LinkedIn nie ma publicznego webhooka dla wiadomości członka. Unipile wysyła je na Państwa endpoint, a dzięki serwerowi MCP Unipile agent pisze handler.
7 dni za darmo, bez karty kredytowej.
Agent · crm-app
MCP Unipile połączony
Zasubskrybuj webhooki nowych wiadomości i aktualizuj oś czasu kontaktu.
Wykonanie żądaniaPOST /v2/webhooks/endpoints/201 · we_…
Utworzyłem endpoint w aplikacji Development oraz idempotentny handler z kolejką.
Opisz kolejną funkcję…
Zadanie
Co chcą Państwo osiągnąć
Pokazywać nową wiadomość lub e-mail w produkcie w chwili, gdy dotrze, i reagować, gdy konto się rozłączy, bez odpytywania. LinkedIn nie ma publicznego webhooka wiadomości dla konta członka; Unipile wysyła to samo zdarzenie dla każdego kanału.
message.newmessage.newemail.new
W kolejce, bez duplikatów, zapisane raz
Bez tego
Pętle odpytywania i martwe pola
Zadanie, które co trzydzieści sekund odpytuje każde konto, przeważnie na próżno.
Brak jakiegokolwiek zdarzenia wiadomości LinkedIn, bo platforma nie udostępnia go dla konta członka.
Rozłączone konto wykryte przez użytkownika, a nie przez produkt.
Z serwerem MCP Unipile
Efekt w Państwa aplikacji
Endpoint webhooka zasubskrybowany na obsługiwane zdarzenia, utworzony w aplikacji Development.
Handler, który odpowiada od razu, przetwarza z kolejki i zapisuje każde zdarzenie raz.
Oś czasu kontaktu i status konta aktualizowane w mniej niż sekundę, przetestowane przed wdrożeniem.
Prompt, kroki, kod
Prompt dla agenta
Dwa prompty, każdy z endpointami Unipile, które agent czyta i wywołuje, oraz z tym, co trafia do projektu. Ścieżki są pełne, względem bazowego URL API
https://api.unipile.com, z Państwa kluczem z zakresem w nagłówku X-API-KEY .Zasubskrybuj webhooki nowych wiadomości Unipile i aktualizuj oś czasu kontaktu: utwórz endpoint webhooka dla message.new i email.new, dodaj idempotentny handler w tej aplikacji i przetwarzaj w kolejce.
Odczyt endpointuPOST /v2/webhooks/endpoints/schemat wczytany
Wykonanie żądaniaPOST /v2/webhooks/endpoints/201 · we_… + secret
Utworzyłem endpoint z
trigger_events: ["message.new", "email.new"] i publicznym URL aplikacji, zapisałem zwrócony secret po stronie serwera, dodałem POST /webhooks/unipile , który waliduje dostarczenie, od razu odpowiada 200 i umieszcza payload w kolejce, oraz worker, który usuwa duplikaty po ID obiektu przed zapisem na osi czasu kontaktu. Wysłana wiadomość testowa w aplikacji Development: oś czasu zaktualizowana.Najpierw potwierdź, potem przetwarzaj, zapisuj raz
Agent czyta kontrakt endpointu przez serwer:
trigger_events i url są wymagane, account_ids zawęża zakres, a odpowiedź zawiera ID endpointu i jego secret. Następnie agent pisze handler tak, jak wymaga tego webhook: natychmiastowe 2xx, przetwarzanie asynchroniczne, deduplikacja po identyfikatorze obiektu i sprawdzenie logu dostarczeń, gdy czegoś brakuje.Endpointy używane przez agenta
POST/v2/webhooks/endpoints/GET/v2/webhooks/endpoints/GET/v2/webhooks/conversations/GET/v2/{account_id}/chats/{chat_id}/messages/{message_id}
Częsty błąd: Wykonywanie pracy wewnątrz handlera. Od razu odpowiedz 2xx i przetwarzaj zdarzenie z kolejki, inaczej dostarczenia przekroczą limit czasu i zostaną ponowione.
Zasil tymi zdarzeniami ujednolicony inbox
Obsłuż webhooki cyklu życia konta: przy account.status.disconnected oznacz konto jako wymagające uwagi i pokaż przycisk Połącz ponownie, a przy account.add zapisz nowe account_id w przestrzeni roboczej przekazanej w state.
Odczyt endpointuPOST /v2/webhooks/endpoints/enum zdarzeń
Wykonanie żądaniaPATCH /v2/webhooks/endpoints/{id}200 · zdarzenia zaktualizowane
Dodałem
account.add, account.reconnect i account.status.disconnected do endpointu. Przy account.add worker zapisuje account_id w przestrzeni roboczej wskazanej w state; przy account.status.disconnected oznacza konto, a strona Ustawień pokazuje przycisk Połącz ponownie, który wywołuje trasę ponownego połączenia Hosted Auth. Zweryfikowano przez rozłączenie konta mock w aplikacji Development.Zdarzenia konta domykają pętlę z Hosted Auth
account.add i account.reconnect niosą state ustawiony przy tworzeniu linku uwierzytelniającego, dzięki czemu webhook staje się źródłem prawdy o nowym połączeniu. Zdarzenia statusu informują produkt, że konto wymaga uwagi, zanim zauważy to użytkownik. Agent podłącza oba do tego samego endpointu i utrzymuje idempotentny handler.Endpointy używane przez agenta
PATCH/v2/webhooks/endpoints/{id}GET/v2/accounts/{account_id}POST/v2/auth/link
Częsty błąd: Subskrybowanie wszystkiego. Istnieje trzydzieści dziewięć zdarzeń; endpoint zasubskrybowany na wszystkie bez przerwy otrzymuje potwierdzenia odczytu i otwarcia z trackingu. Subskrybuj to, co obsługujesz.
Wdróż przepływ ponownego połączenia z agentem
Payload
Body endpointu, odpowiedź i zdarzenia
Dosłownie z kontraktu v2, który agent czyta przez serwer. Dwa pola są wymagane, odpowiedź zawiera secret, a zdarzenia są pogrupowane w rodziny.
1Utworzenie endpointutrigger_events i url są wymagane. account_ids ogranicza endpoint do wybranych kont; puste lub pominięte oznacza nasłuchiwanie na wszystkich kontach aplikacji.POST https://api.unipile.com/v2/webhooks/endpoints/
{ "trigger_events": ["message.new", "email.new", "account.add"],
"url": "https://app.example.com/webhooks/unipile",
"account_ids": ["acc_…"],
"description": "crm timeline" }
2OdpowiedźWebhookEndpoint z id, aplikacją, secretem do przechowywania po stronie serwera i kontami, których dotyczy.{ "object": "WebhookEndpoint", "id": "we_…", "application_id": "app_…",
"enabled": true, "secret": "…", "trigger_events": [ … ], "account_targets": [ … ] }
3Zdarzenia według rodzinKonto (status, add, reconnect, remove, sync), wiadomość (new, update, delete, potwierdzenia, reakcje), czat, e-mail (new, bounce, delete, wersje robocze, foldery), kalendarz (create, update, delete, event.*), tracking i relacje.message.new · message.update · message.receipt.read · chat.update
email.new · email.new.bounce · email.draft.new · email.folder.update
account.add · account.reconnect · account.status.disconnected · account.initial_sync.completed
Od Development do produkcji
Najpierw test w aplikacji Development
Panel Unipile oddziela aplikację Development od Production. Proszę dać agentowi klucz z zakresem z Development, jedno konto testowe i URL tunelu: prawdziwe zdarzenia, bez prawdziwego klienta.
1Utwórz endpoint w aplikacji DevelopmentURL tunelu, trigger_events ograniczone do obsługiwanych zdarzeń.
2Odbierz jedno zdarzenie end to endaccount.add z testowego linku Hosted Auth (mock), potem message.new z konta testowego.
3Odtwórz je, potem przełącz kluczWorker zapisuje raz; account_ids ograniczone do właściwego klienta przed Production.
crm-app · DevelopmentUżywane przez agenta
Scopedev-tests · 2 konta
Klucz
klucz Account API z zakresemKontaTestowe konto LinkedIn, testowa skrzynka Gmail
Webhooki1 endpoint · zdarzenia wiadomości
crm-app · ProductionNietknięte
Scopejeden na przestrzeń roboczą
Klucz
klucze z zakresem, wyłącznie w backendzieKontawłasne konta użytkowników, przez Hosted Auth
Rozwiązywanie problemów
Częste błędy i ich znaczenie
Cztery błędy, przez które webhooki są zawodne, i rozwiązanie każdego z nich. Żaden nie dotyczy samych zdarzeń.
Endpoint odpowiada wolno
Dostarczenia przekraczają limit czasu i piętrzą się jako ponowienia.
RozwiązanieOdpowiadaj 2xx natychmiast i przetwarzaj z kolejki. Handler, który zapisuje do bazy przed odpowiedzią, w końcu odtwarza własne zaległości.
Handler, który nie jest idempotentny
Ta sama wiadomość pojawia się dwa razy na osi czasu.
RozwiązanieTo samo zdarzenie może zostać dostarczone więcej niż raz. Przed zapisem usuwaj duplikaty po identyfikatorze obiektu zawartym w payloadzie.
Subskrypcja wszystkiego
Endpoint bez przerwy otrzymuje potwierdzenia odczytu i otwarcia z trackingu.
Rozwiązanietrigger_events przyjmuje trzydzieści dziewięć wartości. Subskrybuj zdarzenia, które obsługujesz, i twórz kilka endpointów, gdy przetwarzanie się różni.
Pominięte account_ids w produkcie dla wielu klientów
Worker jednego klienta otrzymuje zdarzenia innego klienta.
RozwiązaniePuste lub pominięte account_ids nasłuchuje na wszystkich kontach aplikacji. Ogranicz je jawnie per klient albo filtruj po koncie z payloadu przed zapisem.
6000+
Firmy, które wprowadzają innowacje z Unipile
Zaufali nam liderzy branży
1 API
Usprawnij pracę we wszystkich głównych kanałach komunikacji
2 dni
Szybkie uruchomienie integracji przy minimalnej konfiguracji
30%
Mniej pracy i zasobów na utrzymanie
Wbudowane bezpieczeństwo i zgodność
Ochrona klasy enterprise dla danych i procesów Dowiedz się więcej o bezpieczeństwie
SOC 2 Type II
Certyfikat
Niezależnie audytowane mechanizmy bezpieczeństwa, które chronią dane i zapewniają integralność operacyjną.
GDPR
Zgodność
Pełna zgodność z europejskimi przepisami o ochronie danych, dla prywatności użytkowników.
99.9%
Dostępność platformy w ciągu ostatnich 24 miesięcy
24/7
Globalne wsparcie i wydajne API
Webhooki: FAQ
Czy LinkedIn ma webhook wiadomości, jak utworzyć endpoint, jakie zdarzenia istnieją, jak ograniczyć endpoint do jednego klienta i jak zweryfikować dostarczenie.
Nie dla konta członka. Publiczne webhooki LinkedIn obejmują działania społecznościowe organizacji i formularze leadów; wiadomości członków są objęte programem zgodności, który nie przyjmuje już nowych partnerów. W Unipile zdarzenie
message.new obejmuje LinkedIn tak jak każdy inny kanał, na koncie, które użytkownik połączył samodzielnie.POST https://api.unipile.com/v2/webhooks/endpoints/ z nagłówkiem X-API-KEY i body zawierającym trigger_events i url. Odpowiedź zawiera id w formacie we_… oraz secret.Trzydzieści dziewięć wartości w rodzinach account, message, chat, e-mail, calendar, tracking i relation. Najczęściej używane to
message.new, email.new, account.add, account.reconnect i account.status.disconnected.Przez
account_ids, tablicę identyfikatorów w formacie acc_…. Jeśli jest pominięte lub puste, endpoint nasłuchuje na wszystkich kontach aplikacji.Utworzenie endpointu zwraca
secret. Należy przechowywać go po stronie serwera i walidować każde dostarczenie przed przetworzeniem. URL musi używać HTTPS i być publicznie dostępny; log dostarczeń jest dostępny na trasie konwersacji webhooka.