Skip to main content
Os webhooks do Tivar permitem que você receba notificações automáticas em tempo real sempre que algo relevante acontece no seu workspace — como a chegada de uma nova mensagem, o envio de uma resposta ou a resolução de uma conversa. A cada evento, o Tivar dispara uma requisição HTTP POST com um payload JSON para a URL externa que você configurar, sem que seja necessário fazer polling na API. Isso facilita integrações com ferramentas como n8n, Typebot, Zapier e qualquer sistema capaz de receber requisições HTTP.

Como configurar um webhook

1

Acesse as configurações de webhooks

No painel do Tivar, vá em Configurações → Integrações → Webhooks.
2

Adicione um novo webhook

Clique em Adicionar webhook.
3

Informe a URL de destino

Digite a URL para a qual o Tivar deve enviar os eventos. Essa URL precisa estar acessível publicamente e aceitar requisições POST com corpo em JSON.
4

Selecione os eventos desejados

Escolha quais eventos você quer receber. Você pode marcar eventos individuais ou usar * para assinar todos os eventos disponíveis.
Use * para receber todos os eventos em uma única URL. Isso é útil em integrações que roteiam cada evento com base no campo event do payload.
5

Configure um segredo (opcional)

Informe um segredo para habilitar a validação de assinatura HMAC nos payloads recebidos. Essa etapa é opcional, mas recomendada para garantir a autenticidade das requisições.

Headers enviados em todo webhook

O Tivar inclui os seguintes headers em cada requisição enviada para a sua URL:
HeaderValor
Content-Typeapplication/json
X-Tivar-EventNome do evento (ex.: message.received)
X-Tivar-TimestampUnix timestamp em segundos do momento do envio
User-AgentTivar-Webhooks/1.0
X-Tivar-Signaturesha256=<hmac-hex> — presente apenas se um segredo estiver configurado

Validando a assinatura

Se você configurou um segredo, o Tivar incluirá o header X-Tivar-Signature em cada requisição. Esse valor é um HMAC-SHA256 calculado sobre o corpo bruto da requisição usando o seu segredo como chave. Valide a assinatura antes de processar qualquer payload para garantir que ele veio do Tivar.
const crypto = require('crypto')

function isValidSignature(body, secret, signatureHeader) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex')
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signatureHeader)
  )
}
O parâmetro body deve ser a string JSON bruta do payload, antes de qualquer parse. Se você parsear o JSON antes de calcular o HMAC, a validação vai falhar.

Eventos disponíveis

EventoQuando dispara
message.receivedNova mensagem recebida de um contato externo
message.sentMensagem enviada pelo Tivar (via painel, API ou agente de IA)
conversation.assignedConversa atribuída, reatribuída ou com atribuição removida
conversation.resolvedConversa marcada como resolvida
Para conhecer a estrutura completa de cada payload, consulte a referência dos eventos.