Evento
POST messenger/chatbot/NodeHttpDelegateComo receber
Configure uma URL HTTPS pública para receber este evento e responda rapidamente com status de sucesso após aceitar o payload.
Código de exemplo
Consulte app.js para ver uma implementação de referência.
Payload
- Content-Type: application/json
| Campo | Tipo | Obrigatório | Valores / Exemplo | Descrição |
|---|---|---|---|---|
| seq | integer | Sim | Sequência da mensagem no fluxo atual | |
| roomId | string | Não | ID da sala de conversa atual | |
| chId | string | Não | Identificador do contato no canal | |
| chSrc | integer | Não | Canal de origem (1=WhatsApp, 2=Facebook, 3=Instagram, 4=SMS; ausência/valor diferente indica LiveChat) | |
| message | string,null | Não | Texto enviado pelo contato na mensagem atual, quando houver | |
| vars | object | Sim | Variáveis já persistidas no contexto do fluxo. O endpoint pode usar esses valores para decidir a resposta e deve retornar novas variáveis em response.vars. | |
| interactiveReply | string | Não | Resposta interativa do usuário | |
| currNodeId | string | Não | ID do node atual no fluxo |
Estruturas internas
vars
{
"room": "object",
"SAMPLE_VAR": "string"
}Exemplo básico recebido:
{
"seq": 1,
"vars": {
"room": {},
"SAMPLE_VAR": "valor"
}
}Respostas
| Status | Descrição | Conteúdo |
|---|---|---|
| 200 | Retorno do controle do fluxo | application/json |
| 500 | Erro no processamento |
Payload esperado no retorno
Quando a resposta declarar um corpo JSON, retorne o payload abaixo para que a plataforma consiga continuar o processamento do evento.
Status 200 - Retorno do controle do fluxo
- Content-Type: application/json
| Campo | Tipo | Obrigatório | Valores / Exemplo | Descrição |
|---|---|---|---|---|
| messages | NodeHttpDelegateMessage | Não | Lista de mensagens a serem enviadas para o contato | |
| keepHere | boolean | Não | Indica se o processamento continua neste endpoint ou avança para o próximo passo do fluxo na plataforma | |
| vars | object | Não | Variáveis que serão salvas em roomData.vars e usadas pelos próximos nodes. Use este campo para qualquer variável avaliada por nodes condicionais e para qualquer dado referenciado em templates (ex.: null, null, null). Campos fora de vars não são persistidos. |
Estruturas internas
messages
[
{
"text": "string",
"file": {
"mimetype": "string",
"fileUrl": "string (uri)"
},
"buttons": "object"
}
]vars
{
"acao": "string",
"contexto": "object",
"nome": [
"string",
"null"
],
"produto": [
"string",
"null"
],
"observacao": [
"string",
"null"
]
}Exemplo básico de retorno:
{
"messages": [
{
"text": "Recebi suas informações e vou dar continuidade ao atendimento."
}
],
"keepHere": false,
"vars": {
"acao": "continuar_atendimento",
"nome": "Cliente",
"produto": "Produto de interesse",
"observacao": "Resumo da necessidade informada pelo contato.",
"contexto": {
"origem": "integracao_externa",
"prioridade": "alta"
}
}
}Boas práticas
- Trate reenvios como possibilidade real.
- Valide o payload antes de executar regras de negócio.
- Registre o identificador do evento ou do registro recebido para auditoria.
