Unipile MCP · Webhook
Collegare i webhook LinkedIn, WhatsApp ed email con un coding agent
LinkedIn non offre un webhook pubblico per i messaggi di un membro. Unipile li invia al suo endpoint e, con il Server MCP Unipile , il suo agente scrive l'handler.
Prova gratuita di 7 giorni, senza carta di credito.
Il suo agente · crm-app
Unipile MCP connesso
Iscriviti ai webhook dei nuovi messaggi e aggiorna la timeline del contatto.
Esecuzione richiestaPOST /v2/webhooks/endpoints/201 · we_…
Creati l'endpoint sull'app Development e un handler idempotente con coda.
Descriva la prossima funzionalità…
L'obiettivo
Che cosa si vuole ottenere
Mostrare un nuovo messaggio o un'email nel suo prodotto nell'istante in cui arriva, e reagire quando un account si disconnette, senza polling. LinkedIn non espone alcun webhook di messaggio per un account membro; Unipile invia lo stesso evento per ogni canale.
message.newmessage.newemail.new
In coda, deduplicato, scritto una sola volta
Senza
Cicli di polling e punti ciechi
Un job che interroga ogni account ogni trenta secondi, quasi sempre a vuoto.
Nessun evento di messaggio LinkedIn, perché la piattaforma non ne espone uno per un account membro.
Un account disconnesso scoperto dall'utente, non dal suo prodotto.
Con il server MCP di Unipile
Il risultato nella sua applicazione
Un endpoint webhook sottoscritto agli eventi che gestisce, creato sulla sua applicazione Development.
Un handler che risponde subito, elabora da una coda e scrive ogni evento una sola volta.
Una timeline del contatto e uno stato dell'account che si aggiornano in meno di un secondo, testati prima del rilascio.
Prompt, passaggi, codice
Dia il prompt al suo agente
Due prompt, ciascuno con gli endpoint Unipile che l'agente legge ed esegue e ciò che arriva nel suo progetto. I percorsi sono completi, sull'URL di base dell'API
https://api.unipile.com, con la sua chiave scoped passata nell'header X-API-KEY della richiesta.Iscriviti ai webhook Unipile dei nuovi messaggi e aggiorna la timeline del contatto: crea l'endpoint webhook per message.new ed email.new, aggiungi un handler idempotente in questa applicazione e metti l'elaborazione in coda.
Lettura endpointPOST /v2/webhooks/endpoints/schema caricato
Esecuzione richiestaPOST /v2/webhooks/endpoints/201 · we_… + secret
Creato l'endpoint con
trigger_events: ["message.new", "email.new"] e l'URL pubblico dell'app, salvato il secret restituito lato server, aggiunta POST /webhooks/unipile che valida la consegna, risponde subito 200 e mette il payload in coda, e un worker che deduplica sull'ID dell'oggetto prima di scrivere nella timeline del contatto. Inviato un messaggio di test sull'app Development: timeline aggiornata.Confermare subito, elaborare dopo, scrivere una volta
L'agente legge il contratto dell'endpoint tramite il server:
trigger_events e url sono obbligatori, account_ids restringe il perimetro, e la risposta contiene l'ID dell'endpoint e il suo secret. Poi scrive l'handler come serve a un webhook: 2xx immediato, elaborazione asincrona, deduplicazione sull'identificatore dell'oggetto e un controllo del log delle consegne quando qualcosa sembra mancare.Endpoint usati dall'agente
POST/v2/webhooks/endpoints/GET/v2/webhooks/endpoints/GET/v2/webhooks/conversations/GET/v2/{account_id}/chats/{chat_id}/messages/{message_id}
Errore comune: fare il lavoro dentro l'handler. Risponda subito con un 2xx ed elabori l'evento da una coda, altrimenti le consegne vanno in timeout e vengono ritentate.
Alimentare una inbox unificata con questi eventi
Gestisci i webhook del ciclo di vita dell'account: su account.status.disconnected segna l'account come da verificare e mostra un pulsante Reconnect, e su account.add salva il nuovo account_id nel workspace indicato in state.
Lettura endpointPOST /v2/webhooks/endpoints/enum degli eventi
Esecuzione richiestaPATCH /v2/webhooks/endpoints/{id}200 · eventi aggiornati
Aggiunti
account.add, account.reconnect e account.status.disconnected all'endpoint. Su account.add il worker registra account_id nel workspace indicato in state; su account.status.disconnected segnala l'account e la pagina Settings mostra il pulsante Reconnect, che chiama la route di riconnessione di Hosted Auth. Verificato disconnettendo l'account mock sull'app Development.Gli eventi dell'account chiudono il cerchio con Hosted Auth
account.add e account.reconnect riportano lo state impostato alla creazione del link di autenticazione, e questo fa del webhook la fonte di verità per una nuova connessione. Gli eventi di stato avvisano il suo prodotto quando un account richiede attenzione, prima che l'utente se ne accorga. L'agente collega entrambi allo stesso endpoint e mantiene l'handler idempotente.Endpoint usati dall'agente
PATCH/v2/webhooks/endpoints/{id}GET/v2/accounts/{account_id}POST/v2/auth/link
Errore comune: iscriversi a tutto. Esistono trentanove eventi; un endpoint iscritto a tutti riceve senza sosta conferme di lettura e aperture tracciate. Si iscriva solo a ciò che gestisce.
Implementare il flusso di riconnessione con un agente
Payload
Il body dell'endpoint, la risposta e gli eventi
Testuale dal contratto v2 che l'agente legge tramite il server. Due campi sono obbligatori, la risposta contiene il secret e gli eventi sono organizzati in famiglie.
1Creare l'endpointtrigger_events e url sono obbligatori. account_ids limita l'endpoint ad alcuni account; se vuoto o omesso, ascolta tutti gli account dell'applicazione.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" }
2La rispostaUn WebhookEndpoint con il suo id, l'applicazione, il secret da conservare lato server e gli account a cui si rivolge.{ "object": "WebhookEndpoint", "id": "we_…", "application_id": "app_…",
"enabled": true, "secret": "…", "trigger_events": [ … ], "account_targets": [ … ] }
3Gli eventi, per famigliaAccount (status, add, reconnect, remove, sync), message (new, update, delete, receipts, reactions), chat, email (new, bounce, delete, drafts, folders), calendar (create, update, delete, event.*), tracking e relations.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
Dallo sviluppo alla produzione
Testare prima su un'applicazione Development
La dashboard Unipile separa un' applicazione Development dalla Produzione. Basta fornire all'agente una chiave scoped di Development, un account di test e un URL di tunnel: eventi reali, nessun cliente reale.
1Creare l'endpoint sull'app DevelopmentURL di tunnel, trigger_events limitati a ciò che si gestisce.
2Ricevere un evento end to endaccount.add da un link Hosted Auth mock, poi message.new dall'account di test.
3Rigiocarlo, poi cambiare chiaveIl worker scrive una volta sola; account_ids limitato al cliente giusto prima della Produzione.
crm-app · DevelopmentUsata dal suo agente
Scopedev-tests · 2 account
Chiave
scoped Account API keyAccountAccount LinkedIn di test, casella Gmail di test
Webhooks1 endpoint · eventi message
crm-app · ProductionIntatta
Scopeuno per workspace
Chiave
scoped keys, in your backend onlyAccountgli account dei suoi utenti, tramite Hosted Auth
Troubleshooting
Errori frequenti e cosa significano
I quattro errori che rendono i webhook inaffidabili, e come risolverli. Nessuno riguarda gli eventi in sé.
L'endpoint risponde lentamente
Le consegne vanno in timeout e si accumulano come retry.
SoluzioneRispondere 2xx subito ed elaborare da una coda. Un handler che scrive sul database prima di rispondere finisce per rigiocare il proprio arretrato.
Un handler non idempotente
Lo stesso messaggio compare due volte nella timeline.
SoluzioneLo stesso evento può essere consegnato più di una volta. Deduplicare sull'identificatore dell'oggetto trasportato dal payload prima di scrivere.
Sottoscrizione a tutto
L'endpoint riceve senza sosta conferme di lettura e aperture di tracking.
Soluzionetrigger_events accetta trentanove valori. Sottoscriva gli eventi che gestisce, e crei più endpoint quando l'elaborazione è diversa.
account_ids dimenticato su un prodotto multi-cliente
Il worker di un cliente riceve gli eventi di un altro cliente.
SoluzioneSe vuoto o omesso, account_ids ascolta tutti gli account dell'applicazione. Va limitato esplicitamente per cliente, oppure occorre filtrare sull'account del payload prima di scrivere.
6000+
Aziende che innovano con Unipile
Fiducia da parte dei leader del settore
1 API
Semplificare le operazioni per tutti i principali canali di comunicazione
2 giorni
Integrazione rapida con una configurazione minima
30%
Riduzione dell'impegno e delle risorse per la manutenzione
Sicurezza e conformità integrate
Protezione di livello aziendale per i vostri dati e flussi di lavoro Per saperne di più sulla nostra sicurezza
SOC 2 Tipo II
Certificato
Controlli di sicurezza verificati in modo indipendente che garantiscono la protezione dei dati e l'integrità operativa.
GDPR
Conforme
Piena conformità alle normative europee sulla protezione dei dati per la privacy degli utenti.
99.9%
Uptime della piattaforma negli ultimi 24 mesi
24/7
Supporto globale con API ad alte prestazioni
FAQ webhook
Se LinkedIn abbia un webhook di messaggio, come creare un endpoint, quali eventi esistono, come limitare un endpoint a un solo cliente e come verificare una consegna.
Non per un account membro. I webhook pubblici di LinkedIn coprono le azioni social delle organizzazioni e i lead form; i messaggi dei membri sono dietro un programma di compliance che non accetta più nuovi partner. Con Unipile, l'evento
message.new copre LinkedIn come ogni altro canale, sull'account che il suo utente ha collegato personalmente.POST https://api.unipile.com/v2/webhooks/endpoints/ , con l'header X-API-KEY e un body che contiene trigger_events e url. La risposta contiene un id in we_… e un secret.Trentanove valori nelle famiglie account, message, chat, email, calendar, tracking e relation. I più usati sono
message.new, email.new, account.add, account.reconnect e account.status.disconnected.Con
account_ids, un array di identificatori in acc_…. Se omesso o vuoto, l'endpoint ascolta tutti gli account dell'applicazione.La creazione dell'endpoint restituisce un
secret. Va conservato lato server e usato per validare ogni consegna prima dell'elaborazione. L'URL deve essere HTTPS e raggiungibile pubblicamente; il log delle consegne è disponibile sulla route webhook conversations.