A data source runs one action of one app. When you add a data source, you pick the app and its action from the Select an app picker, under Most popular or All apps. The app and action decide what you configure on the Input tab and the shape of the result.


What a Data Source Can Call
App | Actions | Use it to |
|---|---|---|
Storage by UnifyApps | Fetch records, Fetch record by ID, Create record, Update records by query, Update an existing record's fields, Delete records | Read and write records stored in the platform. |
Analytics by UnifyApps | Analytics Query, Execute Analytics SQL Query | Query reports or run SQL on the analytics database. |
Callable | Call automation | Run an automation and use its response. |
Custom HTTP Endpoint | Execute REST request | Call your own backend or any third-party REST API. |
Connectors | Any action the connector offers | Read or write data in an external app through a connection. |
Configuration Tabs
Every data source opens with three tabs: App & Action, Input and Advanced. A Connection tab also appears for apps that need a connection, such as connectors.
Tab | What you set |
|---|---|
App & Action | The app and action the data source runs. |
Connection | The connection the action uses. Shown only for apps that need one. |
Input | Run behavior (Automatic or Manual), the action's inputs, and optionally a response transform and event handlers. |
Advanced | Timing, caching, retries, and disable conditions. |
Output Schema — Knowing What a Run Returns
After running a data source, the platform may record an output schema: a JSON Schema describing the shape of the data the run produced. After a successful run, open the Schema tab in the strip at the bottom of the data source panel (next to Output and Input).
Before binding any block to a data source result, confirm the exact path in the output schema. A wrong path renders empty with no error.
Common Output Shapes
Data source | Result envelope | Binding path for the list |
|---|---|---|
Storage by UnifyApps — Fetch records | Object with |
|
Storage by UnifyApps — Fetch record by ID | Single object (no wrapping array) |
|
Analytics by UnifyApps — Analytics Query | Object with an |
|
Analytics by UnifyApps — Execute Analytics SQL Query | Object with an |
|
Custom HTTP Endpoint, Callable, or a connector | Whatever the endpoint, automation, or app returns | Depends on the response — inspect the Output tab |
Warning: A source configured to return a single record returns an object, not an array. Binding that object where an array is expected (e.g. a Repeatable's data property) renders nothing, silently. Always confirm top-level type — object vs array — before binding.
Note: Most data sources have no output schema until they are run at least once. Before running, you cannot confirm any result path. Run the source in the builder, inspect the Output and Schema tabs, then bind.
When to Pick Which
You want to… | Pick |
|---|---|
Read or write records the platform stores | Storage by UnifyApps |
Show report data or run SQL on analytics data | Analytics by UnifyApps |
Run multi-step server-side logic and use its result | Callable (Call automation) |
Call your own backend or any third-party REST API | Custom HTTP Endpoint |
Work with data in an external app you've connected | That app's connector |
Shared Capabilities
Every data source shares the same capabilities for run timing, caching, and response shaping:
Run Behavior & Triggering — Automatic vs manual, dependency ordering, disable conditions.
Caching & Refetch — Polling, focus refetch, retry, and explicit refresh.
Response Transforms — A JavaScript step to reshape the response before blocks read it.
Infinite Loading — Append-on-scroll pagination for supported operations.
Query Builder — The inputs of a Storage Fetch records query.