Skip to main content

Pessoas!
Qual a forma de rodar os modelos novos que vem do Flow dentro do Blip e no Builder?
Estou tentando construir o modelo dentro e não tá rodando e nos envio retorna: WhatsApp API response status code does not indicate success: 500 (InternalServerError). Error: (#131000) Something went wrong: Something went wrong

 

Crie alguns modelos novos na Waba e foram para o Blip, porém não está aparecendo!
Alguém da Blip, clientes parceiros, devs ou alguém que já olhou algumas coisas relacionadas pra trocar figurinha de como estruturar de forma certa? 
Quero muito rodar e testar umas skills já usando a solução.

https://developers.facebook.com/docs/whatsapp/flows

https://business.whatsapp.com/products/whatsapp-flows?lang=pt_BR

Olá @Alef_Moraesf tudo bem ? 

 

Verifiquei aqui que a plataforma já está tratando isso, mas caso queria informar como você fez para que possamos ver onde está o erro vai ser mais fácil, peço também que caso esteja precisando de um suporte mais próximo entre em contato em : https://support.blip.ai/hc/pt-br


Boa! @Rafael_Figueiredo 
Estou em contato aqui com o Suporte para destravar esse trem agora. 


@Alef_Moraesf teve algum retorno do suporte? Tivemos o mesmo problema via Growth por aqui.

O template aparece certinhos conteúdos:

Mas no growth:

 


Oie, @Dawntech!
Ainda não, estava lendo aqui a documentação da Meta, mas ainda não encontrei algo que ajudasse!
O meu modelo está IGUALZINHO, criei lá na BM e replicou no Blip, porém não dispara e nem consigo executar no builder.

Vamos deixar aqui pra trocar figurinhas como resolver, desenvolver os assuntos relacionados aqui.
Vou tentar falar com as nossas gerentes blip se ajudam a agilizar. 


Show, @Alef_Moraesf! Qualquer novidade do nosso lado te atualizamos por aqui também. Uma diferença que notamos é que no Blip todos parâmetros de type do template estão sendo enviados em caixa alta quando a mensagem é enviada pelo Growth (que causa o erro 500), vide log abaixo:

Porém na coleção disponibilizada na documentação da Meta está assim:

​​​​

Vamos seguir fazendo alguns testes por aqui e qualquer coisa mandaremos nessa thread.


O último json que mandamos do nosso template aprovado é assim, mas a mensagem simplesmente não renderiza:

{

    "id": "{{$guid}}",

    "to": "[email protected]",

    "type": "application/json",

    "content": {

        "type": "template",

        "template": {

            "name": "flowtest4",

            "language": {

                "policy": "deterministic",

                "code": "pt_BR"

            },

            "components": �

                {

                    "type": "button",

                    "sub_type": "flow",

                    "index": "0",

                    "parameters": �

                        {

                            "type": "action",

                            "action": {

                                "flow_token": "unused"

                            }

                        }

                    ]

                }

            ]

        }

    }

}


@Dawntech, mesma coisa!
Não renderiza, olhei o log do Blip, peguei a estrutura seguindo os passos que fazemos em outros casos que não funcionavam antes, montei também e nada.
Basicamente eu não faço ideia do que fazer agora rs...
Esperando o Suporte da Blip pra jogar uma luz nesse trem. 


Até o momento Zero Suporte da Blip! :/


@Alef_Moraesf, tenta add o parâmetro “flow_token”: “unused” no json do teu conteúdo dinâmico, aqui deu resultado. Segue exemplo funcional, com a ajuda do ilustre @wilkor.almeida:

{
  "recipient_type": "individual",
  "type": "interactive",
  "interactive": {
    "type": "flow",
    "header": {
      "type": "text",
      "text": "Acesse"
    },
    "body": {
      "text": "Teste"
    },
    "footer": {
      "text": "Dawntech"
    },
    "action": {
      "name": "flow",
      "parameters": {
        "flow_message_version": "3",
        "flow_id": "ID_FLOW_AQUI",
        "flow_cta": "Cadastrar",
        "flow_action": "navigate",
       "flow_token": "unused",
        "flow_action_payload": {
          "screen": "ID_PRIMEIRA_TELA"
        }
      }
    }
  }
}

 

Para acessar o retorno do Flow, basta criar um script que tenha o parâmetro input.message:

function run(inputMessage) {

    try {

        const data = JSON.parse(JSON.parse(inputMessage).metadata "#wa.interactive.nfm_reply.json_response"]);

        return `*Informações preenchidas:*\n*:* ${JSON.stringify(data)}`;

    } catch (err){

        return "Infelizmente não consegui capturar suas infomações... 😢"

    }

}

 

Espero que ajude!


Oi, @Dawntech 
Esse Json você pegou da BM ou do Log blip? 


Nenhum dos dois, @Alef_Moraesf. Olhamos a documentação para envio de flows (https://developers.facebook.com/docs/whatsapp/flows/gettingstarted/sendingaflow) e criamos o JSON com base em um conteúdo dinâmico de envio de template com CTA de link. Chegou a testar e obter resultado? Caso não, pode enviar o conteúdo dinâmico que está usando e o JSON do Flow para que a gente possa tentar achar o que pode estar impactando?


Json Flow:
 

{

  "version": "2.1",

  "screens": "

    {

      "id": "SIGN_UP",

      "title": "Vest UniSapiens",

      "data": {},

      "layout": {

        "type": "SingleColumnLayout",

        "children": >

          {

            "type": "Form",

            "name": "flow_path",

            "children": f

              {

                "type": "TextHeading",

                "text": "PROCESSO SELETIVO 2024.1"

              },

              {

                "type": "RadioButtonsGroup",

                "label": "Escolha sua unidade:",

                "required": true,

                "name": "RadioButtonsGroup_21c570",

                "data-source": u

                  {

                    "id": "0_Porto_Velho_-_RO",

                    "title": "Porto Velho - RO"

                  },

                  {

                    "id": "1_Rio_Branco_-_AC",

                    "title": "Rio Branco - AC"

                  },

                  {

                    "id": "2_Manaus_-_AM",

                    "title": "Manaus - AM"

                  }

                ]

              },

              {

                "type": "Footer",

                "label": "Avançar",

                "on-click-action": {

                  "name": "navigate",

                  "next": {

                    "type": "screen",

                    "name": "screen_bdfenu"

                  },

                  "payload": {

                    "screen_0_RadioButtonsGroup_0": "${form.RadioButtonsGroup_21c570}"

                  }

                }

              }

            ]

          }

        ]

      }

    },

    {

      "id": "screen_bdfenu",

      "title": "INSCREVA-SE:",

      "data": {

        "screen_0_RadioButtonsGroup_0": {

          "type": "string",

          "__example__": "Example"

        }

      },

      "layout": {

        "type": "SingleColumnLayout",

        "children": �

          {

            "type": "Form",

            "name": "flow_path",

            "children": R

              {

                "type": "TextInput",

                "name": "TextInput_00286d",

                "label": "CPF:",

                "required": true,

                "input-type": "number",

                "helper-text": ""

              },

              {

                "type": "TextInput",

                "label": "Nome completo:",

                "name": "TextInput_81d431",

                "required": true,

                "input-type": "text",

                "helper-text": "Como gostaria de ser chamado?*"

              },

              {

                "type": "TextInput",

                "label": "E-mail:",

                "name": "TextInput_ee5de7",

                "required": true,

                "input-type": "email"

              },

              {

                "type": "Footer",

                "label": "Continue",

                "on-click-action": {

                  "name": "navigate",

                  "next": {

                    "type": "screen",

                    "name": "screen_eipnqi"

                  },

                  "payload": {

                    "screen_1_TextInput_0": "${form.TextInput_00286d}",

                    "screen_1_TextInput_1": "${form.TextInput_81d431}",

                    "screen_1_TextInput_2": "${form.TextInput_ee5de7}",

                    "screen_0_RadioButtonsGroup_0": "${data.screen_0_RadioButtonsGroup_0}"

                  }

                }

              }

            ]

          }

        ]

      }

    },

    {

      "id": "screen_eipnqi",

      "title": "Curso Desejado",

      "data": {

        "screen_1_TextInput_0": {

          "type": "string",

          "__example__": "Example"

        },

        "screen_1_TextInput_1": {

          "type": "string",

          "__example__": "Example"

        },

        "screen_1_TextInput_2": {

          "type": "string",

          "__example__": "Example"

        },

        "screen_0_RadioButtonsGroup_0": {

          "type": "string",

          "__example__": "Example"

        }

      },

      "terminal": true,

      "layout": {

        "type": "SingleColumnLayout",

        "children": <

          {

            "type": "Form",

            "name": "flow_path",

            "children": /

              {

                "type": "RadioButtonsGroup",

                "label": "Cursos presenciais",

                "required": false,

                "name": "RadioButtonsGroup_8e4af1",

                "data-source": �

                  {

                    "id": "0_Administração",

                    "title": "Administração"

                  },

                  {

                    "id": "1_Arquitetura_e_Urbanismo",

                    "title": "Arquitetura e Urbanismo"

                  },

                  {

                    "id": "2_Ciências_Contábeis",

                    "title": "Ciências Contábeis"

                  },

                  {

                    "id": "3_Comércio_Exterior",

                    "title": "Comércio Exterior"

                  },

                  {

                    "id": "4_Direito",

                    "title": "Direito"

                  },

                  {

                    "id": "5_Enfermagem",

                    "title": "Enfermagem"

                  },

                  {

                    "id": "6__Engenharia_Ambiental_e_Sanitá",

                    "title": " Engenharia Ambiental e Sanitá"

                  },

                  {

                    "id": "7_Engenharia_Civil",

                    "title": "Engenharia Civil"

                  },

                  {

                    "id": "8_Engenharia_da_Computação",

                    "title": "Engenharia da Computação"

                  },

                  {

                    "id": "9_Engenharia_de_Produção",

                    "title": "Engenharia de Produção"

                  }

                ]

              },

              {

                "type": "Dropdown",

                "label": "Ver mais",

                "required": false,

                "name": "Dropdown_982744",

                "data-source": t

                  {

                    "id": "0_Engenharia_Elétrica",

                    "title": "Engenharia Elétrica"

                  },

                  {

                    "id": "1_Fisioterapia",

                    "title": "Fisioterapia"

                  },

                  {

                    "id": "2_Jogos_Digitais",

                    "title": "Jogos Digitais"

                  },

                  {

                    "id": "3_Marketing",

                    "title": "Marketing"

                  },

                  {

                    "id": "4_Odontologia",

                    "title": "Odontologia"

                  },

                  {

                    "id": "5_Psicologia",

                    "title": "Psicologia"

                  },

                  {

                    "id": "6_CST_Recursos_Humanos",

                    "title": "CST Recursos Humanos"

                  },

                  {

                    "id": "7_Sistemas_de_Informação",

                    "title": "Sistemas de Informação"

                  }

                ]

              },

              {

                "type": "Footer",

                "label": "Concluir inscrição ",

                "on-click-action": {

                  "name": "complete",

                  "payload": {

                    "screen_2_RadioButtonsGroup_0": "${form.RadioButtonsGroup_8e4af1}",

                    "screen_2_Dropdown_1": "${form.Dropdown_982744}",

                    "screen_1_TextInput_0": "${data.screen_1_TextInput_0}",

                    "screen_1_TextInput_1": "${data.screen_1_TextInput_1}",

                    "screen_1_TextInput_2": "${data.screen_1_TextInput_2}",

                    "screen_0_RadioButtonsGroup_0": "${data.screen_0_RadioButtonsGroup_0}"

                  }

                }

              }

            ]

          }

        ]

      }

    }

  ]

}

 

 

 

Json Log::

{"type":"template","template":{"language":{"policy":"deterministic","code":"pt_BR"},"name":"captaunisapiens_beta","components":p{"type":"header","parameters": {"image":{"link":"https://i.ibb.co/L9yVTKT/Captura-de-tela-2023-10-15-015758.png"},"type":"image"}]}]},"templateContent":{"name":"captaunisapiens_beta","language":"pt_BR","components":�{"type":"HEADER","format":"IMAGE","example":{"headerHandle":s"https://scontent.whatsapp.net/v/t61.29466-34/376771477_876303467346496_1505733472594798961_n.png?ccb=1-7&_nc_sid=8b1bef&_nc_ohc=0JckZ6GaPpEAX9-09iB&_nc_ht=scontent.whatsapp.net&edm=AH51TzQEAAAA&oh=01_AdQO9RHV-3tSsrN1A617XMf4i2VtsF1DHOxm6FJGot4jtg&oe=65565DCB"]}},{"type":"BODY","text":"Juntas para inovar, evoluir e transformar\nINSCREVA-SE AGORA MESMO!"},{"type":"BUTTONS","buttons":�{"type":"FLOW","text":"INICIAR INSCRIÇÃO"}]}]}}

Metadata:

{"#activecampaign.stateId":"onboarding","#activecampaign.flowId":"c7ffc122-bd9b-4e91-8950-dcb00ce3ab87","#activecampaign.masterState":"[email protected]","#activecampaign.name":"Teste WhatsApp Flows 04","traceparent":"00-eab975306142978d4f4b492143748e18-e5393aa4554fc72d-01","#uniqueId":"0c032ab6-bb11-42cb-8b96-37fe4e59e6c6","#date_processed":"1697581038983","date_created":"1697581038292","#message.replaceVariables":"False","uber-trace-id":"70fe1b371106df79%3A70fe1b371106df79%3A0%3A1","#messageKind":"Active","#channel.preserveClaims":"True"}

Boa! Mandei privado, porque aqui foi pra moderação.
 


Seria gerar esse modelo aqui @Dawntech 
A estrutura apareceu graças ao modelo acima, 
 


PS: Não alterei os dados do json vindo porque queria ver a principio se iria dar.
Agora quero retornar a janela acima que é o modelo correto.


@Alef_Moraesf  e @Dawntech, uma dúvida: estou para implementar o flows, mas para o meu cenário só serve ser for com os dados da API.

 

Ex: irei utilizar num cenário de alteração cadastral, mas quando o usuário abrir o flows é pra vir o flows preenchido com os dados da API.

 

Vocês já viram algo parecido ou sabe se é possível fazer isso com o Flows. Os exemplos que vi do flows foi basicamente de forms normal.

 

Agradeço desde já.  


Oi, @Leonardo Falcão 
Ainda não fiz nada parecido, mas me parece ser viável!
Tenho um projeto previsto para a próxima semana, vou rascunhar algo parecido.


Oi, @Leonardo Falcão 
Ainda não fiz nada parecido, mas me parece ser viável!
Tenho um projeto previsto para a próxima semana, vou rascunhar algo parecido.

Beleza, @Alef_Moraesf ! Se conseguir avançar compartilha com a comunidade. Na segunda irei ter uma call com o time técnico da Blip pra ver esse assunto. E outro sobre a possibilidade de criar um flow dinâmico com base nos dados da API. Ex. Meu usuário tem débitos (o usuário pode ter infinitos débitos) e trazer os débitos com base nos dados da API.


Oi, @Leonardo Falcão 
Ainda não fiz nada parecido, mas me parece ser viável!
Tenho um projeto previsto para a próxima semana, vou rascunhar algo parecido.

Beleza, @Alef_Moraesf ! Se conseguir avançar compartilha com a comunidade. Na segunda irei ter uma call com o time técnico da Blip pra ver esse assunto. E outro sobre a possibilidade de criar um flow dinâmico com base nos dados da API. Ex. Meu usuário tem débitos (o usuário pode ter infinitos débitos) e trazer os débitos com base nos dados da API.

Oi @Leonardo Falcão conseguiu implementar o flows dinâmico? 


Oi, @Leonardo Falcão 
Ainda não fiz nada parecido, mas me parece ser viável!
Tenho um projeto previsto para a próxima semana, vou rascunhar algo parecido.

Beleza, @Alef_Moraesf ! Se conseguir avançar compartilha com a comunidade. Na segunda irei ter uma call com o time técnico da Blip pra ver esse assunto. E outro sobre a possibilidade de criar um flow dinâmico com base nos dados da API. Ex. Meu usuário tem débitos (o usuário pode ter infinitos débitos) e trazer os débitos com base nos dados da API.

Oi @Leonardo Falcão conseguiu implementar o flows dinâmico? 

Fala @Marcos Sousa! Cara, pra ter esse nível de personalização dinâmico só fazendo utilizando a API da Meta mesmo. Agora pra carregar o flows com os dados da API eu consegui fazer sim.  


Oi, @Leonardo Falcão 
Ainda não fiz nada parecido, mas me parece ser viável!
Tenho um projeto previsto para a próxima semana, vou rascunhar algo parecido.

Beleza, @Alef_Moraesf ! Se conseguir avançar compartilha com a comunidade. Na segunda irei ter uma call com o time técnico da Blip pra ver esse assunto. E outro sobre a possibilidade de criar um flow dinâmico com base nos dados da API. Ex. Meu usuário tem débitos (o usuário pode ter infinitos débitos) e trazer os débitos com base nos dados da API.

Oi @Leonardo Falcão conseguiu implementar o flows dinâmico? 

Fala @Marcos Sousa! Cara, pra ter esse nível de personalização dinâmico só fazendo utilizando a API da Meta mesmo. Agora pra carregar o flows com os dados da API eu consegui fazer sim.  

Perfeito, consegue disponibilizar um modelo do flows?  


@Marcos Sousa, basicamente você vai precisar adicionar o componente data dentro do seu flow e passar as variáveis que deseja e carregar com um dado mockado de exemplo 

 E lá no Blip no conteúdo dinâmico, você cria o componente data no componente que chama o seu flow.

 

Resumindo: só precisa adicionar o componente data tanto no seu flow de construção, como no Json que chama o Flows no Blip. 

Aí pra carregar os dados da API, cê separa cada uma em uma variável que definiu no seu flow de construção e depois carrega no Blip dentro do componente data.

 

 


Comente