Linking Decagon as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
This source is currently in alpha. The interface and available tables may change.
The Decagon connector syncs conversations between your users and your Decagon AI agents into the PostHog Data warehouse, including every message, customer satisfaction (CSAT) ratings, tags, and metadata. Use it to analyze support quality alongside your product data.
Prerequisites
You need a Decagon account with API access and a Decagon API key.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- Select the tables you want to sync, choose a sync method and frequency, then click Import.
Once the syncs are complete, you can start querying this data in PostHog.
When linking Decagon, you'll need:
- API key – find or generate one on the Developer page of your Decagon dashboard.
Sync modes
Each table can be synced in one of several modes, depending on what the source supports:
- Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
- Incremental – only new or updated rows are synced on each run, using a cursor field (such as an
updated_attimestamp). Cheaper than a full refresh, but deletes aren't captured. - Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
- Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.
See sync methods for a full explanation of how each mode works and how to choose between them.
The conversations table syncs as a full refresh. Decagon's export returns conversations oldest first, and a conversation reappears in the export whenever it receives new messages, so each sync picks up the latest version of every conversation.
Configuration
| Option | Type | Required |
|---|---|---|
API key | password | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
conversations | A conversation between a user and a Decagon AI agent, including every message, the customer satisfaction rating, tags, and metadata attached to the conversation. | Incremental, Full refresh | updated_at | — |
agent_assist_actions | An Agent Assist action performed by a human support agent, one row per action. An append-only event stream used to measure agent adoption of AI assist features. | Append only, Full refresh | created_at | — |
articles | A knowledge base article Decagon's AI agent can answer with, including its full body content and where it was synced from. | Full refresh | — | — |
article_usage | Usage counts per knowledge base article, as returned by Decagon's article usage endpoint. A point-in-time snapshot bucketed in UTC, replaced on every sync. | Full refresh | — | — |
tags | A tag in Decagon's taxonomy, one row per tag across all hierarchies. Resolves the tag ids embedded in conversation rows to names, parents, and hierarchy positions. | Full refresh | — | — |
admin_logs | An entry in Decagon's admin log: a configuration change with who made it, when, and the before and after state. An immutable audit trail. | Incremental, Full refresh | created_at | — |
team_members | A member of the Decagon team, one row per user including pending invites. Resolves the user ids referenced by other Decagon tables to a person. | Full refresh | — | — |
watchtower_jobs | A Watchtower QA/evaluation job, including the rubric and configuration needed to interpret its quality scoring. | Full refresh | — | — |
Troubleshooting
Decagon rate limits its API to 1 request per second, and each request returns up to 100 conversations, so accounts with a large conversation history can take a while to complete a sync.
If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.