---
title: "Data to Dashboards"
slug: "data-to-dashboards"
updated: 2026-07-12T13:36:41Z
published: 2026-07-12T13:36:41Z
canonical: "docs.dataddo.com/data-to-dashboards"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dataddo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data to Dashboards

At the end of this guide you will have an automated pipeline that delivers data from any connector **directly to a dashboarding app** like [Looker Studio](/docs/looker-studio), [Power BI](/docs/power-bi), [Tableau](/docs/tableau), or [Databox](/docs/databox) - with no data warehouse or database to provision. Choose this pattern when your datasets are small and your transformations are simple.

- If your data volume or transformation needs outgrow this pattern, ingest into a warehouse first: see [Batch Ingestion to Data Warehouses](/docs/batch-ingestion-to-data-warehouses).
- If you need raw data landed as files for downstream processing, see [Data Lake Ingestion](/docs/data-lake-ingestion).

## Architecture

The pipeline is **source > flow > SmartCache > dashboarding app**. Dataddo extracts data from your source on a schedule, stores the snapshots in **SmartCache** - an embedded storage system that replaces the intermediate warehouse - and your dashboarding app reads from SmartCache through the flow. This is a batch path: each scheduled extraction produces a snapshot, and the snapshotting policy decides how snapshots accumulate.

Key properties of SmartCache:

- **Data residency**: data is stored on Dataddo servers, and you choose from 16 global storage locations in [Account Details](https://app.dataddo.com/settings/account-details) to keep data within a specific jurisdiction.
- **Security**: data is encrypted at rest with AES-256 (optionally with your own HSM-backed keys) and in transit with TLS.
- **Storage modes**: **Append** (each sync adds new data to the existing set) and **Replace** (each sync overwrites the existing set). This is also called the [snapshot keeping policy](/docs/extraction#snapshot-keeping-policy).

### When SmartCache is not the right choice

SmartCache is not a replacement for a data warehouse. Move to [intermediate data storage](/docs/data-storages) when:

- **Data volume** exceeds approximately **150,000 rows per source**. Beyond this, dashboarding app performance degrades.
- **Transformation complexity** goes beyond simple joins and unions - advanced aggregations, complex join operations, or window functions belong in a warehouse.

Within those limits, Dataddo transforms data at three levels: extractions are automatically flattened and harmonized (with optional [metadata columns](/docs/metadata-inclusion)), flows can union or join sources via [Combine Data](/docs/combine-data), and [transformation pipeline scripts](/docs/transformation-pipeline-guide) handle custom logic.

## Decision Guide

Your snapshotting choice comes down to how your data behaves: use **Replace** when you only need the latest state (mutable data without history, or overlapping extractions), **Append** when each extraction brings unique new records you want to accumulate, and **Append with timestamping** when data changes over time and you need to track those changes. To work through the underlying questions - mutability, slowly changing dimensions, deletions, and overlapping extraction periods - see [Choosing a Write Strategy](/docs/choosing-a-write-strategy).

## Setup Walkthrough

1. [Create a data source](/docs/creating-a-data-source) from any connector. If you plan to track changes over time, enable the **Dataddo extraction timestamp** attribute during source configuration; the **Dataddo Hash** is also available as a generated natural key hashed from selected columns - both are described in [Metadata Inclusion](/docs/metadata-inclusion).
2. Set the source **snapshot keeping policy** (Append or Replace) according to the decision guide above, and configure the [date range](/docs/setting-date-range) so extractions do not overlap unintentionally.
3. [Connect your dashboarding app as a destination](/docs/how-to-connect-a-data-destination).
4. [Create a data flow](/docs/how-to-create-a-data-flow) from the source to the dashboarding app. To feed one dashboard from several sources, either [combine data](/docs/combine-data) in a single flow (a join key for two sources, or a union of sources with identical schemas), or create one flow per source when schemas differ and no join key exists.

## Configuration Recommendations

| Scenario | Snapshot keeping policy | Extraction timestamp | Date range |
| --- | --- | --- | --- |
| Latest state only (e.g. current inventory) | Replace | Not required | Any; overlaps are safe |
| Overlapping extractions, no history needed | Replace | Not required | [Dynamic date range](/docs/setting-date-range#choosing-the-right-window) |
| Unique new records each run (e.g. daily sales) | Append | Optional | Non-overlapping periods |

## Operations

**Backfilling**: to load historical data, trigger a **Manual Data Load** on the source with the snapshot keeping policy set to **Append** - see [Data Backfilling to Dashboarding Apps](/docs/data-backfilling-to-dashboarding-apps).

**Monitoring**: use the [Data Quality Watcher](/docs/data-quality-watcher) to get alerted on anomalies in your data before they surface in the dashboard.

## Troubleshooting

- **Duplicate rows in the dashboard**: usually caused by an inappropriate snapshotting policy or overlapping extractions. If you do not need history, switch the policy to **Replace**; if you keep **Append**, adjust the [dynamic date range](/docs/setting-date-range#choosing-the-right-window) so extraction periods do not overlap.
- **Slow dashboard performance**: your dataset has likely grown past the recommended per-source row limit. Move to a [data warehouse](/docs/data-storages) and follow [Batch Ingestion to Data Warehouses](/docs/batch-ingestion-to-data-warehouses).

For generic issues (authorization, extraction failures, flow errors), see [Troubleshooting](/docs/troubleshooting).
