Olá Uriel. Por se tratar de um MVP, optamos por não utilizar a api oficial. Desenvolvemos a Letsia utilizando algumas camadas de interfaces, como, integrações de bibliotecas como Venon, WhatsappWebJS e o próprio GPT.

Que interessante, eu to testanto o whatsapp-web.js, não testei o venon. Acho que nem vou, o que quero é bem simples.

Uma pergunta: Tenho um problema em criar tipo um fluxo.

  • pessoa entra em contato
  • bot responde e pede 1 ou 2
  • respondeu 1
  • bot responde e acaba a interação.
  • respondeu 2
  • bot pede pra escrever um titulo
  • pessoa manda titulo
  • bot pede pra confirmar 1 ou reescrever 2
  • resposta 1
  • bot pede pra colocar a descrição ....

Meu problema é saber onde esta aquela pessoa. Se no titulo, se na descrição.

Eu não to sabendo fazer esse fluxo. para verifica onde ta, em que parte da conversa esta.

E meu bot é coisa simples são 3 informações que o bot precisa. titulo, descrição e uma data.

Meu problema ta na implementação de código.

A pessoa entra em contato crio um tipo de sessão pro número dela.

Eu nem sei explicar direito, e olha que é algo bobo kkkkk

Eu li o do rapaz aqui e não entendi o fluxo https://www.tabnews.com.br/jjrdev/como-eu-integrei-o-chatgpt-ao-whatsapp-para-uma-empresa

Caso a sessão exista, verifica qual o estágio dela e realiza as ações daquele estágio, como enviar mensagens, verificar respostas, redirecionar ou outras ações.

Essa parte que não sei ainda, pq ta confuso pra mim. Se puder dar uma luz o resto eu corro atrás sem problema

Olá Uriel, Você pode seguir usando a estratégia que citou acima - armazenando o fluxo do usuário em memória ou em um banco de dados. No caso da Letsia, usamos as duas estratégias... CACHE: quando o usuário não completou o fluxo e as informações não são relevantes para serem salvas. Consequentemente, a sessão expira e não tenho os registros do fluxo. Ponto crítico; você precisa ter uma aplicação estável para que nenhum bug aconteça e você percar os caches no caminho. BD: quando cada ação do usuário é relevante ou quando de fato finaliza todo o fluxo. Consequentemente, você poderá consultar o status de cada user em um dashboard a qualquer momento. Sobre a lógica de construção, pense o seguinte: cacheObject -> "numero_whatsapp"(primaryKey) -> array[step1, step2, step3, ok]
Acho que entendi > cacheObject -> "numero_whatsapp"(primaryKey) -> array[step1, step2, step3, ok] Vou tentar aqui. Obrigadinho! Abraços