The connector only reads data. It never performs check-ins or creates, changes or deletes anything in Sympla.
Configuring Sympla as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Sympla option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
The Sympla Public API uses an API token generated by the event producer. Log in to Sympla with the producer account, go to Minha Conta > Integrações and generate (or copy) the token.- API Token: the token you copied.
- Start Date: the earliest date synced for orders and participants. Orders and participants created or updated since this date are loaded. Events and sessions are always loaded in full.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: keep the suggested type. Orders and Participants are Incremental: each sync reads only what changed since the previous one and merges it into the table. Events and Sessions are Full table: each sync reads them whole and replaces the table.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Orders and participants are read incrementally, so an hourly or daily sync works well. During an event, an hourly sync keeps check-ins up to date. Optionally, you can configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Available streams
The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.
Join
orders.event_id, participants.event_id and presentations.event_id with events.id, and participants.order_id with orders.id. Check-ins are part of each participant (check_in, check_in_date).
Fields by stream
Fields marked String (JSON) hold a nested object or list as JSON text; use your warehouse’s JSON functions to read them. Dates are in UTC.Events
Events
Every event of the producer account.Table:
events · Primary key: id · Sync: Full tableSessions
Sessions
Sessions (apresentações) of every event, published or not.Table:
presentations · Primary key: event_id, id · Sync: Full tableOrders
Orders
Every order of every event, cancelled and refunded ones included.Table:
orders · Primary key: event_id, id · Sync: Incremental (by updated_date)Participants
Participants
Every participant (ticket) of every event, cancelled ones included, with check-in.Table:
participants · Primary key: event_id, id · Sync: Incremental (by ticket_updated_at)Implementation Notes
Data Quality Considerations
- How orders and participants stay up to date. Each sync reads, for every event, the orders and participants changed since the previous sync (with two days of margin). A new event is read in full from the Start Date. If a sync fails, the next one reads the same period again.
- Check-ins. Participants of current events (events that ended in the last 7 days, have not ended yet, or have no date) are read in full on every sync, so check-ins made at the door are always loaded, even if Sympla does not mark the ticket as updated.
- Drafts and removed events. If Sympla answers “not found” for the orders or participants of an event (for example a draft), that event is skipped, the sync log says so the first time, and it is read in full once Sympla answers. Sessions of an event removed in Sympla while the sync runs are skipped too.
- Order status on participants. Use
orders.order_status(joined byparticipants.order_id) as the reference status of a sale: a refund made after the event may not update the participant rows of a past event. - Cancelled and refunded orders are kept, with their current status. Filter by
order_statusorticket_statuswhen you need only valid sales. - Unpublished events and sessions are included. Filter by
publishedwhen you need only public ones. - Affiliates are not available. The current Sympla Public API does not document affiliate (afiliados) data.
- Full table tables are never half updated. The connector reads all the data of a full table table before writing any of it. If Sympla fails while it is read, nothing of that table is sent and the sync shows it as failed. On GCP (BigQuery) the table keeps its previous content; on AWS, a full table table whose stream failed may be emptied by the load step until the next successful sync. If the Events table suddenly comes back empty, the sync fails for that table instead of emptying it; if the events really were removed in Sympla, run a full sync of the source to accept it.
API Limits & Performance
- Sympla does not publish a request limit. The connector makes at most 5 requests per second and, when Sympla asks it to slow down, waits and tells you in the sync log.
- Each sync makes about five requests per event with every table selected (sessions, orders and participants), plus more pages for events with many orders or participants. An account with 2,000 events takes over 30 minutes per sync. If you do not need sessions, deselect the Sessions table to make each sync shorter.
- The first sync reads every order and participant since the Start Date.
Troubleshooting
Skills for agents
Download Sympla skills file
Sympla connector documentation as plain markdown, for use in AI agent contexts.