Typeform trigger — Inbound preview

Trigger Stripe Workflow from Typeform submissions

A Typeform submission becomes a signed, deduplicated trigger for any Stripe Workflow. Create the customer, kick off the subscription, send the welcome — automatically.

Inbound is in early access — join the waitlist for early invites.

The problem

Most onboarding flows still start with a Typeform. Someone fills it out, an internal email goes out, someone copies fields into the Stripe Dashboard, creates a customer, attaches a payment method, sends a welcome. Days of latency, every time. If you want to trigger stripe workflow from typeform today, the path runs through Zapier, with per-task billing and a multi-step zap held together by hope.

Inbound's Typeform trigger short-circuits all of that. The form submission lands directly as a Stripe Workflow trigger — signed by Typeform's webhook secret, deduplicated on the Typeform response id, and surfaced in the Outbound execution log next to every outbound action you already run. The workflow then runs in Stripe's own infrastructure: create the customer, attach a payment method via Stripe Checkout link, write a row to your Postgres CRM, send a Resend welcome, file a Linear onboarding issue. One install, no glue. Inbound is pre-launch — join the waitlist.

How trigger stripe workflow from typeform works

  1. 1

    Wire the Typeform webhook

    When Inbound ships, you'll paste a signed Inbound URL into Typeform's webhooks section for the form you want to act on. Typeform supports both per-form and per-account webhooks; either works.
  2. 2

    Map fields onto Stripe Workflow context

    The Typeform payload includes one entry per form question. Inbound exposes the full payload to the workflow, so any field — email, company name, plan choice, custom dropdown — is available via JSONata to the downstream steps.
  3. 3

    Run a Stripe + Outbound workflow

    Compose the response: stripe.customer.create with the email and name, an outbound.postgres write to your CRM, an outbound.resend welcome email, an outbound.linear onboarding issue. All idempotent, all in one workflow definition.
  4. 4

    Watch deliveries in the execution log

    Every Typeform submission shows in the Outbound execution log with the Typeform response id, the matched workflow, and each action’s outcome. If a submission fails to trigger, you see exactly why — bad signature, mismatched form, filter excluded it.
# Inbound webhook config (preview)
trigger:
  source: inbound.typeform
  form_id: "abc123"
workflow:
  - action: stripe.customer.create
    email: "{{ answers.email }}"
    name:  "{{ answers.full_name }}"
    metadata:
      company: "{{ answers.company }}"
      plan_choice: "{{ answers.plan }}"
  - action: outbound.postgres
    table: leads
    columns:
      stripe_customer_id: "{{ stripe.customer.id }}"
      source: typeform
      submitted_at: "{{ submitted_at }}"
  - action: outbound.resend
    to: "{{ answers.email }}"
    template_id: welcome_v3

Example workflow configuration

Mock-up of the Typeform inbound trigger settings inside the Stripe Dashboard. Shows a signed webhook URL with a copy button, a form picker dropdown listing the user's Typeform forms via OAuth, a recent-submissions table with response ids and triggered-workflow names, and a signature-status column showing each submission was verified.

Inbound (pre-launch): every Typeform submission becomes a signed Stripe Workflow trigger.

Outbound vs Zapier

OutboundZapier
Lives inside the Stripe Dashboard
Pricing modelBundled with Outbound$29.99/mo + per-task fees
Signature-verified inbound deliverylimited
Idempotent on Typeform response id
Setup time≈3 minutes (when live)15-25 minutes
Direct chaining into Stripe + Outbound actionsvia a multi-step zap
Available todayPre-launch — join waitlisttrue

Frequently asked questions

How does Typeform's signature verification work?+
Typeform signs each webhook with an HMAC-SHA256 over the body, using a secret you set on the webhook. Inbound verifies the signature before triggering any workflow. Failed verifications are recorded in the execution log so you can spot anyone replaying or spoofing form submissions.
What if a user retries a form submission?+
Inbound dedupes on Typeform's response id. A page reload or double-tap won't fire two workflows for the same response. If the user genuinely fills the form again, that's a new response id and you get a second trigger — which is usually what you want.
Can I filter by which form fired the trigger?+
Yes. The webhook URL itself is per-form, so configure one Inbound endpoint per form you want to act on. Inside the workflow, use a filter step on any answer — plan = pro, country = US — to gate which submissions run the action.
Does it support hidden fields and calculated fields?+
Yes. Typeform sends hidden fields (UTM params, source tags) and any logic-calculated values in the same payload. They're all available to the workflow via JSONata, so you can route premium leads to a different downstream path than free-tier ones.
Can I use this for paid Typeforms with Stripe?+
Yes, and it's a major use case. Typeform's built-in Stripe payment is fine for simple one-off charges. For anything more — recurring subscriptions, post-purchase emails, CRM writes, onboarding sequences — let the form fire an Inbound trigger and let a Stripe Workflow do the orchestration.

Be first when Inbound ships