Hello -
My Company (app.experiencewelcome) has written an integration via Tray.Io with Marketo and our platform (events platform).
We send Program Member Status Updates back to the Marketo platform from ours when triggered by a webhook.
We've noticed recently, approximately since the beginning of the year, that Marketo's logs are getting drowned by Skipped Status Unchanged logs when hitting a Program Member's Status that is the same value that is currently stored.
I've looked at the API update notes, but don't see anything regarding bulk import that may cause this to occur.
Are there any tips anyone can offer so that I do not hit my customers with thousands of redundant logs per day?
Below is the input
{
"method": "POST",
"query_parameters": [
{
"key": "format",
"value": "csv"
},
{
"key": "programMemberStatus",
"value": "Registered"
}
],
"body": {
"form_data": {
"file": {
"name": "registered_csv.csv",
"url": "https://tray-csv-file-processing.s3.us-west-2.amazonaws.com/exports/abd412b1-9b1d-4ce4-9bd8-db57d55541aa.part_00000?AWSAccessKeyId=ASIAWLUGWV6AKLVSXM2R&Expires=1647962801&Signature=4627mNn9o2jNWSqucPE3HXRSD0o%3D&response-content-disposition=attachment%3B%20filename%3D%22registered_csv.csv%22&x-amz-security-token=xxxxc",
"mime_type": "text/csv",
"expires": 1647962801
}
}
},
"client_secret": "5b... <**--removed--**>",
"parse_response": "true",
"url": {
"full_url": "https://958-TTM-744.mktorest.com/bulk/v1/program/2748/members/import.json"
},
"client_id": "c0... <**--removed--**>",
"include_raw_body": false,
"endpoint": "ht... <**--removed--**>",
"quota_wait": false
Solved! Go to Solution.
Interesting point. I figured the “webhook” in question wasn’t a Marketo webhook but rather one fired from the 3rd-party platform to an (also 3rd-party) integration tier. If it’s a Marketo Call Webhook then it couldn’t know when someone needed updating.
But still, the other platform would know. There’s no reason to be setting a status that you know in advance will be skipped, because you’re the only one controlling the status.
On the other hand, sometimes Smart Campaigns are also changing statuses, so when setting via API we try for the one we want: if it’s the current one, no problem, and if it’s a previous one, also no problem as it means the person has been moved along.
Also, not clear why the Bulk Import API would be used for a single lead, if it’s really one-by-one. (Not that there’s anything specifically wrong with using the bulk APIs for single rows, except you don’t get a synchronous response.)
I've looked at the API update notes, but don't see anything regarding bulk import that may cause this to occur.
Well, by definition a (handled) exception occurs when you try to set someone to a status they can’t move to, including their current status or a lower status in the progression. So there’s nothing confusing here!
You could keep track of those people that you know to be at least at Status B1, because you set that status, and exempt them from later imports. But even this won’t be possible if other independent processes can set them to a sibling (same priority) Status B2, because you need to be able to flip them to B1.
In sum, the behavior is expected in Marketo.
Thanks for your reply.
We only started noticing this a few months ago. Can you confirm that some recent changes to the API has caused this? I had previously never experienced so many logs for unchanged statuses
Do you have any other advice/tips to mitigate the large number of updates?
It’s not a new thing. Marketo has long logged “Skipped” so you know the attempt was made (instead of the Flow step or API call being invisible in the log).
I don’t have any other tips but the above. Do you usually know that your app set the status already, so you can skip the same-status change?
To confirm one more time. Even if the CSV file that we're utilizing for bulk import contains a single program member, the API call will run through every single program member and log the unchanged statuses?
Even if the CSV file that we're utilizing for bulk import contains a single program member, the API call will run through every single program member and log the unchanged statuses?
No, not at all. Only the people for whom a status change was attempted. There’s no affect on other people.
This is odd. I am making the below call, where the CSV being referenced has 2 Program Members. However, when this is ran, I am getting Unchanged Status logs for all the other Program Members that are in the Program and matching Status but AREN'T in this CSV file
{
"method": "POST",
"query_parameters": [
{
"key": "programMemberStatus",
"value": "Registered"
},
{
"key": "format",
"value": "csv"
}
],
"body": {
"form_data": {
"file": {
"name": "registered_csv.csv",
"url": "https://tray-csv-file-processing.s3.us-west-2.amazonaws.com/exports/a3a8b6a6-58e8-45dc-9200-dfc91b364736.part_00000?AWSAccessKeyId=ASIAWLUGWV6AK5JBXM46&Expires=1648063430&Signature=UhwNU1KyzzhZrMe%2Bh0QQ65NUPuQ%3D&response-content-disposition=attachment%3B%20filename%3D%22registered_csv.csv%22&x-amz-security-xxxx",
"mime_type": "text/csv",
"expires": 1648063430
}
}
},
"client_secret": "5b... <**--removed--**>",
"parse_response": "true",
"url": {
"full_url": "https://xxxx.mktorest.com/bulk/v1/program/2748/members/import.json"
},
"client_id": "c0... <**--removed--**>",
"include_raw_body": false,
"endpoint": "ht... <**--removed--**>",
"quota_wait": false
}
I don't see any parameters i'm missing to remediate this per the marketo api docs.
Do you see anything in my script that may be causing this?
(btw, the code you’re supplying isn’t actually what’s sent to Marketo. That’s a JSON representation of the internal Tray.io logic — not even close to what goes on the wire. So not really the place to troubleshot stuff.)
I don't see any api calls to import/upload data to a single program member, can you confirm?
To answer your question, yes. We have confidence in knowing that our application set the status already, and there's no need for this gigantic number of redundant status logs