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

# Custom Integrations

> Put a tool Coalesce Quality has no integration for into the catalog yourself, with lineage, schemas, checks and run status

Coalesce Quality ships integrations for warehouses, dbt, SQLMesh, orchestrators, BI tools
and catalogs. This section is about everything else: a tool you built in-house, one you are
piloting, a streaming platform, a reverse-ETL job, a machine learning pipeline, an internal
service that reads a table and writes a file.

You describe it over the public API, and it becomes a first-class part of the catalog — it
appears in lineage, carries a schema, has a status, is covered by checks, and can be owned,
alerted on and put in a data product like anything else.

## What you can express

| Concept         | What it is                                                                                                       |
| --------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Entity type** | A kind of thing in your tool — `Kafka Topic`, `Feature View`, `Notebook`. Carries an icon and behavioural traits |
| **Entity**      | One instance of that kind: a slug id for machines, plus a name, description and annotations for people           |
| **Schema**      | The columns the entity has, so column-level lineage and column-level checks can reach it                         |
| **Lineage**     | What flows into it: derived from SQL, declared column by column, or stated as a plain edge                       |
| **Executions**  | The runs of the entity, so it has a health status rather than just a position in a graph                         |
| **Checks**      | Entities that validate other entities, attached to what they check                                               |
| **Code**        | The SQL, Python or configuration behind the entity, and the file in Git it lives in                              |
| **Group**       | The set of entities your integration owns, which is what makes deletion work                                     |

## When you need one

Reach for a custom integration when the thing you care about is **not addressable in a
warehouse**. If it has a table name, Coalesce Quality can already see it through the
warehouse integration, and the more direct routes are the ones to use:

* A **dbt** or **SQLMesh** project — use the [dbt](/dbt-integrations/dbt-core) or
  [SQLMesh](/sqlmesh-integrations/sqlmesh) integration.
* **Airflow**, or any orchestrator that speaks OpenLineage — use the
  [orchestration integrations](/orchestration-integrations/airflow).
* A **BI tool we support** — [Looker](/bi-integrations/looker),
  [Tableau](/bi-integrations/tableau), [Omni](/bi-integrations/omni).
* **Tests you already run in the warehouse** — [SQL tests](/monitors/sql-tests) express
  those without any code.

Everything else is a custom integration: a BI tool we have no connector for, a Kafka topic,
an S3 export, a feature store, an internal API that serves a dataset, a Python job that
transforms data outside SQL.

## What it looks like when it works

A field on a dashboard that runs no SQL at all, in a tool with no integration, traced back
to the physical warehouse columns it came from:

```
dashboard.revenue_by_category.revenue
  <- question.revenue
       <- model.net_revenue
            <- order_items.quantity
            <- order_items.unit_price
            <- order_items.discount
```

Three of those four hops use a different mechanism, because each hop has different
information available. Choosing correctly per hop is the part worth thinking about;
[Modelling your tool](/custom-integrations/modelling) is the decision.

## Where to go next

<CardGroup cols={2}>
  <Card title="Modelling your tool" icon="sitemap" href="/custom-integrations/modelling">
    Which lineage mechanism for which hop, what traits do, and the two mistakes that produce
    a valid-looking write and an empty graph
  </Card>

  <Card title="Building an integration" icon="code" href="/custom-integrations/building-an-integration">
    The walkthrough: credentials, types, entities, features, groups, executions, verification
  </Card>

  <Card title="API surface" icon="list" href="/custom-integrations/api-surface">
    Every service and method involved, the scope each one needs, and the limits
  </Card>

  <Card title="Worked examples" icon="github" href="https://github.com/getsynq/api/tree/main/examples">
    Runnable Go and Python programs, including a whole BI tool modelled end to end
  </Card>
</CardGroup>

## Support

Questions about modelling a tool of your own go to your Technical Account Manager — see
[Support](/support/support).
