34
Table of Contents Introduction Feature Overview Requirements Getting Started Installation Instructions Authentication Default Configuration Configuration Sync Configuration Advanced Mapping Object Mapping Field Mapping Filters Record Type Enabled Sync Operation Ticket Types Static Mapping Question Mapping Sync Syncing Sync Status Scheduled Sync Single Event Sync Integration Logs Additional Features Custom Questions and Answers Ticket Types Promo Codes Discount Codes Access Codes Contact Lists Appendix I : Known Issues & Limitations

Eventbrite sync documentation 02 2015

Embed Size (px)

Citation preview

Page 1: Eventbrite sync documentation 02 2015

Table&of&Contents&&&Introduction&! Feature!Overview!

! Requirements!

! !

Getting&Started&! Installation!Instructions!

! Authentication!

! Default!Configuration!

! !

Configuration&Sync!Configuration!

Advanced!Mapping!

! ! Object!Mapping!

Field!Mapping!

! ! Filters!

! ! Record!Type!

! ! Enabled!

! ! Sync!Operation!

! ! Ticket!Types!

! ! Static!Mapping!

! ! Question!Mapping!

! !

Sync&& Syncing!

& Sync!Status&& Scheduled!Sync&& Single!Event!Sync!

! Integration!Logs!

!

Additional&Features&! Custom!Questions!and!Answers!

! Ticket!Types!

! Promo!Codes!

! ! Discount!Codes!

! ! Access!Codes!

! Contact!Lists!

! ! !

Appendix&I&:&Known&Issues&&&Limitations&!

!

!

!

!

Page 2: Eventbrite sync documentation 02 2015

!

!

Introduction&! !

Thank!you!for!downloading!EventbriteSync,!your!Eventbrite!to!Salesforce.com!

connector.!Our!goal!is!for!you!to!use!Salesforce.com!to!get!the!most!out!of!your!

Eventbrite!data.!We!hope!that!you!will!find!this!guide!helpful!when!setting!up!and!

configuring!the!connector.!!

!

!

Feature&Overview&! !

!

Sync&&At!the!heart!of!the!EventbriteSync!connector!is!the!Sync.!A!sync!is!an!action!that!is!performed!that!imports!over!all!your!Event,!Order,!and!Attendee!data!from!your!Eventbrite!account!into!your!Salesforce!org.!!

!

KThe!sync!is!onCdemand,!meaning!you!can!click!a!button!to!initiate!a!sync.!The!operation!will!proceed!in!the!background!and!you!are!free!to!continue!with!the!

rest!of!your!work!while!it!finishes.!

KThere!is!also!a!scheduled!sync.!This!allows!you!to!set!a!sync!to!recur!daily!at!a!specified!time.!

KYou!also!have!the!option!to!perform!a!single!event!sync.!This!will!get!the!latest!Event!data!for!a!particular!event!you!have!created!in!Salesforce!rather!than!the!

entire!system.!

KThe!sync!inserts!new!records!and!updates!existing!ones!appropriately,!so!you!do!

not!have!to!worry!about!duplicate!records!being!created!by!this!process.!!

KThe!sync!is!highly!configurable!through!custom!mapping.!KYou!choose!what!data!you!want!and!don’t!want.!For!instance,!you!can!choose!to!

enable/disable!creation!of!Eventbrite!Order!records!in!Salesforce.!!KYou!can!add!filters!so!that!you!only!import!data!meeting!certain!criteria.!For!instance,!you!may!only!want!to!import!Eventbrite!Order!records!as!Salesforce!

Opportunities!if!they!were!paid,!rather!than!free!tickets.!!

K!MultiCLanguage!and!MultiCCurrency!ready.!!!

Mapping&&& The!brain!of!the!operation!is!the!mapping.&This!determines!what!objects!will!get!created!and!what!fields!will!contain!the!data!from!Eventbrite.!You!have!a!high!

degree!of!flexibility!here!to!map!your!incoming!data!from!Eventbrite!to!Salesforce!

objects!and!fields!of!your!choosing.!!

!

Page 3: Eventbrite sync documentation 02 2015

K!For!instance,!Eventbrite!Events!are!by!default!mapped&to!the!Campaign!object!in!Salesforce.!This!means!that!Events!will!be!created!with!all!their!associated!

Eventbrite!data!as!Campaign!records!in!Salesforce.!You!can!instead!choose!to!map!

Events!to!a!standard!or!custom!object.!!

KYou!choose!what!fields!to!hold!your!Eventbrite!data.!For!instance,!you!can!map!

the!amount!of!an!Eventbrite!Order!to!any!field,!standard!or!custom,!with!which!

you!typically!conduct!reporting!in!Salesforce!

!

!

Requirements&&Eventbrite&You!need!to!have!an!account!in!Eventbrite!from!which!you!would!like!to!import!data!

into!Salesforce.!This!account!will!be!associated!with!your!Salesforce!org!during!

installation,!and!must!be!authenticated!before!a!sync!can!be!performed.!This!would!

require!the!authenticating!user!to!be!able!to!log!in!to!Eventbrite,!and!only!needs!to!

be!performed!once.!!

!

Salesforce&Edition&In!order!to!install!the!EventbriteSync!connector,!you!need!to!have!one!of!the!

following!editions!of!Salesforce:!Professional,!Enterprise,!Performance,!Unlimited,!

and!NonKProfit.!In!case!of!any!doubts,!you!can!attempt!an!installation!and!you!will!

be!notified!if!your!org!does!not!support!the!package.!!

!

Note!to!Salesforce!Professional!Edition!users:!!

In!order!for!a!custom!field!to!be!mappable!and!show!up!in!the!mapping!picklists,!the!

field!must!be!added!to!the!object’s!page!layout.!This!includes!fields!included!in!the!

package,!such!as!EventbriteSync__Eventbrite_Id__c!and!EventbriteSync__Buyer__c.& !

Salesforce&Objects&At!a!minimum,!the!following!standard!objects!are!required!to!complete!an!

installation:!Campaign,!Campaign!Member,!Opportunity,!Contact,!and!Lead.!

!

“Customize&Application”&Permission&In!order!to!make!configuration!changes,!the!user!needs!to!have!the!“Customize!

Application”!Salesforce!permission.!If!a!user!lacks!this!permission,!they!may!still!

perform!syncs,!but!will!be!unable!to!make!sync!configuration!and!mapping!changes.!

!

Events&with&Parent&Objects&!

Do!you!have!a!setup!in!Salesforce!where!your!events!have!parent!records!that!are!

not!found!in!Eventbrite?!Consider!this!example:!You!have!a!band!that!has!individual!

performances,!and!you!manage!each!performance!in!Eventbrite.!In!Salesforce,!you!

then!have!one!band!record!per!band,!and!it!has!many!child!records!(performances)!

that!correspond!to!each!Eventbrite!Event.!!In!this!scenario!you!would!want!the!

Page 4: Eventbrite sync documentation 02 2015

Eventbrite!Events!to!map!to!performances!in!Salesforce,!but!if!they!are!in!a!masterK

detail!relationship!with!bands,!you!would!also!need!to!establish!that!relationship!

during!the!sync!for!the!performance!records!to!be!created.!Since!information!

regarding!that!relationship!is!unknown!to!Eventbrite,!some!custom!code!will!need!

to!be!created!in!your!Salesforce!org!to!allow!this.!!!

!

If!you!require!the!sync!to!make!the!association!of!imported!Eventbrite!Events!to!

appropriate!parents!during!the!sync,!please!contact!Eventbrite!to!discuss!

development!of!custom!code!that!will!implement!your!desired!logic.!!However,!if!

implementation!of!that!logic!is!not!necessary,!there!is!another!option.!The!following!

code!will!allow!your!child!records!to!be!created!in!Salesforce!and!will!be!associated!

to!a!default!parent!record.!This!will!allow!a!user!to!go!back!and!correctly!assign!the!

child!records!to!the!appropriate!parents!as!necessary.!!!

!

Trigger!that!assigns!a!default!master!record!for!incoming!events!

trigger!DefaultMasterTrigger!on!Child__c!(before!insert)!{!

! //!Establish!a!default!master!record!

!!!!List<Master__c>!defaultMasterList!=![SELECT!Id!FROM!Master__c!WHERE!Name!=!

'Default!Record'];!!

!!!!Master__c!defaultMaster;!

!!!!!

!!!!//!Create!default!master!if!not!already!created!

!!!!if!(defaultMasterList.isEmpty()){!

!!!!!!!!defaultMaster!=!new!Master__c();!

!!!!!!!!defaultMaster.Name!=!'Default!Record';!

!!!!!!!!insert!defaultMaster;!

!!!!}!else!

!!!!!!!!defaultMaster!=!defaultMasterList[0];!

!!!!!

!!!!//!Assign!child!records!to!default!record!

!!!!for!(Child__c!p!:!trigger.New){!

!!!!!!!!if!(p.Master_Lookup__c!!==!null)!

!!!!!!!!!!!!p.Master_Lookup__c!=!defaultMaster.Id;!

!!!!}!

}!

!

!

Replace!the!Child__c!with!the!object!that!is!mapped!to!an!individual!Eventbrite!

Event,!and!Master__c!with!the!object!that!is!the!master!object!of!Child__c.!Then!

replace!Master_Lookup__c!with!the!field!on!the!child!object!that!creates!the!

relationship!with!the!Master__c!object.!!

!

The!test!class!for!the!above!trigger!is!found!below!(on!the!next!page):!

!

!

!

Page 5: Eventbrite sync documentation 02 2015

!

!

!

Test!class!for!default!master!trigger!

@isTest!

private!class!TestDefaultMasterTrigger!{!

! public!static!testMethod!void!testTrigger()!{!

!!!!! //!insert!child!record!

!!!!! Child__c!child1!=!New!Child__c(Name='Test!Child');!

!!!!!!!!insert!child1;!

!!!!!!!!!

!!!!!!!!//!assert!that!master!record!was!created!

!!!!!!!!List<Master__c>!!defaultMasterList!=![SELECT!Id!FROM!Master__c!WHERE!Name!

=!'Default!Record'];!!

!!!!!!!!System.assertEquals(1,!defaultMasterList.size(),!'Default!Master!Record!failed!to!

create.');!

!!!!!!!!!

!!!!!!!!//!assert!that!child1!is!linked!to!master!record!

!!!!!!!!child1!=![SELECT!Master_Lookup__c!FROM!Child__c!WHERE!Name!=!'Test!

Child'];!

!!!!!!!!System.assertEquals(defaultMasterList[0].Id,!child1.Master_Lookup__c,!'Default!

Master!not!assigned!to!child');!

!!!!!!!!!

!!!!!!!!//!assert!another!child!record!will!be!assigned!to!default!

!!!!! Child__c!child2!=!New!Child__c(Name='Test!Child!2');!

!!!!!!!!insert!child2;!

!!!!!!!!child2!=![SELECT!Master_Lookup__c!FROM!Child__c!WHERE!Name!=!'Test!Child!

2'];!

!!!!!!!!System.assertEquals(defaultMasterList[0].Id,!child2.Master_Lookup__c,!'Default!

Master!not!assigned!to!child');!

!!!!}!

}!

Page 6: Eventbrite sync documentation 02 2015

Getting&Started!&& &Installation&Instructions&& &

1. Log!into!the!Salesforce!org!in!which!you!want!the!EventbriteSync!connector!to!be!installed.!

2. Click!on!the!link!to!the!package!provided!to!you.!It!should!look!something!like!this:&https://login.salesforce.com/packaging/installPackage.apexp?p0=alphanumericpackageId

3. You!will!be!presented!with!the!Package!Installation!Details.!Press!the!orange!‘Continue’!button!to!proceed!with!installation!

4. An!“Approve!ThirdKParty!Access”!popup!will!appear.!This!allows!the!connector!to!communicate!with!Eventbrite!and!is!required!to!proceed!

with!installation.!Click!‘Yes,!grant!access!to!these!thirdKparty!web!sites’!

and!then!click!‘Continue’.!

5. You!will!be!presented!with!package!API!Access!details.!Scroll!down!and!click!‘Next’!to!proceed.!

6. Choose!security!level:!you!may!limit!(by!profile)!who!can!use!this!package,!or!allow!all!users!access!to!it.!Click!‘Next’!after!making!a!

selection.!

7. Click!‘Install’!on!the!final!‘Step!3.!Install!Package’!screen!to!initialize!installation!of!the!package.!This!may!take!several!minutes!or!longer,!but!!

the!operation!will!proceed!in!the!background!and!you!are!free!to!continue!

working.!You!will!receive!an!email!when!the!installation!is!complete.!!

8. To!verify!a!complete!installation,!go!to!your!Salesforce!setup!screen,!under!‘App!Setup’!click!‘Installed!Packages’,!and!look!for!the!‘Eventbrite’!

package.!

Authentication&&1.&Go!to!the!Eventbrite!app:!&&

&&&& &&&&&&&&&&&&& &&

Page 7: Eventbrite sync documentation 02 2015

2.&You!should!be!taken!to!the!“Eventbrite!Config”!tab!by!default.!This!is!where!you!will!perform!authentication!and!have!the!ability!to!make!configuration!changes,!as!

well!as!initiate!syncs.!!

!

!

3.!!Click!the!‘Authenticate’!button!to!begin!the!authentication!process.!

!

!

!

4.!You!will!be!redirected!to!Eventbrite.com.!If!you!are!logged!in!already!you!simply!

have!to!click!‘Allow’!on!the!screen!to!continue!with!the!authentication.!If!you!are!

not!currently!logged!in,!Eventbrite.com!will!ask!you!to!input!your!Eventbrite!

credentials.!(Note:'This'is'a'secure'connection'with'Eventbrite.com'and'not'with'any'third'party)'!

!

!

Page 8: Eventbrite sync documentation 02 2015

!

!

Congratulations,!you!are!now!authenticated!!You!should!have!been!redirected!back!

to!your!Eventbrite!Configuration!screen!in!Salesforce,!and!all!of!your!configuration!

options!will!now!be!visible!to!you.!

!

Sync&Logs&!

!

!

Log&Level&Choose!‘Error’!if!you!only!want!logs!to!be!created!in!the!event!of!an!error.!Choose!

‘Debug’!if!you!would!like!logs!created!whenever!any!Eventbrite!Sync!function!is!

performed.!Use!this!to!troubleshoot!if!you!are!experiencing!any!issues!or!getting!

any!unexpected!results.!

!

Weeks&to&Retain&Logs&Choose!‘Always!Retain’!to!keep!logs!in!your!system!perpetually.!Choose!a!number!

of!weeks!(2,!4,!6,!or!8)!to!only!retain!logs!for!that!amount!of!weeks.!Old!logs!will!be!

purged!from!the!system!after!this!amount!of!time!and!the!check!is!performed!

during!a!sync!operation.!!

!

&&&

Page 9: Eventbrite sync documentation 02 2015

Default&Configuration&!

You!can!get!started!syncing!right!away!or!make!configuration!changes!to!give!you!

control!over!how!the!sync!will!be!performed.!Let’s!go!over!some!of!the!default!

configurations!to!see!if!you!need!to!make!changes.!

&By!default,!we!have!the!following!Eventbrite!Object!to!Salesforce!Object!mappings:!

!

&&&&&&&&&Eventbrite&Object&&&&&&&&&&&&! &&&&&&&&&Salesforce&Object&Event! Campaign!

Order! Opportunity!

Buyer! Contact*!

Attendee!Detail! CampaignMember!

Attendee!Profile! Contact!

!

*The!association!between!Opportunity!and!Contact!is!through!the!Opportunity!

Contact!Role,!with!role!specified!as!“Buyer”.!!

!

!

Configuration&&&Sync&Configuration&&

&&&Filter&Events&&Select!a!filter!to!determine!which!Eventbrite!Events,!by!status,!are!created!in!

Salesforce.!You!can!select!multiple!statuses!here.!Control!+!click!to!unselect!a!status.!!

!

Page 10: Eventbrite sync documentation 02 2015

Sync&Orders!Narrow!down!which!Eventbrite!Orders,!if!any,!you!would!like!to!create!in!Salesforce.!

You!can!select!‘Paid’!to!import!only!orders!with!a!paid!transaction,!‘Paid!and!Free’!to!

import!all!orders,!or!‘Never’!to!not!import!Orders!at!all!during!a!sync.&!

Attach&Buyer&as&Contact&Role&&Eventbrite!Orders!are!mapped!to!Salesforce!Opportunities!by!default.!The!typical!

Salesforce!association!for!a!Contact!to!an!Opportunity!is!through!a!Contact!Role.!If!

you!do!not!want!to!use!this!association!and/or!plan!to!use!a!lookup!relationship!

from!Opportunity!to!Contact,!then!select!‘No’.!If!you!change!the!object!mapping!

away!from!Opportunity!later,!this!will!be!changed!to!‘No’!automatically.!!

!

Sync&Behavior&on&Contacts&and&Leads&Contacts!and!leads!imported!to!Salesforce!as!Eventbrite!Event!Attendees!and!Order!

Buyers!are!and!are!uniquely!identified!by!their!email!address.!Choose!‘Insert!Only’!

to!always!create!new!records!for!these!objects!without!attempting!to!match!on!

email.!Choose!‘Update!Only’!to!only!update!records!with!matching!emails,!and!never!

insert!new!ones!for!these!objects.!Choose!‘Insert!/!Update’!to!attempt!to!match!an!

existing!record!and!update!it!if!it!exists,!and!if!not,!create!a!new!one.!This!is!the!

option!selected!by!default.!!

&Associate&Attendees&with&Events&Attendee!information!is!imported!to!Salesforce!by!default.!If!you!do!not!wish!to!

import!this!information!then!select!‘No’.!

!

Create&Attendees&As&If!you!do!wish!to!import!Attendee!information,!then!you!can!select!whether!it!is!

created!it!as!a!Lead!or!a!Contact!record.!!

!

Custom&Questions&as&related&record&Custom!questions!represent!the!questions!your!Eventbrite!Event!organizer!has!

created!for!a!ticket!purchaser!to!answer!on!a!given!event.!Leaving!this!option!as!

“Yes”!creates!these!question!and!answer!pairs!as!records!in!Salesforce.com!and!

allows!you!to!display!them!on!Visualforce!pages!on!the!Event,!Attendee!Details,!and!

Attendee!Profile!mapped!objects!(as!described!later!in!the!documentation).!This!

operates!independently!of!the!Custom!Question!Mapping,!which!by!default!maps!

answers!to!custom!questions!into!specific!fields!on!a!given!Attendee!Detail!record.!!

!

Enable&MultiCCurrency&Support&If!your!Salesforce!organization!uses!multiple!currencies!and!has!the!‘Multiple!

Currencies’!feature!turned!on,!choose!‘Yes’!to!enable!support!of!more!than!one!

different!currency!from!your!Eventbrite!Data.!If!you!have!currencies!set!up!for!

Eventbrite!data!using!that!currency,!the!data!will!sync!in!that!currency.!

!

Page 11: Eventbrite sync documentation 02 2015

!

Advanced&Object&&&Field&Mapping&&

!

!

You!can!also!explicitly!define!which!objects!and!fields!to!map!the!incoming!data!

from!Eventbrite!to!by!using!the!Advanced!Mapping!tool.!Mapping!changes!alter!

which!records!get!created/updated!in!Salesforce!and!their!associations!with!one!

another.!While!we!encourage!you!to!make!mapping!changes!to!fit!your!business!

model,!we!recommend!careful!consideration!before!applying!your!changes.!!!

!

&Let’s!run!through!a!full!example!of!changing!the!default!mappings!to!custom!objects!

to!clarify!how!the!mapping!works.!

!

Object&Mapping&&&First,!let’s!change!the!Eventbrite!Event!mapping!to!something!other!than!Salesforce!

Campaigns.!!Click!the!‘Edit!Object’!button!to!enter!edit!mode!for!this!object.!You!will!

be!presented!with!a!popup!that!warns!you!that!proceeding!with!an!object!mapping!

change!will!clear!out!existing!field!mappings.!Never!fear!!If!you!make!a!mistake,!you!

can!always!press!‘Cancel’!and!your!changes!will!be!reverted.!!Press!‘OK’!to!continue!

with!your!mapping!change.!

!

&

&&&&

Page 12: Eventbrite sync documentation 02 2015

The!‘Target!Salesforce!Object’!picklist!determines!which!object!we!will!map!the!

Eventbrite!Event!object!to.!We!will!go!ahead!and!change!this!to!the!object!we!want!

to!map!to,!in!this!case!a!custom!object!called!‘Event__c’.!!

!

!

!

!

!

Once!we!have!selected!‘Event__c’,!the!field!mappings!reset.!This!is!because!we!are!

now!shown!Target!Salesforce!Fields!that!are!on!the!‘Event__c’!object.!Let’s!take!a!

look!at!what!we!have.!You!will!notice!that!some!fields!have!a!red!asterisk!(*),!which!denotes!that!mapping!them!is!required.!In!this!case!it!is!required!that!we!map!the!

Event!Id,!which!corresponds!to!the!Id!used!in!Eventbrite!to!uniquely!identify!an!

Event!(similarly!to!a!Salesforce!record!Id,!but!in!a!different!format).!!Don’t!be!

intimidated!–!we!have!provided!several!examples!that!should!help!you!get!going!

with!a!good!mapping!!Also!pay!attention!to!the!similarities;!if!you!master!the!

relationship!field!mapping!you!will!be!able!to!deftly!manipulate!these!mappings!

however!you!desire!!

!

**Note&to&Salesforce&Professional&Edition&users:!!In!order!for!a!custom!field!to!be!mappable!and!show!up!in!the!mapping!picklists,!the!

field!must!be!added!to!the!object’s!page!layout.!This!includes!fields!included!in!the!

package,!such!as!EventbriteSync__Eventbrite_Id__c!and!EventbriteSync__Buyer__c.&&

Page 13: Eventbrite sync documentation 02 2015

!

!

We!then!map!whichever!other!fields!we!would!like!to!map,!such!as!Event!Name!to!

Name,!Event!Description!to!Description__c,!and!Event!Status!to!Status__c.!When!you!

are!satisfied,!click!‘Save’!to!save!your!mapping!changes.!Remember,!if!you!are!not!

confident!in!your!changes!please!press!‘Cancel’,!and!your!changes!will!be!reverted,!

no!harm!done.!!

!

Let’s!do!the!same!thing!with!the!Eventbrite!Order!object.!We!have!gone!ahead!and!

mapped!this!object!to!our!custom!object!called!‘Order__c’.!As!for!the!field!mappings,!

we!notice!right!away!that!there!is!a!new!field!type!that!results!in!two!picklists!

showing!up!under!the!Target!Salesforce!Field.!This!corresponds!to!a!relationship!

field,!which!in!this!case!will!allow!you!to!relate!an!Order__c!record!to!our!Event__c!

record!through!a!lookup!field!that!we!select!here.!!Let’s!dissect!what!exactly!is!

needed!here:!!

Page 14: Eventbrite sync documentation 02 2015

!

!

The!first!picklist!(the!one!on!the!left)!represents!the!lookup!field!on!the!Target!

Salesforce!Object,!Order__c!in!this!case.!The!picklist!only!contains!relationship!fields!

that!correspond!to!either!masterKdetail!or!lookup!fields.!We!have!created!a!lookup!

to!Event__c!called!‘Event__c’,!so!we!will!select!that.!This!reloads!the!second!picklist!

(the!one!on!the!right)!with!fields!on!the!object!we!are!looking!up!to!through!the!

relationship,!Event__c.!We!want!to!select!the!field!on!the!lookup!object!that!contains!

a!unique!identifier!for!the!record!that!the!Eventbrite!Order!knows!about.!!

!

!

!

Remember!how!we!mapped!Event!Id!to!Eventbrite_Id__c!in!the!Eventbrite!Event!

object!mapping?!This!is!that!same!field.!Let’s!back!up!for!a!second:!what!we!are!

saying!here!is!that!we!want!our!Eventbrite!Orders!related!to!the!Eventbrite!Events.!

In!Eventbrite,!an!Order!is!associated!to!an!Event!with!the!Eventbrite!Id.!We!mapped!

Eventbrite!Orders!to!Order__c!and!Eventbrite!Events!to!Event__c,!and!when!we!

mapped!Event!we!stored!the!Eventbrite!Id!in!Eventbrite_Id__c.!We!then!chose!a!

lookup!field!from!Order__c!to!Event__c.!Lastly;!we!choose!the!field!on!Event__c!that!

contains!the!Order’s!Event!Id,!which!is!Eventbrite_Id__c.!The!first!field!is!the!current!

object’s!relationship!field;!the!second!is!the!field!on!the!other!object!that!has!the!

unique!identifier!from!Eventbrite.!!

!

Let’s!do!this!again!with!the!Order!Buyer.!The!details!of!the!Eventbrite!Buyer,!the!

person!who!buys!the!tickets,!are!mapped!to!the!Contact!object!by!default.!Unlike!the!

Eventbrite!Event,!the!unique!identifier!in!Eventbrite!for!a!buyer!is!the!buyer’s!Email!

Page 15: Eventbrite sync documentation 02 2015

address.!So!that!is!the!field!we!will!be!looking!for!when!we!build!the!relationship!on!

the!Order__c!object.

!

!

!

Once!again,!we!choose!the!lookup!field!that!looks!up!to!our!desired!object.!In!this!

case!the!lookup!field!Contact__c!on!the!Order__c!object!looks!up!to!the!Contact!

object.!!So!we!select!that!in!the!first!picklist,!it!reloads!the!options!in!the!second!

picklist.!We!then!choose!the!field!that!contains!the!unique!identifier!in!the!object!

Order__c!looks!up!to,!in!this!case!Contact.!As!we!saw!before,!that!field!is!the!Email!

field!on!the!Contact!object.!!

!

Page 16: Eventbrite sync documentation 02 2015

!

Let’s!do!this!one!last!time!with!the!Eventbrite!Attendee!Detail!object.!This!object!

represents!the!junction!object!between!an!Eventbrite!Event!and!an!Eventbrite!

Attendee.!This!means!that!we!can!have!multiple!Attendees!on!a!given!Event,!and!

who!can!also!be!on!other!Events,!a!manyKtoKmany!relationship.!

!

!

Event_Attendee__c!has!a!lookup!field!to!the!Event__c!object,!so!we!use!that!to!make!

the!Attendee!Event!association!as!we!have!done!before.!We!choose!the!lookup!field,!

Event__c,!and!then!we!choose!the!field!on!Event__c!that!contains!the!unique!

identifier!for!the!Eventbrite!Event,!which!is!Eventbrite_Id__c.!!

!

We!see!that!the!Eventbrite!Attendee!Profile!is!mapped!to!the!Salesforce!Contact!

object,!and!that!we!are!using!the!Email!field!to!store!the!unique!identifier,!the!

Attendee!Email.!

Page 17: Eventbrite sync documentation 02 2015

!

!

Back!to!our!Attendee!Detail!mapping,!we!choose!the!appropriate!lookup!field!to!the!

Contact!object,!Contact__c.!We!then!choose!‘Email’!from!the!second!picklist!the!

target!field!on!the!Contact!object,!which!contains!the!unique!identifier!from!

Eventbrite.!!

!

!

!

And!that’s!all!there!is!to!it!!!

!

Page 18: Eventbrite sync documentation 02 2015

Field&Mappings&&We!covered!quite!a!few!fields!in!the!Object!Mapping!examples.!Let’s!run!through!the!

different!field!types!here!again!just!to!be!certain!that!they!are!clear!to!you.!Keep!in!

mind!that!the!Target!Salesforce!Field!picklists!are!filtered!down!already!to!only!

show!the!fields!whose!data!types!can!accept!the!data!from!the!Eventbrite!Source!

Field.!!

!

Text&Fields&Many!of!the!fields!you!encounter!are!text!fields,!such!as!Event!Name!and!Order!

Status.!These!can!be!mapped!to!various!Salesforce!Target!Field!types!such!as!Text!

and!Long!Text!Area!

!

Numeric&Fields&Numeric!fields!such!as!Order!Amount!can!be!mapped!to!Target!Salesforce!fields!of!

numeric!field!types!such!as!Currency!and!Percent.!

!

Required&Fields&Fields!marked!with!a!red!asterisk!(*)!are!required.!These!fields!serve!as!unique!identifiers!for!the!record!and!are!necessary!to!prevent!duplication!and!to!link!

related!records!through!relationship!fields.!

!

Relationship&Fields&Eventbrite!Source!Fields!that!contain!data!that!correspond!to!another!object,!such!

as!Order!Event!(the!Eventbrite!Event!Id!of!the!given!Order),!must!be!mapped!to!a!

relationship!field!to!preserve!the!relationship!in!Salesforce.!As!is!detailed!in!the!

Object!Mapping!section!above,!this!requires!the!selection!of!the!relationship!field!

(lookup!or!masterKdetail)!on!the!target!object!as!well!as!the!field!on!the!parent!

object!that!contains!the!unique!identifier!coming!from!the!Eventbrite!Source!Field.!!

!

!

Filters&&On!each!object,!filters!can!be!set!which!narrow!down!the!data!to!be!imported!for!

that!object.!Choose!an!Eventbrite!Source!Field,!an!operator!(such!as!“>”!or!“!=”)!and!

a!value!to!compare!against,!and!then!click!save!to!apply!the!filter.!This!only!affects!

incoming!sync!data,!so!any!data!imported!from!previous!syncs!without!the!filter!

applied!that!do!not!meet!!

!

Record&Type&&One!each!object,!it!is!possible!to!specify!the!record!type!of!the!imported!record!by!

selecting!a!value!in!the!Record!Type!picklist.!The!picklist!shows!the!available!record!

types!for!the!given!object.!!Note!that!existing!records!will!be!changed!to!the!selected!

record!type!even!if!they!were!created!before!the!record!type!selection!was!applied,!

Page 19: Eventbrite sync documentation 02 2015

provided!that!those!records!are!not!filtered!out!by!a!custom!filter!or!disabled!for!

syncing.!

!

Enabled&&This!checkbox!controls!whether!this!object!will!be!synced!with!Eventbrite.!You!may!

uncheck!this!at!a!later!time!and!your!existing!records!from!previous!syncs!will!

remain!unaffected!by!the!new!data!imports.!!

!

Operation&!

Records!imported!to!this!Salesforce!Object!have!a!unique!identifier,!such!as!

Eventbrite!Id!or!email!address.!Choose!‘Insert!Only’!to!always!create!new!records!

for!this!object!without!attempting!to!match!on!the!unique!identifier.!Choose!‘Update!

Only’!to!only!update!records!with!matching!unique!identifiers,!and!never!insert!new!

ones!for!these!objects.!Choose!‘Insert!/!Update’!to!attempt!to!match!an!existing!

record!and!update!it!if!it!exists,!and!if!not,!create!a!new!one.!This!is!the!option!

selected!by!default.!!

!

Ticket&Types&!

Ticket!types,!by!default,!are!records!related!to!Salesforce!Opportunity!records!

created!from!Eventbrite!Orders!of!any!number!of!tickets.!They!represent!the!

number!of!tickets!of!each!ticket!type!purchased!on!an!order,!and!can!be!seen!by!

adding!the!Order!Ticket!Types!related!list!to!the!Opportunity!page!layout.!!

!

!

This!shows!a!breakdown!of!the!quantity!of!tickets!of!each!ticket!type!on!the!order.!

Reports!can!also!be!created!on!the!‘EventbriteSync__Order_Ticket_Type__c’!as!well!

as!the!‘EventbriteSync__Ticket_Type__c’!custom!objects!included!in!the!package.!!!

!

If!you!change!the!Eventbrite!Orders!mapping!from!Salesforce!Opportunities!to!any!

other!object,!you!can!still!use!ticket!types.!You!must!create!a!new!lookup!field!on!the!

‘EventbriteSync__Order_Ticket_Type__c’!object!(installed!with!package)!to!the!object!

you!have!mapped!to!orders.!Once!this!is!complete,!you!can!save!the!mapping!and!

ticket!types!will!be!associated!with!your!chosen!object!during!the!next!sync.!If!you!

are!unable!to!create!a!new!lookup!field!on!the!object,!you!must!uncheck!the!‘Ticket!

Type!Enabled’!checkbox!and!disable!ticket!types.!It!can!be!reKenabled!at!a!later!point!

after!the!lookup!field!is!created.!

!

Page 20: Eventbrite sync documentation 02 2015

Static&Mapping&&Static!mapping!allows!you!to!map!a!fixed!value!to!a!Target!Salesforce!field!that!will!

always!get!applied!during!a!sync.!For!example,!if!you!are!syncing!Orders!to!the!

Opportunity!object,!you!may!want!to!have!the!Stage!Name!always!set!to!‘Closed!–!

Won’!,!or!perhaps!the!Probability!set!to!‘100%’.!!To!accomplish!this,!go!into!edit!

mode!for!the!object,!and!click!‘New’!in!the!static!mapping!table!to!add!a!row.!Here’s!

how!it!looks:!!

!

!

!

!

Let’s!try!the!same!thing!for!Probability.!Click!‘New’!to!add!a!new!row,!then!set!the!

static!value!to!the!%!you!want!(we’ll!do!100),!then!change!the!field!type!picklist!to!

‘Number’,!then!choose!‘Probability’!for!your!Target!Salesforce!Field.!!

Page 21: Eventbrite sync documentation 02 2015

!

!

Custom&Question&Mapping&!

This!feature!allows!you!to!map!an!attendee's!responses!to!custom!questions!on!the!

Eventbrite!order!form!to!custom!fields!of!your!choosing.!You!simply!need!to!copy!

over!the!value!of!the!question,!for!example!‘Where!did!you!hear!about!us?’,!into!the!

Question!text!field,!then!choose!a!Target!Salesforce!Field.!It!is!very!important!that!

the!question!inputted!here!matches!exactly!what!is!in!Eventbrite,!so!we!recommend!

copy!and!pasting!the!question!from!Eventbrite!to!make!sure!that!no!errors!are!

made.!You!will!likely!have!different!questions!for!different!events.!You!can!safely!

add!as!many!or!as!few!questions!as!you!would!like!(across!all!events)!as!mappings!

here,!and!the!sync!will!import!only!what!you!have!set!up.!!Here’s!what!it!looks!like:!!

!

!

!

!

&&&&

Page 22: Eventbrite sync documentation 02 2015

Sync&!

Syncing&! !

It’s!time!to!start!importing!some!data!from!Eventbrite!!We!have!three!ways!of!

syncing!your!data!from!Eventbrite:!an!onKdemand!sync!initiated!by!a!button!click,!a!

scheduled!sync!that!recurs!daily!at!a!specific!time,!and!a!single!event!sync!that!is!

also!initiated!by!a!button!click.!!

!

To!initiate!a!sync,!go!to!the!Eventbrite!Config!tab.!If!you!are!authenticated,!you!

should!see!a!section!called!Eventbrite!Synchronization.!Start!the!sync!process!by!

clicking!the!“Start!Sync”!button.!!

!

Sync&Status&&

!

!

If!you!clicked!on!the!“Start!Sync”!button,!you!will!be!automatically!taken!to!the!Sync!

Status!page.!Here!you!can!view!the!status!of!an!ongoing!sync.!Use!the!“Refresh”!

button!to!reload!the!progress!of!the!sync!and!see!errors!if!any!have!been!logged!

during!the!process.!You!can!also!navigate!to!the!sync!status!page!at!any!time!by!

clicking!on!the!“Last!Sync!Date”!link!in!the!Eventbrite!Synchronization!section.!

!

&Scheduled&Sync&!

!

!

!

In!the!Eventbrite!Synchronization!section!you!will!find!the!Scheduled!Sync!

subsection.!This!allows!you!to!setup!a!sync!that!occurs!daily!at!the!time!you!specify.!

Any!changes!you!make!apply!immediately:!for!instance,!if!you!select!“No”,!then!any!

daily!sync!that!was!schedules!is!automatically!cancelled.!Likewise,!if!you!select!

“Yes”,!then!a!sync!is!scheduled!at!the!time!visible!to!the!right.!Changing!the!time!of!

the!sync!will!also!apply!immediately.!

!

Page 23: Eventbrite sync documentation 02 2015

&Single&Event&Sync&!

A!sync!can!be!initiated!for!a!particular!Event,!rather!than!for!all!of!the!Eventbrite!

data!associated!to!your!account.!!This!can!be!done!by!clicking!the!“Eventbrite!Sync”!

custom!button.!!This!will!also!pull!all!data!for!that!particular!Event!(such!as!Orders!

and!Attendees),!so!long!as!you!have!not!disabled!them,!and!filters!will!be!respected!

as!well.!

!

This!button!has!been!included!in!the!package!for!campaigns,!but!if!you!have!mapped!

Eventbrite!Events!to!another!object,!you!can!reuse!the!code!we!have!provided!with!

one!small!modification!to!create!your!own!button!on!that!object.!Create!a!custom!

button!on!the!object!you!have!mapped!Eventbrite!Events!to.!Below!is!a!screenshot!

you!can!use!as!a!guide.!

!

!

The!key!here!is!to!change!“Campaign”!in!the!Custom!Button’s!JavaScript!code!to!the!

object!you!are!creating!this!button!on.!

!

Custom!Button!JavaScript!Code:!

window.location.href="/apex/EventbriteSync__EventbriteSyncSingleEvent?id={!Campaign.Id}";!

!

For!example,!if!the!object!you!have!mapped!Eventbrite!Events!to!is!“Event__c”,!then!

your!JavaScript!code!should!be:!!

!

Custom!Button!JavaScript!Code!on!Event__c!Object:!

window.location.href="/apex/EventbriteSync__EventbriteSyncSingleEvent?id={!Event__c.Id}";!

&&

Page 24: Eventbrite sync documentation 02 2015

Integration&Logs&!

Click!on!the!“Integration!Logs”!tab!to!view!logs!of!any!EventbriteSync!related!

activity.!If!your!Log!Level!setting!is!set!to!‘Debug’,!then!this!will!include!logs!for!any!

sync!action!and/or!dynamic!loading!of!data!from!Eventbrite,!such!as!Tickets!and!

Discount!Codes!on!Events.!!However,!if!you!choose!‘Error’,!then!you!will!only!see!

messages!related!to!errors!during!callouts!of!processing.!!You!can!adjust!your!Log!

Level!during!Authentication:!!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

Page 25: Eventbrite sync documentation 02 2015

Additional&Features&&Custom!Question!and!Answers,!Ticket!Details,!and!Promo!Codes!each!are!available!

as!individual!Visualforce!pages!that!can!be!added!to!the!Campaign!object!by!default.!!

These!pages!are!available!in!the!package!to!add!to!your!page!layouts!as!desired.!The!

Custom!Question!and!Answer!pages!are!called!EventbriteQA,!EventbriteQAContact,!

EventbriteQALead!and!are!available!on!the!Campaign,!Contact,!and!Lead!objects!

respecively.!The!Ticket!Details!page!is!called!EventbriteTickets,!!and!the!Promo!

Codes!page!is!called!Eventbrite!Promo!Codes.!!

!

It!is!also!possible!to!show!one,!two,!or!all!three!of!these!features!on!one!page!on!

whichever!object!you!choose!to!map!to!Eventbrite!Events.!This!can!be!accomplished!

by!using!the!following!Visualforce!code:!

!

Visualforce!code!to!show!Event!Details!on!Event__c!custom!object!

<apex:page!standardController="Event__c"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="true"!

showTicketsComponent="true"!showPromoCodesComponent="true"/>!

</apex:page>!!

!

The!code!snippet!above!will!display!a!page!containing!all!three!components!

(Question!and!Answer,!Ticket!Details,!and!Promo!Codes)!on!a!record!of!the!Event__c!

object,!as!long!as!this!is!the!object!to!which!you!have!Eventbrite!Events!mapped!to.!

You!may!notice!that!there!are!three!“true”!values!highlighted!in!yellow.!You!can!set!

any!of!these!to!false!if!you!do!not!want!to!show!these!components!on!the!page.!We!

will!describe!the!three!components!in!this!guide!hereafter.!

&Custom&Questions&and&Answers&!

In!addition!to!the!custom!question!to!field!mapping!described!earlier!in!the!

configuration!section,!questions!and!answers!are!synced!by!default!into!custom!

objects.!This!information!is!available!for!viewing!on!record!details!for!the!objects!

you!have!mapped!to!Eventbrite!Events,!Attendee!Details,!and!Attendee!Profiles!

through!Visualforce!pages.!By!default,!we!have!included!Visualforce!pages!for!the!

Campaign,!Contact,!and!Lead!records!that!show!this!information.!Here’s!a!

screenshot!of!the!data!we!are!referring!to:!!

!

Page 26: Eventbrite sync documentation 02 2015

!

!

!

This!page!is!shown!inline!on!a!Campaign!record!that!has!numerous!questions!that!

were!answered!by!a!particular!attendee.!The!‘Attendee’!column!has!a!link!to!the!

contact!or!the!lead!record!of!the!Attendee!whose!answers!are!visible.!The!“Go!to!

List”!link!is!displayed!if!there!are!more!than!five!answered!questions!across!all!

contacts.!Clicking!on!it!shows!an!expanded!view!with!all!the!questions!and!their!

answers!for!that!particular!Eventbrite!Event.!!

!

The!same!information!can!be!displayed!for!a!particular!Eventbrite!Attendee!

(mapped!as!either!Contact!or!Lead).!!

!

!

Here!we!see!the!same!information!as!before,!except!there’s!an!“Event”!column!that!

links!to!the!Eventbrite!Event!record,!in!this!case!a!Campaign!record,!for!which!this!

contact!is!associated.!!

!

Page 27: Eventbrite sync documentation 02 2015

As!mentioned!earlier,!if!you!have!mapped!the!Eventbrite!Events!to!an!object!other!

than!Campaign!and!wish!to!show!the!page!on!those!records,!you!can!create!a!

Visualforce!page!just!like!the!one!above!with!some!slight!modifications!to!our!

existing!code.!

!

Visualforce!code!to!show!Custom!Question!and!Answers!on!Campaign!

<apex:page!standardController="Campaign"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="true"!

showTicketsComponent="false"!showPromoCodesComponent="false"/>!

</apex:page>!!

!

In!order!to!get!this!page!to!work!on!an!object!such!as!Event__c,!you!simply!need!to!

create!a!new!Visualforce!page,!paste!this!code,!and!replace!“Campaign”!with!

“Event__c”.!The!following!is!the!sample!code!changed!to!work!on!the!Event__c!object:!!

!

!

Visualforce!code!to!show!Custom!Question!and!Answers!on!any!Object!mapped!to!

Eventbrite!Events!

<apex:page!standardController="Event__c"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="true"!

showTicketsComponent="false"!showPromoCodesComponent="false"/>!

</apex:page>!!

&The!same!approach!as!above!can!be!used!to!include!this!page!on!any!object!you!have!

chosen!to!map!to!Eventbrite!Attendee!Details.!!

!

Visualforce!code!to!show!Custom!Question!and!Answers!on!any!Object!mapped!to!

Eventbrite!Attendee!Details!

<apex:page!standardController="Event_Attendee__c"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="true"!

showTicketsComponent="false"!showPromoCodesComponent="false"/>!

</apex:page>!

Page 28: Eventbrite sync documentation 02 2015

Ticket&Details&&The!ticket!details!represent!the!types!of!tickets!that!you!have!set!up!for!a!particular!

Eventbrite!Event.!This!information!is!viewed!as!a!component!on!the!inline!

Visualforce!page!that!also!contains!custom!question!and!answer!information!and!

promo!code!information.!These!are!typically!classified!as!paid!or!free,!and!

information!such!as!how!many!tickets!have!been!ordered!and!how!many!remain!can!

be!viewed!on!this!panel.!Here!is!an!example!of!this:!!

!

!

!

This!information!is!fetched!dynamically,!so!it!will!display!the!latest!information!in!

Eventbrite!without!requiring!a!sync!to!update!its!content.!The!code!to!display!this!is!

as!follows:!

!

Visualforce!code!to!show!Ticket!Details!on!any!Object!mapped!to!Eventbrite!Events!

<apex:page!standardController="Event__c"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="false"!

showTicketsComponent="true"!showPromoCodesComponent="false"/>!

</apex:page>!!

!

!

Promo&Codes&! !

This!is!the!third!component!that!is!visible!in!the!Event!Details!inline!Visualforce!

page.!!It!consists!of!two!subKcomponents:!Access!Codes!and!Discount!Codes.!Each!

hold!special!meanings!in!Eventbrite!and!have!an!effect!on!the!ticket!type!that!they!

are!applied!to.!!

!

!

Page 29: Eventbrite sync documentation 02 2015

This!page!can!be!created!on!a!custom!Event__c!object!with!the!following!code:!

!

Visualforce!code!to!show!Promo!Codes!on!any!Object!mapped!to!Eventbrite!Events!

<apex:page!standardController="Event__c"!

extensions="EventbriteSync.EventbriteDetails"!id="mainPage"!

tabstyle="EventbriteSync__Eventbrite__tab">!!

<EventbriteSync:EventDetailsWrapper!pageRecordId="!

{!recordId}"!pageObjectMapType="{!objectMapType}"!

pageEventbriteId="{!eventbriteId}"!showQAComponent="false"!

showTicketsComponent="false"!showPromoCodesComponent="true"/>!

</apex:page>!!

!

!

In!addition!to!viewing!the!promo!code!information,!you!have!the!option!of!creating!

new!promo!codes!directly!from!Salesforce!as!well.!!Click!on!“New!Discount”!or!“New!

Access!Code”!to!navigate!a!form!to!create!a!new!discount!or!access!code!

respectively.!Discount!Codes!and!Access!Codes!function!in!a!very!similar!fashion.!

Let’s!do!a!quick!run!through!of!creating!a!new!access!code.!!

!

!

!

Here!you!can!select!one!or!more!ticket!types!to!apply!the!code!to!and!specify!the!

other!required!information.!Once!you!are!done,!click!“Save”.!!You!will!then!be!taken!

to!the!expanded!view!for!the!access!codes,!which!show!all!access!codes!that!are!

valid!for!the!given!Eventbrite!Event.!

!

Page 30: Eventbrite sync documentation 02 2015

!

!

You!can!create!more!access!codes!from!here!or!click!“Back”!and!you’ll!be!taken!back!

to!the!Event!record!from!which!you!came.!!

!

Contact&Lists&!

Contact!Lists!contain!lists!of!people!for!whom!you!can!perform!mass!emails!to!in!

Eventbrite.!We!have!provided!the!ability!to!access!and!modify!existing!ones!in!

Salesforce,!as!well!as!create!new!ones.!!

!

!

!

To!create!a!new!contact!list,!click!the!“New!Contact!List”!button.!You!must!then!

specify!a!name!for!the!list,!and!click!“Save”.!That’s!it!!That!contact!list!can!now!be!

found!in!your!Eventbrite!account.!Once!you!have!created!a!contact!list,!you!can!add!

contacts!or!leads!to!it.!Click!the!“Select”!link!on!the!left!side!of!the!row!of!the!desired!

contact!list.!You!will!be!taken!to!a!list!of!the!Eventbrite!Contacts!on!the!list.!!

!

!

Page 31: Eventbrite sync documentation 02 2015

!

!

You!can!add!a!Salesforce!Contact!or!Lead!by!clicking!the!“Add!Contact”!or!“Add!

Lead”!button!respectively.!You!can!then!use!the!lookup!field!icon!to!search!for!the!

contact!or!lead!you!wish!to!add.!This!will!open!a!popup!for!you!with!contacts!or!

leads!matching!your!search!criteria.!Select!one!by!clicking!on!their!name,!which!

should!be!a!link.!Then!click!“Add!Contact”!or!“Add!Lead”!appropriately!on!the!main!

page!next!to!the!lookup!field!and!the!contact!or!lead!will!be!added!to!your!list.!!

!

!

! !

Page 32: Eventbrite sync documentation 02 2015

Appendix&I&&Known&Issues&&&Limitations&!

Integration&Log&Codes&!

! The!following!table!describes!the!errors!associated!with!the!response!code!

generated!in!the!Integration!Log!when!the!error!occurs!during!use!of!the!

EventbriteSync!app.!!Please!contact!support!if!a!particular!error!persists.!

!

Response&Code& Component&& Description&0! Integration! Authentication!issue!

55! Integration! Maximum!daily!callout!limit!hit!

1235! Event!Data!Sync! DML!Errors!during!event!sync!processing!

1236! Order!Data!Sync! DML!Errors!during!order!sync!processing!

1401! Contact!Lists! Failure!to!process!contact!lists!

1402! Contact!Lists! Failure!to!process!contacts!

1403! Contact!Lists! Failure!to!create!new!contact!list!

1404! Contact!Lists! Failure!to!create!new!contact!

1405! Contact!Lists! Failure!to!delete!contact!list!

1406! Contact!Lists! Failure!to!delete!contact!

1501! Event!Sync! Event!Callout!processing!exception!

1502! Event!Data!Sync! Exception!during!Event!Data!Sync!processing!

1601! Order!Sync! Order!Sync!Iterator!Callout!exception!

1602! Order!Sync! Order!Sync!Execution!Callout!exception!

1603! Order!Data!Sync! Exception!during!Order!Data!Sync!processing!

1701! Promo!Codes! Loading!discount!codes!failed!

1702! Promo!Codes! Loading!access!codes!failed!

1703! Promo!Codes! Save!new!discount!code!failed!

1704! Promo!Codes! Save!new!access!code!failed!

1801!Questions!and!

Answers!Processing!Question!and!Answers!failed!

1901! Webhooks! Webhooks!processing!error!

9101! Configuration!Unable!to!get!UserId!from!authentication!

transaction!

9102! Configuration! Authentication!callout!processing!exception!

!

Limits&!

! There!are!two!callout!limits!to!be!aware!of!when!using!the!EventbriteSync!

app.!Your!Salesforce!organization!has!“API!Usage!Limits”!of!an!amount!that!depends!

on!your!licensing!type!and!quantity.!This!can!be!reviewed!in!the!‘Company!Profile’!

section!of!your!setup!menu.!During!a!sync,!callouts!are!made!to!Eventbrite!and!

consume!the!API!Usage!Limit.!The!number!of!callouts!made!is!directly!proportional!

to!the!number!of!records!being!synced,!at!a!rate!of!50!records!per!callout,!with!

Page 33: Eventbrite sync documentation 02 2015

Events!and!Orders!being!synced!independently.!For!Example,!a!sync!of!50!events!

and!50!orders!would!require!2!callouts,!and!a!sync!of!1!event!and!100!orders!would!

require!3!callouts.!!

! Additionally,!the!app!is!limited!to!20,000!callouts!per!day!and!this!limit!resets!

at!12:00!AM!(midnight)!Pacific!Standard!Time!each!day.!!

! If!either!of!these!limits!are!hit,!errors!will!be!logged!in!the!Integration!Logs!

tab!and!syncs!will!not!be!able!to!continue!until!the!limit!is!reset.!!

!

Common&Issues&Encountered&! !

Code!0,!Authentication!Exception!

!!

If!this!repeatedly!shows!up!in!the!integration!log,!then!the!app!is!not!properly!

Authenticated!against!Eventbrite.!Please!click!on!the!Eventbrite!Config!tab!and!then!

click!the!‘Authenticate’!button!if!the!status!is!Not!Authenticated.!If!the!status!does!

say!Authenticated,!click!the!‘Reset!Authentication’!button,!then!Authenticate!again.!!

!

Codes!1235/1236!DML!Errors!

!

These!errors!reflect!mapping!issues.!The!advanced!mapping!feature!is!very!

powerful!but!comes!with!a!risk!of!making!invalid!mappings.!The!error!message!

associated!with!this!log!provides!greater!detail!as!to!the!specific!problem!

encountered!and!can!give!you!a!clue!as!to!what!is!causing!the!issue.!The!log!

identifies!problematic!records!did!not!sync,!while!other!data!from!the!sync.!Please!

use!the!documentation!to!verify!that!the!mapping!you!have!created!is!valid!and!as!

desired.!!

!

Code!1502/1603!Errors!

!

This!issue!arises!from!invalid!mappings!and/or!problems!with!the!data!coming!from!

Eventbrite.!Please!review!your!mappings!and!if!this!error!persists,!contact!support!

for!assistace.!

!

Inline&Pages&and&Components&(Promo&Codes,&Tickets,&Questions&and&Answers)&!

“This'record'is'not'associated'with'an'Eventbrite'event”'!

The!Eventbrite!Id!of!the!event!could!not!be!found!in!Eventbrite.!This!could!be!

because!the!field!on!this!record!does!not!contain!an!Eventbrite!Id,!this!

EventbriteSync!app!is!not!authenticated,!or!you!are!no!longer!mapping!this!

record’s!object!to!the!Event!object!in!Eventbrite.!If!the!Eventbrite!Id!is!filled!

in!and!your!app!is!authenticated!(check!the!Eventbrite!Config!tab!for!

authentication!status),!it!could!be!that!this!record!was!created!using!a!

different!mapping!than!what!is!currently!set!up.!For!example,!if!you!are!on!a!

‘Campaign’!record,!but!the!Eventbrite!Event!mapping!is!currently!set!to!the!

‘Event__c’!custom!object,!you!may!see!this!error.!!

Page 34: Eventbrite sync documentation 02 2015

!

Unable'to'see'link'to'Attendee'in'Questions'&'Answers'!

This!occurs!when!the!attendee!mapping!is!currently!set!to!something!

different!than!it!was!during!the!sync!which!created!this!record.!For!example,!

the!sync!initially!had!mapped!Attendee!Profile!to!the!‘Contact’!object,!and!a!

sync!created!the!Event,!Attendee,!and!Question!&!Answer!records!you!are!

browsing,!but!now!the!mapping!has!been!changed!to!‘Lead’.!!

!!

Page'EventbriteSyncSingleEvent'does'not'exist'!

Please!create!a!new!custom!button.!To!do!this,!you!can!go!to!the!Setup!menu,!

then!Customize,!then!Campaigns,!and!Button!Links!and!Actions.!You!can!then!

create!a!new!custom!button!with!these!properties:!

!

Label/Name!:![Users!choice]!

Display!Type!:!"Detail!Page!Button"!

Behavior!:!"Execute!JavaScript"!

Content!Source!:!"OnClick!JavaScript"!

!

The!big!text!field!allows!user!input!of!JavaScript!code.!Here!is!what!you!

should!should!input!:!!

window.location.href="/apex/EventbriteSync__EventbriteSyncSingleEvent?id={!Campaign.Id}”;!

!

!