> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt

# Linking Ably as a source - Docs

Copy page

# Linking Ably as a source - Docs

![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70)

![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d)

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.

`npx @posthog/wizard warehouse`

[Learn more](/wizard.md)

![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)

![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you

**Alpha release**

This source is currently in **alpha**. The interface and available tables may change.

The Ably connector syncs your app's aggregated usage statistics — message volumes, connection counts, channel activity, and API request metrics — into PostHog, so you can analyze your realtime infrastructure alongside your product data.

## Prerequisites

You need an Ably account with an **app API key** that has permission to read stats. API keys are created per-app in the [Ably dashboard](https://ably.com/dashboard) and follow the format `app-id.key-id:key-secret`.

## Adding a data source

1.  In PostHog, go to the [Sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section.
2.  Click **\+ New source** and click **Link** next to this source.
3.  Enter your credentials (see [Configuration](#configuration) below) and click **Next**.
4.  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 Ably, you'll need:

-   **API key** – your Ably app API key, including both the key ID and secret (e.g. `xVLyHw.XXXXXX:1234567890abcdef`). Create or find this in the [Ably dashboard](https://ably.com/dashboard) under your app's **API Keys** tab.
-   **Stats granularity** – the time interval for aggregated stats: `minute`, `hour` (default), `day`, or `month`.

## Getting your API key

1.  Log in to the [Ably dashboard](https://ably.com/dashboard).
2.  Select the app you want to sync stats from.
3.  Go to the **API Keys** tab.
4.  Copy an existing key or create a new one. The key must include both parts: `app-id.key-id:key-secret`.
5.  Paste the full key into PostHog when linking the source.

## Configuration

| Option | Type | Required |
| --- | --- | --- |
| API key | password | Yes |
| Stats granularity | select | Yes |

## Supported tables

| Table | Description | Sync method | Incremental field | Primary key |
| --- | --- | --- | --- | --- |
| Stats | Aggregated usage statistics for an Ably app over a fixed time interval — message/connection/channel volumes and API request counts, at the selected granularity. | Incremental, Full refresh | Interval start | — |

## 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_at` timestamp). 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](/docs/cdp/sources.md#sync-methods) for a full explanation of how each mode works and how to choose between them.

The `Stats` table supports incremental sync on `interval_start_ms`. When using incremental sync, each run picks up where the last one left off, fetching only new time intervals. Full refresh is also available if you prefer to reload all stats each sync.

| Table | Sync methods |
| --- | --- |
| Stats | Incremental sync, full refresh |

## Troubleshooting

-   **Authorization errors** – your API key is invalid, revoked, or missing the secret portion. Keys must be the full `app-id.key-id:key-secret` string. Generate a new key in the [Ably dashboard](https://ably.com/dashboard) and update the source credentials.
-   **Empty results** – check that the app has had traffic in the selected granularity window. A newly created app with no messages or connections won't have any stats to sync.
-   **Wrong granularity** – the stats granularity (`minute`, `hour`, `day`, `month`) is set when you link the source. To change it, update the source configuration and run a full refresh.

If your sync is failing or data looks wrong, see the [Data warehouse troubleshooting guide](/docs/data-warehouse/troubleshooting.md). If that doesn't help, [contact support](https://us.posthog.com/#panel=support%3Asupport%3Adata_warehouse%3A%3Atrue) – we're happy to help.

### Was this page useful?

HelpfulCould be better