Configura una automatización de WhatsApp en WACRM y lee su registro de ejecuciones
La pantalla de Automatizaciones de WACRM Workspace te deja convertir un pedido, un pedido cumplido, un carrito abandonado, un mensaje entrante o un recordatorio de reserva en una acción: etiqueta, ticket, acción de agente propuesta, o envío de plantilla. Este tutorial recorre la pantalla real, el registro de ejecuciones y las mismas llamadas por la API.
Por Huy Nguyen (David), Fundador y CEO de Netbase JSC Actualizado el
Lo que aprenderás
- Qué necesitas antes de empezar
- Crea una automatización en Workspace
- Activa o desactiva una regla
- Lee el registro de ejecuciones
- Lo mismo por la API
- Qué funciona hoy y qué todavía no
Una automatización en WACRM es una regla: cuando algo pasa — un pedido nuevo, un pedido marcado como completado, un carrito abandonado, un mensaje entrante o un recordatorio de reserva — ejecuta una o más acciones sobre el contacto del que trata ese evento. Este tutorial recorre la pantalla real de Automatizaciones, los 5 disparadores y las 4 acciones que existen hoy, cómo activar o desactivar una regla, cómo leer su registro de ejecuciones, y lo mismo por la API.
Qué necesitas antes de empezar
- Una cuenta de WACRM Workspace con al menos un proyecto.
- Para los disparadores Pedido nuevo, Pedido completado y Carrito abandonado: una tienda conectada — se disparan desde actividad real de la tienda, no desde una demo. Si tu plan incluye una conexión de tienda no está detallado más allá de “Store connector (early access)” en el plan Advanced; revisa tu plan en Settings si no estás seguro.
- Para la acción Enviar una plantilla: al menos una plantilla aprobada, porque la acción solo deja elegir entre plantillas aprobadas.
- Solo para los pasos de la API:
curl(o cualquier cliente HTTP que pueda poner un encabezado), y una clave de API desde Developer / API & MCP.
Crea una automatización en Workspace
- Abre Automatizaciones en Workspace.
- Haz clic en Nueva automatización.
- Completa un Nombre y elige un Disparador. Si eliges Recordatorio de reserva, aparece un campo Momento del recordatorio — elige 24 horas antes o 2 horas antes; la regla solo corre para ese momento, nunca para el otro.
- En Acciones, haz clic en Agregar acción por cada acción que quieras que esta regla ejecute cuando se dispare. Elige un Tipo de acción y completa los campos de ese tipo (ve la tabla abajo). Dejar Acciones vacío igual guarda la regla — se dispara y queda registrada en el registro de ejecuciones, solo que no hace nada.
- Haz clic en Crear automatización.
Los 5 disparadores
| Disparador (etiqueta en Workspace) | Se dispara cuando |
|---|---|
| Pedido nuevo | Se crea un pedido nuevo |
| Pedido completado | El estado de un pedido pasa a un estado enviado/cumplido |
| Carrito abandonado | Llega una señal de carrito abandonado para un carrito |
| Mensaje entrante | Llega un mensaje entrante nuevo de WhatsApp o SMS |
| Recordatorio de reserva | Una reserva llega a su ventana de recordatorio de 24 o 2 horas (elige cuál en Momento del recordatorio) |
Pedido nuevo y Pedido completado suelen respaldar confirmaciones de pedido y envíos de actualización de estado, el tipo de mensaje que WhatsApp clasifica como conversación de Utilidad, no de Marketing.
Las 4 acciones
| Tipo de acción (etiqueta en Workspace) | Campos | Qué hace |
|---|---|---|
| Agregar una etiqueta | Etiqueta — elige una etiqueta existente | Adjunta esa etiqueta al contacto del evento |
| Crear un ticket | Asunto del ticket | Abre un ticket de soporte sobre el contacto del evento |
| Proponer una acción del agente | Nombre de la herramienta, Payload (objeto JSON) | Agrega una fila a la cola de aprobación de acciones del agente — siempre necesita aprobación, nunca se aprueba sola, incluso con el auto-envío activado |
| Enviar una plantilla | Plantilla aprobada — elige entre tus plantillas aprobadas, Variables (JSON, opcional) | Envía esa plantilla al contacto del evento por el mismo camino que ya usan tus otros envíos de plantillas |
Una acción sin contacto con el que trabajar (ningún contacto resuelto desde el evento disparador) se omite, no falla — Agregar una etiqueta y Crear un ticket necesitan uno. Proponer una acción del agente también se omite mientras la IA del workspace está en pausa. Enviar una plantilla revisa contacto, pausa de IA, consentimiento y el estado de aprobación de la plantilla, en ese orden, antes de enviar algo — el mismo estado Approved que exige el propio flujo de creación de plantillas de Meta en WhatsApp Manager antes de poder usar una plantilla. Ve “Lee el registro de ejecuciones” abajo para ver cómo se ve cada caso cuando una regla no envía nada.
Activa o desactiva una regla
Cada fila de la lista de automatizaciones tiene un interruptor Activada, mostrado como Activado o Desactivado. Cambiarlo guarda de inmediato; si falla, el interruptor vuelve a su estado anterior y aparece un error en línea — nada cambia en silencio. Desactivar una regla hace que deje de dispararse con eventos nuevos; no toca las ejecuciones que ya registró.
Para eliminar una regla por completo, usa la acción Eliminar de la fila. Un cuadro de confirmación te pide confirmarlo: “<nombre>” se eliminará de forma permanente. Esta acción no se puede deshacer.
Lee el registro de ejecuciones
Cada fila tiene una columna Últimas ejecuciones con un interruptor Ver últimas ejecuciones. Abrirlo (solo cuando haces clic — la tabla nunca obtiene las ejecuciones de todas las reglas solo por cargar la página) trae las 5 ejecuciones más recientes de la regla y muestra el estado de cada una:
| Estado | Qué significa |
|---|---|
| Pendiente | Reclamada pero sin terminar todavía (o, en casos raros, una ejecución cuyo proceso murió antes de terminar — ve abajo) |
| OK | Todas las acciones corrieron |
| Omitida | Una acción no corrió por un motivo conocido (sin contacto, IA en pausa, sin consentimiento, etc.) |
| Fallida | Una acción lanzó un error inesperado, o el envío mismo de una acción Enviar una plantilla falló |
Una ejecución Omitida o Fallida también muestra un motivo, en lenguaje claro: Sin contacto en este evento, Contacto no encontrado, Etiqueta no encontrada, La IA está en pausa para este workspace, El contacto no ha dado su consentimiento, Plantilla no encontrada, Plantilla no aprobada, Falló el envío, Tipo de acción desconocido, o Error al ejecutar esta acción. Una acción Enviar una plantilla cuyo envío falla por cualquier motivo — no solo un consentimiento denegado — siempre se registra Fallida con motivo Falló el envío, nunca Omitida, así que un problema real de entrega nunca se muestra igual que una omisión esperada por “el contacto no ha dado su consentimiento”.
Una ejecución que se interrumpe
Una ejecución se reclama en el momento en que se dispara y se finaliza una vez que todas las acciones corrieron. Si
el proceso muere en el medio — una caída, un reinicio — la ejecución queda Pendiente y no se reintenta de
inmediato. Una revisión programada (hoy, cada 15 minutos) busca ejecuciones pendientes de más de 15 minutos y las
reanuda desde donde quedaron: ninguna acción ya registrada en esa ejecución se vuelve a correr, así que una
plantilla que ya se envió nunca se envía una segunda vez — la misma garantía de reintento
idempotente en la que se apoya una ejecución
reanudada. Una ejecución recibe hasta 3 intentos en total; una vez
agotados se marca Fallida, con un motivo que el registro de ejecuciones todavía no tiene traducido — verás el
valor sin traducir requeue_exhausted en vez de una frase.
Lo mismo por la API
Las automatizaciones también son un recurso de la Core API, bajo /v1/crm-projects/{project}/automations. Las
lecturas usan el scope agent:propose, las escrituras usan agent:approve — marca los dos en Restrict what this
key can do (advanced) → WhatsApp CRM scopes al crear una clave en Developer / API & MCP (agent:approve
necesita una Secret key).
| Método | Ruta | Scope |
|---|---|---|
| GET | /v1/crm-projects/{project}/automations | agent:propose |
| POST | /v1/crm-projects/{project}/automations | agent:approve |
| GET | /v1/crm-projects/{project}/automations/{automation} | agent:propose |
| PATCH | /v1/crm-projects/{project}/automations/{automation} | agent:approve |
| DELETE | /v1/crm-projects/{project}/automations/{automation} | agent:approve |
| GET | /v1/crm-projects/{project}/automations/{automation}/runs | agent:propose |
Crea una regla con una acción
curl -s -X POST "https://api.wacrm.ai/v1/crm-projects/your-project-uuid/automations" \
-H "Authorization: Bearer sk_live_your_scoped_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Etiquetar pedidos nuevos",
"trigger": "order_created",
"enabled": true,
"config": { "actions": [{ "type": "add_label", "label_id": "your-label-uuid" }] }
}' {
"data": {
"id": "0e2b1c9a-...-automation-uuid",
"name": "Etiquetar pedidos nuevos",
"trigger": "order_created",
"config": { "actions": [{ "type": "add_label", "label_id": "your-label-uuid" }] },
"enabled": true,
"created_at": "2026-11-08T09:00:00+00:00",
"updated_at": "2026-11-08T09:00:00+00:00"
}
} Un trigger no reconocido responde 422 invalid_trigger; un config que no cumple lo que ese disparador (o ese
tipo de acción) requiere responde 422 invalid_config — por ejemplo, booking_reminder sin un kind de 24h/2h,
o una acción add_label cuyo label_id no es una etiqueta de tu propio proyecto.
Lista las ejecuciones de una regla
curl -s "https://api.wacrm.ai/v1/crm-projects/your-project-uuid/automations/your-automation-uuid/runs?limit=5" \
-H "Authorization: Bearer sk_live_your_scoped_key" {
"data": [
{ "event_key": "order:9f2a...", "status": "ok", "reason": null },
{ "event_key": "order:7c10...", "status": "skipped", "reason": "no_contact" }
]
} Las más nuevas primero, con los mismos campos que lee el propio panel de Últimas ejecuciones, limit de 1 a 100
(por defecto 20). Un id de proyecto que tu clave no posee, o un id de automatización de otro proyecto, ambos
responden 404 not_found — nunca 403, así que no puedes distinguir los dos casos desde la respuesta. Una clave
sin el scope necesario responde 403 insufficient_scope.
Qué funciona hoy y qué todavía no
| Lo que quieres hacer | ¿Funciona hoy? |
|---|---|
| Crear una regla con un disparador y hasta 4 tipos de acción | Sí — Automatizaciones → Nueva automatización |
| Construir una regla con un constructor visual de flujos | Todavía no — la página de precios de Pro lista “Flow builder (early access)”; Workspace solo tiene el cuadro Nueva automatización |
| Disparar Pedido nuevo / Pedido completado / Carrito abandonado | Necesita una tienda conectada (Store connector es early access en el plan Advanced) |
| Enviar una plantilla de WhatsApp desde una regla | Sí, pero solo una plantilla aprobada a un contacto con consentimiento — Workspace solo deja elegir una plantilla aprobada, y Core igual revisa el consentimiento al momento de enviar |
| Ver por qué un disparo no hizo nada | Sí — abre Últimas ejecuciones en la regla para ver el estado y motivo de cada una |
| Editar las acciones de una regla ya guardada | No desde la pantalla — solo el interruptor Activada se puede editar ahí. PATCH /v1/crm-projects/{project}/automations/{automation} con un nuevo config.actions también funciona, o elimínala y créala de nuevo |
| Recuperarse automáticamente de una ejecución que se interrumpió a la mitad | Sí — una ejecución pendiente atascada se reanuda en la siguiente revisión programada, hasta 3 intentos |
| Llamar a las mismas acciones por la API | Sí — crea una clave con agent:propose/agent:approve |
¿Listo para ponerlo en práctica? Solicita acceso anticipado para tener un Workspace, o deja que el equipo de WACRM configure tu proyecto con Quick Setup.
Habla con un experto
Te responde una persona del equipo WACRM.
Consulta a David sobre «Automatizaciones de WhatsApp: Disparadores».
Responde en un día hábil, normalmente antes por WhatsApp.
Preguntas frecuentes
¿Hay un constructor visual de flujos para las automatizaciones?
Todavía no. La página de precios de WACRM lista "Flow builder (early access)" como una característica del plan Pro, pero la pantalla de Automatizaciones en Workspace hoy solo tiene el cuadro Nueva automatización — un nombre, un disparador y una lista plana de acciones. No hay ningún lienzo de arrastrar y soltar para construir flujos de varios pasos.
¿Los disparadores de pedido y carrito funcionan sin una tienda conectada?
No. Pedido nuevo, Pedido completado y Carrito abandonado se disparan desde la actividad real de pedidos y carritos de tu tienda, así que primero necesitan una tienda conectada. La página de precios de WACRM lista "Store connector (early access)" y "Order automation (early access)" en el plan Advanced — revisa tu plan en Settings si no estás seguro de si el tuyo lo incluye.
¿Por qué una acción Enviar una plantilla podría no enviar nunca nada?
El motor revisa varias cosas antes de enviar, en orden, y registra la que lo detiene como el motivo de la ejecución: sin contacto en el evento disparador, la IA del workspace en pausa, el contacto sin consentimiento, la plantilla no encontrada, o la plantilla no aprobada. Solo una regla cuyo contacto tenga consentimiento y cuya plantilla esté aprobada llega a enviar algo.
¿Qué pasa con una ejecución que se interrumpe a la mitad?
No se pierde. Una ejecución reclamada que nunca termina queda pendiente, y una revisión programada la reanuda más tarde sin volver a correr las acciones que ya completó. Después de fallos repetidos se marca como fallida en vez de reintentarse para siempre — ve "Una ejecución que se interrumpe" más abajo para los números exactos.
¿Puedo cambiar las acciones de una regla que ya guardé?
No desde la pantalla hoy — lo único que puedes cambiar ahí después de crearla es el interruptor Activada. El nombre, el disparador y las acciones cambian por la API: PATCH /v1/crm-projects/{project}/automations/{automation} acepta cualquier subconjunto de name, trigger, config (que contiene el arreglo de acciones) y enabled, así que puedes editar config.actions directamente sin eliminar y recrear la regla.
¿Quieres que lo configuremos por ti?
Quick Setup conecta tu número con coexistencia en 48 horas, hecho por una persona.