---
title: "Migrate From BYOK n8n: Move Workflows, Drop the API Keys"
description: "Export your n8n workflows, import into your single-tenant instance on AgentRoost, and replace every API key with one pre-wired AI node. No re-keying."
canonical: https://agentroost.app/en/blog/migrate-byok-n8n-without-rekeying-apis
date: 2026-05-13T12:00:00Z
---

[Canonical URL](https://agentroost.app/en/blog/migrate-byok-n8n-without-rekeying-apis)

## The BYOK Tax Nobody Mentions

You built your n8n setup to save time. Then came the API-key spreadsheet.

One key for the OpenAI node. Another for Claude. A third for Mistral when you wanted to compare outputs. Rate-limit errors, billing alerts on three dashboards, and the occasional workflow failure because a key was rotated and you forgot to update the credential. The automation works — but managing the credentials around it has become its own part-time job.

If that sounds familiar, this post is the exit ramp. You'll export your existing workflows as JSON, import them into your own single-tenant n8n instance on AgentRoost, and replace the scattered API keys with one pre-configured AI node backed by credits that are already included in your subscription. No spreadsheet required.

---

## Step 1 — Export Your Workflows From Your Current n8n

In any n8n instance (self-hosted or cloud), exporting is straightforward.

**From the n8n UI:**
1. Open the workflow you want to migrate.
2. Click the three-dot menu (top right) → **Download**.
3. n8n saves a `.json` file — your entire workflow definition, nodes, connections, and expressions, everything.

**To export all workflows at once** (useful if you're migrating a whole instance):

```bash
# Inside your self-hosted n8n container or server
n8n export:workflow --all --output=./my-workflows.json
```

Or via the REST API if you have it enabled:

```bash
curl -H "X-N8N-API-KEY: <your-n8n-api-key>" \
  https://your-instance/api/v1/workflows \
  > all-workflows.json
```

Keep those files. You'll need them in Step 3.

> **Tip:** Export your credentials list too — not the secret values (n8n doesn't export those), but the names tell you exactly what you need to recreate or, better, what you'll be deleting.

---

## Step 2 — Spin Up Your Own n8n Instance on AgentRoost

1. Sign up at [agentroost.app](https://agentroost.app) — email/password, Google, Microsoft, or Discord.
2. From the dashboard, **New Workspace → n8n**.
3. Give it a name (e.g., `my-automations`). Your editor opens at `https://my-automations.agentroost.app` within about 2 minutes.
4. That's it. You get your own single-tenant n8n instance — your login, your data, your workflows. Nobody else is on it.

You own this instance the same way you own a self-hosted one, except you didn't touch Docker, Nginx, or a Let's Encrypt cert to get here.

---

## Step 3 — Import Your Workflows

In your new n8n editor:

1. Click **Workflows** in the left sidebar → **Import from File**.
2. Select the `.json` file you exported in Step 1.
3. If you exported multiple workflows in one file (using `--all`), n8n imports them all in one shot.

Your nodes, expressions, webhook paths, and workflow structure land exactly as they were. Schedule Triggers keep their cron expressions. HTTP Request nodes keep their URLs. IF nodes keep their conditions. Everything is structurally intact.

What you'll see flagged in red: **credentials**. That's expected — credentials are not embedded in workflow exports for security reasons. You'll fix those next, and for the AI nodes the fix is "click once" rather than "paste a key."

---

## Step 4 — The Real Win: Swap API Keys for the Included AI Node

This is where the migration actually pays off.

In your old setup, every AI call required a separate credential: an `OpenAI API` credential with your key, an `Anthropic` credential, maybe a `Mistral Cloud` credential. Each one billed separately, each one a potential point of failure.

On AgentRoost, the **Basic LLM Chain**, **AI Agent**, and related AI nodes come pre-wired. When you open one of these nodes in your new instance, you'll see a credential field already populated — pointing to the included credit pool. You don't paste a key. You just select it and move on.

**Practical walkthrough for a common pattern — an AI Agent workflow:**

Before (your old setup):
```
Schedule Trigger
  → HTTP Request (fetch data)
  → AI Agent
      Credential: OpenAI API (key: sk-proj-...)
      Model: gpt-4o
  → Send Email
```

After importing into AgentRoost:
```
Schedule Trigger
  → HTTP Request (fetch data)
  → AI Agent
      Credential: [AgentRoost Included Credits] ← select this, done
      Model: gpt-4o  (or swap to Claude 3.5 Sonnet, Mistral, etc.)
  → Send Email
```

Change two fields. Activate. Done.

For non-AI nodes — Slack, Gmail, Airtable, Postgres, webhooks — nothing changes. Re-enter those credentials exactly as before (or use OAuth to reconnect in one click). These nodes were never part of the BYOK problem.

**Models you can choose from:** 350+ models across providers, switchable anytime inside the node — no new credential, no new key, same included credit pool.

---

## Step 5 — Clean Up and Verify

Once workflows are imported and credentials are updated:

1. **Activate each workflow** (toggle in the top right of the editor). Inactive workflows don't run on Schedule Triggers or webhooks.
2. **Test webhook-triggered workflows.** Your new instance has a public HTTPS URL at `https://<your-id>.agentroost.app`. Webhook paths are preserved from the export — just update the endpoint in whatever external service calls them.
3. **Run each workflow manually once** (the "Execute Workflow" button) and inspect the output. Watch especially for:
   - HTTP Request nodes that used env-variable auth — update those credentials.
   - Code nodes that referenced `process.env` variables — move those values into n8n's built-in credential store or the **Settings → Variables** section.
4. **Decommission your old instance** only after you've verified the new one is stable. There's no harm in running both in parallel for a week.

---

## How to Do This on AgentRoost

Here's the full journey condensed:

1. **[Sign up](/en/agents/n8n)** — takes 30 seconds.
2. **New Workspace → n8n** → name it → editor is live in ~2 minutes.
3. Import your workflow JSON. Re-link the AI nodes to the included credits. Re-enter non-AI credentials as usual.
4. Activate workflows, verify, update webhooks in external services.
5. Cancel your old hosting or cloud plan.

**What's included:** your own single-tenant n8n instance, AI/LLM credits pre-wired (no API key), public HTTPS URL, SSL handled, no Docker to run. Starts at **$19.99/mo** all-in. 14-day money-back guarantee, cancel anytime.

If you've been putting off migrating because "re-doing all my credentials sounds painful," the AI credential part is now zero work. The rest takes as long as it took you to set up the originals — maybe an hour, probably less.

[Compare plans](/en/pricing) — or go straight to [your n8n instance](/en/agents/n8n).

---

## Common Pitfalls

- **Webhook URLs change.** Your new instance has a different domain. Update the callback URL in Stripe, GitHub, Typeform, or wherever before you decommission the old one.
- **n8n version differences.** If you're migrating from a very old self-hosted n8n, some node types may have changed names or parameters. Spot-check node versions after import.
- **Execution history doesn't migrate.** The workflow definitions come over; the past run logs do not. If you need audit history, export it from your old instance before shutting it down.
- **Timezone on Schedule Triggers.** Verify the timezone setting on each Schedule Trigger node — it's stored in the workflow JSON but double-check it looks right in the new editor.
