Callback em agendamento

Bom dia, pessoal.

Estou montando um bot em que a primeira interação é linear, ou seja, sem nenhuma etapa de bifurcação ou menu. Após essa primeira interação, realizo um agendamento de envio de mensagem após 23 horas.

Gostaria que após executar o agendamento, mudasse o state do usuário.

Não posso realizar essa mudança após o registro do agendamento pq nesse momento eu direciono o usuário para outra etapa que é basicamente um loop.

Em resumo, o comportamento é:

  1. Fluxo padrão de entrada: Entrega de material informativo
  2. Após a execução do fluxo acima, eu o mantenho num loop de re-entrega do material
  3. Após 23h da execução da etapa 1, envio uma mensagem perguntando se ainda tem alguma dúvida e direciono para um novo fluxo.

Meu bot terá interação exclusiva por whatsapp e todo o fluxo é realizado em um bot único, que pelo que entendi, está dentro de um router.

Olá @Luis_Viegas1 tudo bem? Infelizmente não há uma maneira direta para se fazer isso pelo portal.

É possível que você crie uma regra de programação, ou uma API (ou mesmo faça isso de forma manual), usando o método de Change User State, passando o ID do Bloco para onde você quer mandar o usuário.

Outra coisa que você pode fazer é, garantir que seu “Fluxo de Loop”, esteja preparado para tratar a resposta desta mensagem enviada após as 23h, e direcionar ele mesmo para o bloco desejado.

1 Curtida

@Bruno, obrigado pela resposta.

Optei por fazer o agendamento externamente, via API própria. Com isso aproveito os dados para outro cenário que temos.

Consegui fazer o envio da mensagem. No entanto, não consegui fazer o Change User State. Estou recebendo um erro 400.

Por favor, veja se identifica algo incorreto na estrutura da mensagem?

URL: https://http.msging.net/commands
Method: POST
Headers: (Os mesmos que funcionam para enviar mensagem)

Segue meu JSON abaixo:

{
   "id":"c436781130c13899e799f4d918cc9918",
   "to":"postmaster@msging.net",
   "method":"set",
   "type":"text/plain",
   "uri":"/contexts/{{6efa4834-2f9c-4f7e-9be2-567359606aab.febraban@0mn.io}}/stateid%40{{784c83e8-11f2-47ea-9761-4fdff0bab484}}",
   "resource":"{{978a5259-bb96-442f-b61d-eadeaf551f2a}}"
}

Recebo como retorno um header 400 e o json abaixo:

{
   "code":21,
   "description":"Invalid URI format"
}
1 Curtida

@Luis_Viegas1, é só você remover os { } dos seus valores. Eles servem apenas para demonstrar que naquele ponto o valor é variável, mas eles não precisam/devem aparecer na versão final.

1 Curtida

Olá @Bruno.

Realmente sem os { } a requisição passou a ter o retorno “success”, no entanto no BLiP Debug o usuário continua sem ser movido para o state informado.

O comportamento previsto nesse state é apenas o envio de um áudio e passa automaticamente para o próximo, que é um menu.

Nos testes, a mensagem chega e para. Se eu interajo com o Bot, observo que estou no início dele e não no state solicitado.

@Luis_Viegas1 existe alguma configuração de Expiração de Sessão?

Os valores de Flow Identifier e State Id estão corretos?