Quando usar o Iterador
| Cenário | Exemplo |
|---|---|
| Processar resultados da pesquisa | Enviar e-mail a cada pessoa encontrada |
| Lidar com arrays de Webhooks | Criar registos para cada item por ordem |
| Atualizações em massa | Atualizar vários registos com valores calculados |
| Notificações | Alertar várias pessoas sobre um evento |
Compreender o Iterador
O Iterador espera um array como entrada. Em seguida:- Obtém o primeiro item do array
- Executa todas as ações dentro do Iterador com esse item
- Passa para o item seguinte
- Repete até que todos os itens sejam processados
Configuração básica
Exemplo: Enviar e-mail a todos nos resultados da pesquisa
Objetivo: Encontrar todos os contactos numa empresa específica e enviar a cada um um e-mail personalizado.Etapa 1: Pesquisar registos
- Adicione a ação Pesquisar Registos
- Objeto: Pessoas
- Filtro: Empresa igual a “Acme Inc”
- Isto devolve um array de pessoas
Etapa 2: Verificar se existem resultados
- Adicione a ação Filtro
- Condição:
{{searchRecords.length}}é maior do que 0 - Isto evita erros do Iterador em resultados vazios
Etapa 3: Adicionar um Iterador
- Adicione a ação Iterador
- Entrada do array: selecione
{{searchRecords}} - Isto cria um ciclo
Etapa 4: Adicionar ações dentro do Iterador
As ações colocadas após o Iterador são executadas para cada item:- Adicione a ação Enviar e-mail (dentro do Iterador)
- Para:
{{iterator.currentItem.email}} - Assunto: Olá
{{iterator.currentItem.firstName}}! - Corpo: Mensagem personalizada utilizando os campos do item atual
Resultado
Se Pesquisar Registos devolver 5 pessoas, o Iterador:- Envia e-mail para a pessoa 1
- Envia e-mail para a pessoa 2
- … continua para todas as 5
Aceder aos dados do item atual
Dentro do Iterador, use{{iterator.currentItem}} para aceder ao registo atual:
| Variável | Descrição |
|---|---|
{{iterator.currentItem}} | Todo o objeto do registo atual |
{{iterator.currentItem.id}} | ID do registo |
{{iterator.currentItem.email}} | Campo de e-mail |
{{iterator.currentItem.company.name}} | Nome da empresa relacionada |
{{iterator.index}} | Posição atual no array (base 0) |
Padrões comuns
Atualizar vários registos
Objetivo: Marcar todas as tarefas em atraso como “Late”Criar registos a partir de um array
Objetivo: O Webhook recebe um pedido com vários itens, criar um registo para cada umProcessamento condicional dentro do ciclo
Objetivo: Enviar e-mail apenas para contactos com e-mails válidosResolução de Problemas
”O Iterador espera um array”
Causa: Passou um único registo em vez de um array. Correção: Certifique-se de que está a passar o resultado de Pesquisar Registos ou um campo do tipo array, e não um único registo.O Iterador não é executado
Causa: O array está vazio. Correção: Adicione um Filtro antes do Iterador para verificar o tamanho do array:Ações executadas vezes demais
Causa: Pesquisar Registos devolveu mais registos do que o esperado. Correção:- Adicione filtros mais específicos a Pesquisar Registos
- Defina um limite em Pesquisar Registos (máx. 200)
- Adicione um Filtro dentro do Iterador para condições adicionais
Considerações de desempenho
- Utilização de créditos: Cada iteração consome créditos pelas suas ações
- Tempo: Arrays grandes demoram mais a processar
- Limites: Considere agrupar em lotes operações muito grandes
- Limites de taxa: Chamadas a APIs externas podem atingir limites de taxa com muitas iterações
Melhores Práticas
- Verifique sempre o tamanho do array antes do Iterador para evitar erros
- Adicione filtros dentro dos ciclos quando nem todos os itens precisam de processamento
- Renomeie a etapa do seu Iterador para descrever o que está a percorrer
- Teste com arrays pequenos antes de processar conjuntos de dados grandes
- Monitorize as execuções dos fluxos de trabalho para garantir que as iterações se concluam conforme o esperado