introduction - marketo developersdevelopers.marketo.com/support/marketo_crm_sync_reference... ·...
TRANSCRIPT
![Page 1: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/1.jpg)
![Page 2: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/2.jpg)
INTRODUCTION
This document aims to provide detailed information regarding implementation of a synchronization architecture between Marketo and an external CRM system. Entities are described as well as the specifics of performing initial synchronization, or “bootstrapping,” and maintaining synchronization of new and updated records.
![Page 3: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/3.jpg)
TableofContentsMarketo-CRMSynchronizationArchitecture...............................................................................................1
Introduction.............................................................................................................................................1
Overview..................................................................................................................................................4
TypicalSynchronizedEntities...................................................................................................................4
Leads....................................................................................................................................................4
Companies............................................................................................................................................6
Opportunities.......................................................................................................................................7
OpportunityRoles................................................................................................................................8
SalesPersons........................................................................................................................................9
ExtendedSynchronizedEntities.............................................................................................................10
CustomObjects..................................................................................................................................10
Activities.............................................................................................................................................11
Programs............................................................................................................................................13
ProgramMembership........................................................................................................................14
StaticLists...........................................................................................................................................15
Synchronization..........................................................................................................................................16
Configuration..........................................................................................................................................16
SynchronizedFields............................................................................................................................16
SynchronizedCustomObjects............................................................................................................16
SynchronizedActivityTypes...............................................................................................................16
BootstrappingConfiguration..............................................................................................................16
SynchronizationInterval.....................................................................................................................16
BootstrappingfromMarketo.................................................................................................................17
Leads..................................................................................................................................................17
Companies..........................................................................................................................................17
OpportunitiesandRoles.....................................................................................................................17
SalesPersons......................................................................................................................................18
CustomObjects..................................................................................................................................18
ProgramsandMembership................................................................................................................18
Activities.............................................................................................................................................18
ListsandMembership........................................................................................................................19
RecommendedBootstrappingOrder.................................................................................................19
![Page 4: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/4.jpg)
MaintainingSynchronization..................................................................................................................19
RecommendedSynchronizationOrder..............................................................................................19
LeadsandCompanies.........................................................................................................................20
SalesPersons......................................................................................................................................21
OpportunitiesandRoles.....................................................................................................................21
Activities.............................................................................................................................................22
CustomObjects..................................................................................................................................22
Program-OpportunityAttribution..........................................................................................................22
First-TouchAttribution(FT).................................................................................................................22
Multi-Touch(MT)................................................................................................................................23
![Page 5: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/5.jpg)
OverviewMarketorecommendsimplementationofCRMsynchronizationapplicationsusingatwo-waypollingmodel,retrievingchangesandnewrecordsfromeithersystem,andpushingthosechangesasmappedintheapplicationconfigurationtotheothersystem.ThemiddlewaresystemshouldqueryforchangesofselectedrecordtypesperiodicallyandthenperformanynecessarytranslationandfiltrationbeforepushingtherecordupdatestoCRMorMarketorespectively.
TypicalSynchronizedEntitiesAminimallyfunctionalCRMintegrationwithMarketowillprovidetwo-waysynchronizationofLeads,andCompanies,andone-wayCRM-to-Marketointegrationofthefollowingentities:
• Opportunities• OpportunityRoles• SalesPersons
GlobalNotesforObjectModels
SomeobjectschemasinMarketoaredynamicanduser-editable,soitisextremelydesirabletoallowdynamicupdatestotheschema,andthisshouldbedoneasaroutinepartofasynchronizationcycle.Forthesetypesofobjects,aDescribe{Object}endpointismadeavailable,whichwillreturnallofthefieldsavailabletotheMarketoAPIs,alongwithdatatypeandlengthinformationwhereapplicable.Whereavailable,theDescribeendpointshouldbeusedastheexclusivesourceoftruthfortheobjectschema.Administrativeusersshouldbepermittedtoadd,removeandaltermappingfornon-IDfieldsatanytime.
LeadsPrimaryKey:id
TheintegeridofaMarketoleadrecordandtheprimarykeyaresystemmanagedbyMarketo,andmayonlybeassignedbyMarketo.Anyinsertoperationsattemptedbyaforeignsystemwhichincludeidwillberejected.
![Page 6: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/6.jpg)
InMarketo,leadsrepresentanyperson-recordwhichisasalesormarketingtarget.Theyaredistinctfromsalespersonrecords,whichrepresentasalespersonwhohasresponsibilityoverleadrecords.AllSmartCampaigns,commonlyreferredtoasa“workflow”innon-Marketosystems,filter,trigger,andoperateonleadrecords,basedontheircharacteristicsandactions.UnlikemosttypicalCRMsystems,MarketodoesnothavetwoseparaterecordtypesforLeadandContactrecords,rather,eachperson-recordinMarketohasadditionalfieldswhichmatchthoseavailableforCompanies.ThesetofcompanytypefieldsonagivenrecordisnolongerupdateablewhentheexternalCompanyIdfieldissetforthatrecord,andisdeferredtothelinkedcompanyrecord.
Model
LeadsarehighlyextensibleinMarketoandmayincludeanunlimitednumberofcustomfields.Whensynchronizinganyparticularsubscription,asetofstandardfieldsshouldnotbereliedupon,andtheDescribeLeadfunctionoftheRESTAPIshouldbeusedastheexclusivesourceoftruthtodeterminefieldavailabilityandupdateabilityinaparticularsubscription.
Themodelforaleadisalsopotentiallydynamic,asfieldsmaybeaddedorhiddenbyend-usersatanytime,sotheschemaofleadrecordsshouldbemaintainedwheneverasynchronizationcycleisinitiated.
AcustomleadfieldshouldbecreatedinMarketotoholdtheprimarykeyoftheCRM,inordertopermitunambiguousupsertoperationsforleadrecords.
Mapping
LeadfieldmappingshouldbedeterminedbytheavailablepersontypesintheCRMsystem.AtypicalCRMimplementationwouldonlyincludeLeadsandContactsandwouldbemappedtothelogicalcorrespondingfieldforeachrecordtype.WhenpossibleasuggestedlistofmappingsshouldbegivenforfieldswhichareknowninbothMarketoandtheCRM,butusersshouldbeallowedtochangethesefieldmappingsfreelytoaccountfordifferentusages.Ifleadsaremappedtomultipleobjecttypes,thenmappingsforeachtypeshouldbeallowedtobemappedindependently.Itispossibleandsometimesdesiredtohaveleadsmappedtomultipletypesofrecords(e.g.LeadsandContactsintheCRM),differentiatingthetypeonthebasisofacustomCRMtypestringfield,referringeithertotheIDoftheparticularrecordtype,oraplaintextstringrepresentingthetype.
Relationships
LeadsarerelatedtonumerousaccessibleobjecttypesinMarketo:
Object RelationshipType LinkType LinkFieldCompany N:1 LeadField externalCompanyIdSalesPerson N:1 LeadField externalSalesPersonIdOpportunity N:N OpportunityRole
ObjectleadId
CustomObjects 1:N,N:1,orN:N SeeCustomObjectSection
SeeCustomObjectSection
Activities 1:N ActivityField leadIdProgram N:N ProgramMembership
ObjectSeeProgramMembership
![Page 7: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/7.jpg)
Accessibility
LeadsmaybereadandwrittentoinMarketofreelyprovidedthattheRead-WriteLeadPermissionhasbeenawardedtotheAPIuserbeingused.Leadscanbereadthroughthefollowingendpoints:
• GetLeadbyID• GetMultipleLeadsbyFilterType• GetMultipleLeadsbyListId• GetMultipleLeadsbyProgramId
Leadscanbewrittentothroughthefollowingendpoints:
• Create/UpdateLeads• ImportLead
LeadRecordsmaybemergedthroughtheMergeLeadsendpoint.Adiscussionofthisendpoint’sbehaviormaybefoundhere.
LeadsmaybedeletedthroughtheDeleteLeadsendpoint.
LeadMetadataisreadthroughtheDescribeLeadendpoint.
CompaniesPrimaryKey:externalCompanyId,id
externalCompanyIdisanarbitrarystringfieldsetuponcreationbytheexternalsystem.Itisguaranteedtobeunique.Itisnotupdateable.Idisauniquesystem-generatedintegerid.
Companyobjectsrepresenttheorganizationtowhichleadrecordsbelong.LeadsareaddedtoaCompanybypopulatingtheircorrespondingexternalCompanyId.Leadslinkedtoacompanyrecordwilldirectlyinheritthevaluesfromacompanyrecordasthoughthevaluesexistedonthelead’sownrecord.Attributesavailableonthecompanyrecordareavailablefortriggeringandfilteringonleadrecordsfromwithintheapplication.
Companyrecordsmayonlybecreatedbyexternalsystems,andtheCRMshouldbetreatedasthesourceoftruth,exceptwhenchangestocompanyrecordsaredetectedinMarketo.
Model
• Companiesarefullyextensibleandmayhaveanynumberandtypeofcustomfields• Theschemashouldbedynamicandcapableofingestingorevictingfieldsfromthemodelatany
time.ItshouldberefreshedwithDescribeCompanyasaroutinepartofsynchronization.• DescribeCompanyshouldbeusedastheexclusivesourceoftruthfortheschemaofcompany
Mapping
CompanyrecordsinMarketoshouldbemappedtoanequivalentobjecttypeinCRM.ThesearetypicallyreferredtoasCompanies,Accounts,orOrganizations,butterminologymayvaryfordifferent
![Page 8: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/8.jpg)
CRMs.UsersshouldbeallowedtoeditthemappingsofMarketoCompanyfieldstoCRMCompanyfields.
TheprimarykeyofcompanyrecordsinCRMshouldbemappedtotheexternalCompanyIdfieldwheneverpossible.
Relationships
Object RelationshipType LinkType LinkFieldLead 1:N LeadField externalCompanyIdOpportunity 1:N OpportunityField externalCompanyId
Accessibility
Inordertoreadandwritetocompanyrecords,anAPIusermusthavetheRead-WriteCompanypermission.
Companiesmaybereadthroughasingleendpoint,GetCompaniesByFilterType.Companiesmayonlybefilteredonalimitednumberoffields,whichareprovidedinthesearchableFieldsattributeoftheDescribeCompanyresult.
CompaniescanbewrittentousingtheCreate/UpdateCompaniesendpoint.
CompaniesmaybedeletedthroughtheDeleteCompaniesendpoint.
OpportunitiesPrimaryKey:externalOpportunityId,marketoGUID
externalOpportunityIdisanarbitrarystringfieldwhichissetuponcreationbytheexternalsystem.Itisguaranteedtobeuniqueandisnotupdateable.marketoGUIDisasystem-generatedGUIDstringwhichisguaranteedtobeunique.
OpportunityobjectslooselyrepresentsalesdealsinMarketo,andareresponsibleforattributingrevenuetoleads,companiesandprograms.OpportunityusagevariesbetweenbothCRMimplementationsandorganizationalimplementations,sotheymayencompassanywherefromasalesdealcompletewithindividuallineitemstobroaderrecordsofsalesefforts.Itmaynotbepossibletoaccommodateanorganization’susecasesfortrackingsalesdealsthroughtheimplementationopportunitiesalone,soadditionalextensionthroughCustomObjectsmayberequired.
ToperformproperRevenueAttribution,Opportunitiesmustbelinkedtoleadsviaroles,andlinkedtocompaniesviatheexternalCompanyIdfield.ForinformationonRevenueAttribution,pleaseseethe<Program-OpportunityAttribution>section.
Model
Likeleadsandcompanies,opportunitieshaveaflexibleanduser-extensibleschema,whichshouldberoutinelyupdatedthroughtheDescribeOpportunityendpoint.
Mapping
![Page 9: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/9.jpg)
Ingeneral,thesamemappingstrategyshouldbeemployedforOpportunitiesasLeadsandCompanies,butOpportunitieshavesomespecial-casefieldswhichshouldbemappedwithcare:
• The“Amount”fieldinMarketoisthefieldfromwhichallrevenuecalculationsaremadeandshouldalwaysbemappedtotheOpportunityfieldwhichrepresentstheestimatedamountoftheproposeddealbeforeclose,andtherealizedamountofthedealafterclose.
• The“RevenueExpected”metricusestheMarketo“CloseProbability”fieldtoderivethemetricfromamount.TheCloseProbabilitypercentageismultipliedagainstAmounttoreturnRevenueExpected.
• Stagehasasetofcalculatedvaluesbasedonthe“closed”and“won”fieldsonopportunityrecords.Closedshouldbesettotrueifthesalesdealisnolongerbeingpursued,eitherbecausetheeffortfailed,orbecausethedealwaswon.Wonshouldbesettotrueonlyifclosedisalsotrueandthedealhasbeenwon.DifferentCRMsmaytreatthesecharacteristicdifferently,andsotheymayrequiretranslationfromthesystem.
externalOpportunityIdshouldbemappedtotheprimarykeyintheCRMwheneverpossible.
externalCreatedDateshouldbemappedtotheCRMsystem’scanonicalcreationdateforopportunities.
Relationships
Object RelationshipType LinkType LinkFieldCompany N:1 OpportunityField externalCompanyIdLead N:N OpportunityRole
ObjectleadId
Program N:N SeeProgram-OpportunityAttributionsection
SeeProgramOpportunityAttributionsection
Accessibility
Inordertoreadandwritetoopportunities,anAPIusermusthavetheRead-WriteOpportunitiespermission.
OpportunitiescanbereadviatheGetOpportunitiesbyFilterTypeendpoint.Likecompanies,theyhavealimitedsetofsearchablefieldswhichcanberetrievedviatheDescribeOpportunityendpoint.
OpportunitiesmaybecreatedorupdatedviatheCreate/UpdateOpportunitiesendpoint.
OpportunitiesmaybedeletedthroughtheDeleteOpportunitiesendpoint.
OpportunityRolesPrimaryKey:CompoundKey[leadId,role,externalOpportunityId],marketoGUID.
OpportunityroleshaveacompoundkeyofleadId,roleandexternalOpportunityId.leadIdandexternalOpportunityIdarerelationshipfieldstotheirrespectiveleadandopportunities.Toinsertarecord,orupdateitviaitsdedupeFieldskey,allthreefieldsmustbepassedintherecord.marketoGUIDisauniqueGUIDstring,whichissystem-managedandisgeneratedoncreationoftherecord.
![Page 10: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/10.jpg)
Opportunityrolesarelinkobjectsfromleadrecordstoopportunityrecords.Withoutthisrelationship,leadswillnotbeassociatedtoOpportunitiesinanyway.Theyarealsorequiredrelationshipstoperformend-to-endProgramOpportunityAttribution.
Model
TheschemaforOpportunityRolesisnon-extensibleandshouldbederivedfromtheDescribeOpportunityRoleendpointonce.PrimarycontactsonanopportunityaredesignatedinMarketobytheisPrimaryflagontheopportunityrole.IftheprimarycontactconceptexistsintheCRMbeingintegrated,thisshouldbeimplementedaspartofthemodelandmapping.
Mapping
isPrimaryshouldbematchedifthereisaconceptofprimarycontactsintheCRMbeingintegrated.
externalCreatedDateshouldbemappedtothecanonicaldateintheCRMwhichcorrespondstothedatethatapersonbecameamemberoftheopportunity.
Relationships
Object RelationshipType LinkType LinkFieldLead N:1 OpportunityRoleField leadIdOpportunity N:1 OpportunityRoleField externalOpportunityId
Accessibility
Toreadandwriteopportunityroles,anAPIusermusthavetheRead-WriteOpportunitiespermission.
OpportunityRolescanbereadviatheGetOpportunityRolesbyFilterTypeendpoint.Likecompanies,theyhavealimitedsetofsearchablefieldswhichcanberetrievedviatheDescribeOpportunityendpoint.
OpportunityRolesmaybecreatedorupdatedviatheCreate/UpdateOpportunityRolesendpoint.
OpportunityRolesmaybedeletedthroughtheDeleteOpportunityRolesendpoint.
SalesPersonsPrimaryKey:externalSalesPersonId,marketoGUID
externalSalesPersonIdisanarbitrarystringfieldsetuponcreationbyanexternalsystem.marketoGUIDisauniquesystem-managedGUIDstringwhichissetuponcreationbyMarketo.
SalesPersonsrepresentaninternalentitywhichhasownershipofasetofpersonrecords,typicallyforsalespurposes.TheinformationpresentontheserecordsisusedtoderivecertainformulafieldsandtokensforleadrecordsinMarketo.
Model
TheschemaforSalesPersonsisnon-extensibleandshouldbereadoncefromtheDescribeSalesPersonendpoint.
![Page 11: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/11.jpg)
Mapping
externalSalesPersonIdshouldbemappedtotheprimarykeyforthecorrespondinguserorownerobjecttypeintheintegratedCRM.
Relationships
Object RelationshipType LinkType LinkFieldLead 1:N LeadField externalSalesPersonId
Accessibility
InordertoreadandwritetoSalesPersons,anAPIusermusthavetheRead-WriteSalesPersonpermission.
SalesPersonscanbereadviatheGetSalesPersonsbyFilterTypeendpoint.Likecompanies,theyhavealimitedsetofsearchablefieldswhichcanberetrievedviatheDescribeSalesPersonsendpoint.
SalesPersonsmaybecreatedorupdatedviatheCreate/UpdateSalesPersonsendpoint.
SalesPersonsmaybedeletedthroughtheDeleteSalesPersonsendpoint.
ExtendedSynchronizedEntitiesCustomObjectsPrimaryKey:marketoGUID,AdditionalUserDefinedkeys
Customobjectsalwayshaveauniquesystem-generatedmarketoGUIDwhichissetuponcreation.Therewillbeatleastoneadditionalkey,andpossiblymore,whichareuser-definedinthecustomobjectdefinition.Keysmaybesinglefieldsfortypeswhicharelinkeddirectlytoleadsorcompanies,andmayhavecompoundkeysfortypeswhicharelinkedtoleadsoraccountsandanothercustomobjecttype.KeyscanbedeterminedbyusingDescribeCustomObjecttoretrievethelistofdedupeFields.
MarketoallowsthedefinitionofCustomObjecttypesbyuserstoextendtheMarketoschema.Marketocustomobjectsmayberelatedtoleadsorcompanies,ineitheraonerecordtomanycustomobjectconfiguration,oramany-to-manyconfigurationthroughtheusageofintermediatecustomobjects.
![Page 12: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/12.jpg)
Model
TheschemaforCustomObjectsisdynamicandvariableacrossallsubscriptions.EachCustomObjectmayhaveanynumberoffieldswhichmayupdated
Mapping
CustomObjectmappingshouldbedrivenbycustomerrequirementsandcan’tberigidlydefinedingeneral.
Relationships
MarketoCustomObjectsmayonlyberelatedtoeitherleadsorcompanies,ineithera1:NorN:NconfigurationthroughtheusageofintermediateCustomObjects.RelationshipscanbederivedfromtherelationshipsparameteroftheresultofDescribeCustomObject.
Accessibility
Toreadandwritetocustomobjects,anAPIusermusthavetheRead-WriteCustomObjectpermission.CustomObjectshavethestandardsetofGet,Create/Update,andDeleteendpoints.AListCustomObjectsendpointisalsoprovidedtoagiveameansofdeterminingwhatCustomObjecttypesareavailableinagivensubscription.
ActivitiesPrimaryKey:id
ActivitieshaveauniqueintegeridthatissetuponcreationbyMarketo.
ActivitiesarerecordsofactivitiesassociatedtoleadrecordsinMarketo.Theymayrecordactivityofmanydifferenttypes,asindicatedbytheiractivityTypeId.Activitiesareread-onlyinMarketo.Certainactivitytypesareprunedafter90daysintheMarketosystem.PrunedActivities:
![Page 13: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/13.jpg)
• DataValueChange• AddtoList• RemovefromList• VisitWebPage• ClickLink
Thetypesofactivitiesavailableinagivensubscriptionarevariabledependingonmanyfactors,includingtypeofsubscription.TheavailabletypesandtheirmetadatashouldalwaysbedeterminedbycallingGetActivityTypesfromthetargetsubscription.
Activitiesareread-only
Model
Activitieshaveasemi-strictschema.Thefollowingfieldsaredefined,butnotnecessarilyusedforallactivitytypes:
Name Datatype Descriptionid Integer UniqueidleadId Integer Idofthelinkedlead.MapstoidonleadrecordsactivityTypeId Integer IdofthetypeofactivitycorrespondingtoaresultofGet
ActivityTypesactivityDate Datetime DatethattheactivityoccurredprimaryAttributeValue String ValueoftheprimaryattributeprimaryAttributeValueId Integer Idoftheprimaryattributeattributes Array Arrayofname/valuepairsrepresentingtheattributesofthe
activity
Eachactivitytypehasaprimaryattributewhichcorrespondstoavalueofsomekind.TheattributemayberelatedtoanytypeofassetorobjecttypeinMarketo.Forexample,theprimaryAttributeValueoftheVisitsWebPagetypecorrespondstothenameorURLofthewebpagewhichwasvisited.TheMarketonamewillbepresentedifthepagewasalandingpage,andtheURLifitisnotaMarketopage.Attributesconsistsofanarrayofname/valuepairs,namingeachofthefieldsforanactivitytypeandthecorrespondingvalue.
Activitiesmaybemodeledaseitherasingleobjecttypewithanarrayofattributes,orasindividualobjecttypes,dependingontherequirementsorbestpracticesfortheexternalCRMsystem.
Relationships
ActivitiesinMarketoarealwaysrelatedtoleadrecordsthroughtheleadIdfield.SomeactivitytypesmayhavearelationshiptootherMarketoassetsthroughtheirprimaryAttributeValue.
Accessibility
Inordertoreadactivities,anAPIusermusthavetheRead-OnlyActivitypermission.TowritecustomactivitiestheRead-WriteCustomActivitiespermissionisrequired.
![Page 14: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/14.jpg)
ActivitiescanbereadthroughtheGetLeadActivities,GetLeadChanges,andGetDeletedLeadsendpoints.CustomActivitiesmaybewrittenthroughtheWriteCustomActivitiesendpointifacustomobjecttypehasbeendefined.
ProgramsProgramsinMarketoarebothaprimaryorganizationalassetandakeyattributioncomponent.Programsrepresentmarketingcampaigns,individualmarketingtacticsandassets,andoperationalworkflows.Eachprogrammayencapsulatemarketingassets,SmartLists(i.e.dynamicsegmentationlists)andSmartCampaigns(i.e.workflows).Opportunity-relatedrevenueisattributedtoprogramsbasedonalead’srelationshiptoaprogram,representedeitherbytheAcquisitionProgramleadfield,orbyalead’sprogrammembershipinthatprogram.
ItisacommonpracticeinCRMintegrationforaprogramnottobedirectlyrepresentedinCRMbuttobetranslatedtoanothertypeofobject.Forexample,inMarketo’snativeSFDCsync,theProgramismappedtotheCampaigntype,andtheProgram’smembershipismappedtotheCampaignMembershiptype.
Model
Theschemaforprogramsismostlystatic.Thenumberoffieldsavailableforprogramrecordswillnotchange,buttheChannelsandTagshaveusercustomizablevalues,whichshouldbemodeledifchoosingtoallowcreationofnewprogramsfromCRMtoMarketo.Aprogramwillhavethefollowingfields:
Name Datatype DescriptionId Integer Uniqueidoftheprogramname String User-definednamedescription String User-defineddescriptioncreatedAt Datetime DateofcreationupdatedAt Datetime Dateoflastupdateurl url Urloftheprograminthesubscriptiontype String Typeoftheprogram,oneof:Default,Event,EventwithWebinar,
Nurture,orEmailchannel String Channeloftheprogram.Definesacceptablestatusesforprogram
membershipfolder Object Parentfolderoftheprogram.status String Statusoftheprogram.workspace String Parentworkspaceoftheprogramtags Array Arrayofuser-definedtags.Tagsprovidecustomizable
informationforprograms.costs Array Arrayofcosts.Usedtodefinecostsrelatedtorunningaprogram.
MappingTheCRMtobeintegratedmayhaveanobjecttypewhichmapstotheMarketoprogramnaturally.Programsbroadlyrepresentmarketingcampaigns,andarelinkedtoleadsthroughtheProgramMembershipobjectwhichdefinesthelead’sstatus,andsuccessinthemarketingeffort.
![Page 15: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/15.jpg)
RelationshipsProgramsarerelatedtoleadsthroughtheProgramMembershipobject.ProgramsalsohaveotherrelationshipstoassetswhicharenotpertinenttothediscussionofCRMintegration.
Accessibility
Toreadprograms,theRead-OnlyAssetpermissionisrequired.ProgramscanbereadthroughBrowsePrograms,GetProgrambyId,GetProgrambyName,andGetProgrambyTagType.
Towriteprograms,theRead-WriteAssetpermissionsisrequired.ProgramscanbecreatedthroughCreateProgram,canbeupdatedthroughUpdateProgram,clonedthroughCloneProgram,andDeletedthroughDeleteProgram.
ProgramMembershipPrimaryKey:Compound[IdofProgram,IdofLead]
Theprimarykeyforprogrammembershipisauniquecompoundkeyoftheidofthelinkedprogramandtheidofthelinkedlead.Theremayonlybeoneprogrammembershiprecordforeachuniquepair.
ProgramMembershiprepresentsalead’srelationshiptoaprogramandtheirstatusinthatprogram.
Model
ProgramMembershiphasastrictschema.InrelationtoCRMsomefieldsmaybeconsideredoptionaldependingoncustomerrequirements.Stream,isExhaustedandnurtureCadencewillonlybepopulatedwhenthemembershiprecordisrelatedtoaNurtureProgram,andmaynothaveexternalrelevance.
Name Datatype DescriptionprogressionStatus String StatusoftheleadintheparentprogramStream String NameofthestreamthattheleadisamemberofnurtureCadence String Cadenceoftheleadinanurtureprogram.EitherNormalor
PausedisExhausted Boolean WhethertheleadisexhaustedinitscurrentNurtureStreamacquiredBy Boolean WhethertheleadwasacquiredbytheparentprogramreachedSuccess Boolean WhethertheleadisinasuccessstatusintheparentprogramreachedSuccessDate Datetime ThedatethattheleadbecamesuccessfulintheprogrammembershipDate Datetime Thedatetheleadbecameamemberoftheprogram
TheidoftheparentprogramandisoftheparentleadarenotexplicitlyreturnedbyGetLeadsbyProgramId,butareinferredbythegivenprogramid,andthereturnedparentlead.
Mapping
Likeprograms,programmembershipmayhaveanaturalmappingtoanexistingobjecttype,butmayalsoneedtoberepresentedbyacustomobjecttypeintheintegratedCRM.
Relationships
Programmembershipisrelatedtoprogramsandleadsbytheirrespectiveids.
![Page 16: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/16.jpg)
Accessibility
ReadingandwritingprogrammembershiprequirestheRead-WriteLeadpermission.ProgrammembershipmaybereadthroughGetLeadsbyProgramId,andwrittenthroughChangeLeadProgramStatus.
StaticListsPrimaryKey:id
StaticListshaveauniquesystem-managedintegeridwhichissetatcreation.
StaticListsrepresentnon-dynamicgroupingsofleadrecordsinMarketo(opposedtoSmartLists,whicharedynamicandupdateautomaticallyasnewleadsmeetthecriteriaorexistingleadsceasetomeetthecriteria).StaticListsareonlycreatedbyusersfromtheUIformarketingpurposes.StaticListsmayormaynotbeimportantinexternalsystemsdependingoncustomerrequirements,andhaveanextremelybroadsetofusecases.StaticListsareusedtoflexiblyrepresentgroupsofpeople.
Model
StaticListshaveastrictschemadefinedbelow.
Name Datatype DescriptionId Integer UniqueIdName String User-definednameDescription String User-defineddescriptionprogramName String NameoftheparentprogramifapplicablecreatedAt Datetime DatethelistwascreatedupdatedAt Datetime Datethelistwaslastupdated
ListMembershipisdefinedasasimplerecordcontainingtheidoftheparentlistandtheidoftheparentlead.
Mapping
StaticListsandtheirmembershipmayhaveanaturalcorollaryinthetargetedCRM.
Relationships
StaticListsarerelatedtoleadsthroughthelistmembershipobjectcontainingtheidofboththeleadandthelist.
Accessibility
TheRead-OnlyLeadspermissionisrequiredtoreadStaticLists.TheRead-OnlyLeadpermissionisrequiredtoreadmembership,andtheRead-WriteLeadpermissionisrequiredtoaddorremovelistmembership.
ListsmaybereadthroughGetListByIdandGetMultipleLists.
MembershipmaybereadthroughGetLeadsbyListIdandwrittenthroughAddLeadstoList,ImportLeadandRemoveLeadsfromList.
![Page 17: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/17.jpg)
Synchronization
ConfigurationTomaintainthebestpossibleperformance,asetofconfigurationoptionsshouldbepresentedtoadministrativeusers.
SynchronizedFieldsNotallfieldsarenecessarytobemappedandsynchronizedbetweenMarketoandanassociatedCRMsystem.Adminusersshouldbepresentedwiththeoptiontoenableordisablesynchronizationofspecificfieldsforeachentitytypewherethisisappropriate(Leads,Companies,Opportunities,CustomObjects).Onlyspecialtyfieldsasdiscussedintheentitiessectionshouldbemandatoryforsynchronization,whileallothersshouldbeoptional.Reducingthenumberofsynchronizedfieldswillimprovesynchronizationperformanceinallcases.
SynchronizedCustomObjectsNotallCustomObjectsarenecessarytoincludeinanassociatedCRMsystem.AdminusersshouldbepresentedwiththeoptiontoenableordisablesynchronizationofCustomObjectsandbemadeawareofanymanualdataextensionwhichneedstooccurintheCRMpriortoenablementofsynchronization.Wherepossible,yourservershouldperformautomaticprovisioningofassociatedCustomObjectsintheCRMforobjectswherebootstrappingfromMarketotoCRMisbeingperformed.Inthecasethatthisisnotavailable,manualandflexiblemappingshouldbepermittedtoavailabletypesandfields.ForCRM-to-Marketosynchronization,thedefinitionshouldbederivedfromthetypeinCRM.
SynchronizedActivityTypesManyactivitytypesdonothaveanyrelevanceinaCRMsystemandshouldnotbesynchronizedever,whileothersmayormaynotbeneededonaclient-by-clientbasis.AdminusersshouldbeabletoselectwhichtypesareandarenotsynchronizedtolimitAPIcallusageandimprovesynchronizationperformance.
BootstrappingConfigurationAnadminuserorimplementeruponinitialconfigurationshouldbeabletoconfigurewhichsetoffieldsandrecordtypesneedtoberetrievedfromMarketo.Anoptionshouldalsobegiventotheseusersallowingthemtoconfiguretheearliestdatefromwhichtosynchronizeforeachparticularrecordtype.Initialsynchronizationtimecanbereduceddramaticallywhentheearliesttimeismorerecent.
SynchronizationIntervalMarketo’snativesynchronizationconnectorsqueueanewbatchofpushesandpullsfiveminutesafterthecompletionofthepreviousbatch.Thiscoversagreatdealofcasesandstrikesanacceptablecompromisebetweenrelativelylowsynchronizationlatency,andutilizationofAPIcalls.Foryoursolution,youshouldbasethesynchronizationintervalbasedonhowmanyAPIcallsatypicalsynchronizationcyclewilltake.ForaccountsprovisionedorrenewedafterMarch2016,thedefaultnumberofAPIcallsperdayis50,000withoptionaladditionalAPIcallspurchasedingroupsof10,000/day.
![Page 18: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/18.jpg)
ThenumberofchangesthataclientexpectstooccurfortheirleadrecordsandtheirsynchronizedactivitieswillbethegreatestinfluenceonthecumulativenumberofAPIcallswhichwillbeusedinagivenday,andthisshouldinfluenceyourdesign.Yourbaselineforcontinuoussynchronizationwherenochangesareretrievedinanygivencycleshouldnotexceed7,500callsperday.
BootstrappingfromMarketoIfthereisexistingdatainaMarketosubscriptionwhichwillberequiredforfutureuseinthecorrespondingCRMsystem,thenthisdatashouldberetrievedfromMarketofortheprimaryobjectsLeads,Companies,Opportunities,Roles,andSalesPersons.
Thebootstrappercodeshouldbeseparatefromthecontinuoussynchronizationcode,assometimesbootstrappingwillnotbenecessaryatall.BootstrappingfromMarketoshouldonlybeperformediftheclientindicatesthatthereisexistingdataforagiventypeinMarketo.Whereverpossible,theretrievalshouldalsobefocusedtothesmallestpossiblesetofdatarequired.
LeadsThemosteffectivewaytobootstrapallleadrecordsisbyretrievingallNewLeadactivitiesfromthetargetinstance,andthenretrievingallofthecorrespondingleadsbyId.Thetypicalprocessisasfollows:
• CallGetPagingTokenwithasufficientlyearlytimestamp.Thisinformationshouldbeprovidedbytheclient.
• CallGetLeadActivitiesfortheNewLeadactivity,andpagethroughthesetofresults,storingthecorrespondingvaluesofleadIdintheactivity.
• CallGetLeadsbyFilterTypeusingidasthefilterType,with300ofthestoredIdsforeachcall.ThismaybedoneinparallelwiththeretrievaloftheNewLeadactivities.
• Theresultingleadrecordsmaythenbestoredasmapped.
CompaniesThenecessitytobootstrapcompanyrecordsfromMarketowillberareasofthiswritinginApril2016.
CompaniesshouldbebootstrappedonthebasisofthepresenceofexternalCompanyIdonbootstrappedleads.Thetypicalprocessisasfollows:CallGetCompanieswithfilterTypeofidField.filterValuesshouldbesetsofupto300valuestakenfromtheexternalCompanyIdfieldsoftheLeadsalreadyobtained.
OpportunitiesandRolesItshouldbenotedthatitisnotatallidealtobootstrapopportunitiesfromMarketo.Ifthereisanotheravailabledatasourcetoretrievethisdata,itislikelythesourcethatshouldbeused,asMarketodoesnotoriginateOpportunitydatafromwithintheapplication.
BootstrappingOpportunitiesandrolesshouldbedonebasedonthedatapresentintheAddtoOpportunityactivitytype.Thetypicalprocesstobootstrapopportunitiesandrolesisasfollows:
• CallGetPagingTokenwithasufficientlyearlytimestamp• CallGetLeadActivitiesfortheAddtoOpportunityActivityandpagethroughthesetofresults• IftheexternalCreatedDateandupdatedAtfieldsarenotrequired,theRolerecordsmaybe
inferred.
![Page 19: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/19.jpg)
• ThelistofopportunitiesshouldberetrievedwithGetOpportunitiesbasedontheavailableOpptyIDintheactivityresults,usingidFieldasthefilterType.
• IfrequiredtherolerecordsshouldberetrievedwithGetOpportunityRoles,basedontheleadId,role,andOpptyIdfields,usingdedupeFieldsasthefilterType.
SalesPersonsThenecessitytobootstrapsalespersonrecordsfromMarketowillberareasofthiswritinginApril2016.
SalespersonsshouldbebootstrappedonthebasisofthepresenceofexternalSalesPersonIdonbootstrappedleads.Thetypicalprocessisasfollows:CallGetSalespersonswithfilterTypeofidField.filterValuesshouldbesetsofupto300valuestakenfromtheexternalSalesPersonIdfieldsoftheLeadsalreadyobtained.
CustomObjectsBootstrappingcustomobjectsfromMarketoshouldbecarefullyconsidered.MarketocurrentlydoesnotexposetheabilitytopullincrementalupdatesfromMarketocustomobjectrecords,sotheoptionmaypresentlimitedusefulness.
ThemethodofbootstrappingfromMarketowilldependonthedefinitionoftheobject.For1:Nrelationshipswithleadsoraccounts,therewillonlybeoneobjecttypetoretrieve.ForN:Nrelationshipstherewillbetwotypes.RefertotheEntitiessectionformorespecificinformationonCustomObjectdefinitions.
Thetypicalprocessforretrievingcustomobjectsisasfollows:
• Retrievetheactivitytypeforthecustomobject.Itwillfollowthenamingpattern“Addto{CustomObjectName}”
• CallGetPagingTokenwithasufficientlyearlytimestamp• CallGetLeadActivitiesfortheAddtoCustomObjectactivitytyperetrievedearlier• CallGetCustomObjectsbasedonthekeysretrievedfromtheactivities.Thiswillneedtobe
cross-referencedtothecorrespondingDescribeCustomObjectresult.
ProgramsandMembershipNote:Ifimplemented,itisrecommendedthatmembershipforprogramsonlybesynchronizedonanon-demandbasis.
ToretrieveallprogramsfromMarketo,theclientsimplyneedstocallBrowseProgramsandpagethroughtheresultsbyincrementingtheoffsetparameter.
ToretrieveallmembershipfromMarketo,theclientneedstocallGetLeadsbyProgramIdforeachsynchronizedprogramandpagethrougheachresultset,retrievingtheinformationinthechildmembershipobject
ActivitiesActivitiesmayonlyberetrievedforuptotenactivitytypesatatime,soitisbesttomaintainseparatesynchronizationqueuesforeachsetofuptotentypeswhichhavebeenindicatedforsynchronization.Thetypicalprocessisthis:
• CallGetPagingTokenwiththeearliestdesiredtime
![Page 20: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/20.jpg)
• CallGetLeadActivitieswithasetofuptotenactivityTypeIdsandpagethroughtheresultsetuntilmoreResultisfalse
• Initiatethepreviousstepforthenextsetoftenactivitytypesifnecessary
ListsandMembershipToretrieveallListsfromMarketo,theclientneedstocallGetMultipleListsandpagethroughtheresultsetuntiltheend.
Toretrievealllistmembership,theclientneedstocallGetMultipleListsbyListIdforeachsynchronizedlist,andpagethroughtheresultset.
RecommendedBootstrappingOrder1. NewLeadActivitiessinceinstancecreation2. LeadRecordsbyleadIdforNewLeadActivities3. CompanyrecordsbyexternalCompanyIdfromLeads4. AddtoOpportunityactivities5. OpportunitiesbyOpportunityIDfromactivities6. OpportunityRolesbyleadId,externalOpportunityID,androlefromactivities7. SalesPersonsbyexternalSalesPersonIdfromLeads8. Otherrecordtypesasrequired
MaintainingSynchronizationThesimplestandmostconsistentwaytomaintaincontinuoussynchronizationistoimplementapollerwhichretrieveschangestorecordsinMarketoandpushesthemtoCRMandthenfromCRMandpushesthemtoMarketo,andthenrepeatsthecycleafterapredeterminedperiodeachtime.
ToretrievechangesfromMarketo,twohighwatermarksmustbemaintained,thefirstforchangestolead/companyfieldswhichhaveoccurredsincethemostrecentlyretrievedchange,andforthesynchronizationcase,andthesecondfortheactivitieswhichhaveoccurredsincethemostrecentlyretrievedleadactivity.Thesearedatetimevalues.Whenretrievingchangesoractivitiesinasubsequentsynchronizationcycle,theexactdatetimeofthemostrecentlycreatedrecordshouldbeused.SinceMarketomaintainsonlyper-secondandnotper-millisecondresolutionfordatetimes,itispossiblethatactivitiesmayoccurwiththesamedatetimeasthehigh-watermark.Thiswillresultinretrievalofduplicateactivitieswhichmaybesafelyignoredbasedontheidoftheactivity.
RecommendedSynchronizationOrder1. CreateandUpdateCompanies2. GetCompanies3. CreateandUpdateSalespersons4. CreateandUpdateLeads5. GetLeads6. GetLeadMergesandDeletions7. GetLeadActivities8. DeleteLeads9. CreateandUpdateOpportunities
![Page 21: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/21.jpg)
10. CreateandUpdateRoles11. DeleteRoles12. DeleteOpportunities13. DeleteCompanies14. DeleteSalespersons15. CreateandUpdateCustomObjects
LeadsandCompaniesSynchronizationforLeadsandCompaniesismaintainedprimarilyusingtheGetLeadChangesendpointwhichretrievesdatavaluechangerecordswhichoccurafteratimestampgivenbyapagingtokenwhichisretrievedviatheGetPagingtokenendpoint.ThisendpointwillreturnbothNewLeadactivities,whichindicatesthecreationofanewknownleadinMarketo,anddatavaluechangeactivitiesforasetoffieldsgivenintheparametersofthecall.
ThechangeactivitiesshouldbeappliedintheorderofthecreatedDate,fromearliesttolatest,givenintheactivitytotherecordsinCRMwhichcorrespondtotherecordgivenbyleadIdintheactivity.NewLeadactivitiesshouldbeaddedtoaqueueofnewleadrecordswhichneedtoberetrievedbyid,“leadId”intheactivity,usingtheGetLeadsbyFilterTypeendpoint,withidasthefilterType.Thesemayberetrievedupto300atatime.Itisrecommendedtowaituntilthereare300recordstoretrieve,andthentomakethecalltoretrievetheserecords,insteadofcallingwheneverthesebecomeavailable.If,uponreachingtheendofthesetofchanges,therearelessthan300records,thenthesetshouldberetrieved.
Inadditiontochangesandnewleads,inordertomaintainsynchronizationtheMergeLeadandDeleteLeadactivitymustberetrievedinorderaccountforleadrecordswhicharemergedtogether.Themergeactivityindicatesthattworecordshavebeenmergedintoasinglerecord.TheCRMmayormaynotchoosetohonorthemerge/delete,deletethelosingrecordandretrievethechangesfromthewinninglead,oritmaybeignoredandhavea“DeletedinMarketo”flagsettoindicatethattheMarketoLeadIDforthatrecordisnolongervalid.
Forimplementationdetailsonretrievingactivities,seetheactivitiessection.
Aspartofastandardsynchronizationcycle,changesfromtheCRMshouldalsoberetrieved.Ideallyonlyfieldswhichhavebeenupdatedsincethemostrecentsynccycleshouldberetrieved,butthismaynotbepossiblegiventheconstraintsofthesystem.Ifthisisavailable,allthechangesforagivenrecordshouldbeaggregatedintoaleadrecordtobesubmittedtoMarketo.Ifachanges-onlyoptionisnotavailable,thenitisviabletoretrievethewholerecordwithalloftheMarketo-mappedfieldsforsubmissiontoMarketo.
Topushchangesforleadrecords,therearetwooptions,thebulkImportLeadAPIandtheCreate/UpdateLeadsendpoint.ImportLeadallowsaspreadsheetofleadsasrowstobesubmittedintoMarketoforcreationorupdate,whichmaybeupto10MBinsize.Create/Updateleadallowsfortheinputofupto300leadrecordsasJSON.Thereareadvantagestoeitherone.ImportLeadisasynchronousandhasahighertotalthroughput,butrequiresanindividualpollingimplementationtocheckonthestatusoftheimport,anditsharesaqueuewithMarketolistimports,soitispossibleforthecalltoremainenqueuedforasignificantperiodoftime,resultinginagreatdealoflatency.
![Page 22: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/22.jpg)
Create/UpdateLeadoffersmuchfasterfeedback,butwillconsumesignificantlygreaternumbersofAPIcallstoimportlargenumbersofleadsperbatchasitmayonlysubmitupto300recordspercall.
Ineithercase,forincrementalsyncingofupdatesfromCRM,thelookupFieldshouldbespecifiedastheprimarykeyselectedfromtheCRMsystem,andthecreateOrUpdatemodeshouldbeusedwhenusingCreate/Updatelead.ThisallowssharingofthesamequeuebynetnewleadsandleadupdateswhichneedtobepushedintoMarketo.
InthecasethataMarketoLeadislinkedtoacompanyrecordviaexternalCompanyId,commonlyconceptualizedasacontact,thecompanytypefieldsthatwerepartoftheleadrecordarenolongerwriteablethroughtheleadrecordandaredeferredtothelinkedcompanyrecord
CompaniesItisimportanttodeterminewhichfieldsareCompany-typefields,andwhichfieldsareLead-typefields.ThiscanbedonewiththeDescribeCompanyendpoint.AllfieldslistedthereareCompany-typefields,ofwhichmostaremirroredasleadfieldsforunlinkedleads.IfaCompany-typefieldisreflectedinaChangeDataValueoperation,thenthechangeshouldbereflectedagainstthecompanyrecordinCRMifthechangewasmadeagainstaleadwhichislinkedtoacompanyrecordviaexternalCompanyId.Ifnot,thechangeshouldjustbereflectedagainsttheleadrecord.
SalesPersonsNote:Inasingle-CRMcaseSalesPersonrecordsshouldbemanagedbytheCRMitself,sotheserecordsshouldnotbepulledfromMarketoafterthebootstrappingprocess.
SalesPersonrecordsshouldbecreatedordeletedinMarketowheneveracorrespondingeventoccursintheCRMsystem.Thischeckshouldbeperformedbytheintegrationsoftwareuponeverysynccycletoseeifchangesarerequired.Intheeventthatasalespersonrecordrequiresdeletion,allleadswhichhavethatsalesperson’sexternalSalesPersonIdmusthavethatvaluechangedtoanewvalue,orhavethevaluesettonullbeforetherecordcanbedeleted.
SynchronizationofleadownershipshouldbeperformedaspartofleadsynchronizationviatheexternalSalesPersonIdfield.
OpportunitiesandRolesNote:Inasingle-CRMcaseitisexceedinglyrareforOpportunitiesandRolestobecreatedbynon-CRMsources.ItisunlikelytobearequirementtopullthesetypesofrecordsfromMarketo.
OpportunityandrolesrecordsshouldbecreatedordeletedwheneveracorrespondingeventoccursintheCRMsystem.Thisshouldbeperformedaspartofaroutinesynccycle.Ifanopportunityrequiresdeletion,allofitschildrolerecordsmustbedeletedpriortoitsdeletion.Theorderofoperationsforopportunitiesshouldbeassuch:
1. CreateandUpdateOpportunities2. CreateandUpdateOpportunityroles3. DeleteOpportunityRoles4. DeleteOpportunities
![Page 23: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/23.jpg)
ActivitiesLeadactivitiesareread-onlyaftercreation,andsodonotrequireatwo-wayimplementation.TheyarereadfromMarketoviatheGetLeadActivitiesendpoint,ingroupsofupto10activitytypes.TheendpointacceptsanearliestcreationdateviaapagingtokenwhichisretrievedviatheGetPagingTokenendpoint.ThesetofresultsshouldbepagedthroughuntilthemoreResultparameterintheresponseisreturnedasfalse,andthecorrespondingactivitieswrittentoCRM.Themostrecentdatetimefromtheactivitiesretrievedshouldbestoredasthehighwatermarktobeginthenextsynccyclewith.
Activitiesareusedtoretrieveincrementaldataregardingcustomobjects.
CustomObjectsToperformMarketotoCRMsynchronizationofcustomobjects,the“Addto{CustomObjectName}”activitymustberetrieved,andthecorrespondingrecordsretrievedwiththeGetCustomObjectsendpoint.CustomObjectsmayhavedifferentrelationshiptypeswhichneedtobemodeled.Formoreinformation,pleaseseetheCustomObjectsectioninEntities.
Creation,updates,anddeletionofCustomObjectsshouldbehandledexactlyasopportunitiesorsalespersonsare.
Program-OpportunityAttributionMarketo’smostimportantattributionmodelisbasedontherelationshipbetweenLeads,ProgramsandOpportunities,whereprogramsrepresentsomelevelofunifiedmarketingeffort,andopportunitiesrepresentsalesdeals.Theserelationshipsareinferred,andtheamountofmoneyearnedintheclosureofanopportunityisattributedtotheassociatedmarketingeffort,oneormoreprograms,throughtheassociatedleads’programmembershiprecord.Marketohastwoformsofattribution,First-Touch(FT),andMulti-Touch(MT),whichhaverelatedbutdistinctmethodsofcalculation.Careshouldbetakentoensurethattherelevantfieldsforopportunitiesandleadsaremappedcorrectlytoprovideforproperrevenueattributionofopportunities.
First-TouchAttribution(FT)FirstTouchattributionidentifiestheprogramsthataremosteffectiveatacquiringtherightleads(i.e.newleadsthateventuallyconverttosalesopportunities,pipeline,wonopportunitiesorrevenue).Itdoesbyassigningfullmarketingcreditforthedeal/revenuetotheprogramthatfirstbroughttheleadintothedatabase.ThisisdonebydesignatingAcquisitionProgramandacquisitiondateforaleadrecordandafewotherrequirements:
• TheleadmusthaveanAcquisitionProgram• Thelead'sacquisitiondatemustoccurbeforetheCreatedDateoftheOpportunity• TheleadmustreachProgramSuccessintheProgram
Meetingtheseprerequisiteswillgivefirst-touchattributiontotheprogramforOpportunitiesassociatedtothelead.TheserequirementsaloneshouldpopulatetheCostofOpportunity(basedonProgramCost),PipelineCreated,PipelineCreated(StillOpen),andRevenueExpectedmeasureinaProgramOpportunityAnalysisreport.
TopopulatetheRevenueWonandRevenuetoInvestmentmetrics,theOpportunitymustbeinStage“ClosedWon.”
![Page 24: INTRODUCTION - Marketo Developersdevelopers.marketo.com/support/Marketo_CRM_Sync_Reference... · INTRODUCTION This document aims to provide detailed information regarding implementation](https://reader034.vdocuments.us/reader034/viewer/2022042801/5a9dfa877f8b9ad2298ba172/html5/thumbnails/24.jpg)
Multi-Touch(MT)Multi-TouchAttributionisusedtoindicatetheusefulnessofaprograminmovingknownleadstowardapurchase(i.e.closed-wonopportunities)byspreadingcreditfortherevenueacrossalltheprogramsthatsuccessfullytouchedtheleadsonclosed-wonopportunities.WhereasFTattributionisusedtooptimizetheleadsyou’rebringingintoyourdatabase,MTattributionisusedtooptimizethemovementofthoseleadsthroughthemarketingfunnel.
AnopportunitywillhaveitsPipelineandOpportunitiesCreatedmeasuresattributedviaMTtoaprogramwhenaleadreachessuccessinthatprogrampriortotheCreateddateoftheopportunity.Thisisusedtodeterminetheefficacyofaprogramforgeneratingpotentialdealsfromexistingleads.
AnopportunitywillhaveitsRevenueWon,OpportunitiesWon,andRevenuetoInvestmentattributedtoaprogramviaMTwhenaleadreachessuccessinaprogrambetweentheCreatedDateandtheCloseDateofanOpportunity.Thisisusedtodeterminetheefficacyofaprograminclosingdeals.