¡Guau! Crea tu integración de WhatsApp. Empieza gratis. Regístrate ahora
Evento de HubSpot → acción · caso de uso de la WhatsApp API

Envía un texto de chat de WhatsApp a partir de un evento de HubSpot

El contacto inscrito recibe un texto de WhatsApp cuando HubSpot lanza el evento. Cuando un envío de formulario, un cambio de etapa del negocio o un cambio de propiedad del contacto lo inscribe, tu automatización puede asignar el teléfono y el cuerpo del mensaje y enviar ese texto a través de Whapi.Cloud. Este caso muestra a los integradores cómo implementar ese flujo con la WhatsApp API.

Se activa con un evento de flujo de HubSpot El texto llega al chat personal del contacto
Un portátil con la inscripción de un flujo de HubSpot junto a un teléfono con un chat de WhatsApp que acaba de recibir el texto de seguimiento asignado.
Burbuja decorativa
Caso de uso

Cuándo usar este flujo

HubSpot ya es dueño del evento de inscripción

Usa este flujo cuando un evento de flujo de HubSpot (formulario, etapa del negocio o cambio de propiedad) es la fuente de verdad sobre a quién escribir.

La acción es un único texto en un chat personal

Usa este flujo cuando el contacto inscrito debe recibir un texto de chat normal en un chat directo, no una invitación a un grupo ni una publicación de canal.

El envío debe ocurrir sin copiar y pegar a mano

Usa este flujo cuando ventas u operaciones no deban abrir WhatsApp para copiar un número y pegar un seguimiento después de que HubSpot ya inscribió al contacto.

Un chat de WhatsApp en un teléfono con el texto de seguimiento que llegó tras un evento de flujo de HubSpot para ese contacto.
Experiencia del cliente

El contacto recibe el seguimiento en el chat

Antes de la automatización, HubSpot ya conoce el evento, pero el contacto espera mientras alguien abre WhatsApp y escribe el seguimiento a mano, así que muchas inscripciones nunca reciben un mensaje.

Cuando el flujo termina, el contacto inscrito ve el texto de WhatsApp asignado a ese evento de HubSpot. Los integradores construyen este resultado con la WhatsApp API.

Flujo

De un evento de HubSpot a un solo texto

1

Evento del flujo de HubSpot

HubSpot lanza el evento de inscripción y expone el teléfono del contacto y el cuerpo del mensaje que asignó tu acción. Whapi.Cloud no aloja el flujo de HubSpot.

2

Envía el texto de chat asignado

POST /messages/text

sendMessageText publica ese cuerpo en el teléfono del contacto como texto de mensaje normal.

¿Necesitas seguimiento de entrega? Una respuesta de envío correcta no prueba que el contacto ya tenga el mensaje. Sigue los acks posteriores en los webhooks de entrega. Ver el estado de entrega →

Requisitos previos

Antes de ejecutar el flujo

Conecta el número de WhatsApp que enviará el seguimiento de HubSpot y autentica cada solicitud con el token de API de ese número. La inscripción en HubSpot y la asignación de la acción se quedan en HubSpot o en tu herramienta de automatización.

Opcional — profundiza en este flujo

Implementación de API

La llamada que envía el texto

Tu evento de HubSpot ya indicó el contacto y el mensaje que quieres enviar. Esta llamada entrega ese cuerpo asignado al número de WhatsApp del contacto.

Obtén tu token de API gratis después de registrarte en whapi.cloud y úsalo en el código en lugar de Your_Token de los ejemplos.

Envía el texto de chat asignado

{NS}.API_HUB.STEP_1_PURPOSE

curl --request POST \
     --url https://gate.whapi.cloud/messages/text \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "15052462002",
  "body": "Hello"
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{  \"to\": \"15052462002\",  \"body\": \"Hello\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests

url = "https://gate.whapi.cloud/messages/text"
payload = {"to": "15052462002", "body": "Hello"}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
const response = await fetch("https://gate.whapi.cloud/messages/text", {
  method: "POST",
  headers: {
    accept: "application/json",
    authorization: "Bearer Your_Token",
    "content-type": "application/json"
  },
  body: JSON.stringify({ to: "15052462002", body: "Hello" })
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{  \"to\": \"15052462002\",  \"body\": \"Hello\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .method("POST", body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddJsonBody(new { to = "15052462002", body = "Hello" });
var response = await client.ExecuteAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	body := []byte(`{
  "to": "15052462002",
  "body": "Hello"
}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/messages/text", bytes.NewReader(body))
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Estado de entrega

Cuando el texto sale de pending

Una respuesta de envío correcta no significa que el contacto ya tenga el mensaje. El primer estado visible antes de un webhook es pending. Los cambios de estado posteriores llegan solo en statuses.post y statuses.put. Si el estado se queda en pending y no pasa a sent, delivered o un ack posterior, el mensaje no se entregó: revisa el payload y el permiso de la cuenta para enviar ese tipo.

  • Trata un pending atascado como no entregado, no como un reloj ni como una cola que espera un webhook.

  • Suscríbete a statuses.post y statuses.put cuando necesites confirmar el envío, la entrega o la lectura para la acción de HubSpot.

  • No marques la acción de HubSpot como completada mientras el estado de WhatsApp siga en pending.

Qué leer sobre entrega y webhooks

Contacta a soporte si algo salió mal
Cuando algo falla

Gestiona los fallos en cada paso

Si HubSpot ya lanzó el evento pero el contacto no tiene un teléfono utilizable, el envío se rechaza o el mensaje no se entrega, reintenta o avisa y no marques la acción de HubSpot como completada.

¿HubSpot lo lanzó, pero WhatsApp nunca llegó?

Mantén la inscripción de HubSpot separada de la entrega por WhatsApp. Corrige el teléfono que falta en el payload, reintenta sendMessageText o avisa al equipo; no marques la acción de HubSpot como completada mientras el contacto siga sin texto. Si el envío sigue fallando tras un reintento, contacta con el soporte de Whapi con el id del canal y el id de la solicitud fallida.

Contacta a soporte si algo salió mal

Revisa por paso de API

Estado Qué significa Qué hacer
200 Created
400 Wrong request parameters Corrige los parámetros incorrectos del cuerpo del envío antes de reintentar.
401 Need channel authorization for send message Autoriza el canal para enviar mensajes y reintenta con un token válido.
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient Confirma que se permite enviar a este destinatario y reintenta con un valor de to corregido.
413 Request body too large
429 Too many requests Reduce el ritmo y reintenta más tarde tras demasiadas solicitudes.
500 Internal Error
Preguntas frecuentes

Eventos de HubSpot y texto de WhatsApp

No. HubSpot es dueño de la inscripción y del mapa Evento → Acción. Tu automatización o backend lee el teléfono del contacto y el cuerpo del mensaje de ese evento y luego llama a sendMessageText a través de Whapi.Cloud.
Sí. Muchos integradores capturan el evento de HubSpot en Make o n8n, asignan el teléfono y el cuerpo y luego llaman a la acción de envío de Whapi. Esta página se queda en el paso de envío por WhatsApp; la configuración de Make y n8n está en sus propias guías.
Trátalo como el failure_mode del catálogo: no llames a sendMessageText, avisa o enriquece el contacto y no marques la acción de HubSpot como completada.
No. Ese flujo valida si los números están en WhatsApp antes de un envío masivo o una importación. Este flujo envía un texto de chat asignado tras un evento de flujo de HubSpot para un contacto inscrito.
Funciones compatibles de WhatsApp

Todo lo que necesitas para crear automatizaciones en WhatsApp

Whapi.Cloud te da acceso a un conjunto completo de funciones de WhatsApp — mensajería, multimedia, grupos, canales, webhooks y más. Crea bots, automatizaciones e integraciones sin limitaciones de funciones.

Elegido por desarrolladores

Confiado por más de 3.300 desarrolladores y equipos SaaS

Desarrolladores de todo el mundo confían en Whapi.Cloud para crear automatizaciones, bots, integraciones con CRM, herramientas de mensajería masiva y flujos avanzados de WhatsApp. Nuestra infraestructura procesa millones de solicitudes API con alta estabilidad, y este número crece cada mes.

Icono de característica

5,5K+

canales API activos

Icono de característica

21M+

solicitudes API al mes

“Todo es simple, intuitivo y fácil de usar. La documentación es clara y toda la información está justo donde la necesito. Excelente trabajo.”

Roberto K. / Desarrollador Web

“Conectamos WhatsApp a nuestros flujos en n8n en solo unos minutos. Sin código, sin complicaciones — todo funcionó a la primera.”

Martin P. / Desarrollador

“Whapi.Cloud se convirtió en una parte clave de nuestra comunicación con clientes. Automatizamos actualizaciones de productos, notificaciones de pedidos y mensajes de soporte — sin plantillas ni aprobaciones de Meta.”

Oscar T. / CTO

Burbuja decorativa