Integrations
n8n integrations
Every app, trigger and AI node available on the n8n canvas — synced live from the official n8n.io catalog.
0 integrations · 0 matching. Try n8n →
What the n8n integration catalog actually is
An n8n integration is a node: a pre-built block that speaks the API of one service. Instead of writing an HTTP client, handling OAuth refresh tokens, pagination, retries and rate limits yourself, you drop the node on the canvas, pick an operation, and connect a credential once.
The catalog ships 570+ nodes covering SaaS apps (Slack, HubSpot, Notion, Google Workspace, Shopify), databases (Postgres, MySQL, MongoDB, Redis, Supabase), AI providers (OpenAI, Anthropic, Google Gemini, Ollama, Hugging Face), vector stores (Pinecone, Qdrant, Weaviate, PGVector) and core utility nodes (Code, HTTP Request, Set, IF, Switch, Merge, Split In Batches).
Every node falls into one of three shapes: a Trigger that starts a workflow, an Action that performs an operation, or a Sub-node that plugs into an AI Agent as a model, memory, tool or retriever. Knowing which shape you need is 80% of designing a workflow correctly.
Triggers
Start a workflow from an event: a new Slack message, a Stripe payment, a Google Sheets row, a schedule, or a raw webhook. Trigger nodes always sit first on the canvas and can only appear once per branch.
Actions
Perform an operation on a service: create a HubSpot deal, send a Gmail message, upsert a Postgres row, upload a file to Drive. Actions expose resources and operations so one node covers dozens of endpoints.
AI / LangChain nodes
Chat models, embeddings, vector stores, memory, output parsers, and tools. These attach underneath an AI Agent node rather than in the main data flow, which is why they look different on the canvas.
Core nodes
Framework-level building blocks: HTTP Request, Code (JS/Python), Set/Edit Fields, IF, Switch, Merge, Loop Over Items, Wait, Execute Workflow. Anything without an official node can still be built with HTTP Request.
Credentials
Credentials are stored separately from workflows and encrypted with N8N_ENCRYPTION_KEY. One credential is reusable across every node and workflow, and workflow JSON you export or share never contains secrets.
Community nodes
npm packages installable on self-hosted instances (Settings → Community nodes) and, for verified packages, on Cloud. They unlock niche tools but you own the review, security and upgrade path.
Official vs verified vs community nodes
Official nodes are maintained inside the n8n repository, shipped with every release, documented on docs.n8n.io and supported by the n8n team. They are the safe default and the only ones guaranteed to keep working across upgrades.
Community nodes are published to npm by third parties. Verified community nodes have been reviewed by n8n and can run on Cloud; unverified ones require a self-hosted instance and an explicit install. Treat them like any other dependency: read the source, pin the version, and test in a staging workflow first.
- Official: bundled, documented, supported, upgrade-safe.
- Verified community: reviewed, installable on Cloud, third-party maintained.
- Unverified community: self-hosted only, install at your own risk, audit before use.
- No node at all: use HTTP Request — it covers 100% of REST and GraphQL APIs.
When there is no node: the HTTP Request pattern
The HTTP Request node is the universal integration. Point it at any REST or GraphQL endpoint, choose the auth type (or reuse a Predefined Credential Type from an existing n8n credential), and map fields with expressions.
For paginated APIs, enable built-in pagination and set the response-based stop condition. For flaky APIs, turn on Retry On Fail with a backoff, and add On Error → Continue (using error output) so one failed item does not kill the run.
- Use Predefined Credential Type to reuse an existing OAuth credential inside HTTP Request.
- Enable Pagination for cursor, offset or link-header based APIs.
- Set Batching to respect rate limits instead of hammering the endpoint.
- Wrap the call in Loop Over Items when the API accepts only one record per call.
Authentication types you will meet
n8n abstracts auth into credential types so you configure it once. The four you meet constantly are API key (header or query), Bearer token, Basic auth and OAuth2 (authorization code or client credentials).
OAuth2 credentials need a redirect URL registered on the provider's side. On Cloud that URL is fixed; on self-hosted it is derived from WEBHOOK_URL / N8N_EDITOR_BASE_URL, so set those correctly or the callback fails.
Rate limits, batching and idempotency
Most production incidents in automation are not logic bugs — they are rate limits and duplicate writes. Use Loop Over Items with a batch size, a Wait node between batches, and the node-level Retry On Fail setting.
Make writes idempotent: prefer upsert operations keyed on an external ID, or check for existence before create. When an API has no upsert, store processed IDs in a database or the n8n static data and filter them out early.
Security model for credentials
Credentials are encrypted at rest with N8N_ENCRYPTION_KEY. Lose that key and every credential becomes unreadable, so back it up outside the instance. On self-hosted, restrict who can share credentials and use projects to isolate teams.
Never paste secrets into Set nodes, Code nodes or workflow notes — those are stored in plain text inside the workflow JSON and travel with every export, template share and Git commit.
Choosing the right node type
| You need to… | Use | Notes |
|---|---|---|
| React to an external event | Trigger node / Webhook | One trigger per workflow branch; test with the Listen button. |
| Run on a schedule | Schedule Trigger | Cron syntax supported; timezone follows GENERIC_TIMEZONE. |
| Call a supported SaaS API | Official app node | Resource + operation covers most endpoints. |
| Call an unsupported API | HTTP Request | Reuse credentials via Predefined Credential Type. |
| Transform data | Set / Code / Edit Fields | Prefer Set for simple mapping, Code for logic. |
| Branch logic | IF / Switch / Filter | Switch scales better than nested IFs. |
| Use an LLM | AI Agent + chat model sub-node | Attach tools and memory beneath the agent. |
| Search your own documents | Vector store + embeddings | Pinecone, Qdrant, Supabase, PGVector, in-memory. |
Adding an integration, step by step
- 1Search the catalog for the service (or open the node panel in n8n and type its name).
- 2Read the node page: check whether it offers a trigger, which resources/operations exist, and which auth type it needs.
- 3Create the credential in n8n (Credentials → New) and run the built-in connection test.
- 4Drop the node on the canvas and select the resource and operation you need.
- 5Map input fields with expressions ({{ $json.field }}) and use the schema panel to drag values in.
- 6Execute the single node to see real output before wiring the rest of the workflow.
- 7Add error handling: Retry On Fail, On Error → Continue, and an Error Trigger workflow that notifies you.
- 8Pin sample data so you can iterate downstream without re-hitting the API.
- 9Activate the workflow and watch the first production executions in the Executions tab.
Pre-production integration checklist
- Credential created in n8n, not hardcoded in a node
- Least-privilege scopes on the provider side
- Retry On Fail enabled on every external call
- Error Trigger workflow routed to Slack, Telegram or email
- Rate limits respected with batching + Wait
- Writes idempotent (upsert or existence check)
- Tested with pinned data and a dry run
- Webhook URLs use the production URL, not the test URL
Common integration mistakes
Pasting an API key into a Set or Code node
Create a credential — it is encrypted and never exported with the workflow.
Using the test webhook URL in production
Activate the workflow and copy the production URL from the webhook node.
Looping 10,000 items straight into an API
Loop Over Items with a batch size plus a Wait node between batches.
Ignoring the error output branch
Set On Error → Continue (using error output) and handle failures explicitly.
Installing unverified community nodes on production
Audit the npm package, pin the version, and test on a staging instance first.
Pro tips
- Drag a field from the input schema panel instead of typing expressions — it generates the correct path every time.
- Use Predefined Credential Type inside HTTP Request to reuse OAuth credentials from an official node.
- Sub-workflows (Execute Workflow) turn any integration into a reusable internal API for your other workflows.
- $json, $node["Name"].json and $items() cover almost every data-access case in expressions.
- Duplicate a working node before experimenting — n8n keeps parameters and credentials.
- Version control matters: export workflow JSON to Git, or use n8n's source control on enterprise plans.
Integration FAQ
How many integrations does n8n have?
More than 570 built-in nodes plus hundreds of community packages — and the HTTP Request node covers any remaining REST or GraphQL API, so the practical limit is effectively unlimited.
Is there a difference between Cloud and self-hosted integrations?
The official node set is identical. The difference is community nodes: self-hosted can install any npm community node, while Cloud allows verified ones only.
Can I build my own node?
Yes. n8n has a public node-building framework (declarative or programmatic style) with a CLI starter template; you publish it to npm as an n8n-nodes-* package.
Do triggers poll or push?
Both exist. Webhook-based triggers are push (instant), polling triggers check on an interval you configure. Prefer webhooks when the provider supports them.
Where are credentials stored?
In the n8n database, encrypted with N8N_ENCRYPTION_KEY. They are never included in exported workflow JSON or shared templates.
What if a node is missing an operation I need?
Use the HTTP Request node with a Predefined Credential Type pointing at the same service — you keep the auth and gain full API access.
Source & further reading
This page curates and explains the official n8n integration catalog. The canonical, always-current list lives on n8n.io.