> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Twilio as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/twilio > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](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` ![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 Enter your Twilio credentials to pull your Twilio data into the PostHog data warehouse. ## Adding a data source 1. Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog. 2. Click **\+ New source** and then click **Link** next to Twilio. 3. Find your **Account SID** on the [Twilio Console dashboard](https://console.twilio.com). For the remaining credentials, choose an authentication method: - **API key (SID + secret)** – recommended, since it can be revoked independently. Create a [Standard API key](https://console.twilio.com/us1/account/keys-credentials/api-keys) and copy its `API key SID` and `API key secret`. - **Auth token** – alternatively, use the `Auth token` shown alongside your Account SID in the console. 4. Back in PostHog, enter your Account SID, pick the authentication method, fill in the matching credentials, and click **Next**. 5. Select the tables you want to sync, set the sync method and frequency, then click **Import**. **Key type and region requirements** - Create the key in the same Twilio account as the Account SID you enter. A key from a parent or sibling account can't authenticate against it. - PostHog connects to `api.twilio.com`, so the account must be in Twilio's default `us1` region. Keys created in another region don't work. - A Standard API key can read every table except `keys`. Twilio restricts the [Keys resource](https://www.twilio.com/docs/iam/api-keys) to your Auth token and to Main API keys, so choose one of those if you want to sync `keys`. Once the syncs are complete, you can start using Twilio data in PostHog. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `messages` | SMS, MMS, and other messages | Incremental | | `calls` | Voice calls | Incremental | | `recordings` | Call recordings | Incremental | | `conferences` | Conference calls | Incremental | | `addresses` | Addresses on the account | Full refresh | | `applications` | TwiML applications | Full refresh | | `incoming_phone_numbers` | Phone numbers owned by the account | Full refresh | | `keys` | API keys on the account. Needs your Auth token or a Main API key | Full refresh | | `outgoing_caller_ids` | Verified outgoing caller IDs | Full refresh | | `queues` | Call queues | Full refresh | | `transcriptions` | Recording transcriptions | Full refresh | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Account SID` | text | Yes | | `Authentication method` | select | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `messages` | An SMS, MMS, or WhatsApp message sent or received through Twilio. | Incremental, Full refresh | date\_sent | — | | `calls` | A phone call made or received through Twilio. | Incremental, Full refresh | start\_time, end\_time | — | | `recordings` | An audio recording of a Twilio call or conference. | Incremental, Full refresh | date\_created | — | | `conferences` | A conference call hosting multiple Twilio call participants. | Incremental, Full refresh | date\_created, date\_updated | — | | `addresses` | A geographic address registered on a Twilio account for regulatory compliance. | Full refresh | — | — | | `applications` | A TwiML application that bundles a set of URLs for handling Twilio voice and messaging. | Full refresh | — | — | | `incoming_phone_numbers` | A phone number owned by your Twilio account and the handlers configured for it. | Full refresh | — | — | | `keys` | An API key (SID and secret) used to authenticate requests to the Twilio API. | Full refresh | — | — | | `outgoing_caller_ids` | A phone number verified for use as an outbound caller ID on the account. | Full refresh | — | — | | `queues` | A queue holding callers waiting to be connected to an agent. | Full refresh | — | — | | `transcriptions` | A text transcription of a Twilio call recording. | Full refresh | — | — | | `accounts` | A Twilio account: the main account the credential belongs to, or one of its subaccounts. | Full refresh | — | — | | `usage_records` | Aggregated usage and cost for a single category on the account. | Full refresh | — | — | | `verification_services` | A Twilio Verify service that groups the settings for a set of verifications. | Full refresh | — | — | | `verification_attempts` | A single Twilio Verify attempt to deliver a verification code to an end user. | Incremental, Full refresh | date\_created | — |