Q: How can I get a list of all Programs within Marketo along with their meta data?

A: To retrieve a list of all programs, you can use getMObjects passing the type equal to “Program” and setting includeDetails to true.

Q: Is there a way to speed up the performance of getMultipleLeads?

A: There are a few options to speed up the perfomance of the getMultipleLeads call. The first is to reduce the batchSize you are requesting for each call. 200 is the recommended batch size. The second option is to specify the fields you are interested in using the includeAttributes filter. This will speed up the query and reduce the payload of the response you recieve. The final approach is to use the LastUpdateAtSelector and specify oldestUpdatedAt and latestUpdatedAt. You can specify different date ranges and then thread multiple requests concurrently. If using the threaded approach make sure your SOAP/WSDL client is supporting persistent connections.

Q: How can I create Opportunities via the SOAP API when not integrated with a CRM like SalesForce or Microsoft Dynamics?

A: You can create Opportunities using the SOAP API using the syncMObjects call writing to the OpportunityPersonRole and Opportunity MObject types.

Q: Can I programmatically send an email from Marketo? If so, how can I send custom content for each email recipient?

A: Absolutely. You can request an email to be sent from Marketo using either the requestCampaign or combination of importToList and scheduleCampaign SOAP APIs. To immediately send an email to one or more people you would use requestCampaign. If you want to schedule an email to be sent at a specified date and time you would use importToList to specify the recipients of the email, and scheduleCampaign to specify when those recipients will be sent that email.

If you want to customize the content for each email recipient, you can do so by overriding the values of program tokens that are set within the email template.

For further information, please refer to this blog post.