Saltar a contenido

Eventos

Los eventos en Workflow permiten reaccionar a diferentes tipos de mensajes o acciones, como texto, imágenes, notas de voz, documentos, ubicaciones, órdenes y más. En esta guía, exploraremos cómo configurarlos y usarlos.

Configuración Básica de Eventos

Los eventos se pueden configurar para escuchar mensajes específicos según su tipo o contenido. A continuación, se describen los tipos de eventos más comunes:

Ejemplos de Configuración de Eventos

import { Workflow } from "@elimeleth/vct-flow";

/*
1. Evento `any`:
   - Captura cualquier mensaje o acción.
   - Tiene la **mayor prioridad** y siempre se dispara primero.
*/
const any = new Workflow("any")
    .addAction("Soy el evento any");

/*
2. Evento `image`:
   - Captura imágenes y videos enviados por el usuario.
*/
const image = new Workflow("image")
    .addAction("Soy el evento image");

/*
3. Evento `voice`:
   - Captura notas de voz y mensajes de audio.
*/
const voice = new Workflow("voice")
    .addAction("Soy el evento voice");

/*
4. Evento `document`:
   - Captura documentos enviados como PDF, Word, etc.
*/
const document = new Workflow("document")
    .addAction("Soy el evento document");

/*
5. Evento `location`:
   - Captura ubicaciones enviadas por el usuario.
*/
const location = new Workflow("location")
    .addAction("Soy el evento location");

/*
6. Evento `order`:
   - Captura órdenes realizadas a través del carrito de compras en WhatsApp.
*/
const order = new Workflow("order")
    .addAction("Soy el evento order");

/*
7. Evento `template`:
   - Captura plantillas diseñadas por Meta.
*/
const template = new Workflow("template")
    .addAction("Soy el evento template");

Prioridad de los Eventos

  • El evento any siempre tiene prioridad máxima , lo que significa que se ejecutará independientemente del tipo de mensaje recibido.
  • Para otros eventos (image, voice, etc.), se dispararán únicamente si el mensaje recibido coincide con su tipo específico.

Configuración Avanzada: Eventos Personalizados

La API de Workflow permite definir eventos personalizados mediante:

  • Cadenas de texto (string) : Para capturar mensajes específicos.
  • Expresiones regulares (RegExp) : Para definir patrones avanzados.
  • Eventos especificos : (image, voice, document, location...)
  • Listas (array) : Para combinar múltiples criterios en un solo evento.

Ejemplos de Personalización

/*
1. Captura una palabra específica (texto literal).
*/
const hola = new Workflow("hola")
    .addAction("Soy el evento 'hola'");

/*
2. Captura una lista de palabras específicas.
   - Captura tanto "hola" como "Hola" (sensible a mayúsculas/minúsculas).
*/
const lista = new Workflow(["hola", "Hola"])
    .addAction("Soy el evento lista");

/*
3. Captura texto ignorando mayúsculas/minúsculas.
   - Usa una expresión regular (`RegExp`) con las banderas `i` (ignorar caso) y `g` (global).
*/
const regexCaseInsensitive = new Workflow(/^hola/gim)
    .addAction("Soy el evento hola en expresión regular");

/*
4. Captura una lista combinada de criterios:
   - Usa expresiones regulares y texto literal en un solo evento.
   - Ejemplo: Captura "hola" (sin importar mayúsculas/minúsculas), "epale" y "buenas".
*/
const combinados = new Workflow([/^hola/gim, "epale", "buenas", "voice"])
    .addAction("Soy el evento combinado");

Consideraciones Importantes

  1. Orden y Prioridad :

  2. El evento any se ejecutará siempre que no haya filtros más específicos, ya que actúa como un "catch-all".

  3. Evitar Duplicados :

  4. Si varios eventos coinciden con un mismo mensaje, asegúrate de priorizar adecuadamente para evitar duplicación en las respuestas.

  5. Uso de Expresiones Regulares :

  6. Las expresiones regulares son poderosas, pero úsalas con cuidado para no capturar texto no deseado.


Resumen de Funcionalidades

Evento Descripción
any Captura cualquier mensaje o acción (prioridad máxima).
image Captura imágenes y videos.
voice Captura notas de voz y mensajes de audio.
document Captura documentos (PDF, Word, etc.).
location Captura ubicaciones enviadas por el usuario.
order Captura órdenes realizadas a través del carrito de compras en WhatsApp.
template Captura plantillas diseñadas por Meta.
Personalizado Define criterios específicos usando string,RegExp o array.

Con esta flexibilidad, Workflow permite crear flujos robustos y altamente personalizables para manejar diferentes tipos de mensajes en tiempo real. 🎯