Migrate From BYOK n8n: Move Workflows, Drop the API Keys

AgentRoost · May 13, 2026 · 6 min read · View as Markdown
AgentRoost — Getting Started

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):

# 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:

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 — 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 — 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 — or go straight to your n8n instance.


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.

Frequently asked questions

Do I need an OpenAI or Anthropic API key on AgentRoost?

No. AI/LLM credits are included in your subscription. The AI nodes in your n8n instance come pre-wired to a shared credit pool — you select the built-in credential instead of pasting a key. You can still bring your own key for a specific provider if you prefer, but you don't have to.

Will my workflow JSON import cleanly if I was on n8n Cloud?

Yes. n8n's export format is the same regardless of whether you were on n8n Cloud, a self-hosted Docker instance, or any other setup. Import the .json file and your node structure, expressions, and connections come over intact. Credentials are not included in the export (by design), so you re-link those after import.

What happens to my existing webhook URLs?

Webhook paths are preserved in the workflow JSON, but your domain changes. Your new instance runs at https://<your-id>.agentroost.app, so the full URL is different. Update the callback URL in every external service (Stripe, GitHub, Typeform, etc.) before you decommission the old instance. Run both in parallel for a few days to make the cutover safe.

Can I cancel if the migration doesn't go well?

Yes. There's a 14-day money-back guarantee and you can cancel anytime — no annual contract, monthly billing only. You can also export your workflows back out of AgentRoost at any time since you own the instance and the data.

How many AI models can I use, and can I switch?

You can choose from 350+ models across providers — GPT-4o, Claude 3.5 Sonnet, Mistral, Llama, and more — directly inside the AI node settings. Switching models doesn't require a new credential or a new API key; it's a dropdown inside the node, all drawn from the same included credit pool.