# Configure workflow-record sources

A workflow-record source connects an app view to the records produced by a workflow. Configure the source before binding its data to a table, feed, chart, document view, or another output component.

## Configure a read

1. Open builder **Data** and choose **+ Add** or configure an existing source.
2. Select **Workflow**.
3. Choose the **Run scope**: a specific run when the app must show that snapshot, or the broader available scope when it should not be pinned.
4. Optionally enter comma-separated **Record types**.
5. Optionally set a zero-based **Step index**.
6. Enable **Fetch on load** when the records should load as the app opens.
7. Bind the result component to this source and inspect Preview.

Record types must match what the workflow actually emits. An incorrect filter can produce an empty view even when the workflow ran successfully. A fixed run scope likewise excludes records from other runs.

## Enable a run action

Enable **Allow run trigger** when users should be able to start the source's bound workflow. Then wire the relevant component event to **triggerDataSource**, choose this source, and set mode to **run**.

A triggerable source cannot be pinned to a specific workflow run. Clear that run selection first. Starting new work and selecting records from one immutable past run are different operations.

In advanced Code configuration, run actions can supply input records and trigger context whose values read component or app state. These values must match the workflow's intended inputs; a button alone does not infer the record shape.

## Observe completion

Use source run status and optional step progress with Run Status or another appropriate view. Successful run-trigger completion refreshes its source records. A polling deadline means the app stopped checking, not necessarily that the backend run failed or was canceled. Inspect Activity or reload later to confirm its actual outcome.

Use **fetch** to reread records without starting work, and **watch** to observe an upload-correlated background run. See [Events and actions](/docs/builder/events-and-actions) and [Post-upload behavior](/docs/builder/post-ingest).
