# Form workflows and API integrations

Canonical: https://useformwork.com/product/workflows

Updated: 2026-09-17

Connect form events to calculations, conditions, entry changes, API requests, email, and PDF generation with inspectable workflow runs.

FormWork workflows connect a trigger to a sequence of configured steps. Steps can calculate values, branch on conditions, iterate over repeated data, call an API Connector, modify entries, generate a PDF, or queue an email. The available [step types](/docs/workflows/step-types) and their settings are documented individually.

## Example: route a submitted enquiry

For a service enquiry, a workflow could:

1. Start when the entry is submitted.
2. Calculate a routing value from the selected services.
3. Use a condition to select a branch.
4. Send the relevant values to a configured API Connector.
5. Queue a notification email and record useful outputs for inspection.

This is a design example. You supply the receiving API, credentials, email configuration, and routing rules. An API Connector is a configurable integration point, not a promise of a native integration with every third-party product.

## Execution and failure behaviour

Workflow steps execute in order. A workflow failure is recorded, but it does not necessarily prevent the triggering entry submission or update from completing. Treat the entry's submitted status and the success of a downstream action as separate facts.

API Connector error paths handle completed HTTP responses with non-success status codes. Invalid references or an unreachable service can fail the run immediately instead. Inspect [workflow runs](/docs/entries/workflow-runs) when diagnosing an integration.

An email step queues a message; queueing success does not establish that the recipient received it. Build operational checks around the outcome that matters for your process.

## Keep workflows tied to a reviewed form

Workflows belong to a form version. Existing entries continue to use their pinned version, including its workflows. Test a changed workflow in the draft before publishing, remembering that preview creates ordinary entries.

Use [For Each](/docs/workflows/for-each) for repeated data, [references](/docs/workflows/references) to pass values between steps, and the [API Connector guide](/docs/extensions/api-connectors) for external requests. The [workflow basics](/docs/workflows/basics) explain triggers, connections, and supported execution paths.