Build robust marketing campaigns on Marketo using rich customer data from your data warehouse
|Sync Type||Description||Supported Sync Modes||API Reference|
|Standard and custom objects||Sync data from any source to any custom or standard objects including leads, companies, and opportunities||Upsert, Update||Object docs|
|Activities||Sync data from any source to custom activities||Insert||Activities docs|
|Static Lists||Match data from any source to static lists||Insert, Update||Static Lists docs|
|Campaign triggers||Trigger campaigns using source data||Insert||Campaign docs|
For more information about sync modes, refer to the sync modes docs.
Connect to Marketo
Go to the Destinations overview page and click the Add destination button. Select Marketo and click Continue. You can then authenticate Hightouch to Marketo by entering the following fields:
- Client ID
- Client Secret
- Base URL
Ensure you've given Read-Write Activity permission to your Marketo account
and that it has access to the workspaces and partitions you want to use in Hightouch.
If you try setting up a Marketo destination with an account that doesn't have these permissions, you will receive a
603 - Access denied error.
To find the Client ID and Secret, navigate to Admin > LaunchPoint in your Marketo account and select a service.
You can find the Base URL in Admin > Integration > Web Services. Only use the part after
https:// and before
/rest as your base URL, for example,
Once you've set up your Marketo destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Marketo destination you want to sync to.
Hightouch supports syncing to both standard and custom Marketo objects. The standard objects that Hightouch supports are:
Records can be matched from your source to your Marketo object. The fields available to match depend on the object.
You can sync columns from your source to Marketo's fields.
Hightouch supports syncing to custom activities. To sync custom activities they must first be created and approved in Marketo.
When syncing activities, Hightouch treats any records added to your source as new activities and sends them to Marketo when your sync runs.
You can learn more about creating custom activities in Marketo's docs.
Hightouch allows you to choose the activity, timestamp, and the lead ID that your Marketo activity is linked to.
Records can be matched from your source to your Marketo activity's primary attribute.
Hightouch allows you to sync data from your source to your Marketo activity's attributes.
Creating and syncing to static lists
Hightouch supports creating and updating Marketo static lists.
Hightouch supports automatically creating a new list for your sync. You can specify a custom name for this list, or Hightouch will use the name of the model.
Here, the name List 1 will be used as the list name:
Selecting a folder
When creating a new static list in Marketo, you need to select the folder the list will be created in.
Static list description
Hightouch supports adding an optional description to your Marketo static list.
Hightouch allows you to trigger campaigns through Marketo Campaign API with records in your model.
Before you are able to set up a Hightouch sync to trigger a campaign, you are required to have an active trigger campaign with the
Web Service API as the source in Marketo. See the steps below.
If you haven't already, go to Design Studio to build your email template in your Marketo instance. Before your email template can be used in Hightouch, your draft must be approved.
You can use custom tokens to populate your email template with data from your model.
In the example above, we want to dynamically populate our email subject. See tokens.
- Setup your campaign.
- Setup your trigger.
A. Create a Smart Campaign that you will trigger. Make sure that your campaign belongs to a program.
B. Go to Smart List tab to configure the trigger.
C. Select Campaign is Requested under the triggers.
D. Select Web Service API for source.
- Setup your flow.
A. Go to Flow.
B. Select Email.
C. Select the email template you want to send.
- Setup your qualifications and activate.
A. Go to Schedule.
B. Click on Edit to edit your qualifications.
C. Activate this campaign.
- Setup your trigger.
For additional reference, see Marketo's how-to article.
Hightouch sync will trigger your Marketo Smart Campaign when rows first appear in your sync. This means that Hightouch will trigger your Marketo Smart Campaign for every row in your model on the first time you run your sync or when you do a full resync, and for every new row that is added to your query results in the subsequent syncs.
The Hightouch Marketo destination will not check if an email has been sent to
a distinct lead. This means that if a lead with email
appears in two of the queried rows from your model, then a trigger (emails)
request for each of these rows will be sent to Marketo's API. A total of two
triggers will be sent for
firstname.lastname@example.org. If you wish to only send
emails once per lead, set your qualification settings in Marketo to
Marketo Smart Campaigns are only triggered for leads that already exist in your Marketo instance. You can provide a lead ID or a lead email for every lead that you want to send your email to.
If you are using email for your lead mapping and your leads aren't
de-duplicated by email, Hightouch will use the latest lead based on the
createdAt timestamp when performing the lookup.
Use this section to map your tokens with data from your rows. You only need to add mappings for tokens that are used in your email template.
When testing, we recommend that you use an example lead so you can access the test email. You will use this lead to perform dry run tests for the campaign trigger sync.
Before running your sync, we highly recommend testing it with a single row.
A. You can manually overwrite columns of a test row. In our example We're using the
lead_id column to match leads, you need to manually overwrite the
lead_id field to your own
lead_id to send a test email.
B. Once ready, press Sync as added row.
Check the email of the lead for testing to verify that your setup works.
Tips and troubleshooting
If you encounter an error or question not listed below and need assistance, don't hesitate to . We're here to help.
Code 603 "Access denied"
This error means that authentication to Marketo was successful but the account you authenticated with doesn't have sufficient permission to call the Marketo API. For more information, see Marketo's help article.
Ensure you've turned on the Read-Write Activity permission for the Marketo account you're connecting to Hightouch with, and that it has access to the Marketo workspaces and partitions you want to use in Hightouch.
Code 1003 "Campaign is not part of a program"
To resolve this error, move your campaign into a program.
Code 1007 "Multiple lead match lookup criteria"
To resolve this error, remove any duplicate rows with the same primary key in your model.
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.
Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.