Inicialmente é importante saber que você pode configurar o Node “Interactive List” para criar uma lista interativa. Embora ambas as soluções complementem o mesmo propósito, variando na estética do complemento e na experiência do usuário:
● O node “Interactive List” exibe um menu suspenso.
● O formulário de lista dinâmica exibe uma lista numerada.
Aqui você verá o fluxo que permitirá gerar um formulário com uma lista de seleção dinâmica aplicável a todos os canais, garantindo ótima integração e funcionalidade, dependendo do canal onde for implementado.
Faça o download do fluxo clicando neste link.
- Node de Função: definir Parâmetros Iniciais
- Objetivo: criar os objetos básicos necessários para a lista dinâmica.
- Objetos:
- msg.count: contador necessário para numerar as opções da lista.
- msg.dynamicCallbackLabel - Armazena o "callback_label" para canais assíncronos.
- msg.dynamicSelectOptions – Armazena opções de lista para canais síncronos.
- Node de Função: modelo de Dados - lista de Usuários
- Objetivo: estabelecer um objeto (msg.data) que simule a resposta de um endpoint.
- Node de Loop: loop de usuários
- Objetivo: iterar sobre msg.data que contém o modelo de dados, para processar cada elemento da lista dinâmica.
- Node de função: construir a lista
- Objetivo: construir dinamicamente a lista de seleção com base nos dados.
- Detalhes de configuração:
- lineBreak: contém a quebra de linha para opções de canal assíncrono.
- getNumberEmoji: converta números em emojis numéricos para experiência visual e seleção posterior. O contador é incremental.
- msg.dynamicCallbackLabel e msg.dynamicSelectOptions: cada opção gerada é salva dinamicamente nestes objetos.
- Node de formulário
- Objetivo: estabelecer a estrutura básica do formulário dentro do objeto complemento.
- Node de função: definir opções de formulário
- Objetivo: substituir os parâmetros estáticos "callback_label" e "options" pelos objetos dinâmicos configurados no nó "Build The List"
- Objetivo: substituir os parâmetros estáticos "callback_label" e "options" pelos objetos dinâmicos configurados no nó "Build The List"
Teste o Fluxo: execute o Inject Node e observe o resultado no console "debug".
Implementação Real:
- A configuração do node de função "Definir parâmetros iniciais" não deve ser alterada.
- O node da função "Maquete de dados - Lista de usuários" deve ser substituído pelos dados obtidos por meio de uma Solicitação (node de solicitação http).
- Os dados obtidos pelo node de solicitação http estarão no objeto "payload".
- Esses dados devem ser armazenados em um objeto diferente do "payload" (por exemplo, msg.data), pois tal objeto será substituído a cada iteração do node Loop.
- Dentro do node "Build The List", a opção será armazenada dinamicamente a cada iteração do loop (por exemplo, msg.payload.name).
- Isto criará os objetos que conterão as listas de seleção (por exemplo, msg.dynamicCallbackLabel e msg.dynamicSelectOptions).
- Por fim, esses objetos substituirão os parâmetros do formulário, respectivamente:
- msg.payload.complements[0].param[0].callback_label = msg.dynamicCallbackLabel
- msg.payload.complements[0].param[0].options = msg.dynamicSelectOptions