This function retrieves a single lead record from Marketo, with all field values for the built-in and custom fields, for a lead identified by the provided key (LeadKey). If the lead exists based on the input parameters, the lead record attributes will be returned in the result.
NOTE: Lead attributes that are of string data type and are empty will not be returned as a part of the response.
Request
Field Name |
Required/Optional |
Description |
---|---|---|
leadKey->keyType | Required | keyType allows you to specify the field you wish to query the lead by. Possible values include:
IDNUM: The Marketo ID (e.g. 64) COOKIE: The value generated by the Munchkin Javascript. (e.g. id:561-HYG-937&token:_mch-marketo.com-1258067434006-50277) EMAIL: The email address associated with the lead. (e.g. rufus@marketo.com) SFDCLEADID: The lead ID from SalesForce LEADOWNEREMAIL: The Lead Owner Email SFDCACCOUNTID: The Account ID from SalesForce SFDCCONTACTID: The Contact ID from SalesForce SFDCLEADID: TheLead ID from SalesForce SFDCLEADOWNERID: The Lead owner ID from SalesForce SFDCOPPTYID: The Opportunity ID from SalesForce |
leadKey->keyValue | Required | keyValue is the value you wish to query the lead by. |
Request XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/"> <SOAP-ENV:Header> <ns1:AuthenticationHeader> <mktowsUserId>bigcorp1_461839624B16E06BA2D663</mktowsUserId> <requestSignature>ffbff4d4bef354807481e66dc7540f7890523a87</requestSignature> <requestTimestamp>2013-07-30T14:15:06-07:00</requestTimestamp> </ns1:AuthenticationHeader> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:paramsGetLead> <leadKey> <keyType>EMAIL</keyType> <keyValue>rufus@marketo.com</keyValue> </leadKey> </ns1:paramsGetLead> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
Response XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<?xml version="1.0" encoding="UTF-8"?> <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:successGetLead> <result> <!-- The number of lead records matching keyValue criteria --> <count>1</count> <leadRecordList> <leadRecord> <!-- Marketo ID --> <Id>1089965</Id> <!-- Email address associated with the lead --> <Email>rufus@marketo.com</Email> <!-- Unique person identifier generated by system outside of Marketo --> <ForeignSysPersonId xsi:nil="true" /> <!-- Foreign system type: CUSTOM, SFDC, NETSUITE --> <ForeignSysType xsi:nil="true" /> <leadAttributeList> <attribute> <attrName>AnonymousIP</attrName> <attrType>string</attrType> <attrValue>172.249.34.240</attrValue> </attribute> <attribute> <attrName>Company</attrName> <attrType>string</attrType> <attrValue>Marketo</attrValue> </attribute> <attribute> <attrName>FirstName</attrName> <attrType>string</attrType> <attrValue>Travis</attrValue> </attribute> <attribute> <attrName>InferredCompany</attrName> <attrType>string</attrType> <attrValue>Time Warner Cable</attrValue> </attribute> <attribute> <attrName>InferredCountry</attrName> <attrType>string</attrType> <attrValue>United States</attrValue> </attribute> <attribute> <attrName>LastName</attrName> <attrType>string</attrType> <attrValue>Kaufman</attrValue> </attribute> <attribute> <attrName>LeadScore</attrName> <attrType>integer</attrType> <attrValue>62</attrValue> </attribute> <attribute> <attrName>Website</attrName> <attrType>url</attrType> <attrValue>gmail.com</attrValue> </attribute> </leadAttributeList> </leadRecord> </leadRecordList> </result> </ns1:successGetLead> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
Sample Code – PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php $debug = true; $marketoSoapEndPoint = ""; // CHANGE ME $marketoUserId = ""; // CHANGE ME $marketoSecretKey = ""; // CHANGE ME $marketoNameSpace = "http://www.marketo.com/mktows/"; // Create Signature $dtzObj = new DateTimeZone("America/Los_Angeles"); $dtObj = new DateTime('now', $dtzObj); $timeStamp = $dtObj->format(DATE_W3C); $encryptString = $timeStamp . $marketoUserId; $signature = hash_hmac('sha1', $encryptString, $marketoSecretKey); // Create SOAP Header $attrs = new stdClass(); $attrs->mktowsUserId = $marketoUserId; $attrs->requestSignature = $signature; $attrs->requestTimestamp = $timeStamp; $authHdr = new SoapHeader($marketoNameSpace, 'AuthenticationHeader', $attrs); $options = array("connection_timeout" => 20, "location" => $marketoSoapEndPoint); if ($debug) { $options["trace"] = true; } // Create Request $leadKey = array("keyType" => "EMAIL", "keyValue" => "rufus@marketo.com"); $leadKeyParams = array("leadKey" => $leadKey); $params = array("paramsGetLead" => $leadKeyParams); $soapClient = new SoapClient($marketoSoapEndPoint ."?WSDL", $options); try { $lead = $soapClient->__soapCall('getLead', $params, $options, $authHdr); } catch(Exception $ex) { var_dump($ex); } if ($debug) { print "RAW request:\n" .$soapClient->__getLastRequest() ."\n"; print "RAW response:\n" .$soapClient->__getLastResponse() ."\n"; } print_r($lead); ?> |
Sample Code – Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import com.marketo.mktows.*; import java.net.URL; import javax.xml.namespace.QName; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Hex; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public class GetLead { public static void main(String[] args) { System.out.println("Executing Get Lead"); try { URL marketoSoapEndPoint = new URL("CHANGE ME" + "?WSDL"); String marketoUserId = "CHANGE ME"; String marketoSecretKey = "CHANGE ME"; QName serviceName = new QName("http://www.marketo.com/mktows/", "MktMktowsApiService"); MktMktowsApiService service = new MktMktowsApiService(marketoSoapEndPoint, serviceName); MktowsPort port = service.getMktowsApiSoapPort(); // Create Signature DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); String text = df.format(new Date()); String requestTimestamp = text.substring(0, 22) + ":" + text.substring(22); String encryptString = requestTimestamp + marketoUserId ; SecretKeySpec secretKey = new SecretKeySpec(marketoSecretKey.getBytes(), "HmacSHA1"); Mac mac = Mac.getInstance("HmacSHA1"); mac.init(secretKey); byte[] rawHmac = mac.doFinal(encryptString.getBytes()); char[] hexChars = Hex.encodeHex(rawHmac); String signature = new String(hexChars); // Set Authentication Header AuthenticationHeader header = new AuthenticationHeader(); header.setMktowsUserId(marketoUserId); header.setRequestTimestamp(requestTimestamp); header.setRequestSignature(signature); // Create Request ParamsGetLead request = new ParamsGetLead(); LeadKey key = new LeadKey(); key.setKeyType(LeadKeyRef.EMAIL); key.setKeyValue("t@t.com"); request.setLeadKey(key); SuccessGetLead result = port.getLead(request, header); JAXBContext context = JAXBContext.newInstance(SuccessGetLead.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); m.marshal(result, System.out); } catch(Exception e) { e.printStackTrace(); } } } |
Sample Code – Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
require 'savon' # Use version 2.0 Savon gem require 'date' mktowsUserId = "" # CHANGE ME marketoSecretKey = "" # CHANGE ME marketoSoapEndPoint = "" # CHANGE ME marketoNameSpace = "http://www.marketo.com/mktows/" #Create Signature Timestamp = DateTime.now requestTimestamp = Timestamp.to_s encryptString = requestTimestamp + mktowsUserId digest = OpenSSL::Digest.new('sha1') hashedsignature = OpenSSL::HMAC.hexdigest(digest, marketoSecretKey, encryptString) requestSignature = hashedsignature.to_s #Create SOAP Header headers = { 'ns1:AuthenticationHeader' => { "mktowsUserId" => mktowsUserId, "requestSignature" => requestSignature, "requestTimestamp" => requestTimestamp } } client = Savon.client(wsdl: 'http://app.marketo.com/soap/mktows/2_3?WSDL', soap_header: headers, endpoint: marketoSoapEndPoint, open_timeout: 90, read_timeout: 90, namespace_identifier: :ns1, env_namespace: 'SOAP-ENV') #Create Request request = { :lead_key => { :key_type => "EMAIL", :key_value => "rufus@marketo.com" } } response = client.call(:get_lead, message: request) puts response |