BR
Unipile MCP · Webhooks

Configure webhooks de LinkedIn, WhatsApp e e-mail com um agente de código

O LinkedIn não tem webhook público para as mensagens de um membro. A Unipile as envia para o seu endpoint e, com o Servidor MCP da Unipile , seu agente escreve o handler.
Teste grátis de 7 dias, sem cartão de crédito.
Seu agente · crm-app
Unipile MCP conectado
Sarah
Assine os webhooks de nova mensagem e atualize a timeline do contato.
Executar requisiçãoPOST /v2/webhooks/endpoints/201 · we_…
Criei o endpoint na aplicação Development e um handler idempotente, com fila.
3 arquivos alterados · primeiro evento recebido em menos de um segundo
Descreva o próximo recurso…
O objetivo

O que você quer construir

Mostrar uma nova mensagem ou um novo e-mail no seu produto assim que ele chega, e reagir quando uma conta se desconecta, sem polling. O LinkedIn não tem webhook público de mensagens para contas de membro; a Unipile envia o mesmo evento em todos os canais.
LinkedInNova mensagem no LinkedInna conta que seu usuário conectou
WhatsAppNova mensagem no WhatsAppmesmo evento, outro canal
GmailNovo e-mailGmail, Outlook ou IMAP
message.newmessage.newemail.new
Seu app · timeline do contatoPOST /webhooks/unipile
LinkedInSarah K. respondeu no LinkedIn0,4 s
WhatsAppTom R. enviou uma mensagem no WhatsApp0,3 s
GmailAna L. enviou a proposta por e-mail0,5 s
Enfileirado, deduplicado, gravado uma vez
Sem isso Loops de polling e pontos cegos
Um job que consulta todas as contas a cada trinta segundos, quase sempre à toa.
Nenhum evento de mensagem do LinkedIn, porque a plataforma não expõe um para conta de membro.
Uma conta desconectada descoberta pelo usuário, não pelo seu produto.
Com o servidor MCP da Unipile O resultado na sua aplicação
Um endpoint de webhook inscrito nos eventos que você trata, criado na sua aplicação Development.
Um handler que responde na hora, processa a partir de uma fila e grava cada evento uma única vez.
Uma timeline de contato e um status de conta que atualizam em menos de um segundo, testados antes de você lançar.
Prompt, etapas, código

Entregue o prompt ao seu agente

Dois prompts, cada um com os endpoints Unipile que o agente lê e executa e o que chega ao seu projeto. Os paths estão completos, sobre a URL base da API https://api.unipile.com, com sua chave com escopo no X-API-KEY como header.
Seu agente · crm-appAplicação Development
Assine os webhooks de nova mensagem da Unipile e atualize a timeline do contato: crie o endpoint de webhook para message.new e email.new, adicione um handler idempotente nesta aplicação e enfileire o processamento.
Ler endpointPOST /v2/webhooks/endpoints/schema carregado
Executar requisiçãoPOST /v2/webhooks/endpoints/201 · we_… + secret
Criei o endpoint com trigger_events: ["message.new", "email.new"] e a URL pública do app, guardei o secret devolvido no servidor, adicionei POST /webhooks/unipile que valida a entrega, responde 200 na hora e enfileira o payload, e um worker que deduplica pelo ID do objeto antes de gravar na timeline do contato. Enviei uma mensagem de teste na aplicação Development: timeline atualizada.3 arquivos alterados · enfileirado, idempotente, verificado

Confirme primeiro, processe depois, grave uma vez

O agente lê o contrato do endpoint pelo servidor: trigger_events e url são obrigatórios, account_ids restringe o escopo, e a resposta traz o ID do endpoint e o secret dele. Depois ele escreve o handler como um webhook exige: 2xx imediato, processamento assíncrono, deduplicação pelo identificador do objeto e uma checagem do log de entregas quando algo parece faltar.
Endpoints usados pelo agente
POST/v2/webhooks/endpoints/GET/v2/webhooks/endpoints/GET/v2/webhooks/conversations/GET/v2/{account_id}/chats/{chat_id}/messages/{message_id}
Erro comum: Fazer o trabalho dentro do handler. Responda 2xx imediatamente e processe o evento a partir de uma fila, senão as entregas expiram e são reenviadas.
Alimente uma caixa de entrada unificada com esses eventos
Seu agente · crm-appAplicação Development
Trate os webhooks de ciclo de vida da conta: em account.status.disconnected, marque a conta como pendente de atenção e exiba um botão Reconectar; em account.add, guarde o novo account_id no workspace carregado em state.
Ler endpointPOST /v2/webhooks/endpoints/enum de eventos
Executar requisiçãoPATCH /v2/webhooks/endpoints/{id}200 · eventos atualizados
Adicionei account.add, account.reconnect e account.status.disconnected ao endpoint. Em account.add o worker guarda o account_id no workspace encontrado em state; em account.status.disconnected ele sinaliza a conta e a página de configurações mostra o botão Reconectar, que chama a rota de reconexão do Hosted Auth. Verificado desconectando a conta mock na aplicação Development.2 arquivos alterados · reconexão visível na interface

Os eventos de conta fecham o ciclo com o Hosted Auth

account.add e account.reconnect carregam o state que você definiu ao criar o link de autenticação, o que faz do webhook a fonte de verdade de uma nova conexão. Os eventos de status avisam seu produto quando uma conta precisa de atenção antes de o usuário perceber. O agente liga os dois ao mesmo endpoint e mantém o handler idempotente.
Endpoints usados pelo agente
PATCH/v2/webhooks/endpoints/{id}GET/v2/accounts/{account_id}POST/v2/auth/link
Erro comum: Assinar tudo. Existem trinta e nove eventos; um endpoint inscrito em todos recebe confirmações de leitura e aberturas de rastreamento sem parar. Assine só o que você trata.
Implementar o fluxo de reconexão com um agente
Payload

O body do endpoint, a resposta e os eventos

Extraído literalmente do contrato v2 que o agente lê pelo servidor. Dois campos são obrigatórios, a resposta traz o secret e os eventos vêm por famílias.
1Criar o endpointtrigger_events e url são obrigatórios. account_ids restringe o endpoint a algumas contas; vazio ou omitido, ele escuta todas as contas da aplicação.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" }
2A respostaUm WebhookEndpoint com seu id, a aplicação, o secret a manter no servidor e as contas que ele alcança.{ "object": "WebhookEndpoint", "id": "we_…", "application_id": "app_…", "enabled": true, "secret": "…", "trigger_events": [ … ], "account_targets": [ … ] }
3Os eventos, por famíliaConta (status, add, reconnect, remove, sync), mensagem (new, update, delete, confirmações, reações), chat, e-mail (new, bounce, delete, rascunhos, pastas), calendário (create, update, delete, event.*), rastreamento e relações.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
Do Development para a Production

Teste primeiro em uma aplicação Development

Seu dashboard Unipile separa uma aplicação Development da Production. Dê ao agente uma chave com escopo de Development, uma conta de teste e uma URL de túnel: eventos reais, nenhum cliente real.
1Crie o endpoint na aplicação DevelopmentURL de túnel, trigger_events limitados ao que você trata.
2Receba um evento de ponta a pontaaccount.add a partir de um link Hosted Auth mock, depois message.new da conta de teste.
3Reenvie o evento e então troque a chaveO worker grava uma vez só; account_ids restrito ao cliente certo antes da Production.
crm-app · DevelopmentUsada pelo seu agente
Escopodev-tests · 2 contas
Chavescoped Account API key
ContasConta de teste LinkedIn, caixa de e-mail Gmail de teste
Webhooks1 endpoint · eventos de mensagem
crm-app · ProductionSem alterações
Escopouma por workspace
Chavescoped keys, in your backend only
Contasas próprias contas dos seus usuários, via Hosted Auth
Solução de problemas

Erros comuns e o que eles significam

Os quatro erros que deixam os webhooks pouco confiáveis e a correção de cada um. Nenhum deles tem a ver com os eventos em si.
O endpoint responde devagar
As entregas expiram e se acumulam como retentativas. CorreçãoResponda 2xx imediatamente e processe a partir de uma fila. Um handler que grava no banco antes de responder acaba reprocessando o próprio acúmulo.
Um handler que não é idempotente
A mesma mensagem aparece duas vezes na timeline. CorreçãoO mesmo evento pode ser entregue mais de uma vez. Deduplique pelo identificador do objeto que vem no payload antes de gravar.
Inscrito em tudo
O endpoint recebe confirmações de leitura e aberturas de rastreamento sem parar. Correçãotrigger_events aceita trinta e nove valores. Assine os eventos que você trata e crie vários endpoints quando o processamento for diferente.
account_ids esquecido em um produto multicliente
O worker de um cliente recebe os eventos de outro. CorreçãoVazio ou omitido, account_ids escuta todas as contas da aplicação. Restrinja explicitamente por cliente, ou filtre pela conta do payload antes de gravar.
6000+ Empresas que inovam com a Unipile
Com a confiança dos líderes do setor
1 API
Simplificar as operações de todos os principais canais de comunicação
2 dias
Obtenha integração ao vivo rapidamente com o mínimo de configuração
30%
Redução dos esforços e recursos de manutenção

Segurança e conformidade incorporadas

Proteção de nível empresarial para seus dados e fluxos de trabalho Saiba mais sobre nossa segurança
SOC 2 Tipo II
SOC 2 Tipo II
Certificado
Controles de segurança auditados de forma independente, garantindo a proteção dos dados e a integridade operacional.
GDPR
GDPR
Em conformidade
Conformidade total com os regulamentos europeus de proteção de dados para a privacidade do usuário.
99.9%
Tempo de atividade da plataforma nos últimos 24 meses
24/7
Suporte global com API de alto desempenho

FAQ de webhooks

Se o LinkedIn tem webhook de mensagens, como criar um endpoint, quais eventos existem, como limitar um endpoint a um cliente e como verificar uma entrega.
Não para conta de membro. Os webhooks públicos do LinkedIn cobrem ações sociais de organização e formulários de lead; as mensagens de membro ficam atrás de um programa de compliance que não aceita mais novos parceiros. Com a Unipile, o evento message.new cobre o LinkedIn como qualquer outro canal, na conta que o próprio usuário conectou.
POST https://api.unipile.com/v2/webhooks/endpoints/ com o X-API-KEY e um body carregando trigger_events e url. A resposta traz um id em we_… e um objeto secret.
Trinta e nove valores nas famílias conta, mensagem, chat, e-mail, calendário, rastreamento e relações. Os mais usados são message.new, email.new, account.add, account.reconnect e account.status.disconnected.
Com account_ids, um array de identificadores em acc_…. Omitido ou vazio, o endpoint escuta todas as contas da aplicação.
Criar o endpoint devolve um secret. Guarde-o no servidor e valide toda entrega antes de processar. Sua URL precisa ser HTTPS e acessível publicamente; o log de entregas fica disponível na rota de conversations dos webhooks.