Skip to main content
Sympla is a Brazilian platform for selling tickets and managing events, both in person and online. This connector reads your producer account through the official Sympla Public API and brings your events, their sessions (apresentações), every order with buyer, totals, invoice data and UTM, and every participant (ticket) with sector, prices, custom form answers and check-in.
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.
The token reads every event of the producer account. If you generate a new token in Sympla, update the source with it.
Once you’re done, click Next.

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.
Once you are done configuring, click Next.

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.
For you to be able to see it on your Catalog, you need at least one successful source run.

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.
Every event of the producer account.Table: events · Primary key: id · Sync: Full table
Sessions (apresentações) of every event, published or not.Table: presentations · Primary key: event_id, id · Sync: Full table
Every order of every event, cancelled and refunded ones included.Table: orders · Primary key: event_id, id · Sync: Incremental (by updated_date)
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 by participants.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_status or ticket_status when you need only valid sales.
  • Unpublished events and sessions are included. Filter by published when 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.