IT
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
Sarah
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.
3 file modificati · primo evento ricevuto in meno di un secondo
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.
LinkedInNuovo messaggio LinkedInsull'account collegato dal suo utente
WhatsAppNuovo messaggio WhatsAppstesso evento, altro canale
GmailNuova emailGmail, Outlook o IMAP
message.newmessage.newemail.new
La sua app · timeline del contattoPOST /webhooks/unipile
LinkedInSarah K. ha risposto su LinkedIn0.4 s
WhatsAppTom R. ha inviato un messaggio WhatsApp0.3 s
GmailAna L. ha inviato la proposta via email0.5 s
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.
Il suo agente · crm-appApp Development
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.3 file modificati · in coda, idempotente, verificato

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
Il suo agente · crm-appApp Development
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.2 file modificati · riconnessione visibile nell'interfaccia

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
Chiavescoped Account API key
AccountAccount LinkedIn di test, casella Gmail di test
Webhooks1 endpoint · eventi message
crm-app · ProductionIntatta
Scopeuno per workspace
Chiavescoped keys, in your backend only
Accountgli 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
SOC 2 Tipo II
Certificato
Controlli di sicurezza verificati in modo indipendente che garantiscono la protezione dei dati e l'integrità operativa.
GDPR
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.