Shared Inbox de WhatsApp para nueva PlataformaMás
1msg official logo

Mensaje de sesión con WhatsApp API: pedir datos

Este escenario envía un mensaje de texto libre de WhatsApp con sendMessage dentro de la ventana de atención al cliente de 24 horas.

Descripción del caso de uso

Este escenario envía un mensaje de texto libre de WhatsApp con sendMessage dentro de la ventana de atención al cliente de 24 horas. Úsalo tras un evento webhook inbound cuando ya tienes sesión abierta y debes solicitar detalles faltantes del ticket.

Ejemplo de plantilla

Para continuar resolviendo el ticket {{1}}, por favor envía {{2}}.

  • {{1}}
    número de ticket de soporte
  • {{2}}
    qué necesitas del cliente (foto, documento, aclaración)
WhatsApp Business API for session reply — request additional information

Cuándo usarlo

Usa este escenario cuando un webhook inbound confirma que el cliente ya escribió en WhatsApp y tu equipo de soporte necesita una foto, un documento o una aclaración específica antes de cerrar el ticket. Encaja en seguimientos de helpdesk con ventana de sesión de 24 horas abierta, donde una plantilla sumaría costo y fricción a un diálogo ya en curso.

Sin gasto de plantilla en tickets abiertos
sendMessage envía texto libre dentro de la ventana de atención de 24 horas, así pides los detalles faltantes sin pagar plantilla en una conversación que el cliente ya inició.
Resolución de ticket más rápida
Dos variables del cuerpo llevan el número de ticket y el ítem exacto que esperas, así el cliente sabe qué enviar sin abrir correo ni repetir el problema.
Menos idas y vueltas del agente
Tu backend mapea el webhook inbound al ticket y completa ambos placeholders antes de disparar sendMessage, así el agente no retipea la solicitud en el chat.
La respuesta queda en el mismo hilo
El cliente recibe la solicitud en la sesión abierta de WhatsApp y puede adjuntar la foto o el documento en el mismo chat, donde tu webhook recoge la respuesta inbound para el helpdesk.

Flujo de trabajo

  1. Estado registrado

    Llega un mensaje inbound del cliente vía webhook.

    status: "read"

  2. Capturar evento

    Tu backend mapea el chat a un ticket y determina el detalle faltante.

    POST /sendMessage

  3. Construir y enviar

    Se envía un mensaje de texto de sesión referenciando el ticket y el ítem esperado.

    POST /sendMessage

  4. Entregado

    El cliente responde con el material solicitado en la misma sesión.

    entregado

WhatsApp Business API for session reply — request additional information

Implementación técnica

Requisitos previos

  1. Clave API de 1MSG · Cómo obtener la clave API
  2. Cuenta de WhatsApp Business · Cómo conectar WABA
  3. Ventana de sesión de 24 horas abierta · Cómo funciona la ventana de 24 horas
  4. Opt-in del cliente · Cómo gestionar el consentimiento
  5. Endpoint de webhook · Cómo configurar webhooks

Ejemplos de código

#!/usr/bin/env bash
set -euo pipefail

# === Configuration (replace "___" placeholders) ===
API_BASE_URL="https://api.1msg.io"        # production 1MSG API base URL
CHANNEL_ID="___"                           # channel ID from 1MSG dashboard
API_TOKEN="___"                            # channel JWT token (Bearer)



# === Test data ===
TEST_PHONE="___"                 # client phone in international format · requires open 24-hour session window
TEST_TICKETNUMBER="___"         # {{1}} ticket number
TEST_AWAITEDITEM="___"         # {{2}} awaited item

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"

for pair in "CHANNEL_ID=$CHANNEL_ID" "API_TOKEN=$API_TOKEN" "TEST_PHONE=$TEST_PHONE" \
            "TEST_TICKETNUMBER=$TEST_TICKETNUMBER" \
            "TEST_AWAITEDITEM=$TEST_AWAITEDITEM"; do
  val="${pair#*=}"
  if [ -z "$val" ] || [ "$val" = "___" ]; then
    echo "Missing configuration value: ${pair%%=*}" >&2
    exit 1
  fi
done

if [ -z "$PHONE_NORM" ]; then
  echo "Error: phone number has no digits after normalization" >&2
  exit 1
fi

URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendMessage"

read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "body": "To continue resolving ticket TKT-1024, please send a photo of the damaged item."
}
JSON

RESPONSE="$(curl -s -w '\n%{http_code}' -X POST "$URL" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -d "$PAYLOAD")"

HTTP_CODE="$(printf '%s' "$RESPONSE" | tail -n1)"
BODY="$(printf '%s' "$RESPONSE" | sed '$d')"

case "$BODY" in
  *'"sent":true'*) ok=1 ;;
  *) ok=0 ;;
esac

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ] && [ "$ok" -eq 1 ]; then
  echo "Message sent to client."
  echo "API response: $BODY"
else
  echo "Send failed. HTTP status: $HTTP_CODE" >&2
  echo "$BODY" >&2
  exit 1
fi

Respuesta y estado de entrega

HTTP 2xx y JSON "sent": true significan que 1MSG aceptó el mensaje para envío — no que ya llegó al teléfono del cliente. Guarda el campo id (tipo wamid.…) para correlacionar los callbacks de entrega.

200 OKRespuesta
{
  "sent": true,
  "message": "Sent to [email protected]",
  "description": "Message has been sent to the provider",
  "id": "wamid.HBgLMzgwNjM5..."
}
  • sent

    Aceptado para envío — aún no en el teléfono del cliente

  • id

    Guárdalo; los callbacks de entrega y hookInfo se basan en él

Estados de entrega y webhooks →

Errores frecuentes

EstadoRespuesta de la APICausaSolución
200Message was not sent: provide chatId, phone, bsuid, or usernameNingún destinatario que el canal pudiera resolver.Envía un solo destinatario: phone (código de país y número, solo dígitos), chatId (por ejemplo [email protected]) o bsuid.
200Message was not sent: empty bodyFalta el campo body o está vacío.Envía un body no vacío. Es obligatorio en mensajes de texto, botones de respuesta y listas.
401token is requiredLa petición no incluye el token.Agrega el token del canal como parámetro token en la URL: https://api.1msg.io/{channelId}/{method}?token=…

Todos los códigos de error →

Preguntas comunes

Relacionado

Atención al cliente
Aviso de ticket aceptado con WhatsApp API
El escenario envía al cliente una plantilla de WhatsApp personalizada cuando su solicitud de soporte es aceptada para procesamiento.
Atención al cliente
Crear un grupo de WhatsApp por API (groups)
Este escenario usa la API groups con operación create para aprovisionar un grupo de WhatsApp nombrado para difusiones de equipo.
Atención al cliente
Enviar reacción y marcar como leído (WhatsApp API)
Este escenario combina sendReaction y readMessage durante la ventana de atención al cliente de 24 horas.
Atención al cliente
Botones interactivos de WhatsApp API: menú soporte
Este escenario envía un mensaje con botones interactivos con sendButton durante la ventana de atención al cliente de 24 horas.
Atención al cliente
Aviso de ticket resuelto con WhatsApp API
El escenario envía al cliente una plantilla de WhatsApp personalizada cuando su ticket de soporte es resuelto.
Atención al cliente
Enviar tarjeta de contacto con WhatsApp API
Este escenario envía una tarjeta de contacto de WhatsApp con sendContact durante la ventana de servicio al cliente de 24 horas.
Atención al cliente
Recordatorio de respuesta pendiente (WhatsApp API)
El escenario envía al cliente una plantilla de WhatsApp personalizada cuando soporte está bloqueado esperando su respuesta.
Atención al cliente
Aviso de agente asignado con WhatsApp API
El escenario envía al cliente una plantilla de WhatsApp personalizada cuando un ticket de soporte se asigna a un especialista.

Desarrolla para WhatsApp en horas
sin complicaciones de infraestructura