comece escolhendo entre Whatsapp ou Telegram.
se optar por Whatsapp, tente https://github.com/adiwajshing/Baileys
se optar por Telegram, tenta o https://telegrafjs.org/
o conceito é o mesmo para ambos, o bot responde a eventos:
- mensagem
- sticker
- photo
- audio
- location
para ter uma conversa, uma maneira é manter estados para o usuário. assim sabemos em que ponto da conversa o usuário está, por exemplo:
user: oi
bot: oi, qual seu nome? (nao encontrei estado para esse usuário, seta do usuário o estado para 'perguntado nome')
user: marcos
bot: qual sua idade {msg.text} ? (seta do usuário o estado para 'perguntado idade')
sacou?
na primeira interação, como o bot não sabe em que ponto vc está, provável que vc está iniciando uma nova interação, o comportamento do bot nesse caso é perguntar o nome.
ao perguntar a idade o bot precisa ter um controle que já perguntou seu nome, pois o evento que virá será outra mensagem (só que agora com sua idade)
e por ai vai, imagina que é como uma URA, aqueles robos de 0800, o menu sabe onde você está e quais opções deve te oferecer