Skip to main content

Inbound webhooks

Outbound feeds push on submit. Inbound webhooks let a provider call Flex Forms when something changes in their system (CRM contact update, signed relay, etc.).

Endpoint

Named route: flex-forms.integrations.inbound.webhook. Optional query: ?connection={id} to resolve Connection-tier credentials.

Contract

Implement SupportsInboundWebhooks on your IntegrationDriver:
  • inboundRouteKey() — must match the {driver} segment
  • verifyInbound(Request, config, ?Connection) — throw RuntimeException on bad signatures
  • handleInbound(payload, Request, config, ?Connection): InboundWebhookResult
Flex Forms stores idempotency rows in flex_form_inbound_webhook_events keyed by driver_key + provider_event_id.

Shipped references

Configure secrets under Integrations → Catalog / Connections. Other catalog drivers stay outbound-first unless you implement SupportsInboundWebhooks on a custom driver.

Scaffold

Uses VerifiesFlexFormsInboundSignature by default.

Events

  • IntegrationInboundReceived
  • IntegrationInboundFailed
Stripe payment webhooks stay on flex-forms.stripe.webhook (payment ledger), not this generic route.
Last modified on September 7, 2026