Re: Marketo OneTrust integration

jzolinski
Level 2

Hello, we recently purchased OneTrust to support our consent and preference center data. I've setup the workflows in OneTrust to GET and POST data with Marketo, when I test the workflow, I get an error response from Marketo that says error code 609, unrecognized token 'bob', was expecting JSON string....

This tell me that OneTrust is sending data to Marketo, but Marketo does not like the way the data is coming from OneTrust, has anyone experience this same problem or have successfully setup the connection between Marketo and OneTrust so they can share data?

 

Thank you

9 REPLIES 9
Jo_Pitts1
Level 10 - Community Advisor

@jzolinski ,

I've done a OneTrust<->Marketo integration project.

 

It tells me that the data being sent from OneTrust to Marketo is poorly formatted.  Without seeing the data you're sending it is impossible to say more than that.  Can you share a payload with us?

 

Also, you need to consider the following.  OneTrust does not allow duplicates by email.  Marketo does.  If you have more than one Marketo record with the same email address and OneTrust preferences are updated you will need to propagate that information.  

 

Regards

Jo

 

 

jzolinski
Level 2

Hi,

Thank you for getting back to me regarding this integration. That is unfortunate to hear they still experience these problems, I have noticed I do receive an error message of invalid token, when I know the token is correct. Here is the data I am trying to send to Marketo:

{
"eventId" : "1afcc0cb-48ee-4a3a-a409-1b20a5399d9e",
"eventTime" : "2020-01-09T16:35:26.277+0000",
"eventType" : "3010",
"payload" : {
"dataSubjectGuid" : "aa85841a-0141-4441-86af-c320ed6f0d7e",
"dataSubjectEmail" : "intgDsTestWithoutBatch@otprivacy.com",
"consentOnBehalfOf" : true,
"parentPrimaryIdentifiers" : [ {
"ParentIdentifier" : "parentEmail@ot.privacy.com",
"AdditionalParentIdentifierTypes" : { }
}, {
"ParentIdentifier" : "parentEmail@ot.privacy.com",
"AdditionalParentIdentifierTypes" : { }
} ],
"newDataSubject" : true,
"agentOnBehalf" : {
"agent" : "string_value",
"onBehalf" : false
},
"contactFields" : {
"FirstName" : "John",
"LastName" : "Smith",
"Title" : "Mr.",
"Name" : "John Smith",
"Email" : "bob@builder.com",
"Address" : "Bangalore",
"Mobile" : "1234567890",
"CompanyName" : "companyname",
"Country" : "India",
"City" : "baganlore",
"Zip" : "560001",
"Password" : "password",
"Language" : "en-GB",
"MagicLink" : "ceb2uY3uH0phDvtCIYCn+8hjKjYgS6oQfMorWmmauCQ="
},
"profiles" : [ {
"purposeId" : "3e900659-de89-4184-bb1a-0bca2e822b39",
"collectionPointGuid" : "21f16e84-8b2a-4217-8f52-b7bf6880df52",
"collectionPointVersion" : 1,
"topics" : [ {
"topicGuid" : "6ed69adf-51a3-4452-ab8b-6280d58dafe8",
"integrationKey" : "fishing-int-key",
"value" : true
}, {
"topicGuid" : "6ed69adf-51a3-4452-ab8b-6280d58dafe8",
"integrationKey" : "fishing-int-key",
"value" : true
} ],
"customPreferences" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d4",
"name" : "Test Custom Preference",
"options" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
} ]
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d4",
"name" : "Test Custom Preference",
"options" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
} ]
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d4",
"name" : "Test Custom Preference",
"options" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
} ]
} ],
"profileFields" : {
"TotalTransactions" : "0",
"FirstTransaction" : "1543832130",
"ConsentDate" : "1543832130",
"TransactionStatus" : "ACTIVE",
"LastTransaction" : "1543832130",
"ActivationDate" : "1543832130",
"WithdrawalDate" : "1543832130",
"DoubleOptInConsent" : "N"
}
}, {
"purposeId" : "3e900659-de89-4184-bb1a-0bca2e822b39",
"collectionPointGuid" : "21f16e84-8b2a-4217-8f52-b7bf6880df52",
"collectionPointVersion" : 1,
"topics" : [ {
"topicGuid" : "6ed69adf-51a3-4452-ab8b-6280d58dafe8",
"integrationKey" : "fishing-int-key",
"value" : true
}, {
"topicGuid" : "6ed69adf-51a3-4452-ab8b-6280d58dafe8",
"integrationKey" : "fishing-int-key",
"value" : true
}, {
"topicGuid" : "6ed69adf-51a3-4452-ab8b-6280d58dafe8",
"integrationKey" : "fishing-int-key",
"value" : true
} ],
"customPreferences" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d4",
"name" : "Test Custom Preference",
"options" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
} ]
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d4",
"name" : "Test Custom Preference",
"options" : [ {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
}, {
"guid" : "5d134aee-0356-4a45-94a6-9f00769531d5",
"name" : "Test Option1"
} ]
} ],
"profileFields" : {
"TotalTransactions" : "0",
"FirstTransaction" : "1543832130",
"ConsentDate" : "1543832130",
"TransactionStatus" : "ACTIVE",
"LastTransaction" : "1543832130",
"ActivationDate" : "1543832130",
"WithdrawalDate" : "1543832130",
"DoubleOptInConsent" : "N"
}
} ]
},
"integrationId" : "00000000-0000-0000-0000-000000000000",
"workflowId" : "00000000-0000-0000-0000-000000000000",
"messageKey" : "intgDsTestWithoutBatch@otprivacy.com:21f16e84-8b2a-4217-8f52-b7bf6880df52",
"messageSequenceNumber" : 1580445036773,
"deDuplicationStrategy" : "DISCARD_OLDER"
}
Jo_Pitts1
Level 10 - Community Advisor

@jzolinski ,

have you made any progress on this?

Cheers

Jo

 

jzolinski
Level 2

Hello,

No, I have not made much progress on this issue. I have had a couple of meetings with OneTrust and Marketo support at the same time, which was helpful. OneTrust was helpful pointing out mistakes made during initial setup, and they provided solutions to correct the setup, but I am still not seeing data transferring from OneTrust to Marketo and vice versa.

Jo_Pitts1
Level 10 - Community Advisor

OK... so what errors are you getting?

Is Marketo communicating with OT?

Is OT communicating with Marketo?

 

For the directions that are failing, what are the payloads you're sending?

Jo_Pitts1
Level 10 - Community Advisor

@jzolinski ,

I've edited your post to make the JSON a bit clearer.  Here is how to post code: https://nation.marketo.com/t5/product-blogs/posting-code-in-discussions/ba-p/341001/highlight/true

 

That doesn't look like a Marketo payload at all.  You'll need to reformat it significantly to get it into something that Marketo can interpret via the lead endpoint (https://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Leads...).  And then it still won't solve your issue around duplicated emails in Marketo.

 

Cheers

Jo

SanfordWhiteman
Level 10 - Community Moderator

What @Jo_Pitts1 said, and also if (recent) memory serves:

 

  • OneTrust’s built-in integration platform doesn’t manage Marketo API access tokens correctly; it fails jobs completely when the token expires, retrying them 15-30m later instead of immediately as you’d expect.
  • Their platform also doesn’t manage Marketo API concurrency limits, so if you have a large update in OneTrust that makes an individual Marketo API connection for each update, you’ll overwhelm the limit.

I haven’t seen anyone overcome these problems within the platform — instead, they switch to a separate service and have OneTrust send updates there. That service cooperates with the needs of the Marketo API.

alludoalex
Level 4

@SanfordWhiteman - Have you observed other consent management platforms (CMP) work better with Marketo's API, compared to OneTrust;  or is this something that is better left trusted to a middleware or reverse-ETL for improved error handling and observability? 

SanfordWhiteman
Level 10 - Community Moderator

Have you observed other consent management platforms (CMP) work better with Marketo's API, compared to OneTrust;  or is this something that is better left trusted to a middleware or reverse-ETL for improved error handling and observability? 

No one in the space is doing it better than OneTrust, they’re just all flawed. That happens when people don’t use Marketo day-to-day, regardless of whether they plop the Marketo logo on their “works with” page.

 

We always use middleware with OneTrust, even between SFDC and OneTrust without Marketo directly in the mix.