Agregador
Um agregador é um módulo que reúne vários bundles de dados em uma saída agregada. Ele acumula os bundles recebidos durante uma operação do módulo de origem e produz um bundle com um array: cada item corresponde a um bundle acumulado. O conteúdo de cada item depende do agregador e da configuração escolhida.
O Array aggregator é um exemplo desse tipo de módulo. Outros agregadores, como o que cria um arquivo compactado, produzem saídas específicas para sua finalidade.
Definir a origem da agregação
Em Source Module, escolha o módulo a partir do qual os bundles serão acumulados. Normalmente, essa origem é um iterador ou um módulo de busca que gera vários bundles.
Depois de salvar e fechar a configuração do agregador, o trecho entre a origem e o agregador aparece delimitado por uma área cinza. Essa marcação ajuda a visualizar quais módulos estão dentro do intervalo de agregação.
Separar os resultados por grupo
O campo Group by permite avaliar uma fórmula para cada bundle recebido. Em vez de uma única saída para todos os dados, o agregador produz um bundle para cada valor distinto da fórmula.
Cada saída contém:
- Key: o valor que identifica o grupo.
- Array: os dados agregados dos bundles cuja fórmula resultou naquele valor.
Assim, agrupar não significa perder a agregação: significa realizá-la separadamente para cada chave.
Decidir o que fazer quando não há dados
Por padrão, o agregador produz um resultado mesmo quando nenhum bundle chega até ele, por exemplo porque todos foram removidos por um filtro.
Se Stop processing after an empty aggregation estiver habilitado, uma agregação vazia não gera bundle de saída e o fluxo para nesse ponto. Escolha essa opção de acordo com o comportamento desejado para o cenário sem dados.
Preservar os campos que serão usados depois
Os bundles do módulo de origem e dos módulos intermediários não passam automaticamente pelo agregador. Portanto, seus campos não ficam disponíveis aos módulos posteriores apenas por terem existido antes da agregação.
Inclua explicitamente os itens necessários na configuração do agregador. No Array aggregator, isso pode ser feito em Aggregated fields. Esse cuidado é importante quando a próxima ação precisa de um identificador ou de outro valor produzido antes do agregador.
Exemplo oficial: compactar anexos de e-mail
A documentação apresenta um cenário que reúne os anexos de uma mensagem em um ZIP e o envia ao Dropbox:
- Email > Watch emails acompanha novas mensagens. Sua saída inclui Attachments[], o array de anexos.
- Email > Iterate attachments percorre o array e emite um bundle separado para cada anexo.
- Archive > Create an archive agrega os bundles do iterador e produz um bundle com o arquivo ZIP.
- Dropbox > Upload a file recebe o ZIP produzido pelo módulo Archive e o envia ao Dropbox.
A origem da agregação, nesse exemplo, é o módulo que itera os anexos. O arquivo resultante reúne os anexos acumulados naquele trecho do cenário.
Consulte a documentação de Email e Archive para os campos específicos desses aplicativos.
Referência
Esta explicação foi reorganizada a partir de Aggregator, na Central de Ajuda do Make, com conferência da página oficial em 26 de setembro de 2026. O exemplo é o da documentação; não representa um teste executado por este site.