# Read another app's output

An app-output source reads a named output published by another app in the tenant. It avoids coupling your consumer directly to the producer's private workflow layout. You need a compatible app engine and access to the available output directory.

## Add or change a binding

1. Open builder **Data** and choose **Use app output**.
2. Browse the available producer apps and their outputs.
3. Select the intended app/output pair.
4. Configure the added source and optionally **Narrow record types**.
5. Bind a component to the source data and save the app.

Use **Change output** on an existing source to choose a replacement. Recheck downstream bindings because a different output can carry different record shapes.

Leave narrowing empty to read all record types the producer currently publishes. A consumer's narrowing can only reduce that published envelope. It does not grant additional records, and it does not freeze a copy of all published types at the time you added the source.

## Read source health

| Status | Meaning |
| --- | --- |
| **Not bound** | Choose an app and output. |
| **Checking…** | The directory has not resolved yet. |
| **Unknown** | The directory could not be read completely or reliably. Retry before concluding absence. |
| **Resolves** | The output address exists and its record types overlap your requested scope. |
| **No published output** | No output from that producer is listed; this does not prove the app itself was deleted. |
| **Output withdrawn** | The producer is listed but no longer publishes this output. |
| **No matching record types** | Your narrowing has no overlap with the producer's current published types. |
| **Producer deleting** | A source consuming that producer cannot be saved during its deletion. |

**Resolves** is an address check, not a record count or freshness guarantee. Inspect the producer's activity when the view is empty or out of date.

App-output sources cannot run the producer's workflows and do not expose workflow/run-trigger controls. If engine compatibility blocks the action, use [Engine upgrades](/docs/apps/engine-upgrades). Before withdrawing a producer, inspect [Dependencies](/docs/apps/dependencies).
