Technical Guide

4 minute read

This page contains technical information for experienced Salesforce administrators who are looking for a deeper explanation of the key jobs that run as part of the Events Made Easy (Eventbrite) application.

The data is synced from Eventbrite to Salesforce on an hourly basis (unless you have scheduled it to run at different intervals). When you first connect, it will run a "full sync", this means it will query Eventbrite for all the data it has for your company (unless you have set "days to sync" in Sync Settings). After a full sync it will remember the last time it ran and only query data from that time onwards (i.e. to avoid re-syncing everything).

If there are any errors when syncing, it will attempt to re-sync from where it left off.

Below is an overview of the key Events Made Easy (Eventbrite) custom objects (this can be useful when running Salesforce reports).

ERD for Eventbrite (EB) for Salesforce. General model is EB Events > Orders > Attendee. Venue and Ticket Class, and Question are children of EB Event.  EB Answer is join between attendee and Question

Our integration does NOT use API limits. All syncing to and from Eventbrite is done via outbound calls, these do not count against your salesforce API limit. All syncing to and from Eventbrite is done via outbound calls, these do not count against your salesforce API limit.

Background jobs

The following table provides a list of Events Made Easy (Eventbrite) batch jobs that can run in the background within Salesforce. These jobs will run as part of the primary sync.

AttendeesBatch

Syncs Eventbrite attendee and Eventbrite answers to Salesforce. The data is stored in custom objects Eventbrite_Attendee__c and Eventbrite_Answer__c. It also stores the total orders and events on the Eventbrite Organization object (i.e. Eventbrite_Org__c).

The information in these tables is later processed by RuleBatch which is responsible for created and updating leads, contacts and accounts.

AnswersBatch

Maps Eventbrite answers to Salesforce records. It finds all records stored in the Eventbrite_Answer__c object and attempts to update Salesforce Contacts or Leads based on any mappings that have been specified.

This batch may fail if you have any custom validation rules, triggers, flows etc that may prevent Salesforce Contacts or Leads from being updated. E.g. a validation rule that says a custom field is required, but the information is not available via Eventbrite.

Any errors will be logged under Maintenance, however you can also perform an audit on any attendee record to see if there are any mapping issues. See: https://www.beaufort12.com/eventbrite/support/orders-attendees#validation

CampaignBatch

Update any linked Salesforce campaigns with Eventbrite events for any mapped fields that may have changed since the last sync. It can also auto create Salesforce Campaigns based on Eventbrite events. The Campaign Id is stored on the Event__c object to ensure it doesn't create new Campaigns.

ConfigBatch

This is typically the first job to run as part of the primary sync - it gathers meta data that is used throughout the rest of the sync.

CampaignMembersBatch

Depending on general settings, this can auto create Campaign member statuses and link and create Salesforce campaign members against a Salesforce campaign based on the Eventbrite attendee records (i.e. the AttendeesBatch).

The matching of existing Campaign Members is based on the rules setup in Mappings (under Eventbrite Settings). The Attendee record contains the Id of the Contact or Lead and it is this value that is used to determine if the Campaign Member already exists.

EventsBatch

Responsible for syncing Eventbrite events, venues, ticket classes and questions to Salesforce.

OrdersBatch

Syncing Eventbrite orders to Salesforce (Eventbrite_Order__c) and links them to events. The Salesforce object Eventbrite_Order__c contains valuable Eventbrite data such as order amount, contact details for the order, tax details etc.

RuleBatch

After the main records have been synced from Eventbrite to Salesforce, this job runs. It determines if Salesforce leads, contacts and accounts are created. By default it won't create any Salesforce records (leads etc) - this needs to be configured via the Mappings page.

Salesforce Domain Name

If you are using Salesforce lightning but don't have a domain set up, you may receive the error similar to this: No CONTROLLER named js://eb4sf.pagination found

Salesforce requires a domain to be set up in order to use lightning components (which are used as part of the Events Made Easy (Eventbrite) application). See Enable My Domain To Use Lightning Components

Setting up a Salesforce domain will remove this message.

This Video walks you through setting up a Domain Name.

In this article