> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Mailjet as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/mailjet > **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) - [Sync limitations](#sync-limitations) - [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 Mailjet API key and secret key to pull your Mailjet 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 Mailjet. 3. Find your **API key** and **Secret key** on your [Mailjet API key management page](https://app.mailjet.com/account/apikeys). 4. Back in PostHog, enter the API key and secret key, then click **Next**. 5. Select the tables you want to sync, set the sync method and frequency, then click **Import**. Once the syncs are complete, you can start using Mailjet data in PostHog. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `contact` | Contacts | Full refresh | | `contactslist` | Contact lists | Full refresh | | `listrecipient` | Contact-to-list membership records | Full refresh | | `campaign` | Campaigns | Full refresh | | `campaigndraft` | Campaign drafts | Full refresh | | `message` | Messages | Full refresh | | `contactmetadata` | Contact metadata definitions | Full refresh | | `template` | Templates | Full refresh | | `openinformation` | Email open statistics | Incremental | | `clickstatistics` | Email click statistics | Incremental | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Sync limitations Only the statistics tables (`openinformation` and `clickstatistics`) support incremental syncing, using Mailjet's `FromTS` time-window filter. The list resources have no reliable server-side time filter and are full refresh only. ## Configuration | Option | Type | Required | | --- | --- | --- | | `API key` | password | Yes | | `Secret key` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `contact` | A contact (recipient) stored in the Mailjet account. | Full refresh | — | — | | `contactslist` | A contact list in Mailjet that groups contacts for sending campaigns. | Full refresh | — | — | | `listrecipient` | The relationship linking a contact to a contact list, with its subscription status. | Full refresh | — | — | | `campaign` | A sent campaign in Mailjet representing a batch of messages. | Full refresh | — | — | | `campaigndraft` | A draft campaign in Mailjet, including its content and recipient configuration. | Full refresh | — | — | | `message` | An individual message (email) processed by Mailjet, with its delivery status. | Full refresh | — | — | | `contactmetadata` | A custom contact property (metadata field) definition in Mailjet. | Full refresh | — | — | | `template` | A reusable email template stored in the Mailjet account. | Full refresh | — | — | | `openinformation` | An open event recording that a recipient opened a message in Mailjet. | Incremental, Full refresh | OpenedAt | — | | `clickstatistics` | A click event recording that a recipient clicked a link in a message in Mailjet. | Incremental, Full refresh | ClickedAt | — | | `bouncestatistics` | A bounce event recording that a message could not be delivered to a recipient in Mailjet. | Incremental, Full refresh | BouncedAt | — | | `statcounters` | Daily delivery and engagement counters for the whole Mailjet API key, counted by the day each event happened. | Incremental, Full refresh | Timeslice | — | | `messageevent` | A delivery or engagement event pushed by the Mailjet Event API: sent, open, click, bounce, blocked, spam or unsub. Mailjet has no list endpoint for this stream, so the table is populated by webhook deliveries only. | Webhook only | — | — |