> For the complete documentation index, see [llms.txt](https://docs.euno.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.euno.ai/sources/transformation-etl/stitch-integration.md).

# Stitch

Euno's Stitch integration observes replication metadata from Stitch and connects it to the warehouse tables Stitch writes.

The integration discovers:

* The Stitch account
* Stitch sources
* Stitch streams
* Destination warehouse table references for supported warehouses

{% hint style="info" %}
Stitch table resolution is supported for Snowflake, BigQuery, SQL Server, and Databricks destinations. Destination configuration is shown as redacted context on the Stitch account rather than as separate resources. Other destination types can appear in the account details, but Euno does not create warehouse table links for them.

The account's destination resolver context contains only allow-listed, non-secret identifiers reported by Stitch before **Database mapping** is applied. These values help with support and mapping configuration; they are not canonical mapped warehouse identities. Each run resolves tables from the current typed Stitch destination payload, not from stored account context.
{% endhint %}

## Setting up Euno's Stitch Integration

### Step 1: Create a Stitch API access token

1. Log in to your Stitch account.
2. Open **Account Settings**.
3. Go to **API Access Keys**.
4. Create or copy an API access token for the Stitch account you want Euno to observe.
5. Keep the token available for the Euno source setup.

### Step 2: Configure Euno's Stitch source

#### Step 1: Access the Sources Page

1. Go to the **Sources** page.
2. Click **Add New Source** or open the source gallery.
3. Select **Stitch**.

#### Step 2: General Configuration

Asterisk (\*) means a mandatory field.

| Configuration | Description                                                             |
| ------------- | ----------------------------------------------------------------------- |
| Name\*        | Enter a name for your Stitch source, for example "Stitch - Production". |
| API token\*   | Enter the Stitch API access token generated in Stitch.                  |

#### Step 3: Advanced Configuration

Under **Advanced**, you can configure:

| Configuration                         | Description                                                                                                                                                                                                                                                              |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Base URL                              | Optional Stitch API base URL. Leave blank to use `https://api.stitchdata.com/v4`.                                                                                                                                                                                        |
| Observe extraction and load history   | When enabled, Euno collects bounded latest successful extraction and load timestamps for Stitch sources.                                                                                                                                                                 |
| History lookback days                 | Number of days of Stitch extraction/load history to inspect. The supported range is 1-60 days. Default: 30.                                                                                                                                                              |
| Observe streams and warehouse lineage | Enabled by default. Euno creates `stitch_stream` resources and resolves selected streams to warehouse tables when possible. When disabled, Euno observes only the Stitch account and sources; streams, warehouse table mappings, and Stitch-derived lineage are omitted. |
| Source filter                         | Optional allow/deny regular expressions matched against Stitch source names. The default includes all Stitch sources.                                                                                                                                                    |
| Database mapping                      | Maps Stitch-reported destination identifiers to matching Euno warehouse identities. It is optional for Snowflake, BigQuery, and SQL Server when both systems already use the same identifier, and required for Databricks.                                               |

{% hint style="info" %}
Use these key/value shapes for **Database mapping**:

* **Snowflake:** Stitch destination `host` → the Snowflake host or account identifier Euno observes.
* **BigQuery:** Stitch destination `project_id` → the BigQuery project ID Euno observes.
* **SQL Server:** Stitch destination `host` → the SQL Server hostname Euno observes.
* **Databricks:** hostname from the Stitch `jdbc:spark://<hostname>[:port]...` URL → `databricks.<warehouse-host>.<catalog>`.

When no mapping entry exists, Snowflake, BigQuery, and SQL Server use the Stitch identifier directly. Databricks always requires a mapping because the JDBC URL does not identify the Unity Catalog catalog. Snowflake and SQL Server host keys and BigQuery project-ID keys must exactly match the values reported by Stitch. Only Databricks key lookup trims and compares keys without case; multiple Databricks keys that normalize to the same JDBC hostname fail as ambiguous.
{% endhint %}

{% hint style="info" %}
Stitch always constructs BigQuery table references with the default `bigquery` URI prefix, and **Database mapping** changes only the project ID. A native BigQuery source configured with a custom `uri_base` emits a different URI prefix, so its tables do not automatically join the Stitch table references. Use the default `bigquery` URI base when automatic matching is required.
{% endhint %}

#### Step 4: Scheduling Updates

1. Enable the Schedule toggle.
2. Choose from the following:
   1. **Weekly**: Specify the days and times for updates.
   2. **Hourly**: Enter an interval in hours, for example every 6 hours.

#### Step 5: Resource Cleanup

To keep your data relevant and free of outdated resources, Euno provides automatic **resource cleanup** options. These settings determine when a resource should be removed if it is no longer detected by a source integration. For a detailed explanation on Euno's cleanup strategies, see: [Resource Sponsorship in Euno](/developer-reference/technical-concepts/resource-sponsorship-and-cleanup-in-euno.md).

* **Immediate Cleanup**: Remove resources not detected in the most recent successful source integration run.
* **No Cleanup**: Keep all resources indefinitely, even if they are no longer detected.

#### Step 6: Save Configuration

Click the **Save** button to complete the setup.

## What Euno Discovers

The Stitch integration discovers the Stitch account, its sources and streams, and supported destination warehouse table references.

For the full resource and relationship reference, see [Stitch Integration Discovered Resources](/sources/transformation-etl/stitch-integration/stitch-integration-discovered-resources.md).

## Destination Warehouse Table Links

Euno can link selected Stitch streams to destination warehouse tables when the configured destination is Snowflake, BigQuery, SQL Server, or Databricks and its metadata contains the required warehouse identifiers.

For the best table matching results, connect the corresponding Snowflake, BigQuery, SQL Server, or Databricks source in Euno as well. Stitch contributes replication context, but the warehouse integration remains the source of truth for the physical table lifecycle and rich table metadata.

Each landed table is defined by the selected Stitch stream that writes it. Stitch sources group streams but do not define tables themselves.

Euno uses the stable Stitch source name as the destination schema or dataset and the Stitch stream name as the destination table name. For Databricks, the catalog comes only from the required canonical database mapping; Euno does not infer it from the JDBC URL.

If Stitch returns missing, blank, or incorrectly typed identity metadata for a selected supported destination, the run fails closed. Non-string **Database mapping** keys and values are rejected when the source configuration is validated. During a crawl, a blank used mapping, missing required Databricks mapping, normalized Databricks-key collision, or semantically invalid mapped string also fails without treating the incomplete result as proof that an existing mapping was removed. Unsupported destination types are reported and omitted without preventing supported sibling destinations from resolving.

## Salesforce Lineage

For Stitch Salesforce sources, Euno can connect replicated warehouse tables back to Salesforce objects and fields.

This requires:

* A Stitch source whose source type is Salesforce.
* A Salesforce source in Euno that has crawled the Salesforce org metadata.
* A Snowflake, BigQuery, SQL Server, or Databricks source in Euno that has crawled the destination tables and columns.
* **Observe streams and warehouse lineage** enabled for the Stitch source, which is the default.

Euno avoids guessing when Salesforce objects or fields are missing or ambiguous. Non-Salesforce Stitch sources are visible as Stitch metadata, but they do not produce source-system lineage in this version.

## Validation After Setup

After the first Stitch run completes:

1. Confirm the Stitch source run is successful.
2. Open the data model and search for the Stitch account, sources, and streams.
3. Check that selected Stitch streams define the expected destination warehouse tables.
4. For Salesforce lineage, confirm the related Salesforce and warehouse sources have also run successfully.
5. If table links are missing, review the destination type and database mapping configuration.

## Troubleshooting

| Symptom                                                                         | Possible cause                                                                                                                                        | What to check                                                                                                                                                           |
| ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Stitch setup fails during validation                                            | Invalid or expired Stitch API token                                                                                                                   | Create a fresh Stitch API access token and update the Euno source.                                                                                                      |
| A successful run has no destination table links                                 | Stream observation is disabled, the destination type is unsupported, or the selected source has no mapped destination                                 | Enable **Observe streams and warehouse lineage**, then confirm the selected source is mapped to a supported Snowflake, BigQuery, SQL Server, or Databricks destination. |
| The run fails because destination inventory or required metadata is unavailable | A mapped destination was not returned to Euno, or a required Stitch-reported identity value is missing, blank, or incorrectly typed                   | Revalidate the source and confirm that the API token can read the required destination configuration.                                                                   |
| The run fails with a Database mapping instruction                               | A used mapping is blank, a Databricks hostname mapping is missing or ambiguous, or a mapped string does not satisfy the destination identity contract | Follow the run's destination-specific remediation and correct the exact mapping key/value shape documented above.                                                       |
| Destination tables do not match existing warehouse resources                    | Stitch and Euno use different warehouse identifiers                                                                                                   | Add or adjust **Database mapping** using the destination-specific key/value shapes above.                                                                               |
| Databricks reports a missing or invalid mapping                                 | The JDBC hostname has no mapping, more than one key normalizes to that hostname, or the value is not a canonical warehouse-and-catalog identity       | Keep exactly one mapping for the JDBC hostname and set its value to `databricks.<warehouse-host>.<catalog>`. Do not use the JDBC path as the catalog.                   |
| Salesforce lineage is missing                                                   | Required Salesforce or warehouse metadata is missing                                                                                                  | Run the Salesforce source and the destination warehouse source, then rerun Stitch.                                                                                      |
| Stream resources or selected-field details are missing                          | Stream observation is disabled or Stitch stream details were unavailable                                                                              | Enable **Observe streams and warehouse lineage** and rerun the source.                                                                                                  |
| The run cannot determine the Stitch account                                     | The token scope does not return a client ID, or saved and current API data report conflicting client IDs                                              | Revalidate the source and confirm that the API token belongs to one Stitch account.                                                                                     |
| Latest extraction/load timestamps are missing                                   | History observation is disabled or Stitch history data is unavailable in the lookback window                                                          | Enable **Observe extraction and load history** and adjust **History lookback days** if needed.                                                                          |

## Known Limitations

* Destination warehouse table resolution is supported for Snowflake, BigQuery, SQL Server, and Databricks. Other Stitch destination types remain unsupported for table links.
* Stitch destinations are account context, not separate data-model resources.
* Stitch does not own destination warehouse tables in Euno; the warehouse integration owns the physical table lifecycle.
* Databricks destination resolution requires an explicit JDBC-hostname-to-warehouse-and-catalog mapping.
* Stitch BigQuery references always use the `bigquery` URI prefix. They do not automatically join native BigQuery resources emitted under a custom `uri_base`; **Database mapping** changes only the project ID.
* Source-system lineage is currently supported only for Stitch Salesforce sources.
* Row-count metrics, rolling success-rate metrics, and rolling error-count metrics are not currently supported.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.euno.ai/sources/transformation-etl/stitch-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
