Skip to content

Crear Chat

Crea una nueva atención (o reutiliza un chat activo) para un contacto y canal.

Endpoint

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

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

Autenticación

API Key en el header (uno de los formatos):

http
x-api-key: ak_tu_api_key

o

http
Authorization: Bearer ak_tu_api_key

Parámetros

URL

ParámetroTipoObligatorioDescripción
organizationIdstring (UUID)ID de la organización

Body

CampoTipoObligatorioDescripción
contactTypestringwhatsapp, phone, email, instagram, facebook o telegram
contactValuestringValor del contacto (número, email, username, etc.)
channelIdstring (UUID)ID del canal activo — menú lateral Canales (copiar en la tarjeta)
customerIdstring (UUID)NoCliente existente — Clientes → acciones (⋮) → Copiar ID; si se omite, busca/crea automáticamente
customerNamestringNoNombre al crear un cliente nuevo
teamIdstring (UUID)NoEquipo de la atención — menú Equipos (copiar en la tarjeta)
initialMessagestring | objectNoMensaje inicial (texto o medio)
whatsappTemplateobjectNoPlantilla Meta (solo WhatsApp Oficial) — Canales → Plantillas → Copiar ID
flowIdstring (UUID)NoInicia el flujo de inmediato — menú Flujos (copiar en la tarjeta)
flowVariablesarrayNoVariables del flujo: [{ "name": "...", "value": "..." }]
contextMessagestringNoContexto usado con flowId o responseFlowId
responseFlowIdstring (UUID)NoFlujo al responder el cliente — mismo ID en Flujos (copiar en la tarjeta)
keepPendingbooleanNoSi es true, mantiene el chat en pending aunque haya initialMessage / whatsappTemplate (no atiende ni autoasigna)

initialMessage

Cadena (texto) u objeto:

CampoTipoDescripción
typestringtext, image, video, audio o document
contentstringTexto (obligatorio si type = text) o leyenda
urlstringURL HTTPS del medio (obligatorio para tipos de medio)
namestringNombre del archivo (opcional)
mimetypestringMIME type (opcional)
forwardobjectMetadatos de reenvío (opcional)

whatsappTemplate

CampoTipoDescripción
id o templateIdstring (UUID)ID Interflow de la plantilla — Canales → canal → Plantillas de WhatsAppCopiar ID
variablesobject | arrayVariables de la plantilla (opcional)

ETAPA DEL CLIENTE

Al crear un cliente nuevo, el sistema usa la etapa predeterminada del canal (settings.defaultStageId), si es válida.

Comportamiento

  • Si ya existe un chat activo (pending, in_progress o await_closing) para el mismo contacto/canal, se reutiliza (existing: true).
  • Sin keepPending, enviar initialMessage o whatsappTemplate suele atender el chat (in_progress) o añadirte como colaborador.
  • Con keepPending: true, se envía el mensaje/plantilla y el chat permanece pending (también omite autoasignación al crear).
  • flowId y responseFlowId son independientes: el primero inicia al momento; el segundo espera la respuesta del cliente.

Ejemplos

Creación 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_tu_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-del-canal",
    "customerName": "Nombre del cliente"
  }'

Plantilla WhatsApp + mantener pending + flujo al responder

bash
curl -X POST "https://v1.api.interflow.chat/api/{organizationId}/chat/create" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ak_tu_api_key" \
  -d '{
    "contactType": "whatsapp",
    "contactValue": "5511999999999",
    "channelId": "uuid-del-canal",
    "customerName": "Nombre del cliente",
    "keepPending": true,
    "responseFlowId": "uuid-del-flujo",
    "whatsappTemplate": {
      "id": "uuid-de-la-plantilla"
    }
  }'

Flujo inmediato

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

Respuesta

Éxito (200)

json
{
  "success": true,
  "chatId": "chat-uuid",
  "formattedContact": "5511999999999",
  "existing": false,
  "flowInitiated": false,
  "keepPending": true,
  "responseFlowScheduled": true,
  "responseFlowId": "uuid-del-flujo",
  "responseFlowName": "Nombre del flujo",
  "templateSent": true,
  "templateMessageId": "message-uuid"
}

Errores comunes

HTTPSituación
400Parámetros inválidos / plantilla en canal no oficial
404Canal inactivo o responseFlowId inexistente
401API Key inválida

Próximos pasos

Documentación en constante actualización