Webhook de Atendimentos WhatsApp
Configuração:
POST /whatsapp/config/com o campourl_attendance_callback
Este webhook traz as mensagens trocadas no atendimento via Whatsapp, incluindo informações sobre campanhas, centros de custo, documentos e o histórico de mensagens.
Payload
| Campo | Tipo | Descrição |
|---|---|---|
event_id | string (uuid) | Identificador único do evento de webhook (UUID v4). Use para rastreamento e deduplicação. |
id | integer | Id único do atendimento. Representa a conversa desde o HSM enviado (ativo) ou a mensagem recebida (receptivo). |
ticket_id | integer | Id do ticket no sistema de atendimento. |
ticket_uuid | string (uuid) | UUID do ticket no sistema de atendimento. |
campaign_id | integer | null | Id da campanha. Será nulo em atendimentos receptivos. |
request_id | string | null | ID da requisição original. Será nulo em atendimentos receptivos. |
cost_center_id | integer | null | Id do centro de custo. Será nulo em atendimentos receptivos. |
from_me | boolean | Indica se o atendimento foi iniciado por uma campanha (ativo) ou pelo cliente (receptivo). |
number | string | Número de telefone do contato. |
data | object | null | Dados adicionais incluídos no envio da mensagem. |
document | string | null | Documento CPF ou CNPJ do destinatário. |
occurrence | object | null | Ocorrência do atendimento (id, name). |
user | object | null | Usuário que atendeu o cliente (id, name). |
datetime | string (date-time) | Data e hora do encerramento (ISO 8601 UTC-3). |
messages | array | Lista de mensagens trocadas. |
survey | object | null | Pesquisa de satisfação associada ao atendimento. Veja Objeto survey. |
Objeto messages
messages| Campo | Tipo | Descrição |
|---|---|---|
from | string | Número de origem da mensagem. |
to | string | Número de destino da mensagem. |
from_me | boolean | Se a mensagem foi enviada pelo atendente. |
from_bot | boolean | Se a mensagem foi enviada por um BOT. |
user | integer | null | Id do usuário que enviou a mensagem. |
type | string | Tipo da mensagem: text, audio, image, video, file. |
text | string | Conteúdo da mensagem. |
file | string | null | URL do arquivo enviado. |
datetime | string (date-time) | Data e hora do envio. |
Objeto survey
survey| Campo | Tipo | Descrição |
|---|---|---|
id | integer | Id da pesquisa. |
name | string | Nome da pesquisa. |
status | string | Status da pesquisa (veja Status da pesquisa). |
started_at | string (date-time) | Data e hora de início da pesquisa (ISO 8601 UTC-3). |
completed_at | string (date-time) | null | Data e hora de conclusão da pesquisa (ISO 8601 UTC-3). |
expired_at | string (date-time) | null | Data e hora de expiração da pesquisa (ISO 8601 UTC-3). |
answers | array | Lista de respostas da pesquisa. |
Status da pesquisa
| Status | Descrição |
|---|---|
completed | Survey respondida com sucesso. |
declined | Cliente recusou participar (respondeu "não" no opt-in). |
failed | Atingiu o máximo de respostas erradas. |
expired | Sessão expirou por inatividade. |
cancelled | Cancelada manualmente. |
Objeto survey.answers
survey.answers| Campo | Tipo | Descrição |
|---|---|---|
question | string | Texto da pergunta. |
question_type | string | Tipo da pergunta: scale ou text. |
answer | string | Resposta fornecida. |
answered_at | string (date-time) | Data e hora da resposta (ISO 8601 UTC-3). |
Exemplo - Atendimento Ativo
{
"event_id": "e00eed00-nb7k-b0m3-j605-dd5544dd9999",
"id": 56789,
"ticket_id": 34567,
"ticket_uuid": "123e4567-e89b-12d3-a456-426614174000",
"campaign_id": 54321,
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"cost_center_id": 12345,
"from_me": true,
"number": "5511988888888",
"data": {
"key1": "value1",
"key2": "value2"
},
"document": "00000000000",
"occurrence": {
"id": 1,
"name": "Ocorrência 01"
},
"user": {
"id": 1,
"name": "Usuário 01"
},
"datetime": "2024-12-06T17:49:55.610-03:00",
"messages": [
{
"from": "5511977777777",
"to": "5511988888888",
"from_me": true,
"from_bot": false,
"user": null,
"type": "text",
"text": "Mensagem HSM",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
},
{
"from": "5511988888888",
"to": "5511977777777",
"from_me": false,
"from_bot": false,
"user": null,
"type": "text",
"text": "Resposta do cliente",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
},
{
"from": "5511977777777",
"to": "5511988888888",
"from_me": true,
"from_bot": true,
"user": null,
"type": "text",
"text": "Resposta do bot",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
},
{
"from": "5511977777777",
"to": "5511988888888",
"from_me": true,
"from_bot": false,
"user": 1,
"type": "text",
"text": "Resposta do atendente",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
}
],
"survey": {
"id": 1,
"name": "Pesquisa de Satisfação",
"status": "completed",
"started_at": "2024-12-06T17:50:00.000-03:00",
"completed_at": "2024-12-06T17:51:30.000-03:00",
"expired_at": null,
"answers": [
{
"question": "Como você avalia o atendimento?",
"question_type": "scale",
"answer": "5",
"answered_at": "2024-12-06T17:51:00.000-03:00"
},
{
"question": "Deixe um comentário",
"question_type": "text",
"answer": "Ótimo atendimento!",
"answered_at": "2024-12-06T17:51:30.000-03:00"
}
]
}
}Exemplo - Atendimento Receptivo
{
"event_id": "f10efe00-oc8l-c1n4-k716-ee6655ee0000",
"id": 56789,
"ticket_id": 34567,
"ticket_uuid": "123e4567-e89b-12d3-a456-426614174000",
"campaign_id": null,
"request_id": null,
"cost_center_id": null,
"from_me": false,
"number": "5511988888888",
"data": null,
"document": "12345678900",
"occurrence": {
"id": 1,
"name": "Ocorrência 01"
},
"user": {
"id": 1,
"name": "Usuário 01"
},
"datetime": "2024-12-06T17:49:55.610-03:00",
"messages": [
{
"from": "5511988888888",
"to": "5511977777777",
"from_me": false,
"from_bot": false,
"user": null,
"type": "text",
"text": "Mensagem do cliente",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
},
{
"from": "5511977777777",
"to": "5511988888888",
"from_me": true,
"from_bot": false,
"user": 1,
"type": "text",
"text": "Resposta do atendente",
"file": null,
"datetime": "2024-12-06T17:49:55.610-03:00"
}
],
"survey": {
"id": 1,
"name": "Pesquisa de Satisfação",
"status": "completed",
"started_at": "2024-12-06T17:50:00.000-03:00",
"completed_at": "2024-12-06T17:51:30.000-03:00",
"expired_at": null,
"answers": [
{
"question": "Como você avalia o atendimento?",
"question_type": "scale",
"answer": "5",
"answered_at": "2024-12-06T17:51:00.000-03:00"
},
{
"question": "Deixe um comentário",
"question_type": "text",
"answer": "Ótimo atendimento!",
"answered_at": "2024-12-06T17:51:30.000-03:00"
}
]
}
}