importToList
Cette fonction vous permet d’importer une liste de prospects dans une liste statique existante dans Marketo, comme la fonction d’importation de liste dans l’interface utilisateur de Marketo.
Format d’importation : ces valeurs sont identiques à la structure d’un fichier CSV utilisé dans un import de liste.
Exemple :
displayName
valeurs doivent être utilisées dans le importFileHeader
plutôt que les valeurs name
.
Contenu dynamique d’e-mail : vous pouvez éventuellement transmettre des valeurs par prospect qui servent de remplacement à Mes jetons dans un e-mail.
Important : si vous ajoutez des jetons pour les prospects, vous devez spécifier la campagne intelligente qui les utilise. La prochaine fois que la campagne dynamique spécifiée s’exécutera, elle utilisera les valeurs de votre liste, au lieu des valeurs normales de Mon jeton . Une fois cette campagne unique exécutée, les jetons seront ignorés.
importToList
processus peut prendre du temps, en particulier pour les listes volumineuses. Si vous envisagez d’utiliser la liste nouvellement importée dans d’autres appels API, vous devez utiliser importToListStatus
pour vérifier que l’opération est terminée.
Remarque : l’importation de valeurs NULL pour les champs numériques d’un fichier CSV peut générer une activité « Modifier la valeur des données » pour ces champs, même si le champ est déjà vide. Toutes les campagnes intelligentes qui utilisent un filtre « Modification de la valeur des données » ou un déclencheur « Modifications de la valeur des données » peuvent entraîner la qualification des prospects pour ces campagnes même si les données ne changent pas réellement. Utilisez des contraintes sur ces filtres/déclencheurs pour vous assurer que les prospects ne sont pas qualifiés pour des campagnes incorrectes lors de l’exécution des imports.
Requête
UPSERTLEADS
et LISTONLY
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>demo17_1_809934544BFABAE58E5D27</mktowsUserId>
<requestSignature>17bf0b9e412e58eec836dc557ca9433f666944b6</requestSignature>
<requestTimestamp>2013-08-05T14:56:58-07:00</requestTimestamp>
</ns1:AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:paramsImportToList>
<programName>Trav-Demo-Program</programName>
<importFileHeader>Last Name,First Name,Job Title,Company Name,Email Address</importFileHeader>
<importFileRows>
<stringItem>Awesomesauce,Developer,Code Slinger,Marketo,dawesomesauce@marketo.com</stringItem>
<stringItem>Doe,Jane,VP Marketing,Jane Consulting,jdoe@janeconsulting.com</stringItem>
</importFileRows>
<importListMode>UPSERTLEADS</importListMode>
<listName>Trav-Test-List</listName>
<clearList>false</clearList>
<campaignName>Batch Campaign Example</campaignName>
</ns1:paramsImportToList>
</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:ns1="http://www.marketo.com/mktows/">
<SOAP-ENV:Body>
<ns1:successImportToList>
<result>
<!-- Possible Values: COMPLETE/PROCESSING/FAILED/CANCELED -->
<importStatus>PROCESSING</importStatus>
</result>
</ns1:successImportToList>
</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
$request = new stdClass();
$request->programName = "Trav-Demo-Program";
$request->campaignName = "Batch Campaign Example";
$request->importFileHeader = "Last Name,First Name,Job Title,Company Name,Email Address";
$request->importFileRows = array("Awesomesauce,Developer,Code Slinger,Marketo,dawesomesauce@marketo.com","Doe,Jane,VP Marketing,Jane Consulting,jdoe@janeconsulting.com");
$request->importListMode = "UPSERTLEADS"; // UPSERTLEADS or LISTONLY
$request->listName = "Trav-Test-List";
$request->clearList = false;
$params = array("paramsImportToList" => $request);
$soapClient = new SoapClient($marketoSoapEndPoint ."?WSDL", $options);
try {
$response = $soapClient->__soapCall('importToList', $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($response);
?>
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.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
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.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
public class ImportToList {
public static void main(String[] args) {
System.out.println("Executing Import To List");
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
ParamsImportToList request = new ParamsImportToList();
request.setProgramName("Trav-Demo-Program");
request.setCampaignName("Batch Campaign Example");
request.setImportFileHeader("Last Name,First Name,Job Title,Company Name,Email Address");
ArrayOfString rows = new ArrayOfString();
rows.getStringItems().add("Awesomesauce,Developer,Code Slinger,Marketo,dawesomesauce@marketo.com");
rows.getStringItems().add("Doe,Jane,VP Marketing,Jane Consulting,jdoe@janeconsulting.com");
request.setImportFileRows(rows);
request.setImportListMode(ImportToListModeEnum.UPSERTLEADS);
request.setListName("Trav-Test-List");
request.setClearList(false);
SuccessImportToList result = port.importToList(request, header);
JAXBContext context = JAXBContext.newInstance(SuccessImportToList.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 = {
:program_name => "Trav-Demo-Program",
:import_file_header => "Last Name,First Name,Job Title,Company Name,Email Address",
:import_file_rows => {
:string_item => ["Awesomesauce,Developer,Code Slinger,Marketo,dawesomesauce@marketo.com", "Doe,Jane,VP Marketing,Jane Consulting,jdoe@janeconsulting.com"] },
:import_list_mode => "UPSERTLEADS",
:list_name => "Trav-Test-List",
:clear_list => "false",
:campaign_name => "Batch Campaign Example"
}
response = client.call(:import_to_list, message: request)
puts response