# Data Sources

Find connections, add a source, and inspect health, freshness, and sync activity.

## Where to find it

Open **Account > Data Sources**.

Address: `/account/sources`.

## Use this page

Find connected sources, add a source, and review setup, table freshness, sync failures, and recent activity on one page.

**Data Sources** at `/account/sources` requires the source capability. The area
contains these canonical pages:

- **Add data source** at `/account/sources/new`;
- **Source detail** at `/account/sources/:sourceId`;
- **Google Sheets** at `/account/sources/google-sheets`;
- **Offices** at `/account/sources/offices`;
- **Employee Identity** at `/account/sources/identity`;
- **Reporting tables** at `/account/sources/tables`;
- **Table detail** at `/account/sources/:sourceId/tables/:tableName`;
- **Table access** at `/account/sources/access` (account Admins), which lists
  every queryable table, including tables built inside artifacts, and who can
  query it;
- **New table sync** at `/account/pipelines/new`; and
- **Trusted Calculations** at `/account/trusted-calculations`.

The API enforces tenant and capability access even when a direct URL is known.

Where Topline has turned on the draft, **Account → Data access** prepares exact
member/team reporting table grants. Active tenant Admins keep all-table access by default. The query
foundation enforces member grants in synthetic certification, but production
activation remains blocked pending saved-output and delivery-path coverage.
See [Table access administration](/docs/data-access).

## Add a source

1. Open **Data Sources** to review connected sources and any unfinished setup.
   An account can start building without connecting a business system.
2. Choose **Add source**, search the connector catalog, and select the
   exact provider.
3. Store required secrets through the credential control. Keep only the secret
   reference in source configuration.
4. Verify provider identity and authorization before selecting resources.
5. Select the minimum tables, reports, sheets, accounts, or knowledge inputs
   required for the stated workflow.
6. Review discovered columns, identifiers, sensitivity, and business meaning.
7. Save the source and complete its bounded initial load or first sync.
8. Return to the source detail and verify a current run plus a representative
   table preview.

Some connectors are self-service, some require additional customer-owned
configuration, and some are support-assisted. A saved source is not proof that
its runtime, initial load, or recurring sync is ready.

### Connector availability

For an API that is not listed, choose **Custom**. Topline opens a quick chat
with a removable **Data pipeline** chip. Describe the provider, data you need,
and update frequency; Topline researches the API and builds the connector
through chat. Supply access through a secure credential card, then review the
data proposal in the chat. The running connector must honor the approved data
scope and sensitivity labels. Technical endpoints, pagination, keys, and mappings
are handled by the harness. Manage the resulting source's progress, freshness,
and recovery in Data Sources. You can also type **@DataEngineer** in Topline
chat or select **DataEngineer** alongside **Topline** in the Agent section of
the mention picker. Selection inserts the canonical **@DataEngineer** handle
and adds the same removable pipeline context without sending a message or
discarding your draft. It also works in the first-message composer of a new chat.

Supported read-only JSON APIs can use the existing shared connector worker.
More complex APIs require custom platform connector work; the chat must state
what remains to be implemented or released before reporting the source ready.

| Setup path | Current catalog choices | What it means |
| --- | --- | --- |
| Self-service | Custom (chat), PestRoutes, Motive, Google Sheets, Five9, Knowledge Base | The authorized user can start setup in Topline. Automatic updates require provider credentials, resource selection, and first-sync validation. Five9 CSV-only imports do not require API credentials. |
| Private beta | Everee | Use only for an enrolled customer and verify the PII-reduced, read-only payroll scope. |
| Assisted setup | Google Ads, Postgres, BigQuery, Amazon S3 | Start the request in Topline, then complete the provider- and customer-specific access plan with support. |

Knowledge Base self-service covers websites, S3 documents, or an existing
Bedrock knowledge base. Google Drive knowledge-base setup remains assisted
while its shared identity foundation is being completed.

### Archive and restore a source

On a source detail page with **Source settings**, open that drawer and choose
**Archive source**. Review the named source, then choose **Confirm archive**.
The source moves out of the active list. Its data is preserved; archiving does
not change sync or schedule settings. Pause automatic work separately.

To restore it, choose **Archived** in the Data Sources status filter, open the
source, then choose **Source settings > Restore source**. Paused schedules stay
paused. If another user changed the source, review the refreshed settings and
confirm again. Only an authorized signed-in user can save the change.

Five9 CSV imports reject an archived source with a restore message before
reading the file or changing imported data. Restore the source before importing
another exported report.

### Five9 CSV imports

For exported reports, choose **Five9**, then **CSV imports only**. Enter a
source name and unique short name, then choose **Create CSV source**. This
configures the default report choices without connecting an API account or
starting automatic syncs.

In **Historical CSV backfill**, select the report, its CSV file, and the export
time zone shown in Five9. CSV period start/end inputs are not required. Local
event times are converted to UTC using that zone's daylight-saving rules;
durations retain their meaning. Ambiguous or nonexistent local times need
correction before import. Review the import result and table preview, including
the row count and data freshness. Re-importing the same normalized rows must
not create duplicates.

**No active sync** can be expected for a CSV-only source. Configured reports
alone do not prove that data has been imported. For automatic updates, expand
**Connection settings** and use **Test API connection** to check the saved
credentials. A successful Five9 web login does not establish API permission,
and an accepted API test does not establish a completed report sync.

The standard DNC reporting table uses **Do Not Call Reports / DNC List
Contacts**. Its table name remains `dnc_list`. Existing default configurations
using **DNC List** are read as **DNC List Contacts**; custom report folders and
identifiers keep their configured names. **Daily DNC List** supplies recently
added numbers for discovery. Five9 membership checks still determine which
numbers remain in the table before any removal.

Previous reporting setup issues appear under **API connection**, separate
from call transcription setup. A newer completed API report sync with rows
supersedes an older authentication setup warning. CSV imports and skipped or
no-data runs do not prove API access. Review each table's **Activity** for its
latest report error; a missing report does not imply that API credentials failed.

### Existing Google Sheets without ingestion

If a task needs direct, restricted access to an externally managed Sheet and
does not need a managed reporting table or pipeline, use
[Use Topline: Existing Google Sheets](/docs/google-sheets-access). Sharing a
Sheet with a Topline reader or writer identity is separate from adding it as a
managed source.

## Related guides

- [Source details](/docs/source-details)
- [Reporting tables](/docs/reporting-tables)
- [Table syncs](/docs/table-syncs)

## Access, states, and recovery

A filtered empty state is not an empty account. Customers can build before connecting a source. Start recovery from the latest failed sync.

Controls and availability depend on the active account and your permissions. If a page is unavailable, verify account access before changing configuration.
