Skip to main content
Nesta seção, você encontrará detalhes sobre os eventos que a Zatten pode enviar para a sua aplicação via webhook. Configure uma URL no seu painel para começar a receber esses eventos em tempo real.

Como funcionam os Webhooks?

Quando ocorrem ações específicas na plataforma, como a criação de um lead ou o recebimento de uma mensagem, enviamos uma requisição POST para a URL que você configurou. O corpo dessa requisição contém um payload JSON com todas as informações relevantes sobre o evento.

Eventos de Conversa e Lead

LEAD_CREATED

Enviado sempre que um novo lead é criado no sistema, seja por uma interação inicial ou manualmente.
Campos do Payload:
  • type: string - Tipo do evento (LEAD_CREATED).
  • lead: object - Objeto contendo os dados do lead.
    • id: string - Identificador único do lead.
    • name: string | null - Nome do lead.
    • wa_id: string - Número de WhatsApp do lead (E.164).
    • thread_id: string | null - ID da thread externa (se aplicável).
    • last_interaction: string | null - Data da última interação (ISO 8601).
    • conversation_expires_in: string | null - Data de expiração da janela de conversa (ISO 8601).
    • created_at: string - Data de criação do lead (ISO 8601).
    • ai_response_block_until: string | null - Data até a qual a IA está bloqueada de responder.
    • tags: string[] | null - Array com os IDs das tags do lead.
    • tenant_id: string - ID da sua organização (tenant).
    • unread_messages: number | null - Quantidade de mensagens não lidas.
    • column_id: string | null - ID da coluna do Kanban onde o lead se encontra.
    • notes: string | null - Anotações sobre o lead.
    • metadata: object | null - Objeto com dados personalizados do lead.
    • assigned_to_user: string | null - ID do usuário para o qual o lead está atribuído.
    • assigned_to_team: string | null - ID da equipe para a qual o lead está atribuído.
    • zatten_thread_id: string | null - ID da thread interna da Zatten.
  • attendant: object - Objeto com dados do atendente.
    • id: string - Identificador único do atendente.
    • meta_number_id: string | null - ID do número de telefone da Meta.
    • name: string | null - Nome do atendente.
  • timestamp: string - Data e hora do evento (ISO 8601).

LEAD_INTERACTION

Enviado quando um lead envia uma nova mensagem.
Campos do Payload:
  • type: string - Tipo do evento (LEAD_INTERACTION).
  • lead: object - Objeto contendo os dados do lead.
    • id: string - Identificador único do lead.
    • name: string | null - Nome do lead.
    • wa_id: string - Número de WhatsApp do lead (E.164).
    • thread_id: string | null - ID da thread externa (se aplicável).
    • last_interaction: string | null - Data da última interação (ISO 8601).
    • conversation_expires_in: string | null - Data de expiração da janela de conversa (ISO 8601).
    • created_at: string - Data de criação do lead (ISO 8601).
    • ai_response_block_until: string | null - Data até a qual a IA está bloqueada de responder.
    • tags: string[] | null - Array com os IDs das tags do lead.
    • tenant_id: string - ID da sua organização (tenant).
    • unread_messages: number | null - Quantidade de mensagens não lidas.
    • column_id: string | null - ID da coluna do Kanban onde o lead se encontra.
    • notes: string | null - Anotações sobre o lead.
    • metadata: object | null - Objeto com dados personalizados do lead.
    • assigned_to_user: string | null - ID do usuário para o qual o lead está atribuído.
    • assigned_to_team: string | null - ID da equipe para a qual o lead está atribuído.
    • zatten_thread_id: string | null - ID da thread interna da Zatten.
  • attendant: object - Objeto com dados do atendente.
    • id: string - Identificador único do atendente.
    • meta_number_id: string | null - ID do número de telefone da Meta.
    • name: string | null - Nome do atendente.
  • message: object - Objeto com o conteúdo da mensagem.
    • messages: string[] - Array com as mensagens enviadas pelo lead.
  • timestamp: string - Data e hora do evento (ISO 8601).

AI_RESPONSE

Enviado sempre que a inteligência artificial responde a um lead.
Campos do Payload:
  • type: string - Tipo do evento (AI_RESPONSE).
  • lead: object - Objeto contendo os dados do lead.
    • id: string - Identificador único do lead.
    • name: string | null - Nome do lead.
    • wa_id: string - Número de WhatsApp do lead (E.164).
    • thread_id: string | null - ID da thread externa (se aplicável).
    • last_interaction: string | null - Data da última interação (ISO 8601).
    • conversation_expires_in: string | null - Data de expiração da janela de conversa (ISO 8601).
    • created_at: string - Data de criação do lead (ISO 8601).
    • ai_response_block_until: string | null - Data até a qual a IA está bloqueada de responder.
    • tags: string[] | null - Array com os IDs das tags do lead.
    • tenant_id: string - ID da sua organização (tenant).
    • unread_messages: number | null - Quantidade de mensagens não lidas.
    • column_id: string | null - ID da coluna do Kanban onde o lead se encontra.
    • notes: string | null - Anotações sobre o lead.
    • metadata: object | null - Objeto com dados personalizados do lead.
    • assigned_to_user: string | null - ID do usuário para o qual o lead está atribuído.
    • assigned_to_team: string | null - ID da equipe para a qual o lead está atribuído.
    • zatten_thread_id: string | null - ID da thread interna da Zatten.
  • attendant: object - Objeto com dados do atendente.
    • id: string - Identificador único do atendente.
    • meta_number_id: string | null - ID do número de telefone da Meta.
    • name: string | null - Nome do atendente.
  • message: object - Objeto com o conteúdo da mensagem.
    • messages: string[] - Array com as mensagens enviadas pelo lead.
  • timestamp: string - Data e hora do evento (ISO 8601).

ERROR

Enviado quando ocorre um erro ao processar ou enviar uma mensagem.
Campos do Payload:
  • type: string - Tipo do evento (ERROR).
  • lead: object - Objeto contendo os dados do lead.
    • id: string - Identificador único do lead.
    • name: string | null - Nome do lead.
    • wa_id: string - Número de WhatsApp do lead (E.164).
    • thread_id: string | null - ID da thread externa (se aplicável).
    • last_interaction: string | null - Data da última interação (ISO 8601).
    • conversation_expires_in: string | null - Data de expiração da janela de conversa (ISO 8601).
    • created_at: string - Data de criação do lead (ISO 8601).
    • ai_response_block_until: string | null - Data até a qual a IA está bloqueada de responder.
    • tags: string[] | null - Array com os IDs das tags do lead.
    • tenant_id: string - ID da sua organização (tenant).
    • unread_messages: number | null - Quantidade de mensagens não lidas.
    • column_id: string | null - ID da coluna do Kanban onde o lead se encontra.
    • notes: string | null - Anotações sobre o lead.
    • metadata: object | null - Objeto com dados personalizados do lead.
    • assigned_to_user: string | null - ID do usuário para o qual o lead está atribuído.
    • assigned_to_team: string | null - ID da equipe para a qual o lead está atribuído.
    • zatten_thread_id: string | null - ID da thread interna da Zatten.
  • attendant: object - Objeto com dados do atendente.
    • id: string - Identificador único do atendente.
    • meta_number_id: string | null - ID do número de telefone da Meta.
    • name: string | null - Nome do atendente.
  • message: object - Objeto com o conteúdo da mensagem.
    • messages: string[] - Array com as mensagens enviadas pelo lead.
  • message: object - Objeto com a descrição do erro.
    • error: string - Detalhes sobre o erro que ocorreu.
    • code: string - Detalhes sobre o código do erro que ocorreu.
  • timestamp: string - Data e hora do evento (ISO 8601).

Eventos de Kanban e Tags

LEAD_KANBAN_UPDATED

Enviado quando o lead muda de coluna no Kanban.
Campos do Payload:
  • event: string - Tipo do evento (LEAD_KANBAN_UPDATED).
  • lead_id: string - Identificador do lead.
  • lead_name: string - Nome do lead.
  • lead_phone: string - Número do lead em formato internacional (E.164).
  • previous_column_id: string - Identificador da coluna anterior.
  • previous_column_name: string - Nome da coluna anterior.
  • previous_column_description: string | null - Descrição da coluna anterior.
  • new_column_id: string - Identificador da nova coluna.
  • new_column_name: string - Nome da nova coluna.
  • new_column_description: string | null - Descrição da nova coluna.
  • timestamp: string - Data/hora da atualização (ISO 8601).
  • attendant_id: string - Identificador do atendente vinculado.
  • attendant_name: string - Nome do atendente.
  • current_tags: array - Lista de tags atuais atribuídas ao lead.
  • lead_metadata: array | null - Lista de propriedades adicionais do lead.

LEAD_TAG_ADDED

Enviado quando uma tag é adicionada a um lead.
Campos do Payload:
  • event: string - Tipo do evento (LEAD_TAG_ADDED).
  • lead_id: string - Identificador do lead.
  • lead_name: string - Nome do lead.
  • lead_phone: string - Número do lead (E.164).
  • tag_id: string - Identificador da tag adicionada.
  • tag_name: string - Nome da tag adicionada.
  • tag_description: string | null - Descrição da tag.
  • current_tags: array - Lista completa das tags atuais do lead.
  • timestamp: string - Data/hora da atualização (ISO 8601).
  • attendant_id: string - Identificador do atendente.
  • attendant_name: string - Nome do atendente.
  • kanban_column_id: string - Identificador da coluna atual do Kanban.
  • kanban_column_name: string - Nome da coluna atual.
  • kanban_column_description: string | null - Descrição da coluna atual.
  • lead_metadata: array - Lista de propriedades adicionais do lead.

LEAD_TAG_REMOVED

Enviado quando uma tag é removida de um lead.
Campos do Payload:
  • event: string - Tipo do evento (LEAD_TAG_REMOVED).
  • lead_id: string - Identificador do lead.
  • lead_name: string - Nome do lead.
  • lead_phone: string - Número do lead (E.164).
  • tag_id: string - Identificador da tag removida.
  • tag_name: string - Nome da tag removida.
  • tag_description: string | null - Descrição da tag.
  • current_tags: array - Lista de tags restantes (pode estar vazia).
  • timestamp: string - Data/hora da atualização (ISO 8601).
  • attendant_id: string - Identificador do atendente.
  • attendant_name: string - Nome do atendente.
  • kanban_column_id: string - Identificador da coluna atual do Kanban.
  • kanban_column_name: string - Nome da coluna atual.
  • kanban_column_description: string | null - Descrição da coluna atual.
  • lead_metadata: array - Lista de propriedades adicionais do lead.

Observações Importantes
  • Confirmação: Para confirmar o recebimento de um webhook, sua URL deve retornar uma resposta com status 2xx (ex: 200 ou 204). Qualquer outro status pode ser interpretado como uma falha.
  • Formato de Data: Todos os timestamps e campos de data/hora seguem o padrão ISO 8601 UTC.
  • Idempotência: Sua aplicação deve ser construída para lidar com a possibilidade de receber o mesmo evento mais de uma vez. Tornar o processamento do webhook idempotente (processar o mesmo evento múltiplas vezes sem criar resultados duplicados) é uma prática recomendada.
  • Dados Atualizados: O payload de cada evento sempre contém os dados mais atualizados daquele lead no momento em que a ação ocorreu.