Webhooks e API REST

Channels & Integrations

Webhooks e API REST

O Conviro disponibiliza webhooks para notificações de eventos em tempo real e uma API REST para aceder programaticamente a todas as funcionalidades da plataforma.

Webhooks

O que são webhooks?

Os webhooks enviam um pedido HTTP POST para o seu servidor sempre que ocorre um evento específico no Conviro. Assim, pode reagir em tempo real, sem recorrer a polling.

Eventos disponíveis

EventoQuando é despoletado
message.newÉ enviada uma nova mensagem (pelo visitante ou pelo bot)
session.startedComeça uma nova sessão de conversa
session.closedUma conversa é fechada
session.escalatedUma conversa é escalada
lead.capturedÉ captado um novo lead
lead.createdÉ criado um registo de lead
lead_form.submittedÉ submetido um formulário de lead
handoff.requestedÉ pedida a passagem para um agente humano
csat.submittedÉ enviada uma classificação CSAT
csat.receivedÉ registado um resultado CSAT
ai.failedA IA não consegue produzir uma resposta
ticket.createdÉ aberto um ticket de suporte
ticket.resolvedÉ resolvido um ticket de suporte
contact.createdÉ criado um novo contacto
contact.updatedUm contacto é atualizado
contact.mergedDois contactos são unidos
contact.deletedUm contacto é eliminado

O formulário de webhook oferece também Todos os eventos, que subscreve todos os eventos acima (guardado como o wildcard *); um mesmo webhook aceita ainda uma lista de nomes de eventos separada por vírgulas.

Configuração

  1. Aceda a Dashboard -> Programadores -> Webhooks.
  2. Clique em Add Webhook.
  3. Introduza o URL do seu endpoint (tem de ser HTTPS).
  4. Selecione os eventos que pretende receber.
  5. Clique em Save.

Segurança: assinatura HMAC-SHA256

Todos os payloads de webhook são assinados com HMAC-SHA256 através do seu webhook secret. Verifique a assinatura no seu servidor para garantir a autenticidade:

X-Webhook-Signature: t=<unix_timestamp>,v1=<hex_digest>
X-Webhook-Event: <event_name>
X-Webhook-Retry: <attempt>          # only on a retried delivery

O digest é calculado sobre <unix_timestamp>.<corpo_bruto_do_pedido>, pelo que verificar apenas o corpo nunca corresponderá. Divida o cabeçalho por ,, leia os valores t= e v1=, recalcule o HMAC-SHA256 de t + '.' + rawBody com o seu webhook secret e compare os dois digests em tempo constante. Rejeite uma entrega cujo timestamp tenha mais de alguns minutos, para que um payload capturado não possa ser repetido. Nota: Enviar teste para um URL que não é um webhook guardado é entregue sem assinatura — não existe segredo para a assinar; teste a sua verificação com um endpoint guardado.

Política de novas tentativas

Se o seu endpoint devolver um código de estado diferente de 2xx, o Conviro repete a tentativa até 3 vezes com backoff exponencial (1 min, 5 min, 30 min).


API REST

Autenticação

  1. Gere uma chave de API em Dashboard -> Programadores -> Chaves API -> Criar chave API.
  2. Inclua-a no cabeçalho Authorization:
Authorization: Bearer sk_your_api_key_here

> A chave é mostrada uma única vez. Criar uma chave exige pelo menos um âmbito (scope) — Criar fica desativado até escolher um — e o valor sk_ completo aparece uma só vez, numa caixa de diálogo que propositadamente não fecha com Escape nem ao clicar fora. Depois só o prefixo permanece legível; o resto é um hash bcrypt e não pode ser recuperado. Copie-a antes de fechar a caixa de diálogo. Se a perder, crie uma chave nova e revogue a antiga.

Principais endpoints

MétodoEndpointDescrição
GET/api/chatbotsLista todos os chatbots
GET/api/chatbots/:idObtém os detalhes de um chatbot
GET/api/sessionsLista as sessões (com filtros)
GET/api/sessions/:id/messagesObtém as mensagens de uma sessão
POST/api/sessions/:id/messagesEnvia uma mensagem para uma sessão
GET/api/contactsLista os contactos
POST/api/contactsCria um contacto
GET/api/leadsLista os leads
POST/api/leadsCria um lead
GET/api/analytics/overviewObtém o resumo das analytics

Limites de pedidos

  • Plano Free: 60 pedidos/minuto
  • Starter: 120 pedidos/minuto
  • Pro: 300 pedidos/minuto
  • Growth+: 600 pedidos/minuto

Os cabeçalhos com o limite de pedidos são incluídos em todas as respostas:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 1672531200

Documentação completa

Visite /developers para consultar a referência completa da API, com exemplos de pedido e resposta.

webhookapiresthmacintegrationendpointsdeveloper

Este artigo foi útil?