addKeyword

Esta función, que se importa desde @bot-whatsapp/bot, inicia un flujo de chat en base a la configuración proporcionada.

La función addKeyword es como un punto de partida para la conversación. Le das a addKeyword una palabra o frase clave, y cuando alguien envía ese término al chatbot, la función desencadena un flujo de diálogo que has predefinido.


En este ejemplo vemos cómo establecer un flujo que el bot seguirá al recibir un hola o alo. Las respuestas del bot se establecen con .addAnswer()

const { addKeyword } = require('@bot-whatsapp/bot')

const flowPrincipal = addKeyword(['hola', 'alo'])
    .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
    .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])

Podemos limitar el flujo a una sola palabra, como en el caso de comprar.

const { addKeyword } = require('@bot-whatsapp/bot')

const flowPrincipal = addKeyword('comprar')
    .addAnswer(['¿Como puedo ayudarte?'])


Regex

Para iniciarse en base a una expresión regular, utilice el código a continuación. En este caso detectará cuando el mensaje contiene algún número de tarjeta válido.

const { addKeyword } = require('@bot-whatsapp/bot')

const REGEX_CREDIT_NUMBER = `/(^4[0-9]{12}(?:[0-9]{3})?$)|(^(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$)|(3[47][0-9]{13})|(^3(?:0[0-5]|[68][0-9])[0-9]{11}$)|(^6(?:011|5[0-9]{2})[0-9]{12}$)|(^(?:2131|1800|35\d{3})\d{11}$)/gm`

const flow = addKeyword(REGEX_CREDIT_NUMBER, { regex: true })
    .addAnswer(`Gracias por proporcionar un numero de tarjeta valido`)
    .addAnswer('Fin!')


Sensitive

Por defecto, addKeyword detecta la palabra indicada en cualquier parte del mensaje, pero con { sensitive: true } hará que solo se active el flujo si la persona escribe exactamente la palabra en cuestión. Vea el ejemplo de "hola" a continuación:

const { addKeyword } = require('@bot-whatsapp/bot')

const flowBienvenida = addKeyword('hola', { sensitive: true })
    .addAnswer('Bienvenido a este chatbot')


Eventos

Para los casos donde necesitamos responder ante acciones que no son palabras, podemos usar eventos.

Los eventos disponibles son:

  • WELCOME: Activa el flujo cuando la persona escribe una palabra que no está en ningún flujo. Útil para mensajes de bienvenida
  • MEDIA: Se activa cuando la persona envía una imagen o video
  • LOCATION: Útil para detectar cuando la persona envía coordenadas de ubicación
  • VOICE_NOTE: Activa el flujo cuando la persona envía una nota de voz
  • DOCUMENT: Activa el flujo cuando la persona envía algún archivo como pdf, html u otro tipo además de los anteriores
  • ACTION: Se utiliza como un "placebo" para no colocar una palabra clave. Esto es util cuando quiere un flujo pero que no se activa con ninguna palabra clave. (util para llamar desde gotoFlow)

A continuación, vea algunos ejemplos de uso de estos eventos.

const { EVENTS } = require('@bot-whatsapp/bot')

const flowBienvenida = addKeyword(EVENTS.WELCOME)
    .addAnswer('Bienvenido a este chatbot')

const flowRecibirMedia = addKeyword(EVENTS.MEDIA)
    .addAnswer('He recibido tu foto o video')
    
const flowLocation = addKeyword(EVENTS.LOCATION)
    .addAnswer('Ohh ya veo donde estas')

const flowNotaDeVoz = addKeyword(EVENTS.VOICE_NOTE)
    .addAnswer('Dame un momento para escuchar la nota de voz')

const flowDocumento = addKeyword(EVENTS.DOCUMENT)
    .addAnswer('Documento PDF recibido')

const flowAction = addKeyword(EVENTS.ACTION)
    .addAnswer('Documento PDF recibido')