Trigger Stripe Workflow from Notion database edits
A Notion database edit becomes a Stripe Workflow trigger. Refund approvals, plan changes, churn flags — driven from the doc tool the rest of the team already uses.
Inbound is in early access — join the waitlist for early invites.
The problem
Notion is where the non-engineering side of the team lives. Customer notes, refund approval queues, churn flags, account-tier reviews — they all sit in a Notion database somewhere. To trigger stripe workflow from notion today, you wire Zapier to Notion's API on a polling schedule (Notion doesn't natively webhook on row edits yet), pay per task, and accept a few minutes of latency.
Inbound's Notion trigger does this properly. We poll Notion at a tight cadence on your behalf, detect changes to whatever database you point us at, sign the resulting trigger, dedupe on Notion's row id plus its last-edited timestamp, and fire the matched Stripe Workflow with the full row payload. The non-engineering side of the team flips a checkbox in Notion. The engineering side sees a refund issue and a customer email go out from one workflow. No glue script, no Zapier middleman, no second bill.
How trigger stripe workflow from notion works
- 1
Connect Notion via OAuth (one click)
Reuse the same OAuth connection Outbound uses for the Notion action. When Inbound ships, you'll grant page-scoped access to the databases you want to trigger workflows from. Same workspace, same token. - 2
Pick a database and a change predicate
Inbound polls Notion at a 5-15s cadence. You configure which database and which property change should fire the trigger — Approved checkbox flipping true, Status moving to Refund, anything readable on the row. - 3
Filter and chain in the workflow
The trigger surfaces the full row via JSONata. The Stripe Workflow filters and chains as usual: stripe.refund.create, outbound.resend, outbound.postgres write-back. The non-engineering team's flip becomes an end-to-end automation. - 4
Audit + roll back
Every triggered workflow shows the Notion row id, the property that changed, and the prior/next values in the execution log. If someone flips the wrong checkbox, you can trace it back to the page and the user immediately.
# Inbound webhook config (preview)
trigger:
source: inbound.notion
database_id: "a1b2c3d4-..."
when: "{{ properties.\"Refund Approved\".checkbox = true and not previous.properties.\"Refund Approved\".checkbox }}"
workflow:
- action: stripe.refund.create
charge: "{{ properties.\"Charge ID\".rich_text[0].plain_text }}"
reason: requested_by_customer
- action: outbound.resend
to: "{{ properties.\"Customer Email\".email }}"
template_id: refund_confirmed
- action: outbound.notion
database_id: "{{ database_id }}"
row_id: "{{ id }}"
properties:
"Refund Processed At": "{{ $now() }}"Example workflow configuration
Mock-up of the Notion inbound trigger settings inside the Stripe Dashboard. Shows the existing Notion OAuth connection card reused, a database picker dropdown listing available Notion databases, a property-change predicate editor with a JSONata input, and a recent-deliveries table showing detected Notion row edits with the matched workflows and outcomes.
Outbound vs Zapier
| Outbound | Zapier | |
|---|---|---|
| Lives inside the Stripe Dashboard | — | |
| Pricing model | Bundled with Outbound | $29.99/mo + per-task fees |
| Signed + dedup on Notion row id | — | |
| Polling cadence | 5-15 seconds | 15-60 seconds |
| Setup time | ≈3 minutes (when live) | 15-25 minutes |
| Direct chaining into Stripe + Outbound actions | via a multi-step zap | |
| Available today | Pre-launch — join waitlist | true |
Frequently asked questions
Why polling instead of true webhooks?+
What's the latency from edit to workflow fire?+
How does Inbound avoid firing on every poll?+
Will Inbound rate-limit my Notion integration?+
What if I want to trigger only on edits by specific users?+
Related integrations
Trigger Stripe from Airtable
Same shape, true-webhook source. Pick Airtable if real-time matters more than the docs experience.
Stripe to Notion database
The outbound side. Close the loop: Stripe events log to Notion, Notion edits trigger Stripe.
Trigger Stripe from Linear
When the approval queue lives in engineering, Linear is the better trigger source than Notion.