As per the announcement Important Change to Activity Records in Marketo APIs, while trying with SOAP API v3.1, found that the describeMObject SOAP API for "ActivityRecord" object, does NOT return the newly added "marketoGUID" field.
Request detail:
Endpoint: https://sampleURL.mktoapi.com/soap/mktows/3_1
Request:
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt="http://www.marketo.com/mktows/">
<x:Header>
<mkt:AuthenticationHeader>
<mktowsUserId xmlns="">sampleURL_user</mktowsUserId>
<requestSignature xmlns="">sampleURL_signature</requestSignature>
<requestTimestamp xmlns="">2017-05-08T16:05:09+05:30</requestTimestamp>
</mkt:AuthenticationHeader>
</x:Header>
<x:Body>
<mkt:paramsDescribeMObject>
<mkt:objectName>ActivityRecord</mkt:objectName>
</mkt:paramsDescribeMObject>
</x:Body>
</x:Envelope>
The fields returned are as following:
id, activityDateTime, activityType, mktgAssetName, activityAttributes, campaign, personName, mktPersonId, foreignSysId, orgName, foreignSysOrgId.
It does NOT have marketoGUID field.
Do I need to configure/enable it from client (my) side?
Or does Marketo API needs to fix this, and send the "marketoGUID" column in response?
Kenny Elkington, Dan Stevens, Steven Vanderberg, kindly look into the question.
Edit:
Justin Cooperman, Sanford Whiteman, Grégoire Michel,
Would someone look into the issue?
Edit 2:
It's strange that in response of getLeadChanges API, it does return marketoGUID data, but in describe call, as mentioned above, it does NOT list marketoGUID column.
Thanks for the update, Anil. Is REST against that same instance currently returning the marketoGUID? It would be strange -- seemingly impossible -- for the same instance to have been upgraded for REST but not for SOAP.
Yes, for the same instance, REST APIs and SOAP APIs return marketoGUID data values.
But, in SOAP API, the describe call does NOT return "marketoGUID" column. Looks like Marketo needs to fix DescribeMObject SOAP API for ActivityRecord object.
Are you sure the change in Marketo API has been rolled out and especially rolled out to your instance?
Indeed, you may want to check with support.
-Greg
Thanks Grégoire Michel, will follow up with support.
I think, Marketo needs to fix DescribeMObject SOAP API along with the other changes for "marketoGUID".
Kenny Elkington, Dan Stevens, Steven Vanderberg,
Why the marketoGUID field should be included in the response of DescribeMObject SOAP API?
= Short answer =
1. "id" is present in the response of describeMObject SOAP API made for "ActivityRecord" object, and since "marketoGUID" is replacement for "id" field, "marketoGUID" needs to be included in the response.
2. The announcement (http://developers.marketo.com/blog/important-change-activity-records-marketo-apis/) mentions "The affected SOAP types are ActivityRecord and LeadChangeRecord." So the data for ActivityRecord has changed. The metadata call / describeMObject SOAP API needs to return the updated list of fields accordingly.
= Detail =
== With SOAP endpoint 2.9 ==
1. When describeMObject SOAP API is made for "ActivityRecord" object, it returns the following fields:
id, activityDateTime, activityType, mktgAssetName, activityAttributes, campaign, personName, mktPersonId, foreignSysId, orgName, foreignSysOrgId
Notice that it has "id" included. Actual snippet from response:
<field>
<name>id</name>
<dataType>integer</dataType>
:
:
</field>
2. When getLeadChanges SOAP API is called for data, it returns the data for the fields mentioned above in the following format:
<xml-fragment xmlns:ns1="http://www.marketo.com/mktows/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>11111</id>
<activityDateTime>2013-06-12T05:50:00-05:00</activityDateTime>
<activityType>Visit Webpage</activityType>
<mktgAssetName>sameple-name</mktgAssetName>
<activityAttributes>
<attribute>
<attrName>Program Type</attrName>
<attrType xsi:nil="true"/>
<attrValue/>
</attribute>
<attribute>
<attrName>Program Name</attrName>
<attrType xsi:nil="true"/>
<attrValue>sample-program-name</attrValue>
</attribute>
:
:
</activityAttributes>
<mktPersonId>22222</mktPersonId>
</xml-fragment>
3. Data and meta-data are always related. If there is some other purpose of describeMObject API, let us know why it has been made for.
== With SOAP endpoint 3.1 ==
With Marketo SOAP WSDL 3.1, the getLeadChanges SOAP API returns correct data as follows:
<xml-fragment xmlns:ns1="http://www.marketo.com/mktows/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>11111</id>
<marketoGUID>11111</marketoGUID>
<activityDateTime>2013-06-12T05:50:00-05:00</activityDateTime>
<activityType>Visit Webpage</activityType>
<mktgAssetName>sample-name</mktgAssetName>
<activityAttributes>
<attribute>
<attrName>Program Type</attrName>
<attrType xsi:nil="true"/>
<attrValue/>
</attribute>
<attribute>
<attrName>Program Name</attrName>
<attrType xsi:nil="true"/>
<attrValue>sample-program-name</attrValue>
</attribute>
:
:
</activityAttributes>
<mktPersonId>22222</mktPersonId>
</xml-fragment>
Notice the "marketoGUID" in the response. But, describeMObject SOAP API still returns the same fields:
id, activityDateTime, activityType, mktgAssetName, activityAttributes, campaign, personName, mktPersonId, foreignSysId, orgName, foreignSysOrgId
= Summary =
Data and metadata go hand in hand. Here, data and meta-data seem to have diverged.
It looks like this got missed as part of the code changes to roll out the field. We'll work on getting this fixed.
Thanks for the update, Kenny Elkington.
Any estimated timeline for the fix will be helpful to us.
Kindly keep us updated with the progress (if any).
Kenny Elkington ping.