Actualizado el 28/10/2026
Para un SaaS B2B, WhatsApp funciona mejor como canal de eventos del producto: cada hito del recorrido (registro, primer uso, integración conectada, fin de la prueba, factura, ticket resuelto) dispara una plantilla corta y útil, en el momento justo, para quien dio su opt-in. La mayoría de estos mensajes son de utilidad, mucho más baratos que el marketing; en Brasil, por ejemplo, utilidad cuesta R$ 0,0350 por mensaje entregado, frente a R$ 0,3217 de marketing. Lo que separa las dos categorías es el contenido: informar al usuario sobre su cuenta es utilidad; intentar vender un upgrade o una renovación es marketing.
Esta guía recorre el camino del registro al NPS, con ejemplos de eventos y plantillas, la categoría de cada una, el costo y el código para conectar el webhook de tu producto con la API.
El recorrido en una tabla
| Etapa | Evento del producto | Mensaje | Categoría probable |
|---|---|---|---|
| Registro | user.signed_up con opt-in | Confirmación y primer paso | Utilidad |
| Activación | setup.step_pending tras 24 h | Paso que falta para terminar la configuración | Utilidad |
| Activación | integration.connected | Confirmación de que la integración está activa | Utilidad |
| Uso | report.ready | Reporte disponible, con enlace | Utilidad |
| Fin de la prueba | trial.ending | Fecha de término y qué pasa con los datos | Utilidad si solo informa |
| Conversión | trial.ending + oferta | Invitación a suscribirse, con descuento | Marketing |
| Cobro | invoice.created, payment.failed | Factura emitida, tarjeta rechazada | Utilidad |
| Soporte | ticket.resolved | Encuesta sobre esa atención | Utilidad (si está ligada al ticket) |
| Relación | Trimestral | NPS general del producto | Marketing |
La columna de la derecha sale de la documentación de categorización de plantillas: utilidad debe ser no promocional y específica para el usuario o esencial para él. Las actualizaciones de cuenta, los pasos de configuración y los recordatorios de pago están entre los ejemplos oficiales de utilidad. Los intentos de renovación y las encuestas genéricas son marketing. Meta decide por el contenido, no por la categoría que elijas, y puede recategorizar plantillas aprobadas. La guía cómo clasifica Meta tu plantilla explica los criterios.
1. Registro: aquí nace el opt-in
Sin opt-in, nada de lo demás ocurre. El lugar natural es el formulario de registro: campo de celular y una casilla sin marcar, con el nombre de la empresa y la finalidad.
«Quiero recibir avisos de mi cuenta de Ejemplo por WhatsApp (configuración, facturas y soporte). Puedo darme de baja cuando quiera.»
Si también quieres enviar novedades y ofertas, pídelo en otra casilla. Meta recomienda opt-ins por categoría de mensaje, y eso protege el canal transaccional. Consulta cómo armar una lista opt-in.
¿Quieres probar mientras lees? Crea tu cuenta en Vectalk y envía el primer mensaje por la API oficial. Crear cuenta gratis →
2. Bienvenida con un solo próximo paso
El primer mensaje no es un tour de funciones. Confirma el consentimiento y señala un paso:
«Hola {{1}}, tu cuenta en Ejemplo está lista. Para empezar, conecta tu {{2}}: toma unos 2 minutos. Aquí recibirás los avisos de tu cuenta.»
Agrega un botón de URL a la pantalla de configuración. Los mensajes de bienvenida que enumeran funciones o piden referidos tienden a volverse marketing.
3. Activación: los eventos del producto disparan utilidad
La activación es el momento en que el usuario llega al primer valor real. En SaaS B2B suele ser una integración conectada, la primera importación de datos o el primer colega invitado. WhatsApp entra en dos tipos de evento:
- Paso pendiente. El usuario empezó y se detuvo. Meta usa como ejemplo de utilidad justamente un aviso de configuración: «para terminar de configurar tu perfil, sube una foto». En SaaS: «{{1}}, falta conectar tu cuenta de {{2}} para generar tu primer reporte.»
- Hito alcanzado. «Tu integración con {{1}} está activa. Los datos de los últimos 30 días ya están en tu panel.»
Dos reglas prácticas:
- Disparo por comportamiento, no por calendario. Envía el aviso de paso pendiente solo si el paso sigue pendiente; cancélalo si el usuario termina antes.
- Tope por usuario. Define en tu sistema un máximo de avisos de activación por semana. Demasiados mensajes generan bloqueos, y los bloqueos bajan la calidad del número.
4. Fin de la prueba: separa el aviso de la oferta
Aquí está el error más común. La documentación de Meta dice que utilidad no debe intentar asegurar renovaciones, y da como ejemplo de marketing: «¡Tu suscripción vence el {{date}}! Renueva hoy y ahorra {{discount}}.»
Por eso, usa dos plantillas:
| Plantilla | Texto | Categoría |
|---|---|---|
fin_prueba_aviso | «Tu periodo de prueba de Ejemplo termina el {{1}}. Después de esa fecha, la cuenta queda en modo lectura y tus datos se conservan {{2}} días.» | Utilidad, si se aprueba así |
fin_prueba_oferta | «Tu prueba termina el {{1}}. Suscríbete antes y obtén {{2}} de descuento en el primer mes.» | Marketing |
El aviso solo informa el estado de la cuenta. La oferta intenta convertir y es marketing, con el costo de marketing. Si Meta clasifica el aviso como marketing en la revisión, acéptalo y ajusta el texto en lugar de forzarlo.
5. Cobro a tus propios clientes
El recordatorio de factura y el aviso de pago rechazado a tus propios clientes son utilidad. El ejemplo oficial es «Recordatorio: el pago mensual de {{service}} se cobrará el {{date}}». Ofertas o upsell en el mismo texto lo convierten en marketing.
Eventos típicos de un SaaS:
invoice.created: factura emitida, con monto, vencimiento y enlace de pago (en Brasil, muchas veces boleto bancario o PIX, el pago instantáneo local).payment.failed: tarjeta rechazada, con enlace para actualizarla.subscription.suspended: cuenta suspendida por falta de pago, con los pasos a seguir.
Cobrar deudas de terceros está prohibido por la Política de Mensajes de WhatsApp Business. Un SaaS que cobra su propia suscripción le está cobrando a su propio cliente. El artículo cobranza por WhatsApp muestra un calendario completo.
6. NPS y feedback
Meta dice que una encuesta genérica o un pedido de opinión general no se aprueba como utilidad. Una encuesta sobre una interacción específica, como un ticket de soporte, sí puede serlo.
ticket.resolved→ «Tu ticket #{{1}} fue cerrado. ¿Cómo fue la atención?» con botones de calificación. Utilidad.- NPS trimestral del producto → marketing.
Detalles en NPS y posventa por WhatsApp.
Arquitectura: del webhook del producto a la plantilla
El diseño más simple tiene tres piezas:
- Tu producto publica eventos (
user.signed_up,trial.ending,invoice.created) en un webhook interno o en una cola. - Un servicio de notificaciones decide si envía: revisa opt-in, horario, tope por usuario y si el evento sigue vigente.
- El servicio llama a la API y guarda el
wamiddevuelto para cruzarlo con los estados de entrega.
Ejemplo en Node.js (Express) que recibe el evento del producto y envía la plantilla con Vectalk:
import express from 'express';
const app = express();
app.use(express.json());
const PLANTILLAS = {
'setup.step_pending': (e) => ({ name: 'paso_pendiente', params: [e.user.first_name, e.step_label] }),
'trial.ending': (e) => ({ name: 'fin_prueba_aviso', params: [e.trial_ends_on, '30'] }),
'invoice.created': (e) => ({ name: 'factura_emitida', params: [e.user.first_name, e.amount, e.due_date] }),
};
app.post('/eventos-producto', async (req, res) => {
const evento = req.body;
res.sendStatus(202); // responde rápido; el envío sigue en segundo plano
const armar = PLANTILLAS[evento.type];
if (!armar || !evento.user.whatsapp_optin) return;
if (await yaEnviado(evento.id)) return; // idempotencia: un evento nunca genera dos mensajes
const { name, params } = armar(evento);
const r = await fetch('https://apis.vectalk.com.br/api/messages', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.VECTALK_TOKEN}`, // token de instancia
'Content-Type': 'application/json',
},
body: JSON.stringify({
messaging_product: 'whatsapp',
to: evento.user.phone,
type: 'template',
template: {
name,
language: { code: 'es_MX' },
components: [{ type: 'body', parameters: params.map((text) => ({ type: 'text', text })) }],
},
}),
});
const cuerpo = await r.json();
await registrarEnvio(evento.id, cuerpo.messages?.[0]?.id ?? null, r.status);
});
app.listen(3000);
yaEnviado y registrarEnvio son funciones de tu base de datos. Después, el webhook de WhatsApp trae los estados (delivered, read, failed) y las respuestas del usuario, incluidos los toques en botones. Para armar el lado que recibe, consulta el bot de WhatsApp con Node.js en la API oficial; si integras directo con Meta, valida la firma del webhook.
Cuánto cuesta
Con las tarifas de Meta para destinatarios en Brasil desde el 1/10/2026 (en reales), un ejemplo hipotético de un mes:
| Mensaje | Volumen | Tarifa | Costo |
|---|---|---|---|
| Bienvenida y activación (utilidad) | 3.000 | R$ 0,0350 | R$ 105,00 |
| Avisos de factura y pago (utilidad) | 2.000 | R$ 0,0350 | R$ 70,00 |
| Oferta de fin de prueba (marketing) | 500 | R$ 0,3217 | R$ 160,85 |
| Respuestas de soporte dentro de la ventana (servicio) | 900 | franquicia | R$ 0,00 |
Los mensajes de servicio son gratuitos hasta 1.000 al mes por número; desde el 1.001, cuestan R$ 0,0350 en Brasil. Y, desde octubre de 2026, las plantillas de utilidad enviadas dentro de la ventana de atención también se cobran. Para otros países, usa la página de precios de Meta. Consulta mensajes de utilidad dentro de la ventana.
Cómo medir el efecto en activación y churn
Guarda el wamid de cada envío junto al evento que lo generó. Así comparas grupos: ¿en cuánto tiempo terminaron la configuración quienes recibieron el aviso de paso pendiente, frente a quienes no? Una prueba simple es retener el envío para una fracción de los usuarios durante algunas semanas. Métricas útiles:
- tasa de finalización del paso después del aviso;
- tiempo hasta la activación;
- pagos recuperados después de
payment.failed; - tasa de bloqueo y de baja por plantilla.
Cómo hacerlo con Vectalk
Vectalk es un proxy de la WhatsApp Cloud API oficial de Meta: el JSON es el mismo de Meta, y le pagas a Vectalk, que le paga a Meta, sin tarjeta registrada en Meta. Para un SaaS:
- crea las plantillas con
POST /api/templatesusando el token de la instancia; - envía con
POST /api/messages; - registra la URL de tu servicio de notificaciones con
POST /api/webhookspara recibir estados y respuestas.
La guía rápida muestra el primer envío, y el registro está en apps.vectalk.com.br/register. Si todavía estás conociendo la API, empieza por nuestra guía de la WhatsApp Cloud API. Para más textos listos, consulta los modelos de plantilla por sector.
Preguntas frecuentes
¿El aviso de fin de prueba es utilidad o marketing?
Depende del texto. Si solo informa la fecha y qué pasa con la cuenta, puede aprobarse como utilidad. Si invita a suscribirse, ofrece descuento o intenta asegurar la renovación, es marketing.
¿Puedo enviar consejos de uso del producto como utilidad?
Los consejos generales sobre funciones tienden a ser marketing. Un aviso sobre un paso pendiente en la configuración de la cuenta de ese usuario es utilidad.
¿Necesito opt-in si el usuario ya es cliente?
Sí. La política exige permiso para recibir mensajes de la empresa. Pídelo en el registro o en la primera conversación.
¿WhatsApp reemplaza al correo en el onboarding?
No tiene por qué. Usa WhatsApp para avisos urgentes o de acción rápida y deja el correo para contenido largo.
Fuentes oficiales consultadas el 28/10/2026: Categorización de plantillas, Get opt-in for WhatsApp, Política de Mensajes de WhatsApp Business (actualizada el 23/09/2026), Precios, Documentación de Vectalk.
Pon a funcionar el WhatsApp oficial de tu empresa
Crea tu cuenta, conecta tu número a la API oficial (puedes mantener la app con coexistencia) y empieza a atender y enviar mensajes.
