Introducción
El chatbot para WhatsApp permite responder automáticamente a solicitudes, enviar notificaciones, solicitar información, haciendo la comunicación eficaz y disponible 24/7.
Esta guía para desarrolladores es una instrucción paso a paso para configurar y lanzar tu propio chatbot utilizando la API de Whapi.Cloud en Node.JS, además de demostrar las funciones clave y las capacidades del gateway y el bot.
Podrás utilizar nuestro código fuente en tu proyecto, modificándolo y ampliando sus funcionalidades fácilmente. Con este código, podrás crear tu propio chatbot o cualquier integración. Intégralo fácilmente en tus procesos de trabajo existentes, continuando usando WhatsApp como de costumbre.
Código fuente
El script de este chatbot incluye las funciones básicas que suelen utilizar las pequeñas y medianas empresas, cubriendo la mayoría de las tareas:
- Enviar un mensaje normal;
- Enviar multimedia: imagen/archivo/video;
- Enviar un contacto (tarjeta de visita vCard);
- Enviar un producto;
- Crear un grupo de WhatsApp;
- Enviar una invitación al grupo;
- Enviar un mensaje a un grupo de WhatsApp;
- Recibir y procesar mensajes entrantes;
- Responder a un comando desconocido (para implementar menús, instrucciones o un mensaje de bienvenida).
Instalación del entorno
Prepararemos el entorno de trabajo. Asegúrate de que ya tienes todo listo para trabajar con Node.js. A continuación, procedemos a GitHub.
El proceso incluye clonar el código fuente del repositorio en GitHub e instalar las dependencias necesarias a través de npm (Node Package Manager). Puedes pasar directamente al siguiente capítulo si ya has hecho esto por tu cuenta.
Así que, aquí están los pasos básicos para un rápido inicio:
1. Clonación del repositorio.
Abre el terminal o la línea de comandos y navega al directorio donde desees colocar el proyecto. Usa el siguiente comando para clonar el repositorio:
git clone https://github.com/Whapi-Cloud/nodejs-whatsapp-chatbot
2. Instalación de paquetes npm.
Después de clonar el repositorio, navega a la carpeta del proyecto:
cd your_project_name
Luego, ejecuta el siguiente comando para instalar todos los paquetes npm necesarios listados en el archivo package.json:
npm install
Este comando descargará e instalará automáticamente todas las dependencias necesarias para el funcionamiento del chatbot.
Estructura del proyecto
- /files - esta carpeta contiene los archivos fuente que se usarán para enviar archivos. Puedes probar con estos archivos y luego reemplazarlos por tus propios archivos. También podrás enviar archivos mediante un enlace (más detalles al final del artículo);
- config.js - configuraciones para iniciar el bot;
- index.js - el script principal del chatbot;
Proveedor de WhatsApp API
Whapi.Cloud ofrece un gateway API fácil de usar, compatible con cualquier lenguaje de programación. Esto te permitirá integrar sin problemas tu sitio web, tienda, aplicación o CRM con WhatsApp.
Nuestro Cloud API es un desarrollo independiente y no tiene restricciones para trabajar con el envío de mensajes, grupos, canales, estados, llamadas y otras funcionalidades de tu mensajería.
El acceso al API tiene un precio fijo, sin cargos por mensajes enviados. Esta es una ventaja clave de nuestro API simple y potente.
Cómo conectarse a Whapi.Cloud
Otra ventaja de nuestro gateway es la rapidez de onboarding y el inicio de operaciones. No necesitarás verificar tu negocio ni cambiar tu número. ¡Conecta tu propio número y sigue usando WhatsApp como siempre!
Así que, regístrate en Whapi.Cloud. Necesitarás una dirección de correo electrónico activa para pasar la verificación por correo electrónico o una cuenta de Google.
En el Dashboard encontrarás un canal de prueba asignado individualmente para ti. Tendrás la oportunidad de probar todas las funcionalidades del API completamente gratis durante los primeros 5 días.
Acceso gratuito al API por 5 días
Visita la página de este canal simplemente haciendo clic en él.
A diferencia de otros proveedores, te ofrecemos la posibilidad de conectar tu WhatsApp existente o WhatsApp Business al API.
Simplemente escanea el código QR, como se hace en WhatsApp Web, y estarás listo para operar en unos segundos.
Según Meta, esta es una conexión estándar a WhatsApp Web, y si no usas Whapi.Cloud para enviar spam, tu número seguirá funcionando normalmente.
Omite el tercer paso "Configuraciones del canal", por ahora no las necesitamos.
Excelente, ahora tienes disponible el Token del API, que necesitarás para las pruebas y el trabajo futuro con los endpoints. Guarda este token, te será útil en muchas ocasiones.
Vamos a config.js y reemplazamos la variable del token, insertando tu clave actual:
token: "TU_TOKEN_DEL_CANAL"
token: "TU_TOKEN_DEL_CANAL"
Configuración del Webhook
Qué es un webhook y para qué sirve
Para recibir datos entrantes de tu mensajero, como un mensaje entrante o una llamada entrante o una notificación de que alguien se unió a tu grupo, necesitarás usar un Webhook.
Esta tecnología te permitirá recibir notificaciones instantáneas sobre cualquier evento en tu WhatsApp y responder a él.
En palabras simples, por ejemplo: Contacto A te escribe -> El script del chatbot recibe el mensaje de Contacto A -> Verifica si el mensaje es un comando conocido -> Ejecuta el comando del script (por ejemplo, envía un mensaje de bienvenida o un producto, etc.)
De esta manera, dos sistemas (nuestro gateway API conectado a WhatsApp y tu chatbot) intercambian información sin necesidad de ninguna acción externa.
Técnicamente, cuando se recibe un mensaje, el sistema realizará una solicitud POST con un cuerpo JSON, a la URL configurada de tu script. El cuerpo JSON incluirá toda la información sobre el mensaje entrante, como el texto, el número del remitente, la hora de envío, etc., lo que te permitirá leer esta información al vuelo.
Pasemos a configurar esta URL!
Pasemos a configurar esta URL!
Local o en el servidor
Al desarrollar un bot de WhatsApp, es posible que quieras probarlo localmente antes de implementarlo en un servidor. La forma más sencilla de hacerlo es utilizando herramientas como Ngrok, que crea un túnel seguro a tu localhost, permitiéndote proporcionar acceso a tu servidor local desde Internet.
Tomemos ahora una URL de Ngrok para probar el chatbot. Descarga Ngrok del sitio oficial y descomprímelo. Abre la terminal y navega a la carpeta donde se encuentra Ngrok.
Ejecuta ./ngrok http NÚMERO_DE_PUERTO, reemplazando NÚMERO_DE_PUERTO con el puerto en el que tu servidor Express está funcionando localmente.
Ahora deberías tener una URL pública, que puedes usar como URL para el webhook.
Copia esta URL en el archivo config.js:
botUrl: "https://84c7-151-33-282-113.ngrok-free.app/hook"
Ejecuta ./ngrok http NÚMERO_DE_PUERTO, reemplazando NÚMERO_DE_PUERTO con el puerto en el que tu servidor Express está funcionando localmente.
Ahora deberías tener una URL pública, que puedes usar como URL para el webhook.
Copia esta URL en el archivo config.js:
botUrl: "https://84c7-151-33-282-113.ngrok-free.app/hook"
¡Atención, mantén el “/hook” al final de la URL! Esa es precisamente la dirección a la que está programado el script del chatbot ahora!
Características de la implementación en el servidor
Para recibir webhooks entrantes, es necesario que la dirección IP pública / host esté accesible desde Internet. De esta forma, el servidor de Whapi.Cloud podrá enviar la solicitud a tu servidor en la dirección especificada y entregar el webhook entrante.
Configuración del servidor:
- Whapi.Cloud solo trabaja con webhooks que utilizan HTTPS;
- Tu endpoint debe aceptar POST/PUT/PATCH/DELETE;
A continuación, en el capítulo "Despliegue", hablaremos sobre varios servicios públicos donde puedes alojar tu chatbot.
Configuración y diversos eventos
Las configuraciones de canal y webhooks en Whapi.Cloud ofrecen amplias oportunidades para la personalización, que pueden ser especialmente útiles en proyectos con requisitos individuales.
Sin embargo, para simplificar el proceso de inicio, hemos incluido la configuración necesaria directamente en el código de nuestro chatbot, liberándote de la necesidad de introducirlos manualmente. Esto te permite concentrarte en el desarrollo sin preocuparte por la configuración adicional.
Si deseas profundizar en las posibilidades de personalización o necesitas una configuración más detallada del webhook, siempre puedes consultar la lista completa de opciones en la Base de Conocimiento de Whapi.Cloud en el artículo: Configuraciones detalladas del webhook
En el código fuente de GitHub la URL del webhook se asigna automáticamente a tu canal a través del método API, por lo que no necesitas realizar acciones adicionales.
Profundicemos un poco en los modos de webhooks y los eventos sobre los que nuestro servicio puede notificarte.
Actualmente, para enviar webhooks se ha elegido el modo Method. Este método es especialmente adecuado para el procesamiento detallado de eventos, permitiéndote usar diferentes métodos HTTP para acciones específicas. Así, el webhook dividirá las solicitudes enviadas y las dirigirá a diferentes direcciones, por ejemplo https://****/hook/messages (eventos relacionados con mensajes) o https://****/hook/statuses (eventos relacionados con estados de mensajes) o https://****/hook/groups (eventos relacionados con grupos).
Hay otros dos modos de webhook: Body (envía directamente al enlace el cuerpo de la solicitud) y Path (especifica completamente la URL de la API de la solicitud).
Hay otros dos modos de webhook: Body (envía directamente al enlace el cuerpo de la solicitud) y Path (especifica completamente la URL de la API de la solicitud).
Los eventos y la manera en que notificamos al chatbot original son a través de POST Messages. Este webhook rastrea cualquier cambio relacionado con mensajes nuevos, incluidos los mensajes enviados y recibidos.
Puedes aprender más sobre todos los eventos posibles (información sobre grupos, canales, llamadas, estados, cambios en los mensajes, etc.) que nuestro sistema soporta en el artículo: Nuestros webhooks (eventos rastreados)
Lanzamiento y configuración del bot
¡Ya puedes verificar el funcionamiento del chatbot! Asegúrate de que en config.js el token y la dirección del webhook estén correctamente especificados.
El lanzamiento del chatbot se realiza ejecutando el comando node index.js en la terminal desde el directorio raíz del proyecto.
Tu bot ahora debe estar activo y listo para funcionar.
Al enviar un mensaje al número al que está vinculado el bot desde otro teléfono, debes recibir una respuesta automática. Si no hay reacción por parte del bot, recomendamos consultar la sección "Solución de problemas" para diagnosticar y resolver posibles problemas.
Parámetros preestablecidos (grupo y producto)
En el archivo config.js se encuentran los valores preestablecidos, incluidos los identificadores de grupo y producto que tu chatbot utiliza para enviar mensajes. Para que el bot funcione correctamente en el contexto de tus datos, necesitas actualizar estos parámetros según tus necesidades.
- group: '[email protected]'
- product: '6559353560856703'
El primer identificador corresponde al grupo al que el chatbot enviará el mensaje.
Puedes obtener este identificador creando un grupo en WhatsApp o utilizando uno existente.
El identificador del grupo solo se puede obtener a través de la API.
Para ello, utiliza la llamada API "Obtener lista de grupos" (método: https://whapi.readme.io/reference/getgroups en la Documentación ). El identificador del grupo aparece de la siguiente manera: [email protected]
Para ello, utiliza la llamada API "Obtener lista de grupos" (método: https://whapi.readme.io/reference/getgroups en la Documentación ). El identificador del grupo aparece de la siguiente manera: [email protected]
Para obtener más información sobre los identificadores de chat (chat_id), hemos escrito un artículo dedicado: ID de Chat. Qué es y cómo obtenerlo
Entonces, una vez que hayas encontrado el identificador de grupo que necesitas, cópialo en config.js.
Haz lo mismo con los productos de tu catálogo (solo disponible en la versión Business de la aplicación).
Determina el identificador del producto que tu chatbot enviará.
Puedes obtener una lista de productos utilizando el método https://whapi.readme.io/reference/getproducts en la Documentación.
Reemplaza los valores preestablecidos en config.js con tus propios identificadores de grupo y producto.
Después de hacer cambios, guarda el archivo y reinicia el bot. Ahora debería funcionar con los nuevos parámetros, permitiéndote probar su funcionamiento de manera completa.
Solución de problemas
Durante la prueba y operación del chatbot para WhatsApp, pueden surgir varios problemas. Aquí hay algunas situaciones típicas y recomendaciones para resolverlas:
El bot no responde a mensajes entrantes
- Asegúrate de que estás enviando mensajes al número en el que se ejecuta el bot desde otro teléfono. El bot no podrá reaccionar a los mensajes enviados desde el mismo número.
- Si el bot no reacciona a los mensajes de otros números, verifica el funcionamiento de los webhooks. Utiliza servicios para simular webhooks, por ejemplo, Webhook.site, para asegurarte de por dónde llegan las solicitudes de callback. Luego, verifica que el camino coincide con lo que configuraste. Además, asegúrate de que tu servidor responde con 200Ok.
Si encuentras dificultades, no dudes en contactar a nuestro soporte técnico para obtener ayuda. Puedes escribirnos a través del widget de chat en nuestro sitio web o por correo a [email protected]. Te ayudaremos y averiguaremos exactamente qué está mal con el webhook.
El bot envía mensajes sin parar
Regresa a la versión original del código. Nuestro script implementa una verificación para determinar si un mensaje es entrante o saliente, para evitar caer en un bucle infinito de envío de mensajes.
El envío infinito puede ocurrir si falta la verificación de mensajes salientes en el código, lo que hace que el bot se llame a sí mismo, o si hay un envío cíclico de mensajes en el código.
El bot funciona en algunos chats, pero en otros no
Revisa tu plan tarifario en Whapi.Cloud. Si estás usando el modo de prueba o el plan "Sandbox", la interacción está limitada a una cierta cantidad de chats por mes (actualmente hasta 5 chats). En tal caso, el bot no podrá procesar mensajes en el sexto chat y siguientes.
Es importante recordar que muchos problemas pueden prevenirse revisando cuidadosamente la configuración y la lógica de tu chatbot antes del lanzamiento. Mantener tu código actualizado y prestar atención a los detalles de las configuraciones ayudará a evitar la mayoría de los errores comunes. ¡Y nuestro equipo de soporte siempre está disponible y listo para ayudarte!
Despliegue y uso de servidores
Para que tu chatbot de WhatsApp esté disponible 24/7, necesita estar alojado en una plataforma de hosting confiable. Puedes usar tu propio servidor, pero en este capítulo examinaremos las tres plataformas más populares —Firebase, AWS y Heroku— y repasaremos los pasos básicos para desplegar tu bot en cada una de ellas.
La elección de la plataforma depende de tus preferencias, presupuesto y requisitos del proyecto. Cada una de las plataformas examinadas ofrece sus propias capacidades únicas y ventajas. Firebase y AWS Lambda proporcionan un potente backend sin la necesidad de gestionar un servidor, mientras que Heroku ofrece simplicidad en el despliegue de aplicaciones basadas en Git.
Firebase
Firebase ofrece la funcionalidad de Cloud Functions, que te permite ejecutar tu bot sin tener que preocuparte por la infraestructura del servidor. En nuestra opinión, esta es la opción más óptima.
- Crea un proyecto en Firebase Console;
- Instala Firebase CLI, siguiendo las instrucciones;
- Inicializa Firebase en el directorio de tu proyecto con el comando firebase init;
- Despliega tu bot usando el comando firebase deploy --only functions.
AWS (Amazon Web Services)
AWS Lambda permite ejecutar código en respuesta a desencadenantes de otros servicios de AWS, lo que lo convierte en una buena elección para un bot.
- Regístrate o inicia sesión en AWS Management Console;
- Crea una nueva función Lambda a través de la consola de AWS, eligiendo API Gateway como desencadenante;
- Sube el código de tu bot a la función Lambda;
- Configura API Gateway para que tu bot interactúe con el mundo exterior.
Heroku
Heroku ofrece una plataforma de alojamiento de aplicaciones fácil de usar que puede desplegar automáticamente el código desde tu repositorio Git.
- Crea una cuenta en Heroku;
- Instala Heroku CLI e inicia sesión;
- Crea una nueva aplicación en Heroku a través de la consola o usando el comando heroku create;
- Conecta tu repositorio Git con Heroku y realiza el despliegue con los comandos git push heroku master;
- Configura la URL del webhook proporcionada por Heroku.
Expansión de funcionalidades
Tras el lanzamiento exitoso y la prueba de tu chatbot para WhatsApp, hay numerosas formas de expandir aún más su funcionalidad para hacerlo aún más útil e interactivo para los usuarios. Aquí tienes algunos casos de uso comunes:
- Envío de archivos por enlace.
Enviar un archivo multimedia por enlace es muy sencillo. La condición principal es que el archivo en sí esté disponible directamente a través de un enlace (por esta razón, los servicios en la nube como Google Drive o Dropbox no son adecuados, ya que no ofrecen acceso directo al archivo). Utiliza el parámetro media en cualquiera de los métodos que permiten enviar archivos multimedia. Para más información, lee nuestro artículo: Endpoint para el envío de archivos multimedia.
- Distribución de leads por grupos.
Necesitarás la función de creación de grupos, así como la adición de un miembro al grupo. Agregar un miembro al grupo no será difícil, sin embargo, hay algunos matices. Hemos descrito más detalles en el artículo: "Añadir un nuevo miembro al grupo"
- Integración con CRM.
Técnicamente, la integración con un CRM no difiere mucho de un chatbot, con la diferencia de que se agrega un recurso adicional con su propio API que necesita ser utilizado. Agrega funciones que permitan a los usuarios reservar servicios, ordenar productos o recibir información actualizada de fuentes externas en tiempo real.
- Encuestas, como alternativa a los botones en bots.
Los botones interactivos en WhatsApp son una herramienta muy conveniente para interactuar con clientes. Sin embargo, esta función no está disponible para la mayoría de los usuarios de WhatsApp. Nosotros apoyamos facilitar la comunicación con los usuarios, por lo tanto, te ofrecemos una alternativa conveniente: usar encuestas como botones. Artículo detallado con código fuente en NodeJS y cómo utilizarlo.
- Aumento del compromiso de los clientes.
Utiliza historias, cambia los estados de tu número, coloca 'me gusta' y otros emojis en los mensajes de tus clientes, envía mensajes de voz - aumenta el compromiso al interactuar con los clientes.
- Verificación de número para WhatsApp.
Verifica si un número de teléfono específico existe en WhatsApp o no. Determina cuáles números de teléfono están activos y cuáles no pueden recibir mensajes de WhatsApp. Intégralo en tu aplicación antes de hacer un envío masivo! Código fuente en GitHub e instrucciones aquí.
¡Ofrecemos soporte integral a nuestros clientes! Si tienes preguntas sobre la operación del bot, la configuración de la plataforma, o te enfrentas a dificultades técnicas, siempre puedes contar con nuestra ayuda.
Esperamos que esta guía te ayude a lanzar con éxito tu chatbot para WhatsApp. ¡Buena suerte en tus proyectos!