Integrations8 min readUpdated 2026-06-29

Cloudflare R2 + n8n: The Complete Integration Guide

Connect Cloudflare R2 to n8n to upload, list, and generate signed URLs. Setup, triggers, actions, and production patterns.

Key takeaways

  • Cloudflare R2 authenticates with n8n via OAuth or API key — pick OAuth for user-facing flows and API key for service accounts.
  • Triggers (webhooks and polling) start workflows on Cloudflare R2 events; actions call Cloudflare R2 from any other workflow.
  • Use the HTTP Request node to reach Cloudflare R2 endpoints the built-in node doesn't cover yet — the auth is reused.
  • Rate limits, retries, and idempotency are the three biggest Cloudflare R2 production gotchas — handle them explicitly.

Cloudflare R2 is one of the most-used zero-egress storage platforms — and n8n is the fastest way to wire it into the rest of your stack without writing glue code. In this guide you'll set up authentication, pick the right triggers, and learn how teams use the Cloudflare R2 node in production to upload, list, and generate signed URLs.

Connecting Cloudflare R2 to n8n

Open Credentials in n8n and create a new Cloudflare R2 credential. Choose OAuth when a human should authorize on their own account, or an API key / access token for background workflows owned by an operations account. Store the client ID and secret from the Cloudflare R2 developer console; n8n handles the callback and refresh tokens automatically.

After the credential is saved, add a Cloudflare R2 node to any workflow and select the credential. Test the connection with a read-only action (list, get, or search) before wiring writes — a green execution proves the scopes are right.

  • Grant only the minimum Cloudflare R2 scopes your workflow needs.
  • Use one credential per environment (dev, stage, prod) and never share across projects.
  • Rotate keys quarterly and immediately after any contractor offboards.

Triggers and actions

The Cloudflare R2 Trigger node starts a workflow when something happens in Cloudflare R2 — a new record, a status change, an inbound message, or a webhook event. Prefer webhooks over polling when Cloudflare R2 supports them; polling burns credits and adds latency.

Actions run from any node position and let you upload, list, and generate signed URLs. Chain them with Set, If, and Merge nodes to build the exact business rule you need without touching code.

Production patterns for Cloudflare R2

Wrap every Cloudflare R2 write in retries with exponential backoff — the API will throw 429s during traffic spikes and you don't want to lose events. Add a dedupe step (Redis SETNX or a Postgres unique index) so a retried webhook doesn't create duplicate records.

For high-volume workflows, run n8n in queue mode with a Redis broker and separate workers. That way Cloudflare R2 throughput stops fighting with your other automations for the same CPU.

  • Verify webhook signatures — never trust the payload alone.
  • Log the full {name} response on failure so you can replay it later.
  • Alert on 5xx rates, not just outages — silent degradation is the real killer.

Frequently asked questions

Is there an official Cloudflare R2 node in n8n?
Yes. n8n ships a first-party Cloudflare R2 node with common triggers and actions; use the HTTP Request node for endpoints the built-in node doesn't cover yet.
OAuth or API key for Cloudflare R2?
OAuth for user-owned data, API key or service account for background workflows. Never share personal OAuth tokens across a team.
How do I handle Cloudflare R2 rate limits?
Add a Wait node between calls, use Split In Batches to control concurrency, and enable retries with exponential backoff at the node level.
Can I self-host n8n and still use Cloudflare R2?
Yes — the same node works self-hosted. Make sure your n8n instance is reachable from the internet if you need inbound webhooks from {name}.
HomePathTemplatesBlogMy