Configuración inicial

1

Desarrolla tu Chatbot con la API de Whatsapp

2

¿Cómo funciona la API de WhatsApp?

3

¿Cómo crear una cuenta de desarrollador en Meta?

4

¿Cómo configurar una aplicación en Developers Facebook?

5

Creación y configuración de una aplicación en Whatsapp

Integración con la API de WhatsApp

6

¿Cómo configurar la API de WhatsApp para recibir y enviar mensajes?

7

¿Cómo configurar la API de WhatsaApp con Postman?

8

¿Cómo crear un servidor de Express?

Implementación de Servidor Express

9

¿Cómo implementar Webhooks en Express?

10

¿Cómo optimizar la arquitectura de un bot usando servicios y controladores?

Comunicación con la API de WhatsApp

11

¿Cómo enviar un mensaje de bienvenida con la API de WhatsApp?

12

¿Cómo configurar una respuesta personalizada desde la API de WhatsApp?

Flujos de Interacción con la API de WhatsApp

13

¿Cómo desarrollar un flujo inicial para guiar a los usuarios con WhatsApp API?

14

¿Cómo configurar un menú de opciones desde la API de WhatsApp?

Multimedia con WhatsApp API

15

¿Cómo integrar mensajes multimedia en el flujo de tu chatbot?

16

¿Cómo Integrar el Send-Media-Message al flujo de tu Chatbot?

17

¿Cómo crear el flujo para agendar una cita desde la API de WhatsApp?

18

¿Cómo crear una lógica que permita almacenar el flujo de tu Chatbot?

Avances y Personalización

19

¿Cómo conectar tu chatbot con Google Sheets para la gestión de datos?

20

¿Cómo configurar la API de Google Sheets para almacenar la información de tu usuario?

21

¿Cómo conectar la API de WhatsApp con ChatGPT?

22

¿Cómo integrar ChatGPT al flujo de la API de WhatsApp?

23

¿Cómo enviar contactos desde tu chatbot para soporte al usuario?

24

¿Cómo configurar la API de WhatsApp para enviar ubicaciones a tu usuario?

25

¿Cómo crear flujos escalables en la API de WhatsApp usando buenas prácticas de programación?

26

¿Cómo desplegar la API de WhatsApp en un ambiente de producción?

27

¿Cómo publicar tu Chatbot para interacciones reales?

28

Ahora tienes tu Chatbot que potencia las interacciones con tu usuario

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
14 Hrs
35 Min
30 Seg

¿Cómo configurar un menú de opciones desde la API de WhatsApp?

14/28
Resources

How to capture user interaction with buttons?

Let's improve the user experience! When a user selects options like "Schedule", "Inquire" or "Location", we need to capture those interactions and respond appropriately. To achieve this, we need to modify our code and make sure we handle these events correctly.

else if (message?.type === 'interactive') { const optionChosen = message?.interactive?.button_reply?.title.toLowerCase(); handleMenuOption(mesasFrom, optionChosen); WhatsAppService.marcadoLeido(mesasID);}

How to process the selected option?

Once the interaction is captured, we will create a function called handleMenuOption to handle the actions based on the user's choice. This function will allow us to build the expected response flow.

async function handleMenuOption(who, option) { let response;    
 switch(option) { case 'schedule': response = 'Let's schedule an appointment.  Here is the flow...'; break;        
 case 'consult': response = 'Make your consultation now.'; break;        
 case 'location': response = 'This is our location.'; break;        
 default: response = 'Sorry, I didn't understand your selection.  Please choose one of the options from the menu.'; break; }    
 await WhatsAppService.sendMessage(who, response);}

How to send responses according to the defined logic?

After determining the option the user chose, we will send a response. To maintain good communication, it is important to reuse the WhatsApp message service in text mode, avoiding creating multiple logics to handle different types of messages.

Error handling: what to do if something goes wrong?

Errors are our allies when it comes to debugging. In this case, if we encounter an error during execution, it is crucial to check the 'logs' inviting detailed information about the failure, such as a missing parameter or an invalid request.

WhatsAppService.sendMessage(who, response).catch((error) => { console.error('Error sending message:', error);});

How to improve the bot functionality?

It's just the beginning! By getting the bot to recognize and handle basic interactions, we can start including multimedia content and other resources, such as images or audios, that will enrich interaction flows and offer a more dynamic experience.

Continue to explore and build additional features to schedule appointments, send precise locations, and store user-provided information. With each step, the bot will become a powerful support and automation tool, so keep learning and experimenting!

Contributions 5

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

Para los que estan con Vscode les dejo otro aporte, que en mi consideracion es util Si les expiró el API\_TOKEN de meta, y lo actualizan en su .env, pero a pesar de eso, no les toma los cambios, en la terminal introduzcan el comando `source .env` para que le tome los cambios.
Me encanto encontrar el tema de la validación, con la metodología de validación sin aceptos, algo común que genera errores, y por supuesto me documente y la mejor idea y simple es utilizar la función de normalización de los caracteres y la de reemplazo para eliminar los caracteres de la tabla de caracteres diacríticos combinables. Le dejo como quedaría la cadena para quitar los aceptos y otros caracteres como la Ñ y pasarlo a N. ` `![](https://static.platzi.com/media/user_upload/image-ca28da53-5e01-45c6-99cc-275799e6e2a3.jpg)
Hola, referido al error mostrado en la clase, para no tener que comentar, podemos enviarle el messageId a handleMenuOption para luego enviarlo en whatsappService.sendMessage de esta manera: ![](https://static.platzi.com/media/user_upload/imagen-b5491da8-d220-438e-b353-5772457e9ec4.jpg) Para poder validar los casos con el id podemos seleccionar la opción del usuario de la siguiente manera (selectedOption): ![](https://static.platzi.com/media/user_upload/imagen-f211f950-c3f4-4bb5-a47e-704664145590.jpg) Agrego el sendWelcomeMenu para dar contexto a lo anterior: ![](https://static.platzi.com/media/user_upload/imagen-8de418ec-4552-4c13-b141-0f0c75542b56.jpg)
Hola, comparto mi código con el Id, no sé si es correcto, de esta manera. ![](https://static.platzi.com/media/user_upload/image-a5210be0-974e-422b-9e7a-e2f9fd45cab2.jpg)