Skip to main content
Adobe Marketo Engage Connection: Deep Dive
Updated over a month ago

The BlueConic Adobe Marketo Engage Connection is used to import lead data to get a unified customer profile and to update leads for purposes such as mail campaigns.

For details on setting up the Marketo Connection, authentication between the two systems, and configuring connection goals, see the main Adobe Marketo Engage Connection documentation. This article provides some technical background detail on how the integration works between the two systems.

Setting up your Adobe Marketo Engage Connection

The Marketo API uses the two-legged OAuth 2.0 flow (see the Marketo Developer Guide authentication documentation). This means you must enter your client ID, client secret, and identity URL in order to authenticate the connection between BlueConic and Marketo.

This API is used to:

On the setup page, you can also select a profile property to store a Marketo ID in. The Marketo ID is captured on the web by looking at the “_mkto_trk” cookie.

Importing data from Marketo to BlueConic

The connection's import flow can be visualized as follows:

marketo connection flow.png
  1. The import run is started and an export job on the Marketo side is triggered. In this request the Marketo connection adds the fields which should be in the export based on the matching and mapping. For sequential runs, also a timestamp is added to the job, which will be compared to the “updatedAt” field. Note: when the “updatedAt” is not present, an export all is requested, which has an impact on the import speed (because all leads are exported).

  2. The request is added to a first in first out (FIFO) queue. Note: also other systems can add requests to the queue.

  3. The export generator is picking up the messages from the queue

  4. The user data is retrieved from the Marketo database

  5. A CSV file is generated containing the fields as defined in the export job

  6. After the export job has been created, the Marketo connection checks every minute if the job is done. There is no reason to do this more often, because Marketo updates this status every minute. Note: when the job is not done in 4 hours (which might be the case, because it depends on the queue size), an error will be shown

  7. The queue status for the export job is checked (based on the job ID)

  8. When the export job is done, the connection downloads the file

  9. The generated file is returned by the Marketo API

  10. The matching and mapping is applied and the profiles are updated

Exporting data from BlueConic to Marketo

When you export from BlueConic to Marketo, the connection updates leads in Marketo based on the matching and mapping rules in your export goal. It can also assign users to a list in Marketo. The connection's export flow can be visualized as follows:

marketo export flow.png
  1. If there was a previous run with an export goal, BlueConic checks if these jobs were successful and the result will be shown in the run history table. This is done because it can take some time before the job the queue is picked up.

  2. The queue status is of the import jobs are checked (based on the job ID).

  3. The profiles from the segment are retrieved from BlueConic. When it concerns a sequential run (and the settings have not been changed), the modified profiles compared to the last run date are retrieved. The profiles are converted to lines in a CSV file based on the matching and mapping rules.

  4. The data is sent to the import job API. According to the Marketo job API, the file can not be larger than 10MB. So when 95% of the 10MB is reached, a new Marketo import job is created and send to Marketo. Note: the API allows to send one list ID to assign the lead to. When multiple lists are selected, extra job requests are created.

  5. The job is added to the queue.

  6. An import handler is picking up the job and imports the data.

  7. The leads are updated in Marketo.

Notes about Marketo Connections

  • When a profile is no longer part of the selected segment, the connection will remove the lead from the lists that are selected in the connection.

  • When an export goal is part of a BlueConic Lifecycle stage, you can select which engagement events will be used for the threshold, as shown here:

    marketo lifecycles.png
  • These events will be imported for each selected list.
    If the export goal is not part of a lifecycle, this step will not be shown.

Troubleshooting your Marketo Connections

If you get the message “Max rate limit '100' exceeded with in '20' secs” this is a limitation of the Marketo API and this is across all systems connecting to the same Marketo instance. If this occurs regularly, see if changing the connection schedule helps. If not, determine whether Marketo is already overloaded with requests, and consider using a BlueConic universal connection (such as the SFTP Connection, for example).

Did this answer your question?