Knowledgebase

Sort by:
  Welcome to Marketo Support This guide provides individual links that covers the following topics: Marketo Support Policies Service Level Agreement How to Contact Marketo Support How to Submit a Case Tips on Effective Case Submission Managing Authorized Support Contacts (Support Admins) Managing Your Cases How to Escalate    
View full article
Summary Creating many-to-many relationships with Marketo custom objects requires an intermediary object with one link to a Lead or Company and another link to a secondary custom object. Here's how to solve the problem of the secondary custom object not showing up to be selected as the linked object. Issue Creating a many-to-many or N:N custom object structure such that a lead or company can be associated with multiple custom objects and a custom object can be associated with multiple leads or companies at the same time. When adding a link to the secondary custom object, that secondary object is not list as an available linked object.     Solution If you find that the custom object you'd like to link to is not list in the "Link Object" list, there are two things two check: The secondary CO must be approved. The secondary CO must not have any link type fields. Since it's not possible to change a link field once a custom object is approved, if you already have link fields, the only solution is discard the secondary custom object and create a new one. Recreate the custom object without link fields. Then, in the intermediary object, the target object will show up as an available link object.  More detail can be found at:  Understanding Marketo Custom Objects Add Marketo Custom Object Link Fields - Create a Link Field for a Many-to-Many Structure Root Cause The secondary custom object type is not approved. - or - The secondary custom object type is approved type and has link fields. Environment Marketo Custom Objects Many to Many Relationship - N:N Link Fields
View full article
Summary When submitting a file for bulk import via the REST API, the uploads appears to stall with no response. Issue Occasionally Bulk Import API calls will "hang" or "stall" never returning a response. This may appear to be a blank or missing response when the API is actually still waiting for the end of the file to be transferred. Solution You can add the following header: 'Transfer-Encoding: chunked' to your API calls and it will fix this issue. Please note that adding this header on the client side will cause cURL to send data in chunks. For more information on chunked file transfer, see Wikipedia: Chunked Transfer Encoding Environment REST API Bulk Import
View full article
  Marketo Champions are customers who have demonstrated outstanding leadership in the Marketo Community, are experts in Marketo products, are avid contributors in the social world, and are loyal advocates of the Marketo brand. Benefits and perks our Champions receive include:   Access: Meetings with our product and marketing teams to give exclusive feedback Previews: Given early previews to products, features, and releases when available Publicity: Exclusive speaking opportunities at our annual Marketo Summit and other events Networking: Special networking events with Marketo executives and fellow Champions and semi-annual conference calls Ownership: Ownership of content and exclusive activities at our annual Marketo Summit that showcase your expertise and thought leadership Credibility: Special Champion badge on Marketo Community profiles, and profiled on Marketo's corporate website Sweet Swag: Champion-exclusive swag To find out more information and apply, click here. To view a complete list of current Champions, click here. Join the Marketo Elite Today!  
View full article
  What is the Email API? What is the Email API used for? What is Email 2.0? Does the Email API Work on Email 2.0 Assets? Will the Email API Break when Enabling Email Experience 2.0? How Are 1.0 Assets Upgraded to 2.0 Assets? What to Do When an Email Was Accidentally Converted to Email 2.0 format?     What is the Email API? API stands for Application Programming Interface and the Email API allows an automated process to create and edit emails in Marketo. There are also other API calls that involve emails, such as Approve Snippet (assuming the Snippet is used in an Email) and Clone Program (assuming the Program contains Emails). There are also API calls to create and update Email Templates. Essentially, the API can do many things that you can also do through the Marketo user interface, but then in an automated fashion.     What is the Email API used for? There are many scenarios: an external system could create Emails in Marketo using data that lives outside of Marketo. A translation service provider could clone a master Email, translate it to many languages, then save them back into Marketo as localized Emails. A reporting system could extract Emails from Marketo to use in reports that are generated outside of Marketo. An external system could Clone a Program that contains Emails, then populate the Program Tokens and schedule the Email to be sent out at a specific time. There could be an external email template creation system that creates new Email templates in Marketo through the API.     What is Email 2.0? “Email Experience 2.0” is the new Marketo product feature with the enhanced email editor, documented here: https://docs.marketo.com/display/public/DOCS/Email+Editor+v2.0+Overview. It can be switched on in Admin > Email > Edit Email Editor Settings. All Emails and Email Templates also have a version number, either 1.0 (the old version) or 2.0 (the new version). If we refer to “Email 2.0 asset” we mean an email or email template in the new upgraded 2.0 format.     Does the Email API Work on Email 2.0 Assets? Yes.     Will the Email API Break when Enabling Email Experience 2.0? No. Enabling Email 2.0 will not automatically upgrade Emails or Email Templates to the new 2.0 format. The Email API can still create new Emails and Email Templates in the 1.0 format.  However – after enabling Email 2.0 – any Email or Email Template that is created or edited and approved through the Marketo User Interface will automatically be upgraded to the 2.0 format.     How Are 1.0 Assets Upgraded to 2.0 Assets? If you edit an “Approved" or “Approved with Draft” 1.0 Email with Email 2.0 enabled, the draft is converted to the 2.0 format. You can still discard the draft to go back to the approved 1.0 format. Once you approve the email and it becomes 2.0, the Email cannot be converted back to 1.0. If you edit a “Draft” 1.0 Email (never been approved), this will automatically be converted to 2.0 with no option to revert back to the 1.0 format. The same applies to Email Templates.     What to Do When an Email Was Accidentally Converted to Email 2.0 format? If an Email or Email Template was accidentally converted to the 2.0 format, you’d have to copy the asset contents to a text editor, disable Email 2.0, then create a new 1.0 asset using the content that you copied.
View full article
Issue You are experiencing slow processing of campaigns, smart lists, and reports.     Solution There are three key components that can slow down an instance: Number of trigger campaigns: Trigger campaigns are always on, always listening.  If there are 50 campaigns triggering at the same time, all the 50 triggers will be in queue, slowing down your processing and routing inside Marketo. Solution: Reduce the number of Triggers. Convert some of the triggers to batches: Batches also run all the flow steps for every lead at once, instead of serially, which reduces total processing time.   Complexity of smart lists: The more complex a smart list, the harder it is for the system to figure it out, which increases backend processing and even creates campaign failures from timeouts. Solution: Reduce the number of nested smart lists called in a smart list. Whenever you ask Marketo to call another Smart List, it has to wait until all of the other smart lists finish, before putting together the final counts. Instead of Marketo looking for the list and running it, just put the filters in the trigger itself.   Volume of Leads: With regular cleaning and good systems design, it is fairly easy to keep your system running fast. Reduce the number of leads that can flow through with filters. Clean up the inactive leads at regular intervals.    
View full article
  This is a article attached image Upon signing a contract with Marketo you are provisioned a Marketo instance and a Support Service. There are four different types of Support Services which are available to meet different customer support needs: Online (Legacy) Business or PREMIER SUPPORT BUSINESS (Legacy) Premier or PREMIER SUPPORT ENTERPRISE (Legacy) Elite or PREMIER SUPPORT ELITE Each Support Service has a different Service Level Target (SLT). An SLT is the amount of time Marketo Support targets to make first contact with you after a support case has been submitted. SLTs differ for each Support Service and priority level. Priority levels range from Priority P1 to Priority P4. Here are the SLTs and priority levels for each Support Service:   Priority Online (Legacy) Business PREMIER SUPPORT BUSINESS (Legacy) Premier PREMIER SUPPORT ENTERPRISE (Legacy) Elite PREMIER SUPPORT ELITE P1 1 hour 1 hour 1 hour 30 minutes 30 minutes 30 minutes 15 minutes P2 4 hours 3 hours 2 hours 2 hours 1 hour 2 hours 30 minutes P3 6 hours 5 hours 4 hours 4 hours 2 hours 2 hours 1 hour P4 3 days 1 day 1 day 1 day 1 day 1 day 1 day   Here are the descriptions for each priority level: Priority Description P1 Mission Critical: Core business function down or potential loss of mission critical data P2 Urgent: Major feature or workflow is not functioning. Mission critical workflow and majority of user community is not blocked P3 Important: Normal usability or task completion is impacted but functional, or workaround is available P4 Minor: Minor issue requiring a correction. Normal workflow is not impacted   Find more information About Support here!  
View full article
Issue When I go to the Support area of Nation, I do not have full access to all the areas and tools.   Solution Our system is specific about how you need to access the Support Portal before we can authorize you to use it. The proper steps to take for us to authorize, and for you to submit cases, are as follows:   Log into your instance Click the Community tile (step 1 image) Click Support in the top banner (step 2 image) Click Submit a Case option (step 3 image) Choose from top options depending on what you need to do (step 4 image) Create a case, Manage authorized contacts, edit your Info   Simply going straight to the nation.marketo.com will not have the desired result. You must access the Support Portal from your instance by using these steps so that our system recognizes you properly. If this is your first time following these steps, your view of Step 3 will be different- not to worry, as that will be updated for you manually. Step 1 Step 2   Step 3 Step 4   If you experience issues, please email marketocares@marketo.com
View full article
Issue When making API calls, Marketo reports the daily API limit has been reached but does not show when the limit resets.   Solution When Marketo shows the daily API limit has been reached, it will reset itself that night at midnight central time, and then will allow for the API calls to resume. These are the reset times according to US time zones.   10:00 PM Pacific 11:00 PM Mountain 12:00 AM Central 01:00 AM Eastern      
View full article
Issue Do webhook calls contribute to the daily API limit/quota visible in [Admin > Integration > Web Services > API Call Information] ?   Solution No, webhook calls are not counted as part of the daily API limit. Webhooks do not have any execution limits.  
View full article
Issue REST API call, Get Lead Activities, is returning 603 error     Solution Error 603 refers to 'access denied' where authentication is successful but the user doesn’t have sufficient permission to call this API. Additional permissions may need to be assigned to the user role. http://developers.marketo.com/rest-api/error-codes/ Go to Admin > Users and Roles Select API User and identify what role it is assigned to (e.g. API role) Go to Roles and check the permissions assigned to the API role Check to see if the API role has 'Read-Only Activity' or 'Read-Write Activity' permission In order to make a Get Lead Activities REST API call with the API user, the API role of the user must be modified to have permissions to  'Read-Only Activity' or 'Read-Write Activity'. If you use Workspaces and Partitions, make sure the API User has the necessary access to the workspaces/partitions being called.    
View full article
Issue The Get Lead Activities REST API is not returning any activities even though the lead referenced definitely has multiple activities of the type being called. REQUEST: https://[munchkinID].mktorest.com/rest/v1/activities.json?access_token=x&leadIds=123&nextPageToken=ABC&activityTypeIds=46 RESPONSE: { "requestId": "xyz123", "success": true, "nextPageToken": "ABC", "moreResult": true }     Solution The Get Lead Activity REST API are reliant on timestamps for their nextPageToken. Each Get Lead Activity call will go through 300 activities of ALL types from the timestamp placed on the nextPageToken. This is supported by the article http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#/Activities/getLeadActivitiesUsingGET "By default, the endpoints mentioned in this section will return 300 activity items at a time.  If the moreResult attribute is true, this means that more results are available. Continue to call the endpoint until the moreResult attribute returns false, which means that there are no more results available." Based on that, the reason why the API call does not return any activities is that it does not find any activities of type 46 in the 300 activities it checks from the timestamp placed on the nextPageToken So when making a Get Lead Activity call for a specific activity type, ensure that nextPageToken is as close as to the timestamp of the specific activities    
View full article
Issue Description When a lead is created through an API call, the Reason and Source attributes say "Web Service API" with no further detail. Issue Resolution As described in the doc here, https://docs.marketo.com/display/DOCS/Understanding+System+Managed+Fields, "Source" and "Reason" fields are managed by Marketo: 1. Web Service API for Original Source Type means Person was discovered by a web service API. 2. For Registration Source Type, it states that Person was created via SOAP/REST API When a lead is created via API, no additional "Source" or "Reason" is provided to Marketo. A possible workaround is to create a custom field and populate it as needed through the API.
View full article
Issue Description You need to revert a data value change for a field on multiple leads. Issue Resolution There is no way through the UI to "undo" a data value change (unless it was a boolean field, in which case there are only two possible values.) You can certainly use a Smart List to identify whose values have changed, but there no way to go back to the old value (unless it's stored elsewhere in another field or through another data store, along with the API). However, you can use the API to extract the data value change activity from the activity log, which would include the old and new values, extract the original values, then use the API to rewrite the old values back to the lead record. http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getLeadChangesU… Is this article helpful ? YesNo
View full article
Issue Description REST API call, Get Lead Activities, is returning 603 error   Issue Resolution Error 603 refers to 'access denied' where authentication is successful but the user doesn’t have sufficient permission to call this API. Additional permissions may need to be assigned to the user role. http://developers.marketo.com/rest-api/error-codes/   Go to Admin > Users and Roles Select API User and identify what role it is assigned to (e.g. API role) Go to Roles and check the permissions assigned to the API role Check to see if the API role does not have 'Read-Only Activity' or 'Read-Write Activity' permission In order to make a Get Lead Activities REST API call with the API user, the API role of the user must be modified to have permissions to  'Read-Only Activity' or 'Read-Write Activity'. If you use Workspaces and Partitions, make sure the API User has the necessary access. Is this article helpful ? YesNo
View full article
Issue Description The Get Lead Activities REST API is not returning any activities even though the lead referenced definitely has multiple activities of the type being called.   REQUEST: https://[munchkinID].mktorest.com/rest/v1/activities.json?access_token=x&leadIds=123&nextPageToken=ABC&activityTypeIds=46   RESPONSE: { "requestId": "xyz123", "success": true, "nextPageToken": "ABC", "moreResult": true }   Issue Resolution The Get Lead Activity REST API are reliant on timestamps for their nextPageToken. Each Get Lead Activity call will go through 300 activities of ALL types from the timestamp placed on the nextPageToken. This is supported by the article http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#/Activities/getLeadActivitiesUsingGET   "By default, the endpoints mentioned in this section will return 300 activity items at a time.  If the moreResult attribute is true, this means that more results are available. Continue to call the endpoint until the moreResult attribute returns false, which means that there are no more results available."   Based on that, the reason why the API call does not return any activities is that it does not find any activities of type 46 in the 300 activities it checks from the timestamp placed on the nextPageToken   So when making a Get Lead Activity call for a specific activity type, ensure that nextPageToken is as close as to the timestamp of the specific activities Is this article helpful ? YesNo
View full article
Included in this article Note: This post will be updated to reflect changes made to activity records returned by the API due to migration to new infrastructure. Overview With the rollout of Marketo’s next-generation Activity Service beginning in May 2017, we will be unable to enforce the uniqueness or presence of the integer “id” field in activities, data value changes, or lead deletion records returned by Marketo’s APIs.  This change will begin rolling out to all subscriptions over the remaining first half of 2017. To avoid service disruptions for integrations which retrieve activity records, the id field should be treated as optional.  Cutover of this change will begin to affect subscriptions with the September (Q3) 2017 release. This change will affect the following endpoints: REST API Get Lead Activities​ Get Lead Changes​ Get Deleted Leads​ Add Custom Activities​ SOAP API getLeadActivity​ getLeadChanges​ The affected SOAP types are ActivityRecord and LeadChangeRecord. Examples The following examples show record types which will be affected.  In both examples, the effected field is called “id.” Example REST Field: id ​ Example SOAP Field: id ​ FAQs Do I need to update my WSDL version if I'm using SOAP integration? Yes. The marketoGUID field will only be returned in activities when using the WSDL version 3.1 or later.  The new URI will follow this pattern: https://{munchkinId}.mktoapi.com/soap/mktows/3_1  It may also be obtained through the Admin->Web Services menu in your subscription When can I expect to see each change? Beginning with our Q1 Minor Release on April 7th, activity records retrieved via Marketo’s SOAP or REST APIs will include a new field called “marketoGUID”.  The value of this field will match the value of the “id” field, but will be a string type field.  Some time after the Q2 release beginning May 17th 2017, the “id” field will stop being returned as part of these records, and the value of marketoGUID will become a 128-bit string. What do I need to do? If you are responsible for code that deals with Marketo activities, you should determine whether your code relies on the presence or uniqueness of “id” field for Marketo activities, and then remove that requirement.  In an upcoming release, an additional string field called “marketoGUID” will be added.  “marketoGUID” should be considered the unique ID for retrieved activities when it becomes available.  If you are not, you should consult with your team and relay this message to the appropriate stakeholders. Who will this change affect? This change should only affect client and partner integrations which retrieve activity records from Marketo, and only if the integrations rely on either the presence and/or type of the “id” field in the response, or rely on the uniqueness of the field.  After the rollout of Orion AS, and the disabling of activity writes to MySQL, the “id” field will no longer be available and will be supplanted by a unique string id field. Check out our documentation on the Marketo Developers Site here: https://developers.marketo.com/blog/important-change-activity-records-marketo-apis/
View full article
Note: Please ensure that you have access to an experienced Web developer. Marketo Technical Support is not set up to assist with troubleshooting code. The listOperation SOAP API call allows for the ability to interact with static lists (My Lists) in the Lead Database. The supported operations are adding a lead to list (ADDTOLIST), checking if a lead is a member of the list (ISMEMBEROFLIST), and removing a lead from a list (REMOVEFROMLIST) Note, there is no operation to create a new list (or delete) via the SOAP API. The list must be created beforehand in the Lead Database. In the examples, the list is named "Static List". Example 1 - Request: Adding multiple leads into the list <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ADDTOLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 1 - Response: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 2 - Request: Check to see if leads are a part of list. One lead (Lead ID #213) is and the other (Lead ID #70) is not  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ISMEMBEROFLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>70</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 2 - Response: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>false</success>             <statusList>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>213</keyValue>                   </leadKey>                   <status>true</status>                </leadStatus>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>70</keyValue>                   </leadKey>                   <status>false</status>                </leadStatus>             </statusList>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 3 - Request: Similar to Example 2, but all leads are valid  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ISMEMBEROFLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 3 - Response:  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 4 - Request: Remove leads from the list. One lead (Lead ID #213) is a member of the list, the other (Lead ID #70) is not  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>REMOVEFROMLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>70</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Request 4 - Response:  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>false</success>             <statusList>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>213</keyValue>                   </leadKey>                   <status>true</status>                </leadStatus>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>70</keyValue>                   </leadKey>                   <status>false</status>                </leadStatus>             </statusList>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 5 - Request: Similar to Example 4, but all leads are valid  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>REMOVEFROMLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 5 - Response:  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Related Learning Resources Marketo SOAP API Reference
View full article
Using the Marketo SOAP API, you can check whether or not your website visitors have filled out a form and present them content accordingly. The following code below is unsupported and is intended to help you develop your own solution. In the resources section of the Marketo website, we use this method for our premium content. For leads who have already registered, their links go directly to the resource. Leads who haven't registered are given links to a landing page. In both cases, the link appears the same. Behind the scenes, a cookie is used to store whether or not this lead has registered: If the user has the premium registration cookie, the premium links are shown. If the user does not have that cookie, the lead's record is retrieved via the SOAP API. Based on the lead's record: If the lead has a valid email address, the premium content links are shown and the premium registration cookie is set. If not, the premium content links are not shown. Instead, they take leads to a landing page to fill out a form. First, you'll need to develop a SOAP API connection to Marketo. The attached ZIP file has a sample connection PHP file. You'll need to make the following changes in this file: ... $this->access_key = 'Your API Access Key Goes Here'; $this->secret_key = 'Your Secret API Key Goes Here'; // // The endpoint is in the "SOAP API Setup" page in the Marketo Admin section // ex. $soap_end_point = 'https://xx-1.marketo.com/soap/mktows/'; // $soap_end_point = 'Your SOAP API End Point URL Goes Here'; // // Errors are sent to this email address. Your web server // must be configured to send email for this to work correctly. // // ex. $this->error_email_address = 'example@example.com'; // $this->error_email_address = 'Put your debug email address here'; ... After creating your SOAP API connection, the next step is to implement the logic that determines which content to show if the user is logged in or not. The get_premium_url_status() function returns true if the lead has the premium cookie or if they've filled out a form. Otherwise, it returns false. You can use that result to determine what content the lead should see. The attached ZIP file has a PHP file that contains an example of this check.
View full article
Attached to this article is a ASP.NET C# implementation of Marketo's SOAP API. This is just a sample, but it may be useful for providing a starting point for building your own SOAP API client. Learn more: Marketo SOAP API Note: You will need access to experienced developers This is not supported development by Marketo Support. Our support engineers are not able to provide assistance in building or troubleshooting SOAP API's.
View full article