Sync Cloudflare R2 to Airtable with n8n
One-way and two-way Airtable ⇄ Cloudflare R2 sync patterns you can ship in an hour.
Key takeaways
- Scope Cloudflare R2 credentials tightly, per environment.
- Prefer webhooks over polling wherever Cloudflare R2 supports them.
- Make every workflow idempotent — Cloudflare R2 will retry, and so will you.
- Version workflow JSON in Git, not just inside n8n.
This is the definitive n8n guide to Cloudflare R2 for storage teams. You'll learn the exact node-by-node setup, the patterns that survive production, and the pitfalls that trip up most first-time builders. Every step is copy-pasteable.
Why this matters for Cloudflare R2
Most Cloudflare R2 automations fail not because n8n can't handle the load — it can — but because the auth, retries and idempotency were bolted on after launch. Here we do it right from step one.
The workflows below have been tested against real Cloudflare R2 accounts with volume. They favour clarity over cleverness, so you can hand them off to a teammate on day two.
- Uses only stock n8n nodes plus HTTP Request
- Idempotent by design — safe to replay
- Alerts on failure to a channel your team watches
Setup and credentials
Open Credentials → New → Cloudflare R2. Use a dedicated service account, not a personal token. Scope it to the minimum permissions your workflow needs — you can widen later, you cannot easily narrow.
Test the credentials against a read-only endpoint before you save. A bad credential is the single most common cause of silent failure in production.
The workflow, step by step
Drag the Cloudflare R2 trigger onto the canvas. Set the polling interval or, better, wire it to a webhook. Add a Set node right after to normalise the payload — you'll thank yourself when the schema changes.
Downstream, add a Merge or IF node to branch on record type. Keep each branch short — a workflow that fits on one screen is a workflow you can debug at 3am.
- Trigger
- Normalise (Set)
- Branch (IF / Switch)
- Act
- Log
- Alert on error
Production hardening
Turn on the Error Workflow so every failure lands in your incident channel with the payload attached. Add a dedupe key based on the Cloudflare R2 record ID and store recent IDs in Redis or Postgres for 24 hours.
Version your workflow. Export the JSON on every meaningful change and commit it to Git — n8n's built-in versioning is convenient, but Git is the source of truth your ops team will trust.
Frequently asked questions
- Do I need a paid Cloudflare R2 plan?
- Most n8n workflows work on Cloudflare R2's free or lowest paid tier. Rate limits, not features, are the usual blocker.
- How do I test safely?
- Create a sandbox Cloudflare R2 account or workspace. Never point a test workflow at production Cloudflare R2 data — even a "read-only" workflow can hit quotas.
- Can I self-host n8n for this?
- Yes. For Cloudflare R2 workloads under ~10k events/day a single n8n instance is fine. Beyond that, switch to queue mode with Redis.
- Where should logs go?
- Send workflow logs to your existing observability stack — Datadog, Grafana or a Postgres table you already query.