Como migrar seus workflows do Pipedream para o n8n
Atualizado em 13 de outubro de 2026
O n8n não consegue ler uma exportação do Pipedream diretamente, então migrar significa converter cada workflow para o formato JSON do próprio n8n: exportar os seus projetos do Pipedream, mapear cada trigger, etapa e expressão para um nó do n8n, reescrever as etapas de código ou envolvê-las em uma camada de compatibilidade, recriar as credenciais e, por fim, importar e fazer a virada. Planeje terminar antes que o Pipedream Workflows pare de funcionar em 31 de março de 2027, porque todos os dados do Workflows serão apagados até 30 de abril de 2027.
Os passos abaixo valem tanto para quem converte manualmente quanto para quem usa uma ferramenta. A última seção explica o que o Workflow Exit automatiza.
Antes de começar
Você precisa de três coisas:
- As definições dos workflows. O ZIP oficial de exportação do projeto, um repositório do GitHub Sync ou o JSON dos workflows obtido pela API REST do Pipedream. Veja como exportar workflows do Pipedream.
- Uma instância do n8n. n8n Cloud ou n8n 2.x self-hosted (no seu próprio servidor). A escolha depende principalmente das suas etapas de código (passo 3).
- Acesso a cada app conectado. As credenciais não são transferidas, então alguém precisa fazer login no Slack, no Google, no Stripe e nos demais apps para autorizar o n8n.
O Pipedream Workflows está em modo de manutenção desde 30 de setembro de 2026. O Workflows não vai receber mais nenhuma novidade, então não há motivo para esperar.
Passo 1: exporte cada projeto do Pipedream
No Pipedream, abra o projeto, selecione Settings, clique em Export Workflows e baixe o project_export-<project_id>.zip do File Store do projeto (documentação do Pipedream). O ZIP contém um manifest.json e um arquivo JSON por workflow com os triggers, as etapas, o código, as props configuradas e o conteúdo das ramificações.
Leia o manifest.json antes de qualquer outra coisa. A lista warnings dele cita cada prop secreta que foi substituída por <redacted>, e o campo status mostra os workflows que ficaram de fora porque nunca passaram por deploy ou porque a exportação atingiu o limite de 500 workflows ou 256 MB.
Passo 2: faça o inventário e a triagem
Antes de converter qualquer coisa, separe os workflows em três grupos:
- Simples: trigger HTTP ou de agendamento (schedule), ações de apps, etapas de código pequenas sem imports de npm.
- Precisam de retrabalho: etapas de código que importam pacotes npm, usam data stores, chamam
$.flow.delayou$.flow.suspend, ou leem no código os tokens de contas conectadas. - Manuais: triggers de e-mail, fontes de eventos (event sources) privadas, componentes privados cujo código não está na exportação.
O relatório de migração gratuito faz essa triagem para você. Arraste o ZIP para a página: o relatório classifica cada workflow e lista os pacotes npm, as variáveis de ambiente, os segredos ocultados e as contas conectadas envolvidas. Ele roda no seu navegador, e a exportação não é enviada para nenhum servidor.
Passo 3: escolha entre n8n Cloud e self-hosted
Essa decisão gira principalmente em torno do npm. No n8n Cloud, o nó Code só pode usar dois módulos, crypto e moment, e código Python não consegue importar nenhuma biblioteca, nem mesmo a biblioteca padrão. O n8n self-hosted pode liberar qualquer pacote instalado por meio de NODE_FUNCTION_ALLOW_EXTERNAL (documentação do n8n).
Se a maior parte dos seus imports são clientes HTTP (axios, got, node-fetch) e bibliotecas de datas, o n8n Cloud dá conta: o n8n já vem com this.helpers.httpRequest e Luxon. Se você depende de SDKs, parsers ou bibliotecas Python, hospedar o n8n por conta própria poupa muita reescrita. Os detalhes estão em etapas de código do Pipedream no n8n Cloud (em inglês).
Passo 4: mapeie os triggers
| Trigger do Pipedream | Nó do n8n | Observações |
|---|---|---|
| HTTP / Webhook | Webhook | URL nova. Defina Respond como "Using 'Respond to Webhook' Node" se o workflow chama $.respond. |
| Schedule (a cada N, ou cron) | Schedule Trigger | Usa o fuso horário do workflow ou, se nenhum estiver definido, o da instância. |
| Form | Form Trigger do n8n | A URL do formulário muda. Confira os nomes dos campos e quais são obrigatórios. |
| Email (endereço exclusivo do Pipedream) | IMAP Email ou Gmail Trigger | O endereço muda. Passo manual. |
| Fonte de eventos de um app (ex.: nova linha, nova issue) | O nó trigger desse app no n8n, se existir | Se não existir, um Schedule Trigger mais um HTTP Request que consulta a API periodicamente. |
| Fonte personalizada privada | Nenhum | Recrie manualmente. Só a chave do componente é exportada. |
Passo 5: mapeie etapas, ramificações e expressões
Este é o mapeamento central de conceitos. A maior parte é mecânica quando você conhece os equivalentes.
| Conceito do Pipedream | Equivalente no n8n | Observações |
|---|---|---|
steps.trigger.event |
$('trigger').first().json |
Em webhooks, o corpo da requisição fica em .body. |
steps.x.$return_value |
Item de saída do nó x |
Um nó Code convertido pode manter o valor em uma chave $return_value. |
$.export("name", value) |
Um campo no item de saída do nó | Leia com $('x').first().json.name. |
$.respond({ status, headers, body }) |
Nó Respond to Webhook | O nó Webhook precisa estar configurado para responder por meio dele. |
$.flow.exit() / ação End Workflow |
return [] em um nó Code, ou um nó If |
Sem itens de saída, os nós seguintes não rodam. |
$.flow.delay(ms) / ação Delay |
Nó Wait, Resume: After Time Interval | Para $.flow.delay no código, divida a etapa no ponto da chamada. |
$.flow.suspend() |
Nó Wait, Resume: On Webhook Call | Envie $execution.resumeUrl onde você usava a URL de retomada do Pipedream. |
$.flow.trigger(workflowId, payload) |
Nó Execute Sub-workflow | O workflow chamado precisa de um Execute Sub-workflow Trigger. |
| Bloco If/Else | Nó If (dois ramos) ou nó Switch (mais) | O Pipedream executa o primeiro ramo cuja condição é atendida. |
| Bloco Switch | Nó Switch | Mantenha a ordem das regras: ela decide qual ramo roda. |
Data store (prop data_store, $.service.db) |
Dados estáticos do workflow (static data) ou Data Tables | Os dados estáticos são de cada workflow; as Data Tables são compartilhadas dentro de um projeto. |
process.env.NAME |
$vars.NAME ou $env.NAME |
$vars exige um plano com Variables; $env só existe no self-hosted. |
Conta conectada (this.slack.$auth) |
Credencial do n8n em um nó | Nós Code não conseguem ler credenciais. |
Prop secreta (<redacted>) |
Credencial ou Variable | Os valores precisam ser digitados de novo. |
$.send.http / $.send.email |
Nó HTTP Request / Send Email | |
Ação do registro de componentes (ex.: slack-send-message) |
O nó do app no n8n, ou HTTP Request | Veja as notas por app (em inglês). |
As expressões nas props configuradas seguem o mesmo padrão. Uma prop do Pipedream como esta:
{{steps.trigger.event.body.email}}
vira esta expressão do n8n, supondo que o nó Webhook se chame trigger:
{{ $('trigger').first().json.body.email }}
Dê aos nós do n8n os mesmos nomes das etapas do Pipedream. Isso deixa as expressões legíveis e faz cada referência $('step_name') corresponder exatamente a uma etapa.
Passo 6: converta as etapas de código
Cada etapa Node.js do Pipedream é um export default defineComponent({ ... }) com um método run({ steps, $ }). Um nó Code do n8n é o corpo de uma função que lê os nós anteriores com $('name') e precisa retornar um array de itens, cada um no formato { json: { ... } }. A documentação do nó Code do n8n também avisa que instruções import não são suportadas, então os módulos são carregados com require.
Uma etapa pequena:
// Pipedream
export default defineComponent({
async run({ steps, $ }) {
const email = steps.trigger.event.body.email;
$.export("domain", email.split("@")[1]);
return { email };
},
});
// n8n Code node (Run Once for All Items)
const email = $('trigger').first().json.body.email;
return [{ json: { domain: email.split("@")[1], $return_value: { email } } }];
Etapas maiores exigem mais: trocar os clientes HTTP por this.helpers.httpRequest, as bibliotecas de datas por Luxon, process.env por Variables e os data stores por dados estáticos. Há exemplos de antes e depois para cada caso em o que quebra nas etapas de código no n8n Cloud (em inglês).
Passo 7: recrie credenciais, segredos e variáveis
Nenhum segredo sobrevive à exportação. Para cada workflow:
- Crie uma credencial do n8n para cada conta conectada e selecione-a nos nós correspondentes.
- Digite de novo as props secretas ocultadas, em uma credencial ou como Variable do n8n. As Variables estão disponíveis no n8n Cloud Pro e Enterprise e no self-hosted Business e Enterprise.
- Leve as variáveis de ambiente do Pipedream para Variables, ou para
$envno n8n self-hosted. Desde o n8n 2.0,N8N_BLOCK_ENV_ACCESS_IN_NODEvem comotruepor padrão, então os nós Code não conseguem ler variáveis de ambiente, a menos que você mude essa configuração (breaking changes do n8n 2.0).
Por design, os nós Code do n8n não acessam credenciais. Se uma etapa de código do Pipedream usava this.github.$auth.oauth_access_token, a solução limpa é levar essa chamada de API para um nó HTTP Request que use uma credencial do GitHub no n8n.
Passo 8: importe no n8n
O n8n oferece várias formas de importar (documentação de exportação e importação):
- Editor: menu do workflow, Import from File, um JSON por vez.
- CLI do servidor (self-hosted):
n8n import:workflow --input=workflow.json. O n8n agora recomenda a n8n CLI, uma ferramenta separada, e o formato de pacotes dela para mover workflows entre instâncias, e pretende descontinuar os comandos de importação da CLI do servidor em uma data ainda não definida. - API REST pública:
POST /api/v1/workflowscom o headerX-N8N-API-KEY. A API do n8n está disponível no n8n Cloud Starter, Pro e Enterprise e em todas as edições self-hosted, mas não no teste gratuito do Cloud.
Os workflows importados começam como não publicados. No n8n 2.x, você publica um workflow em vez de ativá-lo com um botão.
Passo 9: teste, rode em paralelo e faça a virada
- Publique um workflow por vez. Use primeiro a URL de teste do nó Webhook e depois a URL de produção.
- Reenvie eventos de exemplo que você salvou e compare as saídas com o que o Pipedream gerava. O histórico de eventos não vem na exportação, então salve exemplos antes de precisar deles.
- Aponte cada serviço que envia webhooks para a nova URL de produção do n8n.
- Acompanhe a lista de Executions do n8n por alguns dias e depois desative o workflow no Pipedream.
- Lembre-se de que os dados estáticos do workflow só são salvos em workflows publicados iniciados por um trigger ou webhook, não em execuções manuais de teste (documentação do n8n). Contadores e chaves de deduplicação vão parecer vazios enquanto você testa no editor.
Guias para cada parte da migração
Todos estes guias estão em inglês:
- Exportar no plano Free ou Basic: GitHub Sync, a API REST e uma CLI local quando o botão Export não está disponível.
- Repositórios do GitHub Sync: o que o
workflow.yamlcontém e como convertê-lo. - Blocos if/else, switch e filtros: If, Switch, Merge e Loop Over Items, e como as regras são mantidas.
- Triggers HTTP e webhooks: URLs novas, autorização e respostas personalizadas.
- Agendamentos: cron, intervalos e fusos horários.
- Etapas de código em Python: o que roda no n8n Cloud e no n8n self-hosted.
- Etapas de código Node.js no n8n Cloud e data stores e arquivos do File Store.
O que o Workflow Exit automatiza
O Workflow Exit é uma ferramenta independente, sem vínculo com o Pipedream, a Workday ou o n8n. Ele automatiza os passos 2 a 6 e o passo 8, e transforma o passo 7 em um checklist.
Relatório gratuito. Carregue o ZIP de exportação, um repositório do GitHub Sync ou o JSON de workflows da API REST. O relatório roda inteiramente no seu navegador e classifica cada workflow com uma cor de semáforo (converte automaticamente, precisa de reescrita com IA ou de uma conferida rápida, ou exige trabalho manual), com os triggers e seus equivalentes no n8n, as ações com e sem mapeamento automático, os pacotes npm e se o n8n Cloud consegue executá-los, as variáveis de ambiente, os segredos ocultados, as contas conectadas a recriar, os data stores e os dados do File Store a salvar antes de 30 de abril de 2027, uma estimativa de horas e um destino recomendado.
Conversão paga. Para cada workflow, você recebe um JSON de workflow do n8n pronto para importar:
- Webhook, Schedule Trigger ou Form Trigger para o trigger.
- Nós If e Switch para os blocos if/else e switch, um nó Wait para as esperas e Respond to Webhook para
$.respond. - Etapas de código convertidas em nós Code do n8n com uma camada de compatibilidade que recria
steps,$.export,$.flow.exit, as props dethis, os data stores (sobre os dados estáticos do workflow) e o axios do@pipedream/platform(sobrethis.helpers.httpRequest). A camada foi testada executando workflows convertidos no n8n 2.x. - Expressões de props reescritas, por exemplo
{{steps.trigger.event.body.email}}para{{ $('trigger').first().json.body.email }}. - Reescrita opcional com IA das etapas de código que importam pacotes npm que o n8n Cloud não consegue carregar.
- Um
CHECKLIST.mdcom as credenciais a criar, as Variables do n8n para os segredos ocultados, as URLs de webhook a trocar e os passos da virada, além de um README e um script de importação em massa que usa a API pública do n8n.
O que ele não faz: não move credenciais, conteúdo de data stores nem histórico de eventos, não mantém as suas URLs de webhook, e triggers de e-mail e fontes privadas continuam manuais.
O preço é um pagamento único: Starter, US$ 49 para até 25 workflows; Team, US$ 149 para até 100; Agency, US$ 399 para até 500; o primeiro workflow é grátis. Detalhes na página de preços. Se você ainda está decidindo para onde ir, leia Pipedream vs n8n e a comparação de alternativas (ambos em inglês), ou comece pelo relatório gratuito e deixe os números decidirem.
Perguntas frequentes
O n8n consegue importar uma exportação do Pipedream diretamente?+
Não. Em outubro de 2026, o n8n não tem nenhum importador para exportações do Pipedream. O n8n importa o próprio JSON de workflow (nós e conexões), então cada workflow do Pipedream precisa antes ser convertido para esse formato, manualmente ou com um conversor.
As etapas de código do Pipedream rodam no n8n sem alterações?+
Não do jeito que estão escritas. Os nós Code do n8n não oferecem steps, $.export, $.respond nem props de data store, não aceitam instruções import e, no n8n Cloud, só conseguem fazer require de crypto e moment. O código precisa ser reescrito ou rodar sobre uma camada de compatibilidade que recrie os helpers do Pipedream.
As URLs dos meus webhooks continuam as mesmas depois da mudança para o n8n?+
Não. Os triggers HTTP do Pipedream usam URLs *.m.pipedream.net ou um domínio personalizado do Pipedream. Os nós Webhook do n8n recebem URLs novas na sua instância do n8n, então todo serviço que envia webhooks precisa ser atualizado durante a virada.
É melhor migrar para o n8n Cloud ou para o n8n self-hosted?+
O n8n Cloud funciona bem se as suas etapas de código só fazem chamadas HTTP, lidam com datas e usam JavaScript puro. Se muitas etapas dependem de pacotes npm, SDKs ou bibliotecas Python, o n8n self-hosted permite instalar esses módulos e liberá-los com NODE_FUNCTION_ALLOW_EXTERNAL.
Como levo as contas conectadas do Pipedream para o n8n?+
Não dá para transferi-las. A exportação só contém um authProvisionId, e o Pipedream apaga os tokens até 30 de abril de 2027. Crie no n8n uma credencial correspondente para cada app e selecione-a nos nós que precisam dela.
Quanto custa uma conversão automática do Pipedream para o n8n?+
O relatório do Workflow Exit é gratuito. A conversão é um pagamento único: Starter, US$ 49 para até 25 workflows; Team, US$ 149 para até 100; Agency, US$ 399 para até 500. O primeiro workflow é convertido de graça.