Ao trabalhar com arrays em ações de Código, você pode encontrar dois desafios comuns:
- Arrays passados como strings — dados de sistemas externos ou de etapas anteriores chegam como uma string em vez de um array real
- Não é possível selecionar itens individualmente — você só consegue selecionar o array inteiro, não campos específicos dentro dele
Ambos podem ser resolvidos com um nó de Código.
Analisar arrays a partir de strings
Com frequência, arrays são passados entre etapas do fluxo de trabalho como strings ou JSON, em vez de arrays nativos. Isso acontece quando:
- Recebendo dados de APIs externas via HTTP Request
- Processando payloads de webhooks
- Transmitindo dados entre etapas do fluxo de trabalho
Solução: Adicione este padrão no início da sua ação de Código:
export const main = async (params: {
users: any;
}): Promise<object> => {
const { users } = params;
// Handle input that may come as a string or an array
const usersFormatted = typeof users === "string" ? JSON.parse(users) : users;
// Now you can safely work with usersFormatted as an array
return {
users: usersFormatted.map((user) => ({
...user,
activityStatus: String(user.activityStatus).toUpperCase(),
})),
};
};
A linha chave typeof users === "string" ? JSON.parse(users) : users verifica se a entrada é uma string, faz o parse se necessário ou a utiliza diretamente se já for um array.
Um webhook pode retornar um array como answers: [...], mas, nas etapas seguintes do fluxo de trabalho, você só consegue selecionar o array inteiro — não itens individuais dentro dele.
Solução: Adicione um nó de Código para extrair campos específicos e retorná-los como um objeto estruturado:
export const main = async (params: {
answers: any;
}): Promise<object> => {
const { answers } = params;
// Handle input that may come as a string or an array
const answersFormatted = typeof answers === "string"
? JSON.parse(answers)
: answers;
// Extract specific fields from the array
const firstname = answersFormatted[0]?.text || "";
const name = answersFormatted[1]?.text || "";
return {
answer: {
firstname,
name
}
};
};
O nó de Código retorna um objeto estruturado em vez de um array. Nas etapas subsequentes, agora você pode selecionar campos individuais como answer.firstname e answer.name no seletor de variáveis.
Estamos trabalhando ativamente para tornar o tratamento de arrays mais fácil em atualizações futuras.
Clique no ícone quadrado no canto superior direito do editor de código para exibi-lo em tela cheia — útil, já que a largura padrão do editor é limitada.