Pipedream event sources → n8n trigger nodes
Updated 2026-10-21 · 5 min read
Every Pipedream workflow starts with a trigger. The HTTP and schedule triggers have obvious n8n equivalents and their own guides. The harder part is event sources: "New row in Google Sheets", "New Stripe payment", "New email matching search". This page explains how sources differ from n8n trigger nodes, gives a mapping for the common apps, and covers what to do when n8n has no matching trigger.
Pipedream sources vs n8n triggers
From Pipedream's triggers docs:
- An event source runs as a separate resource and emits events. One source can trigger any number of workflows.
- A workflow can have several triggers.
- Code reads the event as
steps.trigger.event, whose shape depends on the source. - Sources from Pipedream's public registry ran free when they triggered a workflow (pricing docs).
In n8n:
- A trigger node belongs to one workflow. Two workflows that react to the same event each have their own trigger.
- A workflow can contain more than one trigger node; each starts its own execution.
- Data arrives as the trigger node's output items.
- Polling triggers have a Poll Times setting; webhook-based triggers register a webhook with the app when you publish.
| Concept | Pipedream | n8n |
|---|---|---|
| App event | Event source | App trigger node (e.g. Gmail Trigger) |
| Reuse one event in many workflows | One source, many workflows | One trigger per workflow, or a dispatcher plus sub-workflows |
| Event data | steps.trigger.event |
$('Trigger').first().json / $json |
| Polling frequency | Set on the source | Poll Times on the node |
| Instant (webhook) events | Source registers the webhook | Trigger node registers it on publish |
Built-in trigger types
The export marks each trigger's type as source, http, timer, email or form (export docs).
| Pipedream trigger | n8n | Guide |
|---|---|---|
HTTP / webhook (http) |
Webhook node | HTTP trigger to Webhook, Webhook node |
Schedule (timer) |
Schedule Trigger | Schedules, cron |
Email (email) |
Email Trigger (IMAP) | Below |
Form (form) |
n8n Form Trigger | Below |
App source (source) |
App trigger node, Webhook, or Schedule + HTTP Request | Below |
Pipedream gave each workflow its own address at @pipedream.net. That address disappears with Workflows. In n8n, the Email Trigger (IMAP) node reads a mailbox you control. Set up forwarding from wherever the mail comes from (or update senders) to a dedicated mailbox, connect it with an IMAP credential, and choose what happens to processed mail (for example, mark as read).
Form
n8n's Form Trigger hosts a form and starts the workflow on submit. Fields have to be recreated; the URL is new, so update every link to the old form.
Common app sources
How our converter maps the most common sources (node types checked on n8n 2.44.5); verify each after import:
| Pipedream source (key prefix) | n8n trigger node | What to check |
|---|---|---|
rss-… |
RSS Feed Trigger | Feed URL, poll interval (we default to 15 minutes) |
gmail-new-email…, …labeled-email, …email-matching-search |
Gmail Trigger | Credential, search filter and labels |
google_sheets-new-row…, …new-updates |
Google Sheets Trigger | Credential, sheet tab, event |
slack-new-… |
Slack Trigger | Needs a Slack app with Event Subscriptions pointing at n8n; event type, channel |
airtable-new-… |
Airtable Trigger | Credential, the time field it watches |
github-… |
GitHub Trigger | Owner, repository, events |
stripe-… |
Stripe Trigger | Event list (taken from the source props or name when possible) |
shopify-… |
Shopify Trigger | Topic, access token credential |
typeform-… |
Typeform Trigger | Form ID |
telegram_bot_api-… |
Telegram Trigger | Bot token; n8n registers the webhook itself |
App-specific notes for several of these are on the integration pages, for example Slack, Google Sheets, Gmail, Stripe and Telegram.
Instant vs polling
Pipedream labeled many sources "instant" (webhook-based) and others polling. n8n's trigger for the same app may work differently: the Gmail, Google Sheets and Airtable triggers poll, while Stripe, GitHub, Shopify and Telegram register webhooks. A polling trigger introduces a delay up to its poll interval and runs even when nothing changed; set Poll Times to what the business actually needs.
Webhooks need a public URL
Webhook-based trigger nodes register their URL with the app when you publish. On self-hosted n8n, that only works if n8n is reachable from the internet and N8N_WEBHOOK_URL is set to the public address; otherwise the app registers localhost and nothing arrives.
When n8n has no trigger for the app
- The app can send webhooks: use a Webhook node and paste its production URL into the app's webhook settings.
- The app only has an API: Schedule Trigger → HTTP Request to list new records → Data Table "If Row Does Not Exist" to keep only unseen IDs → process → Insert the IDs. This rebuilds what a polling source did.
- A community node exists (self-hosted): install it and use its trigger.
Our converter creates a Webhook node for sources it can't map and marks the workflow as manual, so nothing is silently dropped.
The event shape changes
steps.trigger.event from a Pipedream source and the output of the n8n trigger node rarely have identical field names. Pipedream sources often returned the raw API object; n8n triggers sometimes simplify it (the Gmail Trigger has a Simplify option, for instance). After import:
- Run the trigger once with real data (or Listen for test event).
- Compare the fields with what later steps reference.
- Fix expressions and code references, or add an Edit Fields node that reshapes the data to the old structure.
One source, many workflows
If one Pipedream source fed several workflows, you have two options in n8n:
- One trigger per workflow. Simple; but polling triggers then poll once per workflow, and webhook triggers register several webhooks with the app.
- Dispatcher. One workflow with the trigger, then Execute Sub-workflow nodes calling each former workflow. One poll, one webhook, and sub-workflow executions don't count toward n8n plan execution limits.
Multiple triggers on one workflow
A Pipedream workflow with several triggers becomes an n8n workflow with several trigger nodes, or several workflows. Our converter maps the first trigger and lists the others as manual work.
Check your sources before migrating
Upload your export to the converter: the report lists each workflow's trigger, the n8n node it becomes, and the credential it needs. Code steps that read steps.trigger.event can be checked one at a time in the code step checker. The report and 1 workflow are free. Full export: $3 per workflow, $19 minimum — coming soon. Full process: migrate Pipedream to n8n.
Not affiliated with Pipedream or n8n.
FAQ
- What is the n8n equivalent of a Pipedream event source?
- An n8n trigger node for the same app, for example Gmail Trigger, Slack Trigger or Stripe Trigger. If n8n has no trigger for the app, use a Webhook node (if the app can send webhooks) or a Schedule Trigger plus an HTTP Request node that polls.
- Can one n8n trigger start several workflows like a Pipedream source?
- Not directly; each n8n workflow has its own trigger. Give each workflow its own trigger node, or have one workflow receive the event and call the others with Execute Sub-workflow.
- Does the Pipedream export include source settings?
- Yes, source triggers are exported with their component and configured props. Connected accounts are not: you reconnect each app in n8n.
- How does steps.trigger.event map to n8n?
- The trigger node's output item. Reference it as $('Trigger name').first().json, or $json in the node right after it. Field names usually differ between Pipedream sources and n8n trigger nodes.
- What replaces the Pipedream email trigger?
- n8n's Email Trigger (IMAP) reads a mailbox you own. Pipedream's per-workflow @pipedream.net address goes away, so forward that mail to a mailbox first.
Related
Sources
- https://pipedream.com/docs/workflows/building-workflows/triggers
- https://pipedream.com/docs/workflows/export-workflows
- https://pipedream.com/docs/pricing
- https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook
- https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger
- https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow