Guía · actualizada en octubre de 2026
Cómo exportar tus data stores de Pipedream antes del 30 de abril de 2027
Respuesta corta. El export de flujos de Pipedream no incluye los data stores, y todos los datos de Workflows se borran el 30 de abril de 2027. Pegá el paso de código de abajo, que solo lee, en un flujo de Pipedream: te baja todos los registros de un data store en un archivo .datastore.json. Soltá ese archivo junto con tu export en MigrateFlows y tus flujos de n8n vienen con los datos ya cargados.
Paso a paso
- En Pipedream, creá un flujo nuevo con un disparador HTTP / Webhook.
- En la configuración del disparador, poné HTTP Response en Return a custom response from your workflow.
- Agregá un paso de código Node.js y pegá el código de abajo.
- En el paso, elegí tu data store, escribí su nombre tal como aparece en Pipedream → Data Stores, y elegí una clave de acceso (cualquier contraseña).
- Deploy, y después abrí la URL del disparador en el navegador agregando
?key=y tu clave. Se baja el archivo. - Repetí con cada data store: cambiá la selección y el nombre, publicá y volvé a abrir la URL. Cuando termines, borrá el flujo.
El código
// MigrateFlows data store exporter for Pipedream. Read-only: it never changes or deletes your records.
// 1. Create a workflow with an HTTP trigger and set its HTTP Response to "Return a custom response from your workflow".
// 2. Add a Node.js code step, paste this code, pick your data store, type its name and choose an access key.
// 3. Deploy, then open the trigger URL with ?key=YOUR_ACCESS_KEY in your browser: the file downloads.
// 4. Repeat for each data store (change the selection and the name), then delete the workflow.
export default defineComponent({
props: {
dataStore: { type: "data_store" },
storeName: {
type: "string",
label: "Data store name",
description: "Exactly as it appears in Pipedream → Data Stores",
},
accessKey: {
type: "string",
label: "Access key",
description: "Any password you choose. Open the trigger URL with ?key=<this value>",
},
},
async run({ steps, $ }) {
const query = (steps.trigger && steps.trigger.event && steps.trigger.event.query) || {};
if (query.key !== this.accessKey) {
await $.respond({ status: 403, body: "Wrong or missing ?key=" });
return $.flow.exit("wrong access key");
}
const records = {};
let count = 0;
for await (const [key, value] of this.dataStore) {
records[key] = value;
count++;
}
const file = {
migrateflows: "pipedream-data-store",
version: 1,
name: this.storeName,
exportedAt: new Date().toISOString(),
count,
records,
};
const filename = `${String(this.storeName).replace(/[^\w.-]+/g, "_")}.datastore.json`;
await $.respond({
status: 200,
headers: {
"Content-Type": "application/json",
"Content-Disposition": `attachment; filename="${filename}"`,
},
body: JSON.stringify(file, null, 2),
});
return { name: this.storeName, count };
},
});
También en GitHub: davobene/migrateflows. Los comentarios del código están en inglés.
Para tener en cuenta
- Solo lee. Nunca cambia ni borra registros. (El ejemplo de export de la documentación de Pipedream borra cada clave después de mandarla: ojo con ese.)
- La clave de acceso protege la URL. Sin
?key=responde 403. Borrá el flujo cuando termines. - Data stores grandes: si el paso se corta por tiempo, subí la memoria y el tiempo límite del flujo en su Settings (Pipedream sugiere arrancar con 512 MB y 60 segundos).
- Qué se conserva: cada clave y su valor JSON. Los vencimientos (TTL) no.
Cómo quedan los datos en n8n
MigrateFlows convierte los pasos de data store (tanto las acciones prearmadas como this.dataStore en pasos de código) en datos estáticos del flujo de n8n, y los precarga desde tu archivo .datastore.json la primera vez que corre el flujo. Dos diferencias con Pipedream:
- Cada flujo de n8n guarda su propia copia. Si varios flujos compartían un data store, los cambios en uno no se ven en los otros.
- n8n guarda los datos estáticos solo en ejecuciones de producción (un flujo activo disparado de verdad), no en las pruebas manuales.
Para datos que comparten muchos flujos o que crecen mucho, conviene pasarlos a una base de datos (Postgres, Supabase, Airtable) y apuntar los flujos ahí. El archivo .datastore.json es JSON común (records relaciona cada clave con su valor), así que lo podés cargar en cualquier lado.
Más: cómo exportar tus flujos de Pipedream · guía de migración a n8n.