Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.1to1ai.com/llms.txt

Use this file to discover all available pages before exploring further.

Una conversación es el hilo de WhatsApp entre tu negocio y un contacto. Casi todos los endpoints de envío y de acciones (/conversation/*) la reciben en el cuerpo del request bajo el objeto conversation.

Identificar una conversación

El objeto conversation acepta uno de tres identificadores. El resolver los prioriza en este orden: uuidwhatsapp_user_idphone.
uuid
string
El UUID de un GET /conversations. El camino más directo y estable.
whatsapp_user_id
string
El identificador del contacto en Meta. Recomendado para clientes nuevos — sobrevive a la migración a BSUID.
phone
string
Número en formato E.164 (+5215512345678). Se normaliza a dígitos antes del lookup. Útil cuando solo tienes el teléfono.
{ "conversation": { "phone": "+52 55 1234 5678" } }
// equivalente: { "conversation": { "uuid": "7b8a..." } }
phone y whatsapp_user_id apuntan hoy al mismo valor. Coexisten para la transición de Meta a identificadores alfanuméricos (BSUID). Si empiezas de cero, guarda whatsapp_user_id.

La ventana de 24h

Es el concepto central de WhatsApp y decide qué puedes enviar.
1

El contacto te escribe

WhatsApp abre una ventana de 24 horas. Cada nuevo mensaje del contacto reinicia el contador.
2

Ventana abierta

Puedes enviar mensajes libres: texto, media y quick replies.
3

Pasan 24h sin respuesta

La ventana se cierra. El único mensaje permitido es una plantilla aprobada por Meta.
4

Enviar una plantilla reabre la ventana

Vuelves a poder enviar mensajes libres.
Enviar texto, media o quick reply con la ventana cerrada falla con WINDOW_CLOSED (422). Envía una plantilla primero para reabrirla.

Consultar el estado de la ventana

Antes de enviar un mensaje libre, puedes verificar si la ventana está abierta con POST /conversation/status:
curl -X POST "https://app.1to1.ai/api/v1/public/{slug}/conversation/status" \
  -H "Authorization: Bearer sk_1to1_tu_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "conversation": { "phone": "+5215512345678" } }'
La respuesta incluye window.status (open o closed) y window.hours_remaining, además del estado de asignación, buzón, tags e inbox_status de la conversación. Úsalo para decidir entre un mensaje libre y una plantilla.

Próximos pasos

Enviar mensajes

Texto, media, quick replies y plantillas.

Plantillas

Cómo enviar plantillas con la ventana de 24h cerrada.