Enviar um ticket

Campos Personalizados do Usuário: do tipo matriz

Para casos de uso avançados, gostaríamos de introduzir um novo tipo de dado - array.

Com este tipo de dado, você pode tornar suas automações mais poderosas e reduzir nós repetitivos nos fluxos sem impactar a funcionalidade.

Neste artigo, você aprenderá como criar e modificar arrays e obterá alguns casos de uso reais. Note que Arrays não estão disponíveis em ações de Fluxo e só podem ser usados através da API.

Criando Arrays

Os arrays do Manychat podem conter textos e números.

Existem duas maneiras de criar arrays:

1. UI - Dentro do produto
2. API

Para criar um array via UI, siga estas etapas:

  • Navegue até Configurações → Campos.
  • Clique no botão "+ Novo Campo de Usuário". Adicione o nome do campo e escolha "array" na lista suspensa, depois clique no botão "criar".

Neste momento, suportamos arrays apenas para Campos de Usuário (mas não para Campos de Bot).

Para criar arrays programaticamente, utilize este método /createCustomField e especifique array como tipo no corpo:

{  "caption": "My array",  "type": "array",  "description": "This field can store array"}
Generic

Lendo arrays

Os campos de usuário personalizados com o tipo array são acessíveis por meio de:

1. UI - Dentro do produto
2. API

Para obter a lista de CUFs (Campos de Usuário Personalizados) existentes, navegue até Configurações, depois menu Campos Personalizados. Todos os CUFs são exibidos em um formato de tabela. Você pode verificar o tipo de um CUF na coluna "Tipo":

Você pode recuperar a mesma lista usando o método /fb/page/getCustomFields

Cada objeto CUF contém o tipo.

Os valores do CUF associados a um contato específico são armazenados em um cartão de contato. Aqui está um exemplo: por padrão, o Manychat mostra o número de elementos; ao clicar, você pode acessar todos os elementos do array:

O endpoint de API equivalente é /fb/subscriber/getInfo.

A resposta contém todos os CUFs com seus tipos e valores.

Modificando arrays

Modificar dados em CUFs com tipo array é possível através de:

1. Mapeamento de solicitação externa
2. Mapeamento de ação de aplicativo
3. API
4. UI

Para o mapeamento, o mecanismo é o mesmo. Você especifica o caminho JSON para o array, e o Manychat salva esse array no CUF. Abaixo, você pode encontrar um exemplo com base em um serviço/API real:

Esta é a resposta JSON da API de Pedidos da Shopify. Cada pedido é único e pode conter um número diferente de itens. Com arrays, você pode armazenar todos os SKUs em 1 CUF. Não há necessidade de analisar e preparar uma resposta para armazenar cada SKU em seu próprio CUF.

Os endpoints de API setCustomField e setCustomFields podem ser usados para salvar arrays também. Abaixo você pode encontrar alguns exemplos de corpo:

  • definir valor não vazio
{
"subscriber_id": {{subscriber_id}},
"field_id": {{field_id}},
"field_value": [1, 2, 3, "frutas"]
}
  • definir valor vazio
{
"subscriber_id": {{subscriber_id}},
"field_id": {{field_id}},
"field_value": []
}
  • limpar CUF com tipo array
{
"subscriber_id": {{subscriber_id}},
"field_id": {{field_id}},
"field_value": null
}

As capacidades da UI são ligeiramente limitadas, mas se necessário, você pode limpar CUF no menu de público.

Selecione os contatos que deseja modificar, clique no botão "Ações em massa" e depois escolha "Limpar campo personalizado de contato". Após aplicar, o CUF será limpo.

Casos de uso

Arrays podem ser usados para múltiplos casos de uso. O que os une todos: arrays são ótimos quando os dados com os quais você trabalha contêm um número desconhecido de elementos. Por exemplo:

  1. E-commerce - cada carrinho e pedido é único. Pedidos podem conter qualquer número de itens. Você pode presumir que um pedido médio contenha 2 ou 3 itens e mapear cada item individualmente, mas nesse caso, você pode perder alguns dados se seu cliente encomendar mais itens do que você previu em seu mapeamento.
  2. Bots baseados em NLU / NLP - serviços como [wit.ai] (http://wit.ai) analisam a entrada do usuário e enviam de volta intenções e entidades. E novamente, cada entrada do usuário é única. Arrays funcionam perfeitamente, não importa quantas entidades o serviço envie de volta.
  3. Perguntas de múltipla escolha - se você usar formulários / pesquisas para qualificar seus contatos, você pode estar familiarizado com perguntas de múltipla escolha. O número de opções que cada contato pode selecionar varia. É mais fácil armazená-los em arrays do que analisar os dados e criar um CUF separado para cada resposta.

Abaixo você pode encontrar dois fluxos demonstrando um caso de uso simples de e-commerce.

No fluxo chamado "Array", como esperado, foi usado um CUF com tipo array. O mapeamento e o bloco de condição são mais fáceis e rápidos de configurar, sem risco de perder dados, já que os arrays são projetados para armazenar tantos elementos quanto necessário.
[Clique aqui para verificar este fluxo]

No fluxo chamado "Múltiplos CUFs", o mesmo fluxo foi construído, mas sem arrays, apenas com CUFs simples de um elemento. Construir este fluxo requer um pouco mais de tempo (mais elementos de mapeamento, mais configurações de nós de condição) e pode levar à perda de alguns dados.
[Clique aqui para verificar este fluxo]