getLead

Cette fonction récupère un seul enregistrement de prospect de Marketo, avec toutes les valeurs de champ pour les champs intégrés et personnalisés, pour un prospect identifié par la clé fournie (LeadKey). Si le prospect existe en fonction des paramètres d’entrée, les attributs d’enregistrement du prospect sont renvoyés dans les résultats.

REMARQUE : les attributs de prospect qui sont de type de données de chaîne et qui sont vides ne sont pas renvoyés dans le cadre de la réponse.

Requête

Nom du champ
Obligatoire / Facultatif
Description
leadKey->keyType
Obligatoire
keyType permet de spécifier le champ par lequel vous souhaitez interroger le prospect. Les valeurs possibles sont les suivantes : IDNUM, COOKIE, EMAIL, SFDCLEADID, LEADOWNEREMAIL, SFDCACCOUNTID, SFDCCONTACTID, SFDCLEADID, SFDCLEADOWNERID et SFDCOPPTYID
leadKey->keyValue
Obligatoire
keyValue correspond à la valeur par laquelle vous souhaitez interroger le prospect.

XML de la demande

<?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>

XML de réponse

<?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>

Exemple de code - PHP

 <?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);

?>

Exemple de code - Java

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();
        }
    }
}

Exemple de code - Ruby

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
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59