Acciones del constructor
Después del disparador, el flujo es una secuencia de acciones. Están en la biblioteca que se abre al hacer clic en el + de un nodo del canvas, separadas en pestañas. Al hacer clic en una acción ya colocada se abre su configuración en el lateral.
Solo aparecen las acciones de las integraciones activadas en Joinotify → Configuraciones → Integraciones — la de Telegram, por ejemplo, solo existe con la integración de Telegram activada.
Mensajes de WhatsApp
Toda acción de WhatsApp pide el remitente (uno de los números de la cuenta) y el
destinatario, que acepta un teléfono o una variable como {{ wc_billing_phone }}.
| Acción | Qué envía |
|---|---|
| WhatsApp: Mensaje de texto | Texto con formato, emoji y variables |
| WhatsApp: Mensaje de medios | Imagen, vídeo, audio o documento, con leyenda |
| WhatsApp: Mensaje de plantilla | Una plantilla aprobada por Meta — el único tipo que inicia una conversación |
| WhatsApp: Botones de respuesta | Texto con hasta tres botones de respuesta rápida |
| WhatsApp: Lista de opciones | Un menú con secciones y opciones |
| WhatsApp: Botón de enlace | Texto con un botón que abre una URL |
| WhatsApp: Ubicación | Un punto en el mapa, con nombre y dirección |
| WhatsApp: Tarjeta de contacto | Una tarjeta de contacto que el cliente puede guardar |
| WhatsApp: Sticker | Un sticker |
| WhatsApp: Reacción | Un emoji en respuesta a un mensaje |
La ventana de 24 horas
El texto libre, la multimedia y los mensajes interactivos solo llegan a quien escribió al número en las últimas 24 horas. Fuera de eso, solo se entrega el Mensaje de plantilla. El constructor avisa en los pasos que dependen de la ventana; y la condición Ventana de 24 horas de WhatsApp deja que el flujo elija solo. El concepto completo está en La ventana de 24 horas.
Mensaje de plantilla
La acción lista las plantillas aprobadas de la cuenta, con idioma, categoría y una vista previa, y pide un valor para cada variable de la plantilla — texto fijo o variable del disparador. Desde la 2.6.0 cubre todo lo que Meta ofrece en una plantilla:
- Encabezado de imagen, vídeo o documento — el archivo viene de un enlace, de una variable o de la biblioteca de medios. La acción no se guarda sin él, porque Meta rechaza el envío. Un documento sale con el nombre del archivo.
- Encabezado de ubicación — latitud y longitud, con nombre y dirección opcionales.
- Botón de URL — la variable completa solo lo que va después de la dirección fija del botón.
Para un enlace del propio sitio, usa el modificador
remove_home_urlo{{ wc_first_product_review_path }}— consulta Modificadores. - Botón de copiar código de una plantilla de marketing, rellenado con el cupón indicado.
- Botón de código de una plantilla de autenticación, que repite el código del cuerpo cuando queda vacío.
- Oferta por tiempo limitado — la caducidad acepta una fecha, un timestamp o un tiempo
relativo como
+2 days. - Carrusel — cada tarjeta pide su propio archivo de encabezado, variables y botones.
Los valores de las variables salen en una sola línea, como exige WhatsApp: los saltos de línea se convierten en comas y las etiquetas HTML se quitan, para que una dirección de varias líneas o un precio de WooCommerce no hagan que Meta rechace la plantilla.
Control del flujo
| Acción | Qué hace |
|---|---|
| Tiempo de espera | Pausa el flujo durante un intervalo (de segundos a años) o hasta una fecha y hora fijas |
| Condición | Divide el flujo en dos caminos, verdadero y falso |
| Bucle | Repite las acciones del cuerpo una vez por cada elemento de una colección |
| Detener automatización | Termina el flujo en ese punto |
Las esperas dependen de WP-Cron — consulta Requisitos mínimos.
Condición
Las condiciones disponibles dependen del disparador: estado y total del pedido, productos comprados, método de pago y de envío, función y metadatos del usuario, campos del formulario y lo que más registre el disparador.
Ventana de 24 horas de WhatsApp
Ofrecida en todos los disparadores desde la 2.6.0. Pregunta a la plataforma, en el momento en que el flujo pasa por ella, si la ventana de un destinatario está abierta, cerrada o desconocida (cuando no se pudo preguntar). Recibe el destinatario — teléfono o variable — y el número remitente cuya ventana se lee.
El uso típico es mandar texto libre en el camino "abierta" y una plantilla aprobada en el otro:
graph LR;
A["Pedido completado"] --> B{"¿Ventana abierta?"};
B -- "sí" --> C["Mensaje de texto"];
B -- "no" --> D["Mensaje de plantilla"];
Bucle
Recorre una colección — los archivos digitales del pedido, los artículos comprados — y ejecuta las
acciones del cuerpo una vez por elemento, con las variables {{ loop_* }} descritas en
Variables de texto.
Integraciones con otros sistemas
| Acción | Qué hace |
|---|---|
| Enviar webhook | Envía los datos del disparador, o un JSON tuyo, a una URL — n8n, Zapier, Make, un ERP |
| Solicitud HTTP | Llama a cualquier API pública y guarda la respuesta para las acciones siguientes |
Las dos están descritas en Webhooks y solicitudes HTTP.
Contactos
En la pestaña Contactos de la biblioteca, desde la 2.5.0:
| Acción | Qué hace |
|---|---|
| Guardar contacto | Crea o actualiza el contacto en tu cuenta de Joinotify: nombre, correo, etiquetas, campos y consentimiento |
| Etiquetar contacto | Añade y quita etiquetas de un contacto |
Exigen la sincronización con Joinotify Cloud activada y pasan por su cola, así que el flujo nunca espera a Joinotify y un fallo se vuelve a intentar. Ninguna de las dos inicia un flujo de Joinotify Cloud.
El contacto solo es el cliente o el usuario del disparador cuando el teléfono o el correo escrito en la acción es el suyo; cualquier otro se convierte en un lead aparte. El consentimiento de marketing solo debe marcarse cuando el disparador significa que la persona aceptó — un formulario con la casilla de aceptación, por ejemplo —, y sale con la evidencia de dónde y cuándo.
WooCommerce
| Acción | Qué hace |
|---|---|
| Cupón de descuento | Crea un cupón en WooCommerce, cuyos datos quedan en las variables {{ joinotify_coupon_* }} |
Inteligencia artificial
| Acción | Qué hace |
|---|---|
| WhatsApp: mensaje de IA | Escribe el mensaje con el modelo de IA a partir de una instrucción tuya |
| IA: Variable inteligente | Genera un texto que las acciones siguientes usan como {{ ai:NOMBRE }} |
La IA pasa por el WordPress AI Client: el proveedor y las credenciales se configuran una vez en Ajustes → Conectores, en el propio WordPress, y Joinotify usa lo que haya ahí. El plugin no guarda claves de OpenAI ni de Anthropic desde la 2.3.1.
El constructor también genera un flujo entero a partir de una descripción en texto. Ese generador nunca usa la acción Solicitud HTTP.
Otros canales
| Acción | Qué envía |
|---|---|
| Telegram: mensaje | Un mensaje de texto por un bot de Telegram |
| Enviar correo electrónico (Resend) | Un correo con adjuntos a través de Resend |
Los dos exigen la integración activada y la credencial del servicio en Configuraciones → Integraciones.
Acciones retiradas
| Acción | Retirada en | Por qué |
|---|---|---|
| Acciones de grupo | 2.3.0 | La API oficial de WhatsApp no envía a grupos |
| Snippet PHP | 2.3.1 | Dependía de eval(). Los pasos ya guardados con ella dejan de ejecutarse |
Probar antes de activar
El constructor envía el flujo a un número de prueba, configurado en el propio constructor. Cuando WhatsApp rechaza el envío, el aviso muestra el motivo que dio Meta — ventana cerrada, plantilla rechazada, número inválido — en lugar de un error genérico.
Tu propia acción
Cualquier plugin puede registrar una acción, con su formulario de configuración, solo con PHP — consulta Recursos para desarrolladores.