Updating customer and prospect information in Marketo using the API

March 24, 2014 | by

There are scenarios where proprietary systems are used to update customer and prospect information.  The Marketing team would like to have those updates reflected back in Marketo so they have the most accurate system of record to use in their marketing campaigns.  Using the below approach you can setup periodic uploads to Marketo to keep your Marketo contact information updated with the data modified in that proprietary system.

The diagram below shows the API calls that are made on a set periodic timer.

syncMultipleLeads-Diagram

As the periodic timer is triggered the client logic will first retrieve updated contacts from the proprietary system.  How this is done will differ from system to system using either APIs or data exports from the proprietary system.  We’ll detail the Marketo APIs that are executed once the updated contact information is retrieved.

SOAP Request for syncMultipleLeads:

SOAP Response from the syncMultilpeLeads:

syncMultipleLeads will perform an UPSERT operation.  If a contact within Marketo already exists based on the email address submitted, the attributes will be updated.  If a contact does not exist it will be created.  The response from syncMultipleLeads will return the status for each of the contacts submitted.

The <attrName/> values within the <leadAttributeList/> must match the SOAP API Name defined for that Marketo subscription.  You can discover the SOAP API Names within the field management section within Marketo admin panel by exporting the field names.

marketo-admin

 

The field names will be exported into an excel file as seen below.

exported-field-names

See the below sample Java program that executes the scenario described above:

 

* This article contains code used to implement custom integrations. Due to its customized nature, The Marketo Technical Support team is unable to troubleshoot custom work. Please do not attempt to implement the following code sample without appropriate technical experience, or access to an experienced developer.