Capturar o texto "text" de resposta do Quick Reply dinâmico

Neste exemplo:

{ 
    text: "Escolha uma opção", 
    options: 
        [
            { order:1, text:"Opção 01",value: "1"},
            { order:2, text:"Opção 02",value: "2"},
            { order:3, text:"Opção 03",value: "3"},
            { order:4, text:"Opção 04",value: "4"},
            { order:5, text:"Opção 05",value: "5"},
            { order:6, text:"Opção 06",value: "33"},
        ]
}

Mesmo que eu possa carregar isso no payload, eu gostaria de capturar o “text” que é o texto mostrado na conversa quando o usuário escolhe uma das opções do Quick-Reply dinâmico.

É possível pegar isso da conversa ou tenho que recorrer ao payload mesmo?

Olá @ShotDesign

Você vai usar o valor em value para alguma coisa? Caso contrário, você pode tirar junto com o order. Segundo nossa documentação:

When the user selects one option, a message returns according to the rule:

  • If the option contains the field ‘value’, it should be returned
  • If not, the ‘order’ filled value should be returned, if present
  • If not, field ‘text’ should be returned

No entanto, caso você queria continuar usando como está, você pode acessar essa informação com a variável input.message, que te retornará:

{
   "type":"text/plain",
   "content":"5",
   "id":"a3260517-7a19-4dda-b323-12cb1c0fc87b",
   "from":"9dd6428d-47a7-4894-98d9-a3b4e38ffb05.demobot@0mn.io/default",
   "to":"demobot@msging.net",
   "metadata":{
      "#blip.payload.content":"Opção 05",
      "date_created":"1600699857074",
      "uber-trace-id":"c1f5f9766b33c620%3Ac1f5f9766b33c620%3A0%3A1"
   }
}

O que você precisa está em #blip.payload.content. Você pode usar um script para recuperar e retornar essa informação.

Certo, do jeito mais simples, sem scripts, eu tenho que ler esta variável?

input.message@#blip.payload.content

Não funciona assim, pois #blip.payload.content está dentro de @metadata antes, então você terá que passar por esse atributo.

O correto seria input.message@metadata.#blip.payload.content, porém o BLiP não aceita, provavelmente devido aos caracteres especiais.

Se você tentar input.message@metadata.date_created, por exemplo, ele retorna normalmente.

Dado essa ‘limitação’, via script é a melhor opção.

Entendi…
Sendo assim, criar um payload customizado ainda seria melhor do que criar mais um script.

1 Curtida