Tipo de página: docs

SMS entrantes

Enruta los SMS entrantes hacia webhooks, conversaciones, contactos y flujos de trabajo de transferencia a IA.

Respuesta directa

Enruta los SMS entrantes hacia webhooks, conversaciones, contactos y flujos de trabajo de transferencia a IA.

Contenido de la página

Un SMS entrante crea un mensaje recibido, actualiza la conversación y puede activar los endpoints de webhook configurados.

## Payload del mensaje recibido

```json
{
  "type": "message.received",
  "message_id": "msg_123",
  "conversation_id": "conv_123",
  "from": "+15551234567",
  "phone_number": "+15557654321",
  "body": "Can I reschedule?",
  "received_at": "2026-04-28T14:00:00Z"
}
```

Usa el enrutamiento entrante para agentes de IA, bandejas de soporte, calificación de leads y flujos de trabajo de citas.

## Patrón de enrutamiento para agentes de IA

1. Configura un endpoint en la página de Webhooks.
2. Suscríbete a `message.received` y `conversation.updated`.
3. Haz que tu servicio decida si el agente de IA debe responder, pausar o transferir.
4. Envía la respuesta a través de `POST /api/v1/messages` usando los mismos metadatos de conversación.

```js
export async function handleInboundTextreeEvent(event) {
  if (event.type !== "message.received") {
    return;
  }

  const shouldEscalate = event.body.toLowerCase().includes("human");

  if (shouldEscalate) {
    await pauseAgentAndNotifyOperator(event.conversation_id);
    return;
  }

  await fetch("https://api.texttree.ai/api/v1/messages", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TEXTREE_ACCESS_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      phone_number: event.from,
      body: "Thanks. I can help with that.",
      metadata: {
        conversation_id: event.conversation_id,
        source: "ai_agent",
      },
    }),
  });
}
```

## Comportamiento de transferencia a humanos

Las conversaciones entrantes pueden moverse entre estos estados de operador:

- `AI active`
- `Human takeover`
- `Paused`
- `Resolved`

Cuando la IA está pausada o un humano ha tomado el control, tu integración debe detener las respuestas automatizadas
hasta que la conversación se reanude.
Markdown