Conecta la API de SendPulse a tu chatbot de WhatsApp sin escribir código
SendPulse acaba de documentar algo que muchos ya usaban a medias y con miedo: la capacidad de hacer peticiones HTTP directamente desde el constructor visual de chatbots, sin tocar una sola línea de código. Para quienes manejan bots de WhatsApp en producción, esto cambia el juego. Ya no necesitas un webhook intermedio en n8n, Make o Zapier solo para consultar una API externa. Puedes hacerlo desde el mismo flujo del bot, condicionarlo, guardar la respuesta en variables y usarla en el siguiente mensaje. Este tutorial te explica exactamente cómo hacerlo, desde la configuración inicial hasta los errores que vas a cometer la primera vez (y cómo no morir en el intento).

Requisitos antes de empezar
- Cuenta activa en SendPulse (plan de pago; el gratuito tiene restricciones en automatizaciones avanzadas)
- Un número de WhatsApp Business conectado a SendPulse (via API oficial de Meta o integración nativa)
- Un endpoint de API externo al que quieras conectarte — puede ser tu propio backend, Airtable, Google Sheets via API, un CRM, lo que sea
- Saber qué método HTTP necesitas: GET, POST, PUT, etc.
- Tener a la mano los headers de autenticación de esa API (Bearer token, API key, lo que corresponda)
Si no tienes el número conectado todavía, ese es paso cero. No hay atajo.
Paso 1: Abre el constructor de flujos de tu bot
En el dashboard de SendPulse, ve a Chatbots → WhatsApp → tu bot → Flujos. Abre el flujo donde quieres insertar la llamada a la API, o crea uno nuevo. El constructor es visual, tipo nodos. Vas a agregar un bloque nuevo.
Paso 2: Agrega el bloque "API Request"
Dentro del flujo, haz clic en el botón "+" para agregar un elemento. Busca la opción "API Request" (puede aparecer como "Solicitud HTTP" dependiendo del idioma de tu cuenta). Este bloque es el corazón del tutorial.
Configura los campos:
- URL: el endpoint completo al que vas a llamar. Ejemplo:
https://api.tuservicio.com/v1/clientes/{{contact.phone}} - Método: GET, POST, PUT o DELETE
- Headers: aquí van tus tokens de autenticación
Ejemplo de header para una API con Bearer token:
Authorization: Bearer TU_TOKEN_AQUI
Content-Type: application/json
- Body (solo para POST/PUT): el JSON que vas a mandar. Puedes usar variables del bot con la sintaxis
{{nombre_variable}}.
Ejemplo de body:
{
"telefono": "{{contact.phone}}",
"nombre": "{{contact.name}}",
"pedido_id": "{{variable.pedido_id}}"
}
Paso 3: Mapea la respuesta a variables del bot
Aquí está lo bueno. SendPulse te permite tomar campos específicos del JSON de respuesta y guardarlos como variables locales del contacto. En la sección "Save response to variable", defines el path del campo en la respuesta y el nombre de la variable donde lo guardas.
Supón que tu API responde esto:
{
"status": "activo",
"saldo": 350.00,
"ultimo_pedido": "2026-07-10"
}
Configuras tres mapeos:
| Path en respuesta | Variable del bot |
|---|---|
status |
cliente_status |
saldo |
cliente_saldo |
ultimo_pedido |
ultimo_pedido |
Después de que el bloque ejecute la llamada, esas variables están disponibles en cualquier mensaje o condición que venga después en el flujo.
Paso 4: Usa las variables en mensajes y condiciones
Ya tienes los datos. Ahora úsalos. En el siguiente bloque de mensaje puedes escribir:
Hola {{contact.name}}, tu cuenta está {{cliente_status}} y tienes un saldo de ${{cliente_saldo}} MXN.
Y si quieres condicionar el flujo según la respuesta, agrega un bloque "Condition" después del API Request:
- Si
cliente_statuses igual aactivo→ rama A (ofrece el servicio) - Si
cliente_statuses igual asuspendido→ rama B (manda aviso de pago)
Esto es lo que convierte un bot de FAQ glorificado en un sistema real de atención.
Paso 5: Manejo de errores — no te lo saltes
SendPulse te permite definir qué pasa si la llamada falla (timeout, 4xx, 5xx). En el bloque de API Request hay una rama de "Error" además de la de éxito. Siempre conéctala a algo. En producción, las APIs fallan. Si dejas la rama de error desconectada, el usuario queda en silencio y tú sin saber qué pasó.
Opciones recomendadas para la rama de error:
- Mandar un mensaje genérico: "Hubo un problema consultando tu información, intenta en unos minutos."
- Guardar en una variable
api_error = truey escalar a un agente humano - Mandar una notificación interna (via otro API Request a tu sistema de alertas o Slack)
Paso 6: Prueba en modo sandbox antes de activar
SendPulse tiene un modo de prueba para flujos. Úsalo. Manda mensajes de prueba desde tu propio número y revisa los logs del bloque API Request. Ahí ves exactamente qué se mandó, qué respondió el servidor y qué se guardó en variables. Si algo falla, el log te dice si fue un error de autenticación (401), recurso no encontrado (404) o tu JSON malformado.
Advertencias de producción que nadie te dice
Timeouts: SendPulse tiene un límite de tiempo para la respuesta de la API externa. Si tu backend tarda más de 10 segundos, el bloque falla. Optimiza tus endpoints o usa una respuesta asíncrona.
Datos sensibles en variables: Las variables de contacto en SendPulse no son un vault seguro. No guardes tokens, contraseñas ni datos de tarjeta ahí. Solo datos operativos.
Rate limits de tu API externa: Si tienes miles de usuarios y todos activan el mismo flujo al mismo tiempo, vas a martillar tu API. Asegúrate de que tu backend aguante o implementa caché.
Variables que no llegan: Si el path del campo en la respuesta JSON está mal escrito (mayúsculas, typo, estructura anidada mal referenciada), la variable queda vacía y el mensaje al usuario sale con {{cliente_saldo}} literal. Vergonzoso y evitable.
Anidamiento: Para campos anidados en el JSON usa notación de punto. Si la respuesta es {"cliente": {"saldo": 350}}, el path es cliente.saldo.
Casos de uso reales donde esto brilla
- Consultar el estatus de un pedido en tu e-commerce directo desde el bot
- Verificar si un número está registrado en tu base de datos antes de responder
- Crear un registro en tu CRM cuando el usuario completa un formulario conversacional
- Consultar disponibilidad de citas en un sistema de agenda
- Validar un código de descuento contra tu backend
Conclusión
La integración de API Request en SendPulse sin código es genuinamente útil si sabes lo que estás haciendo. No reemplaza a un backend bien armado, pero elimina un montón de middleware innecesario para casos de uso comunes. Configura bien tus errores, prueba con datos reales y no dejes variables sensibles flotando. Con eso, tienes un bot de WhatsApp que habla con el mundo exterior sin que tengas que escribir ni un fetch().