Linking pretix as a source
This source is currently in alpha. The interface and available tables may change.
The pretix connector syncs your event ticketing data – events, orders, invoices, customers, gift cards, products, vouchers, check-in lists, and more – into the PostHog data warehouse. Use it to combine ticket sales and attendee data with your product analytics.
Prerequisites
- A pretix organizer account on pretix.eu or a self-hosted pretix installation reachable over HTTPS.
- A team API token with read permissions for the resources you want to sync. For example, Can view orders for orders and invoices, Can view vouchers for vouchers.
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 pretix, you'll need:
Organizer short name – the slug that appears in your pretix URLs (for example
my-organizerinhttps://pretix.eu/my-organizer/).API token – go to your organizer's control panel, open Organizer settings → Teams, select or create a team with the read permissions you need, then create an API token for it.
API URL (self-hosted only) – set this to your own pretix host (for example
https://tickets.example.com). Leave it blank to use hosted pretix athttps://pretix.eu.
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 orders table supports incremental sync using pretix's modified_since filter on the last_modified field, so re-syncs only fetch changed orders. All other tables are full refresh.
Configuration
| Option | Type | Required |
|---|---|---|
Organizer short name | text | Yes |
API token | password | Yes |
API URL (self-hosted only) | text | No |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
events | An event or event series run by the organizer, such as a conference or a concert. | Full refresh | — | — |
orders | A ticket order placed in one of the organizer's events, including its positions (individual tickets), fees, payments, and refunds. | Incremental, Full refresh | last_modified | — |
invoices | An invoice or invoice cancellation issued for an order in one of the organizer's events. | Full refresh | — | — |
customers | A customer account registered with the organizer, which orders can be attached to. | Full refresh | — | — |
gift_cards | A gift card issued by the organizer that can be used to pay for orders. | Full refresh | — | — |
subevents | A date in an event series, carrying its own schedule, prices, and quotas. | Full refresh | — | — |
items | A product that can be sold for an event, such as a ticket type or merchandise, including its variations. | Full refresh | — | — |
categories | A product category used to group an event's items in the shop. | Full refresh | — | — |
questions | A question asked of ticket buyers during checkout, such as dietary requirements or T-shirt size. | Full refresh | — | — |
quotas | A quota limiting how many of an event's items can be sold. | Full refresh | — | — |
vouchers | A voucher granting discounted or reserved access to an event's items. | Full refresh | — | — |
checkin_lists | A check-in list used to admit attendees at the door, with its position and check-in counters. | Full refresh | — | — |
waiting_list_entries | A waiting list entry from a customer waiting for an event's sold-out item to become available. | Full refresh | — | — |
tax_rules | A tax rule defining how taxes are calculated for an event's products. | Full refresh | — | — |
Event-scoped tables (such as items, quotas, and vouchers) include an event_slug column added during sync so rows from different events stay distinct.
Troubleshooting
"Your pretix API token does not have access to this organizer" – check that the organizer short name matches your pretix URLs exactly and that the token belongs to a team of that organizer.
Permission errors on specific tables – pretix team tokens carry per-resource permissions. Grant the team the matching read permission (for example Can view orders) or deselect the table.
API URL must use HTTPS – self-hosted pretix URLs must use
https://. Update the API URL and try again.
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.