Workflow Exit

Como salvar os data stores e os arquivos do File Store do Pipedream

Atualizado em 14 de outubro de 2026

A exportação do Pipedream salva a estrutura dos seus workflows: triggers, etapas, código e props. Ela não inclui os registros dos data stores nem os arquivos do File Store. O Pipedream apaga todos os dados do Workflows até 30 de abril de 2027, então esses dados precisam ser salvos separadamente.

Os workflows também param de funcionar em 31 de março de 2027, por isso qualquer exportação que rode como etapa de um workflow precisa acontecer antes disso. Veja o cronograma do encerramento.

Passo 1: identifique o que usa dados armazenados

Comece pelo relatório de migração gratuito. Ele sinaliza cada workflow cujo código usa um data store ou o File Store.

O dashboard de Data Stores do Pipedream, em pipedream.com/data-stores, mostra a mesma coisa pelo outro lado. Clique na seta ao lado do nome de um data store para listar os workflows vinculados a ele.

Se você exportou o seu projeto, o próprio ZIP de exportação, project_export-<project_id>.zip, também fica no File Store. Baixe-o junto com os outros arquivos. Veja como exportar workflows do Pipedream.

Passo 2: exporte os registros dos data stores

Um data store do Pipedream é um armazenamento chave-valor. Os valores podem ser qualquer dado serializável em JSON: strings, números, objetos, arrays e datas. Um mesmo data store pode ser compartilhado por vários workflows.

Data stores pequenos: copie pelo dashboard

O dashboard de Data Stores mostra todos os registros. Com poucas chaves, o mais rápido é copiar os valores à mão.

Data stores maiores: exporte com uma etapa de código

A documentação do Pipedream mostra como ler todos os registros em uma etapa Node.js com um iterador assíncrono. O exemplo oficial envia os registros em lotes com um HTTP POST e, por padrão, apaga cada chave depois de enviá-la. A versão abaixo envia os registros e não apaga nada:

import { axios } from "@pipedream/platform";

export default defineComponent({
  props: {
    dataStore: { type: "data_store" },
    url: { type: "string", label: "Destination URL" },
  },
  async run({ $ }) {
    let chunk = [];
    let sent = 0;
    const flush = async () => {
      await axios($, { method: "POST", url: this.url, data: chunk });
      sent += chunk.length;
      chunk = [];
    };
    for await (const [key, value] of this.dataStore) {
      chunk.push({ key, value });
      if (chunk.length === 100) await flush();
    }
    if (chunk.length) await flush();
    return { sent };
  },
});

Adicione esse código como etapa de um workflow novo, selecione o data store, informe a URL de destino e teste a etapa. Repita para cada data store. O Pipedream sugere começar com 512 MB de memória e um timeout de 60 segundos nas exportações, e aumentar esses valores para data stores maiores. Se cada valor for grande, diminua o tamanho dos lotes.

O destino pode ser qualquer endpoint HTTPS que você controle. A opção mais simples é um workflow temporário do n8n que receba os registros e os grave em uma Data Table (veja abaixo).

Atenção a duas coisas:

  • Datas viram strings. O JSON não tem um tipo de data, por isso as datas chegam como strings ISO.
  • Os tempos de expiração não são exportados. Um registro com TTL também pode expirar antes de você chegar até ele. Exporte cedo.

Passo 3: baixe os arquivos do File Store

Os File Stores só estão disponíveis no plano Advanced do Pipedream e nos superiores. Se o seu workspace nunca teve File Stores, não há arquivos para salvar.

Para baixar à mão, abra o projeto, selecione File Store no menu à esquerda e baixe cada arquivo.

Para muitos arquivos, use uma etapa Node.js. $.files.dir() lista os arquivos do File Store do projeto (por padrão, os da pasta raiz). $.files.open(path) abre um arquivo, e toUrl() retorna uma URL de onde você pode baixá-lo. Você pode enviar essas URLs para um workflow do n8n que baixe cada arquivo com um nó HTTP Request e o envie para o seu armazenamento. Faça o download na hora, em vez de guardar as URLs para depois.

Passo 4: escolha onde guardar os dados no n8n

Opção Indicado para Cuidado com
Dados estáticos do workflow Estado pequeno de um único workflow: cursores, IDs do último item visto, contadores Só valem para um workflow; não são salvos em execuções manuais de teste
Data Tables do n8n Registros compartilhados pelos workflows de um projeto; dados chave-valor que você quer ver e editar Por padrão, 200 MiB no total por instância; sem acesso direto pelo nó Code
Banco de dados externo ou S3 Grandes volumes de dados, gravações frequentes, dados usados por outros sistemas e arquivos Você administra ou paga pelo serviço

Dados estáticos do workflow

É a opção que os workflows convertidos usam por padrão. Quando o Workflow Exit converte uma etapa de código, a camada de compatibilidade substitui cada data store por dados estáticos do workflow. Eles ficam guardados sob uma chave com o nome da etapa e da prop, de modo que get, set, delete, has e keys continuam funcionando sem mudanças no código.

A documentação do n8n impõe alguns limites:

  • Os dados estáticos "devem ser pequenos".
  • Eles não são salvos quando você testa um workflow. O workflow precisa estar publicado e ser acionado por um trigger ou webhook.
  • Eles só estão disponíveis no nó Code em JavaScript, não no de Python.
  • Eles "podem se comportar de forma pouco confiável em execuções de workflow de alta frequência".

Os dados estáticos globais pertencem a um único workflow. Se vários workflows do Pipedream compartilhavam um data store, no n8n eles não vão compartilhar dados estáticos. Para isso, use uma Data Table.

Muitos workflows podem começar com o estado vazio, por exemplo, quando um cursor ou um ID de "último item visto" se reconstrói sozinho na primeira execução. Se o seu precisa dos valores existentes, adicione um nó Code temporário que grave os registros exportados nos dados estáticos quando eles estiverem faltando. Deixe-o rodar uma vez em produção e depois remova-o.

Data Tables do n8n

Segundo a documentação do n8n, as Data Tables armazenam dados estruturados dentro do próprio n8n, sem necessidade de um banco de dados externo.

  • Criar uma tabela. Use a aba Data tables do seu projeto (do zero ou importando um CSV), o nó Data Table ou a API do n8n.
  • Tipos de coluna. Boolean, Date, Number e String.
  • Operações com linhas. O nó Data Table faz Insert, Get, Update, Upsert e Delete de linhas e pode verificar "If Row Exists" ou "If Row Does Not Exist".
  • Compartilhamento. As tabelas criadas em um projeto ficam disponíveis para todos os membros desse projeto.
  • Tamanho. Por padrão, todas as tabelas de uma instância compartilham um limite de 200 MiB. O n8n avisa quando o uso chega a 80%. Passar do limite impede adicionar dados manualmente e causa erros na execução dos workflows. No n8n self-hosted, altere o limite com N8N_DATA_TABLES_MAX_SIZE_BYTES.
  • Acesso pelo nó Code. Um nó Code não consegue ler nem gravar diretamente em uma Data Table.

Para espelhar um armazenamento chave-valor, crie uma tabela com uma coluna key e uma coluna value, ambas do tipo String, e guarde os objetos como texto JSON. Se todos os valores forem objetos planos, você pode, em vez disso, dar a cada campo a sua própria coluna.

Para carregar os registros, converta a sua exportação para CSV e importe-a, ou monte um pequeno workflow de importação:

  1. Um nó Webhook (POST). Publique o workflow e use a URL de produção dele como destino no passo 2.
  2. Um nó Split Out sobre body, para que cada registro vire um item separado.
  3. Um nó Data Table com a operação Upsert, usando key como coluna de correspondência.

O nó Webhook aceita payloads de até 16 MB, então lotes de 100 registros costumam funcionar bem. Apague o workflow de importação quando terminar.

Nos workflows convertidos, troque as chamadas aos dados estáticos por nós Data Table: um Get antes do nó Code e um Upsert depois dele.

Banco de dados externo ou S3

Tire os dados do n8n quando eles forem grandes, gravados muitas vezes por segundo ou usados por outros sistemas. O n8n tem nós para os bancos de dados mais comuns, como Postgres, MySQL e Redis, e um nó AWS S3 para armazenamento de objetos.

O n8n trata os arquivos como dados binários enquanto um workflow está rodando. Para armazenamento de longo prazo, guarde os seus arquivos do File Store no S3, no Google Drive ou em um serviço parecido, e busque-os com o nó correspondente ou com um nó HTTP Request quando um workflow precisar deles. No n8n self-hosted, o nó Read/Write Files from Disk também consegue ler e gravar arquivos na máquina onde o n8n roda.

Checklist

  • Rode o relatório gratuito e anote os workflows que usam data stores ou o File Store.
  • Baixe do File Store o ZIP de exportação do projeto.
  • Exporte todos os data stores antes de 31 de março de 2027.
  • Baixe todos os arquivos do File Store.
  • Escolha dados estáticos, uma Data Table ou armazenamento externo para cada conjunto de dados.
  • Carregue os dados, teste o workflow convertido e depois faça a virada.

A migração completa, da exportação até a virada, está explicada no guia de migração do Pipedream para o n8n.

Perguntas frequentes

A exportação de workflows do Pipedream inclui os data stores?+

Não. A exportação do Pipedream contém a estrutura e a configuração dos seus workflows. O histórico de eventos, os data stores e os arquivos do File Store não são incluídos, então você precisa salvá-los separadamente.

Quando o Pipedream vai apagar os meus data stores e arquivos?+

Todos os dados do Workflows serão apagados permanentemente até 30 de abril de 2027. Os workflows param de funcionar em 31 de março de 2027, então qualquer exportação que rode como etapa de um workflow precisa ser feita antes disso.

O Workflow Exit copia os registros dos meus data stores para o n8n?+

Não. Ele converte a lógica dos workflows. No código convertido, as leituras e gravações nos data stores continuam funcionando graças aos dados estáticos do workflow do n8n, mas exportar os registros e carregá-los no n8n fica por sua conta.

Um nó Code do n8n consegue ler uma Data Table?+

Não diretamente. A documentação do n8n diz que o acesso programático direto às Data Tables a partir de um nó Code não é suportado. Em vez disso, coloque um nó Data Table antes ou depois do nó Code.

Quantos dados cabem nas Data Tables do n8n?+

Por padrão, todas as Data Tables de uma instância do n8n compartilham um limite total de 200 MiB. No n8n self-hosted, você pode alterar esse limite com a variável de ambiente N8N_DATA_TABLES_MAX_SIZE_BYTES.

O que acontece com os registros que tinham um tempo de expiração (TTL)?+

A expiração não faz parte do valor armazenado, então ela não é mantida. Se a sua lógica depende dela, salve um valor expires_at com cada registro no n8n e, no workflow, verifique esse valor ou apague os registros vencidos.