PL
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
Sarah
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ą.
Zmieniono 3 pliki · pierwsze zdarzenie odebrane w mniej niż sekundę
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.
LinkedInNowa wiadomość LinkedInna koncie połączonym przez użytkownika
WhatsAppNowa wiadomość WhatsAppto samo zdarzenie, inny kanał
GmailNowy e-mailGmail, Outlook lub IMAP
message.newmessage.newemail.new
Aplikacja · oś czasu kontaktuPOST /webhooks/unipile
LinkedInSarah K. odpowiedziała na LinkedIn0.4 s
WhatsAppTom R. wysłał wiadomość WhatsApp0.3 s
GmailAna L. wysłała ofertę e-mailem0.5 s
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 .
Agent · crm-appAplikacja Development
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.Zmieniono 3 pliki · kolejka, idempotencja, zweryfikowane

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
Agent · crm-appAplikacja Development
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.Zmieniono 2 pliki · ponowne połączenie widoczne w UI

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
Kluczklucz Account API z zakresem
KontaTestowe konto LinkedIn, testowa skrzynka Gmail
Webhooki1 endpoint · zdarzenia wiadomości
crm-app · ProductionNietknięte
Scopejeden na przestrzeń roboczą
Kluczklucze z zakresem, wyłącznie w backendzie
Kontawł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
SOC 2 Type II
Certyfikat
Niezależnie audytowane mechanizmy bezpieczeństwa, które chronią dane i zapewniają integralność operacyjną.
GDPR
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.