Configuração: POST /whatsapp/config/ com o campo url_tickets_webhook
Este webhook entrega, em tempo real , cada mensagem trocada em um ticket de atendimento via WhatsApp — tanto as recebidas do cliente quanto as enviadas pela empresa (atendente ou bot). É disparado a cada nova mensagem.
Campo Tipo Descrição event_idstring (uuid) Identificador único do evento de webhook (UUID v4). Use para rastreamento e deduplicação. typestring Tipo do evento. Sempre message. messageobject Dados da mensagem. Veja Objeto message . ticketobject Dados do ticket. Veja Objeto ticket . whatsappobject Linha de WhatsApp da empresa. Veja Objeto whatsapp . contactobject Dados do contato (cliente). Veja Objeto contact . contextobject Dados de contexto adicionais. Pode vir vazio ({}). datetimestring (date-time) Data e hora do evento (ISO 8601 UTC-3).
Campo Tipo Descrição idstring Id único da mensagem (ex.: wamid do WhatsApp). fromstring Número de origem da mensagem. tostring Número de destino da mensagem. from_meboolean Se a mensagem foi enviada pela empresa (atendente ou bot). from_botboolean Se a mensagem foi enviada por um BOT. user_idinteger | null Id do atendente que enviou a mensagem. Nulo se foi do cliente ou bot. typestring Tipo da mensagem: text, audio, image, video, file. textstring | null Conteúdo ou legenda da mensagem. filestring | null URL do arquivo de mídia. Nulo em mensagens de texto. postback_textstring | null Texto do postback em interações de botão. datetimestring (date-time) Data e hora da mensagem (ISO 8601 UTC-3).
Campo Tipo Descrição idinteger Id do ticket. uuidstring (uuid) UUID do ticket. company_idinteger Id da empresa. tracking_idinteger | null Id de rastreamento do atendimento. campaign_idinteger | null Id da campanha. Nulo em atendimentos receptivos. request_idstring | null Id da requisição original. Nulo em atendimentos receptivos. cost_center_idinteger | null Id do centro de custo. statusstring Status do ticket: pending, open, closed, paused. user_idinteger | null Id do atendente atribuído ao ticket. contact_idinteger Id do contato. queue_idinteger | null Id da fila. transfer_queue_idinteger | null Id da fila de transferência. whatsapp_idinteger Id da linha de WhatsApp. integration_idinteger | null Id da integração. from_meboolean Indica se o ticket foi iniciado pela empresa (ativo) ou pelo cliente (receptivo).
Campo Tipo Descrição idinteger Id da linha de WhatsApp. namestring Nome da linha de WhatsApp. numberstring Número de WhatsApp da empresa.
Campo Tipo Descrição idinteger Id do contato. namestring | null Nome do contato. numberstring Número de telefone do contato. documentstring | null Documento (CPF/CNPJ) do contato. contractstring | null Contrato do contato. emailstring | null E-mail do contato. is_groupboolean Se o contato é um grupo. created_atstring (date-time) | null Data de criação do contato (ISO 8601 UTC-3). updated_atstring (date-time) | null Data de atualização do contato (ISO 8601 UTC-3). extra_infoarray Campos personalizados. Veja Objeto contact.extra_info .
Campo Tipo Descrição idinteger Id do campo personalizado. namestring Nome do campo. valuestring | null Valor do campo.
JSON
{
"event_id": "e00eed00-nb7k-b0m3-j605-dd5544dd9999",
"type": "message",
"message": {
"id": "wamid.HBgMNTU3NDk5MTMwNzY2",
"from": "5511988888888",
"to": "5511977777777",
"from_me": false,
"from_bot": false,
"user_id": null,
"type": "text",
"text": "Olá, preciso de ajuda",
"file": null,
"postback_text": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
},
"ticket": {
"id": 99,
"uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"company_id": 1,
"tracking_id": 11,
"campaign_id": null,
"request_id": null,
"cost_center_id": null,
"status": "open",
"user_id": 42,
"contact_id": 1,
"queue_id": 5,
"transfer_queue_id": null,
"whatsapp_id": 1,
"integration_id": null,
"from_me": false
},
"whatsapp": {
"id": 1,
"name": "Atendimento Nexus",
"number": "5511977777777"
},
"contact": {
"id": 1,
"name": "João",
"number": "5511988888888",
"document": "12345678900",
"contract": null,
"email": "[email protected] ",
"is_group": false,
"created_at": "2024-12-01T09:00:00.000-03:00",
"updated_at": "2024-12-06T17:49:55.610-03:00",
"extra_info": [
{
"id": 1,
"name": "plano",
"value": "premium"
}
]
},
"context": {},
"datetime": "2024-12-06T17:49:55.610-03:00"
}
JSON
{
"event_id": "f10efe00-oc8l-c1n4-k716-ee6655ee0000",
"type": "message",
"message": {
"id": "wamid.HBgMNTU3NDk5MTMwNzbb",
"from": "5511977777777",
"to": "5511988888888",
"from_me": true,
"from_bot": false,
"user_id": 42,
"type": "text",
"text": "Olá! Como posso ajudar?",
"file": null,
"postback_text": null,
"datetime": "2024-12-06T17:50:10.000-03:00"
},
"ticket": {
"id": 99,
"uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"company_id": 1,
"tracking_id": 11,
"campaign_id": null,
"request_id": null,
"cost_center_id": null,
"status": "open",
"user_id": 42,
"contact_id": 1,
"queue_id": 5,
"transfer_queue_id": null,
"whatsapp_id": 1,
"integration_id": null,
"from_me": false
},
"whatsapp": {
"id": 1,
"name": "Atendimento Nexus",
"number": "5511977777777"
},
"contact": {
"id": 1,
"name": "João",
"number": "5511988888888",
"document": "12345678900",
"contract": null,
"email": "[email protected] ",
"is_group": false,
"created_at": "2024-12-01T09:00:00.000-03:00",
"updated_at": "2024-12-06T17:50:10.000-03:00",
"extra_info": []
},
"context": {},
"datetime": "2024-12-06T17:50:10.000-03:00"
}