Campos múltiplos — telefones, e-mails, etiquetas — armazenam vários valores ao mesmo tempo, e os robôs também retornam listas: por exemplo, as partes de uma string dividida. As ações nativas dos processos de negócios do Bitrix24 lidam mal com listas: a inserção cola todos os valores em uma única string, e a gravação em um campo múltiplo apaga o que havia nele. Cinco robôs cobrem o trabalho com arrays: pegar um elemento por índice, contar os elementos, verificar a presença de um valor, adicionar e remover um valor de campo múltiplo.
De onde vêm os arrays no processo de negócios?
Três fontes. Os campos múltiplos das entidades: telefones e e-mails do contato, campos de usuário com o atributo «múltiplo» — etiquetas, categorias, lista de filiais. As variáveis múltiplas do processo, nas quais os valores se acumulam ao longo dos ramos. E os resultados de outros robôs: a divisão de uma string por separador retorna uma lista de partes, a extração por padrão — uma lista de coincidências. De forma nativa, dá para fazer pouco com essa lista: a inserção em texto colará os valores por vírgula, e a condição verificará a presença pela colagem. Pegar justamente o segundo telefone, contar as etiquetas ou acrescentar com cuidado um valor sem tocar nos demais — já são tarefas para os robôs abaixo.
Como pegar o primeiro, o último ou o N-ésimo elemento?
O robô «Obter elemento do array por índice» recebe um array de valores e um índice: 0 — o primeiro elemento, 1 — o segundo, −1 — o último, −2 — o penúltimo. Saída: o elemento e o indicador «O elemento existe» (Y/N); se o índice estiver fora dos limites do array, retorna um valor vazio e o indicador N — o processo não para, e o ramo da condição trata a falta de dados. Combinações típicas: dividiu a string com o nome completo por espaço — pegou o primeiro elemento como sobrenome; dividiu o endereço por vírgula — pegou o último elemento como número da casa; da lista de coincidências de uma expressão regular pegou a primeira. O resultado é gravado em um campo simples comum ou em uma variável para os passos seguintes.
Como contar os elementos e verificar a presença de um valor?
Dois robôs-pergunta. O «Tamanho do array / quantidade de elementos» retorna a quantidade e o indicador «O array está vazio» (Y/N); strings vazias por padrão não são contadas — uma posição vazia acidental em um campo múltiplo não estraga a contagem. O «Verificar a presença de um valor no array» procura a coincidência exata do elemento — não uma substring — sem diferenciar maiúsculas de minúsculas, e uma opção ativa a comparação estrita. Saída: o indicador «Encontrado» (Y/N) e o índice da primeira coincidência, menos um se não houver coincidências. Aplicação nas condições do processo: «o negócio já tem a etiqueta VIP — pular a concessão do desconto», «o contato tem zero telefones — tarefa para o gerente completar a ficha antes de passar à campanha de ligações».
Como adicionar um valor a um campo múltiplo sem apagar os demais?
A principal dor dos campos múltiplos: a alteração nativa do documento grava o campo por inteiro e, ao adicionar uma etiqueta, é fácil apagar as existentes. O robô «Adicionar valor a um campo múltiplo» acrescenta o valor com cuidado: lê o conteúdo atual do campo da entidade e adiciona o novo aos existentes. Entrada: o tipo da entidade — negócio, contato, empresa ou lead —, o ID da entidade por inserção a partir do documento atual, o código do campo (por exemplo, UF_CRM_TAGS ou PHONE) e o próprio valor. A opção «não adicionar se já existir» está ativada por padrão: a reexecução do processo não gera duplicatas do valor. Saída: o indicador «Sucesso» (Y/N) e a quantidade final de elementos no campo.
Como remover um valor de um campo múltiplo?
A operação inversa — tirar uma etiqueta, remover um telefone obsoleto. Manualmente, isso significa abrir a ficha e editar o campo; com a ação nativa — reescrever o campo por inteiro com todos os riscos. O robô «Remover valor de um campo múltiplo» recebe o tipo da entidade, o ID, o código do campo e o valor a remover. Todas as ocorrências desse valor são removidas, e os demais elementos permanecem no lugar. Saída: o indicador «Sucesso» (Y/N), quantas ocorrências foram removidas e a quantidade final de elementos no campo. Receita: o negócio foi fechado com sucesso — o processo tira da empresa a etiqueta «em atendimento» e, com o robô vizinho de adição, acrescenta a etiqueta «cliente»; a ficha sempre reflete o status atual sem edição manual.
Conclusão
Cinco robôs cobrem o ciclo de vida do array: pegar um elemento — «Obter elemento do array por índice», contar — «Tamanho do array / quantidade de elementos», verificar — «Verificar a presença de um valor no array», alterar o campo múltiplo — «Adicionar valor a um campo múltiplo» e «Remover valor de um campo múltiplo». Todos estão no catálogo da Roboteka, gratuitos a partir do Bitrix24.Marketplace. Não há a operação com arrays de que você precisa — descreva a tarefa, fazemos o robô de graça.