Data Pipeline
How data flows from source systems into governed Stackless models, dashboards, Monitors, and Agent outputs, and how to check freshness at each stage.
Pipeline overview
Stackless pipelines move data through five stages:
- Connect source systems through managed connectors.
- Load source data into your workspace's warehouse.
- Transform raw data into governed datasets with Transformation Models.
- Model business metrics and dimensions with Semantic Models.
- Serve dashboards, Agent artifacts, Monitors, and scheduled exports.
Connect
Sources are connected from Data > Sources or through the Agent. Stackless creates a managed connector and you approve access on the connector's secure setup page. Each connector syncs on its own schedule, from every 15 minutes to daily or on demand. See Connecting Your Data.
Load
Connected sources land in the warehouse in their own schemas. Raw source tables keep the source system's shape so original records can be traced. An administrator enables those schemas in Settings > Agent Data Access so they appear in the Catalog.
Dashboards should not read raw tables directly. Raw data usually needs:
- Time zone normalization.
- Stable IDs and joins across systems.
- Refund, cancellation, and deletion handling.
- Type casting and null handling.
- Deduplication.
- Attribution or channel normalization.
Transform
Transformation Models turn source tables into business-ready datasets. They are organized in layers, each publishing into its own schema:
staging -> intermediate -> mart -> report
Common patterns include staging raw columns into clean names and types, joining customers, orders, and campaigns, keeping the latest record per entity, and aggregating to daily, weekly, channel, or customer grain. Most models are structured specs; logic a spec cannot express can be written as an Agent-authored SQL model.
Every model is drafted privately, sampled, and published explicitly. Published models are the stable inputs for Semantic Models and dashboards.
Model
Semantic Models define the business layer on top of transformed data: measures, dimensions, joins, titles, and descriptions. Dashboards, chart cards, and Monitor checks all query this layer, so a metric means the same thing everywhere.
For example:
- A Transformation Model produces
fct_orders. - A Semantic Model exposes
orders.net_revenue,orders.count,orders.channel, andorders.order_date. - A dashboard uses those members for KPIs, trends, and tables.
Serve
- Dashboards for recurring reporting, with filters, exports, and scheduled email delivery.
- Agent artifacts: tables, chart cards, briefs, and finding cards. Tables are snapshots; chart cards query live data.
- Monitors that analyze governed data on a schedule or after a refresh and deliver the result to Slack, email, or a webhook.
- MCP access for external AI clients, within the same permissions.
Refresh and freshness
Each layer refreshes on its own schedule:
| Layer | Schedule | Where to check |
|---|---|---|
| Sources | The connector's sync schedule | Data > Sources (Last updated) or Catalog > Connectors |
| Transformation Models | Refresh policy: on demand, hourly, daily at 04:00 UTC, or weekly on Saturdays | The model's badge, such as "Published v3, fresh (6 hours ago)", and Operations run history |
| Dashboards | Query live; freshness follows their models | The dashboard's freshness indicator |
| Monitors | Their schedule, or after a dataset refreshes | The Monitor's run history and health |
When a number looks stale, check upstream in order: source, transformation, semantic model, dashboard.
Failure handling
Failures can happen at any layer:
| Failure | Where it shows up |
|---|---|
| A source credential expired or the source changed | The connector's broken or error status in Data > Sources |
| A model build or test failed | A failed run in Operations, the model's Failed badge, and Operations failure alerts |
| A refresh finished but some models failed | Operations failure alerts and the run logs |
| A dashboard depends on an unpublished or stale model | The dashboard's freshness indicator and the publish dialog |
| A scheduled export failed | The schedule's run history in the dashboard's Scheduled exports |
| A Monitor run or delivery failed | The Monitor's run history and health |
Set up Operations failure alerts so the right people hear about failed refreshes without checking. Use the Catalog to trace which dashboards and Monitors depend on a failing layer.