Skip to content

Criar Chat

Cria um novo atendimento (ou reutiliza um chat ativo existente) para um contato e canal.

ENDPOINT PRINCIPAL

Este é um dos endpoints mais importantes da API. Além de criar (ou reutilizar) o chat, na mesma requisição você já pode:

  • enviar uma mensagem inicial (initialMessage)
  • enviar um template WhatsApp (whatsappTemplate)
  • iniciar um fluxo (flowId) ou agendar fluxo na resposta (responseFlowId)

Existem rotas separadas para enviar mensagem e enviar template em um chat já existente — use-as quando o chat já foi criado. Para o caso mais comum (abrir atendimento e falar com o contato), prefira Criar Chat e faça tudo em uma única chamada.

Endpoint

http
POST /api/{organizationId}/chat/create

Base URL: https://v1.api.interflow.chat

Autenticação

API Key no header (um dos formatos):

http
x-api-key: ak_sua_api_key

ou

http
Authorization: Bearer ak_sua_api_key

Parâmetros

URL

ParâmetroTipoObrigatórioDescrição
organizationIdstring (UUID)SimID da organização — em ConfiguraçõesAPI Keys

Body

CampoTipoObrigatórioDescrição
contactTypestringSimwhatsapp, phone, email, instagram, facebook ou telegram
contactValuestringSimValor do contato (número, e-mail, username, etc.)
channelIdstring (UUID)SimID do canal ativo — menu lateral Canais (copiar no card)
customerIdstring (UUID)NãoCliente existente — Clientes → ações (⋮) → Copiar ID; se omitido, busca/cria automaticamente
customerNamestringNãoNome ao criar um cliente novo
teamIdstring (UUID)NãoEquipe do atendimento — menu Equipes (copiar no card)
initialMessagestring | objectNãoMensagem inicial (texto ou mídia)
whatsappTemplateobjectNãoTemplate Meta (somente canal WhatsApp Oficial) — Canais → Templates → Copiar ID
flowIdstring (UUID)NãoInicia o fluxo imediatamente — menu Fluxos (copiar no card)
flowVariablesarrayNãoVariáveis do fluxo: [{ "name": "...", "value": "..." }]
contextMessagestringNãoContexto usado com flowId ou responseFlowId
responseFlowIdstring (UUID)NãoFluxo ao responder o cliente — mesmo ID em Fluxos (copiar no card)
keepPendingbooleanNãoSe true, mantém o chat em pending mesmo com initialMessage / whatsappTemplate (não atende nem auto-atribui)

initialMessage

String (texto) ou objeto:

CampoTipoDescrição
typestringtext, image, video, audio ou document
contentstringTexto (obrigatório se type = text) ou legenda
urlstringURL HTTPS da mídia (obrigatório para tipos de mídia)
namestringNome do arquivo (opcional)
mimetypestringMIME type (opcional)
forwardobjectMetadados de encaminhamento (opcional)

whatsappTemplate

CampoTipoDescrição
id ou templateIdstring (UUID)ID Interflow do template — Canais → canal → Templates do WhatsAppCopiar ID
variablesobject | arrayVariáveis do template (opcional)

ESTÁGIO DO CLIENTE

Ao criar um cliente novo, o sistema usa o estágio padrão configurado no canal (settings.defaultStageId), se válido.

Comportamento

  • Se já existir chat ativo (pending, in_progress ou await_closing) para o mesmo contato/canal, ele é reutilizado (existing: true).
  • Sem keepPending, enviar initialMessage ou whatsappTemplate tende a atender o chat (in_progress) ou adicionar colaborador.
  • Com keepPending: true, a mensagem/template é enviada e o chat permanece pending (também ignora auto-assign na criação).
  • flowId e responseFlowId são independentes: o primeiro inicia na hora; o segundo aguarda a resposta do cliente.

Exemplos

Criação básica

bash
curl -X POST "https://v1.api.interflow.chat/api/{organizationId}/chat/create" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ak_sua_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-do-canal",
    "customerName": "Nome do cliente"
  }'

Template WhatsApp + manter pending + fluxo ao responder

bash
curl -X POST "https://v1.api.interflow.chat/api/{organizationId}/chat/create" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ak_sua_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-do-canal",
    "customerName": "Nome do cliente",
    "keepPending": true,
    "responseFlowId": "uuid-do-fluxo",
    "whatsappTemplate": {
      "id": "uuid-do-template"
    }
  }'

Mensagem inicial (texto)

bash
curl -X POST "https://v1.api.interflow.chat/api/{organizationId}/chat/create" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ak_sua_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-do-canal",
    "initialMessage": "Olá! Como posso ajudar?"
  }'

Fluxo imediato

bash
curl -X POST "https://v1.api.interflow.chat/api/{organizationId}/chat/create" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ak_sua_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-do-canal",
    "flowId": "flow-uuid",
    "contextMessage": "Bem-vindo!",
    "flowVariables": [
      { "name": "origem", "value": "api" }
    ]
  }'

Resposta

Sucesso (200)

json
{
  "success": true,
  "chatId": "chat-uuid",
  "formattedContact": "5511999999999",
  "existing": false,
  "flowInitiated": false,
  "keepPending": true,
  "responseFlowScheduled": true,
  "responseFlowId": "uuid-do-fluxo",
  "responseFlowName": "Nome do fluxo",
  "templateSent": true,
  "templateMessageId": "message-uuid"
}
CampoDescrição
chatIdID do chat criado ou reutilizado
formattedContactContato formatado pelo sistema
existingtrue se reutilizou chat ativo
flowInitiatedtrue se flowId foi solicitado
keepPendingEco do keepPending enviado
responseFlowScheduledtrue se responseFlowId foi configurado
templateSent / initialMessageSentResultado do envio (quando aplicável)
templateError / initialMessageErrorErro de envio sem falhar a criação do chat

Erros comuns

HTTPSituação
400Parâmetros inválidos / template em canal não oficial
404Canal inativo ou responseFlowId inexistente
401API Key inválida
json
{
  "success": false,
  "error": "Parâmetros obrigatórios: contactType, contactValue, channelId"
}

Próximos passos

Documentação em constante atualização