Create, Perform, and Delete Email Send Definitions
This page contains information about creating, performing, and deleting email send definitions.
Why Create, Perform, and Delete Email Send Definitions
You can use email send definitions to send emails via the SOAP API. Email send definitions are known as email message interactions in Marketing Cloud. This helps you maintain a integration between your external system or development environment and Marketing Cloud
How to Create, Perform, and Delete Email Send Definitions
Use the sample code below as a model for creating your own API calls related to email send definitions.
When you update a user-initiated send definition via the SOAP API with the Email object, you must set the EmailSubject property on the email send definition. If you don't pass the new subject to the email send definition, it retains the old subject for that definition.
Sample .NET Code - Create Email Send Definition
//Create a GUID for ESD
string strGUID = System.Guid.NewGuid().ToString();
//Create EmailSendDefinition object to refer to current users ESD [Messages > Email > User-Initiated]
EmailSendDefinition esd = new EmailSendDefinition();
esd.Name = "ESD_Name_" + strGUID;
esd.CustomerKey = strGUID;
esd.Description = "ESD_Desc_" + strGUID;
//Create Email object to refer to pre-created email
Email em = new Email();
em.ID = 542894;//Found via a Retreive or UI
em.IDSpecified = true;
esd.Email = em;
esd.EmailSubject = "ESD Email Subject";
//Create SendClassification
SendClassification sc = new SendClassification();
sc.ObjectID = "51422ad6-6f65-de11-bf42-001e0bbb7678";
//Found via a Retreive
esd.SendClassification = sc;
//Pass the ID of the Content via this property
esd.Additional = "01c59e4f-dac8-4dcb-ab99-a00f565bcc00";
//DataExtension to Send to
DataExtension de = new DataExtension();
de.ObjectID = "729860f8-7d66-de11-bf42-001e0bbb7678";//This can be obtained via a Retrieve (Named Send_DE)
//Set Send Definition List for the Email Send Definition
esd.SendDefinitionList = new SendDefinitionList[1];
esd.SendDefinitionList[0] = new SendDefinitionList();
esd.SendDefinitionList[0].Name = "SDL Name";
esd.SendDefinitionList[0].CustomerKey = "SDL CustomerKey";
esd.SendDefinitionList[0].SendDefinitionListType = SendDefinitionListTypeEnum.SourceList;
esd.SendDefinitionList[0].SendDefinitionListTypeSpecified = true;
esd.SendDefinitionList[0].CustomObjectID = de.ObjectID;
esd.SendDefinitionList[0].DataSourceTypeID = DataSourceTypeEnum.CustomObject;//This specifies a Data Extension
esd.SendDefinitionList[0].DataSourceTypeIDSpecified = true;
//Create the EmailSendDefinition, it is visible as a user-initiated Email in Marketing Cloud
string cRequestID = "";
string cStatus = "";
CreateResult[] cResults = client.Create(new CreateOptions(), new APIObject[] { esd }, out cRequestID, out cStatus);using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using etAPI;
public partial class EmailSendDefinitionCreate : System.Web.UI.Page
{
//Global Variables
private SoapClient client = new SoapClient();
protected void Page_Load(object sender, EventArgs e)
{
//Authenticate
client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationSettings.AppSettings["wsUserName"];
client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationSettings.AppSettings["wsPassword"];
if (!IsPostBack)
{
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
//Create a GUID for ESD to ensure a unique name and customer key
string strGUID = System.Guid.NewGuid().ToString();
//Create EmailSendDefinition object [Messages > Email > User-Initiated]
EmailSendDefinition esd = new EmailSendDefinition();
esd.Name = "ESD_Name_" + strGUID;//required
esd.CustomerKey = strGUID;//required
esd.TestEmailAddr = "bjennings@exacttarget.com";
//Create Email object to refer to pre-create Email
Email em = new Email();
em.ID = 542894;//required //Available in Marketing Cloud UI [Content > My Emails > Properties]
em.IDSpecified = true;//required
//Apply Email object to the EmailSendDefiniton object
esd.Email = em;//required
//Create SendClassification
SendClassification sc = new SendClassification();
sc.ObjectID = "51422ad6-6f65-de11-bf42-001e0bbb7678";//required
esd.SendClassification = sc;//required
//The Additional property is OPTIONAL
esd.Additional = "AdditionalInformationVariable";//A Great way to pass values from your API call to the Email, this is available via AMP Script to the Email
//DataExtension object to be passed into SendDefinitionList's CustomObjectID property
DataExtension de = new DataExtension();
de.ObjectID = "729860f8-7d66-de11-bf42-001e0bbb7678";//required //This can be obtained via a Retrieve filtered by the External Key of the Data Extension
//Set Send Definition List for the EmailSendDefinition
esd.SendDefinitionList = new SendDefinitionList[1];//You can have many SendDefinitonLists of different SendDefinitionListTypes
esd.SendDefinitionList[0] = new SendDefinitionList();
esd.SendDefinitionList[0].SendDefinitionListType = SendDefinitionListTypeEnum.SourceList;
esd.SendDefinitionList[0].SendDefinitionListTypeSpecified = true;
esd.SendDefinitionList[0].CustomObjectID = de.ObjectID;
esd.SendDefinitionList[0].DataSourceTypeID = DataSourceTypeEnum.CustomObject;//This specifies a Data Extension
esd.SendDefinitionList[0].DataSourceTypeIDSpecified = true;
try
{
string cRequestID = String.Empty;
string cStatus = String.Empty;
//Call the Create method on the Subscriber object
CreateResult[] cResults = client.Create(new CreateOptions(), new APIObject[] { esd }, out cRequestID, out cStatus);
//Display Results
lblMessage.Text += "Overall Status: " + cStatus;
lblMessage.Text += "<br/>";
lblMessage.Text += "Number of Results: " + cResults.Length;
lblMessage.Text += "<br/>";
//Loop through each object returned and display the StatusMessage
foreach (CreateResult cr in cResults)
{
lblMessage.Text += "Status Message: " + cr.StatusMessage;
lblMessage.Text += "<br/>";
}
}
catch (Exception exCreate)
{
//Set Message
lblMessage.Text += "<br/><br/>CREATE ERROR:<br/>" + exCreate.Message;
}
}
catch (Exception exc)
{
//Set Message
lblMessage.Text += "<br/><br/>###ERROR<br/>" + exc.Message;
}
}
}Sample .NET Code - Perform an Email Send Definition
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using etAPI;
public partial class EmailSendDefinitionPerform : System.Web.UI.Page
{
//Global Variables
private SoapClient client = new SoapClient();
protected void Page_Load(object sender, EventArgs e)
{
//Authenticate
client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationSettings.AppSettings["wsUserName"];
client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationSettings.AppSettings["wsPassword"];
if (!IsPostBack)
{
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
//Create EmailSendDefinition object [Messages > Email > User-Initiated]
EmailSendDefinition esd = new EmailSendDefinition();
esd.CustomerKey = "359866e9-1ec1-4854-ba49-c50a0ca61dd5";//required //Called External Key in the UI
try
{
//Perform the ESD
string pStatus = String.Empty;
string pMessage = String.Empty;
string pRequestID = String.Empty;
PerformResult[] pResults = client.Perform(new PerformOptions(), "start", new InteractionBaseObject[] { esd }, out pStatus, out pMessage, out pRequestID);
//Display Results
lblMessage.Text += "Overall Status: " + pStatus;
lblMessage.Text += "<br/>";
lblMessage.Text += "Number of Results: " + pResults.Length;
lblMessage.Text += "<br/>";
//Loop through each object returned and display the StatusMessage
foreach (PerformResult pr in pResults)
{
lblMessage.Text += "Status Message: " + pr.StatusMessage;
lblMessage.Text += "<br/>"; }
}
catch (Exception exCreate)
{
//Set Message
lblMessage.Text += "<br/><br/>CREATE ERROR:<br/>" + exCreate.Message;
}
}
catch (Exception exc)
{
//Set Message
lblMessage.Text += "<br/><br/>ERROR<br/>" + exc.Message;
}
}
}Sample .NET Code - Start an Email Send Definition with API
/**
* Start Email send definiton using perform call. This internally sends email using Data Extensions.
* In Response capture Task ID="12345" which is sendID. Use this to
* retrieve tracking information.
* @throws RemoteException
*/
public void startEmailSendDefinition() throws RemoteException {
EmailSendDefinition definition = new EmailSendDefinition();
definition.setCustomerKey("Market2Lead_Email_Definition_Key");
Soap_PortType stub = init();
PerformRequestMsg performRequestMsg = new PerformRequestMsg();
performRequestMsg.setOptions(new PerformOptions());
performRequestMsg.setAction("start");
performRequestMsg.setDefinitions(new EmailSendDefinition[]{definition});
//This sends email using User-Initiated-Email-definition.
PerformResponseMsg responseMsg = stub.perform(performRequestMsg);
System.out.println(responseMsg.getOverallStatus());
}Sample PHP Code - Create an Email Send Definition
<?php
require('exacttarget_soap_client.php');
$wsdl = 'https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/etframework.wsdl';
try{
/* Create the Soap Client */
$client = new Marketing CloudSoapClient($wsdl, array('trace'=>1));
/* Set username and password here */
$client->username = 'xxx';
$client->password = 'xxx';
//Setup the Email Send Definition
$emailSendDef = new Marketing Cloud_EmailSendDefinition();
$emailSendDef->CustomerKey = "PHP Test Send Definition";
$emailSendDef->Name = "PHP Test Send Definition";
//Setup the Send Classification
$sendClass = new Marketing Cloud_SendClassification();
$sendClass->CustomerKey = "2239";
$emailSendDef->SendClassification = $sendClass;
// Setting Up the Source List
$emailSendDef->SendDefinitionList = array();
$sendDefList = new Marketing Cloud_SendDefinitionList();
$list = new Marketing Cloud_List();
$list->ID = "1727073";
$sendDefList->List = $list;
$sendDefList->DataSourceTypeID = "List";
$sendDefList->SendDefinitionListType = "SourceList";
$emailSendDef->SendDefinitionList[] = $sendDefList;
// Setting up the exclude list
$sendDefListExclude = new Marketing Cloud_SendDefinitionList();
$listExclude = new Marketing Cloud_List();
$listExclude->ID = "1729515";
$sendDefListExclude->List = $listExclude;
$sendDefListExclude->DataSourceTypeID = "List";
$sendDefListExclude->SendDefinitionListType = "ExclusionList";
$emailSendDef->SendDefinitionList[] = $sendDefListExclude;
// Specify the Email To Send
$email = new Marketing Cloud_Email();
$email->ID = "3096380";
$emailSendDef->Email = $email;
$object = new SoapVar($emailSendDef, SOAP_ENC_OBJECT, 'EmailSendDefinition', "http://exacttarget.com/wsdl/partnerAPI");
$request = new Marketing Cloud_CreateRequest();
$request->Options = NULL;
$request->Objects = array($object);
$results = $client->Create($request);
var_dump($results);
} catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
?><?php
require('../../00 Includes/exacttarget_soap_client.php');
$wsdl = 'https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/etframework.wsdl';
try{
/* Create the Soap Client */
$client = new Marketing CloudSoapClient($wsdl, array('trace'=>1));
/* Set username and password here */
$client->username = '<username>';
$client->password = '<password>';
/* Create the list object to associate with the send */
$list = new Marketing Cloud_List();
$list->ID = "1729965";
/* Create the send definition list object to associate with the send */
/* You could also create a data extension object and use that instead */
$senddeflist = new Marketing Cloud_SendDefinitionList();
$senddeflist->List = $list;
$senddeflist->DataSourceTypeID = "List"; // in this example, we are sending to a list
/* Create the email object that is associated with the send */
$email = new Marketing Cloud_Email();
$email->ID = "3096692";
/* Create the send classification that is associated with this send */
$sendclass = new Marketing Cloud_SendClassification();
$sendclass->CustomerKey = "test";
/* Create the email send definition object */
$esd = new Marketing Cloud_EmailSendDefinition();
$esd->SendDefinitionList = $senddeflist;
$esd->Email = $email;
$esd->Name = "API Created2";
$esd->SendClassification = $sendclass;
$object = new SoapVar($esd, SOAP_ENC_OBJECT, 'EmailSendDefinition', "http://exacttarget.com/wsdl/partnerAPI");
/* Create the email send definition in Marketing Cloud*/
$request = new Marketing Cloud_CreateRequest();
$request->Options = NULL;
$request->Objects = array($object);
$results = $client->Create($request);
/* Output the results */
var_dump($results);
} catch (SoapFault $e) {
var_dump($e);
}
?>Sample PHP Code - Perform an Email Send Definition
<?php
require('exacttarget_soap_client.php');
$wsdl = 'https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/etframework.wsdl';
try{
/* Create the Soap Client */
$client = new Marketing CloudSoapClient($wsdl, array('trace'=>1));
/* Set username and password here */
$client->username = 'XXXX';
$client->password = 'XXXX';
$pr = new Marketing Cloud_PerformRequestMsg();
$pr->Action = "start";
$pr->Definitions = array();
$def = new Marketing Cloud_EmailSendDefinition();
$def->CustomerKey = "TESTUISEND";
$pr->Definitions[] = new SoapVar($def, SOAP_ENC_OBJECT, 'EmailSendDefinition', "http://exacttarget.com/wsdl/partnerAPI");
$pr->Options = NULL;
$results = $client->Perform($pr);
var_dump($results);
} catch (SoapFault $e) {
var_dump($e);
}
?>Sample Ruby on Rails Code
require 'rubygems'
gem 'soap4r'
require 'soap/wsdlDriver'
require 'soap/header/simplehandler'
require 'defaultDriver.rb'
require 'authStub.rb'
require 'WSHelpers.rb'
props = {
:object => 'DataExtension',
:props => ['Name','Description','CustomerKey','ObjectID']
}
filter = {
:filterType => 'Simple',
:filter => ['CustomerKey','equals','APITestSendDe0']
}
de = BuildRetrieve.new
resp = de.creates(props,filter)
objID = String.new
resp.results.each do |result|
objID = result.objectID
end
#Async create options
#options = CreateOptions.new(nil,nil,nil,nil,nil,nil,nil,nil,'Asynchronous')
options = nil
customerKey = 'API-Test-1'
desc = customerKey + ' created through the API'
sendClass = SendClassification.new(nil,nil,nil,nil,nil,nil,nil,189,nil,nil,nil,nil,nil,nil,nil,nil)
sendProf = SenderProfile.new(nil,nil,nil,nil,nil,nil,nil,352,nil,nil,nil,nil,'NTO Customer Support','acruz@example.com',nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil)
delProf = DeliveryProfile.new(nil,nil,nil,nil,nil,nil,nil,306,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil)
email = Email.new(nil,nil,nil,nil,nil,2052608,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil)
sendDefList = SendDefinitionList.new(nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,objID,'CustomObject',nil,nil,nil,nil,nil)
emailSendDef = EmailSendDefinition.new(nil,nil,nil,nil,nil,nil,nil,customerKey,nil,nil,customerKey,desc,nil,nil,nil,sendClass,sendProf,nil,nil,delProf,nil,nil,nil,nil,nil,nil,nil,nil,0,0,sendDefList,email,nil,nil,nil,'Thank You for Contacting NTO Customer Support',nil,1,1,nil,nil,nil,nil,1,nil,nil,nil,'acruz@example.com')
apiObj = emailSendDef
resp = $driver.create(CreateRequest.new(options,[*apiObj]))Sample Java Code (Axis 1.4)
/**
* Create User-Intiated-Send-definition using Data Extension
*/
public void testCreateEmailSendDefinition() throws RemoteException {
EmailSendDefinition definition = new EmailSendDefinition();
Soap_PortType stub = init();
definition.setName("Market2Lead_Email_Definition"); //Name
//This is Unique identifier for Definition
definition.setCustomerKey("Market2Lead_Email_Definition_Key");
//RetrieveEmail
Email email = retrieveEmail(stub);//Retrieve email
definition.setEmail(email); //Associate what email you are going to send
// Retrieve sendClassification and attach to Definition
definition.setSendClassification(retrieveSendClassifications(stub));
SendDefinitionList sendDefinitionList = new SendDefinitionList();
//This is objectId of DataExtension, You can retrieve DataExtension and assign value.
//1a3e2c14-580e-de11-b30f-001cc494ae9e Captured after creating DataExtension.
//Refer this link for Retrieving Data Extension
//http://wiki.memberlandingpages.com/API_References/Web_Service_Guide/_Technical_Articles/Retrieving_DataExtension_Object
sendDefinitionList.setCustomObjectID("1a3e2c14-580e-de11-b30f-001cc494ae9e");
sendDefinitionList.setDataSourceTypeID(DataSourceTypeEnum.CustomObject);
definition.setIsMultipart(true);
definition.setSendDefinitionList(new SendDefinitionList[]{sendDefinitionList});
APIObject[] createObjects = {definition};
//Create Request to create EmailDefinition
CreateRequest createRequest = new CreateRequest(new CreateOptions(),reateObjects);
CreateResponse createResponse = stub.create(createRequest);
System.out.println(createResponse.getOverallStatus());
}Sample Java Code (Axis 1.4) - Retrieve Send Classifications for Email Send Definition
/**
* Retrieve SendClassifications Transactional or Commerical type.
* @throws RemoteException
*/
private SendClassification retrieveSendClassifications(Soap_PortType stub) throws RemoteException {
String[] props = { "ObjectID", "Name", "Description", "CustomerKey",
"SenderProfile.CustomerKey","Client.ID", "Client.PartnerClientKey", "PartnerKey"
};
RetrieveRequest request = new RetrieveRequest();
request.setObjectType("SendClassification");
request.setProperties(props);
/*
ClientID clientID = new ClientID();
clientID.setPartnerClientKey("partnerkey_subaccount_2"); ClientID[] clientIDs = {clientID};
request.setClientIDs(clientIDs); */
//Default Transactional
SimpleFilterPart filterPart = new SimpleFilterPart(); String[] filterValues = {"Default Commercial"};
filterPart.setProperty("Name");
filterPart.setSimpleOperator(SimpleOperators.equals);
filterPart.setValue(filterValues);
request.setFilter(filterPart);
RetrieveRequestMsg requestMsg = new RetrieveRequestMsg();
requestMsg.setRetrieveRequest(request);
RetrieveResponseMsg responseMsg = stub.retrieve(requestMsg);
SendClassification classification = null;
if (responseMsg.getResults() != null && responseMsg.getResults().length > 0){
classification = (SendClassification) responseMsg.getResults(0);
}
return classification;
}
/**
* Reteive email from System
* @param stub
* @return
* @throws RemoteException
*/
public Email retrieveEmail(Soap_PortType stub) throws RemoteException {
Email email = null;
RetrieveRequest request = new RetrieveRequest();
request.setObjectType("Email");
String[] props = {"ID", "Name", "Subject", "Status", "PartnerKey"};
request.setProperties(props);
SimpleFilterPart part = new SimpleFilterPart();
part.setProperty("Name"); //If Uniquie, or indentify which is unique in your case
part.setSimpleOperator(SimpleOperators.equals);
String[] values = {"Market2Lead"};
part.setValue(values);
request.setFilter(part);
RetrieveRequestMsg requestMsg = new RetrieveRequestMsg();
requestMsg.setRetrieveRequest(request);
RetrieveResponseMsg responseMsg = stub.retrieve(requestMsg);
if (responseMsg.getResults() != null && responseMsg.getResults().length > 0){
email = (Email) responseMsg.getResults(0);
}
return email;
}Sample Create SOAP Envelope
<s:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-30851894" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>Username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsa:To>https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx</wsa:To>
<wsa:MessageID>urn:uuid:FAB69169EC56A8F9D51228490514867</wsa:MessageID>
<wsa:Action>Retrieve</wsa:Action>
</soapenv:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options></Options>
<Objects xmlns:q1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="q1:EmailSendDefinition">
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:CustomerKey>
<q1:Name>ESD_Name_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Name>
<q1:Description>ESD_Desc_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Description>
<q1:SendClassification>
<q1:ObjectID>51422ad6-6f65-de11-bf42-001e0bbb7678</q1:ObjectID>
</q1:SendClassification>
<q1:SendDefinitionList>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>SDL CustomerKey</q1:CustomerKey>
<q1:SendDefinitionListType>SourceList</q1:SendDefinitionListType>
<q1:CustomObjectID>729860f8-7d66-de11-bf42-001e0bbb7678</q1:CustomObjectID>
<q1:DataSourceTypeID>CustomObject</q1:DataSourceTypeID>
<q1:Name>SDL Name</q1:Name>
</q1:SendDefinitionList>
<q1:Email>
<q1:ID>542894</q1:ID>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
</q1:Email>
<q1:EmailSubject>ESD Email Subject</q1:EmailSubject>
<q1:Additional>cb99f3b1-67a4-452a-94c0-886e9a930961</q1:Additional>
</Objects>
</CreateRequest>
</s:Body>
</s:Envelope>Sample Perform SOAP Envelope
<s:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-30851894" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>Username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsa:To>https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx</wsa:To>
<wsa:MessageID>urn:uuid:FAB69169EC56A8F9D51228490514867</wsa:MessageID>
<wsa:Action>Retrieve</wsa:Action>
</soapenv:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PerformRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options></Options>
<Action>start</Action>
<Definitions>
<Definition xmlns:q1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="q1:EmailSendDefinition">
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:CustomerKey>
<q1:Name>ESD_Name_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Name>
<q1:Description>ESD_Desc_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Description>
<q1:SendClassification>
<q1:ObjectID>51422ad6-6f65-de11-bf42-001e0bbb7678</q1:ObjectID>
</q1:SendClassification>
<q1:SendDefinitionList>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>SDL CustomerKey</q1:CustomerKey>
<q1:SendDefinitionListType>SourceList</q1:SendDefinitionListType>
<q1:CustomObjectID>729860f8-7d66-de11-bf42-001e0bbb7678</q1:CustomObjectID>
<q1:DataSourceTypeID>CustomObject</q1:DataSourceTypeID>
<q1:Name>SDL Name</q1:Name>
</q1:SendDefinitionList>
<q1:Email>
<q1:ID>123</q1:ID>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
</q1:Email>
<q1:EmailSubject>ESD Email Subject</q1:EmailSubject>
<q1:Additional>cb99f3b1-67a4-452a-94c0-886e9a930961</q1:Additional>
</Definition>
</Definitions>
</PerformRequestMsg>
</s:Body>
</s:Envelope>Sample Delete SOAP Envelope
<s:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-30851894" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>Username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsa:To>https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx</wsa:To>
<wsa:MessageID>urn:uuid:FAB69169EC56A8F9D51228490514867</wsa:MessageID>
<wsa:Action>Retrieve</wsa:Action>
</soapenv:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeleteRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options></Options>
<Objects xmlns:q1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="q1:EmailSendDefinition">
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:CustomerKey>
<q1:Name>ESD_Name_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Name>
<q1:Description>ESD_Desc_7dc973cc-e0ab-4aec-9ba8-cf0b739e02dc</q1:Description>
<q1:SendClassification>
<q1:ObjectID>51422ad6-6f65-de11-bf42-001e0bbb7678</q1:ObjectID>
</q1:SendClassification>
<q1:SendDefinitionList>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
<q1:CustomerKey>SDL CustomerKey</q1:CustomerKey>
<q1:SendDefinitionListType>SourceList</q1:SendDefinitionListType>
<q1:CustomObjectID>729860f8-7d66-de11-bf42-001e0bbb7678</q1:CustomObjectID>
<q1:DataSourceTypeID>CustomObject</q1:DataSourceTypeID>
<q1:Name>SDL Name</q1:Name>
</q1:SendDefinitionList>
<q1:Email>
<q1:ID>542894</q1:ID>
<q1:ObjectID xsi:nil="true"></q1:ObjectID>
</q1:Email>
<q1:EmailSubject>ESD Email Subject</q1:EmailSubject>
<q1:Additional>cb99f3b1-67a4-452a-94c0-886e9a930961</q1:Additional>
</Objects>
</DeleteRequest>
</s:Body>
</s:Envelope>SOAP Request to Create an Email Send Definition
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-9560865" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body>
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<Objects xsi:type="ns1:EmailSendDefinition" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
<CustomerKey>Market2Lead_Email_Definition_Key</CustomerKey>
<Name>Market2Lead_Email_Definition</Name>
<SendClassification>
<Client>
<ID>75741</ID>
</Client>
<ObjectID>4819efef-4527-dd11-8126-001a4be9433a</ObjectID>
<CustomerKey>3542</CustomerKey>
<Name>Default Commercial</Name>
<Description>Default Commercial Send Classification</Description>
<SenderProfile>
<CustomerKey>1973</CustomerKey>
</SenderProfile>
</SendClassification>
<SendDefinitionList>
<CustomObjectID>1a3e2c14-580e-de11-b30f-001cc494ae9e</CustomObjectID>
<DataSourceTypeID>CustomObject</DataSourceTypeID>
</SendDefinitionList>
<Email>
<ID>794527</ID>
<Name>Market2Lead</Name>
<Subject>Market2Lead-Email</Subject>
<Status>New</Status>
</Email>
<IsMultipart>true</IsMultipart>
</Objects>
</CreateRequest>
</soapenv:Body>
</soapenv:Envelope>SOAP Response to Request to Create an Email Send Definition
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsa:Action>CreateResponse</wsa:Action>
<wsa:MessageID>urn:uuid:107dc09d-fdff-408e-af80-373012788c53</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:02be8551-f51a-45c2-a298-2cfbd23fe715</wsa:RelatesTo>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-e41f7772-de26-4ef4-9aec-950e013c39e6">
<wsu:Created>2009-03-11T18:51:24Z</wsu:Created>
<wsu:Expires>2009-03-11T18:56:24Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<CreateResponse xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Results>
<StatusCode>OK</StatusCode>
<StatusMessage>ImportDefinition created.</StatusMessage>
<OrdinalID>0</OrdinalID>
<NewID>0</NewID>
<NewObjectID>4da7bd99-6d0e-de11-b30f-001cc494ae9e</NewObjectID>
<Object xsi:type="ImportDefinition">
<ObjectID>4da7bd99-6d0e-de11-b30f-001cc494ae9e</ObjectID>
<CustomerKey>Import_To_DE_Market2Lead_Key</CustomerKey>
<Name>Import_To_DE_Market2Lead</Name>
<Description>Import_To_DE_Market2Lead</Description>
<AllowErrors>true</AllowErrors>
<DestinationObject xsi:type="DataExtension">
<ObjectID xsi:nil="true"/>
<CustomerKey>UsingAPI_For_Market2Lead_Key</CustomerKey>
</DestinationObject>
<FieldMappingType>InferFromColumnHeadings</FieldMappingType>
<FieldMaps>
<FieldMap>
<DestinationName>EmailAddress</DestinationName>
</FieldMap>
<FieldMap>
<DestinationName>ChannelUser</DestinationName>
</FieldMap>
<FieldMap>
<DestinationName>ChannelUser_EmailAddress</DestinationName>
</FieldMap>
<FieldMap>
<DestinationName>Demographic_Address</DestinationName>
</FieldMap>
</FieldMaps>
<FileSpec>Import2M2L.csv</FileSpec>
<FileType>CSV</FileType>
<Notification>
<ResponseType>email</ResponseType>
<ResponseAddress>response@exacttarget.com</ResponseAddress>
</Notification>
<RetrieveFileTransferLocation>
<ObjectID xsi:nil="true"/>
<CustomerKey>ExactTarget Enhanced FTP</CustomerKey>
</RetrieveFileTransferLocation>
<UpdateType>AddAndDoNotUpdate</UpdateType>
</Object>
</Results>
<RequestID>a491e5d7-6388-4e19-afb8-506d4136542a</RequestID>
<OverallStatus>OK</OverallStatus>
</CreateResponse>
</soap:Body>
</soap:Envelope>SOAP Envelope to Create an Email Send Definition Using Profile Attributes and a Data Filter to Create an Audience
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Timestamp>
<wsu:Created>2011-05-20T21:24:16Z</wsu:Created>
<wsu:Expires>2011-05-20T21:29:16Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken>
<wsse:Username>XXXXX</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:Password>
<wsse:Nonce>CvdDChr6jtfX++xFZVEoCAm6TXQ=</wsse:Nonce>
<wsu:Created>2011-05-20T21:24:16Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<ns1:Objects xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="ns1:EmailSendDefinition">
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:ObjectID xsi:nil="true"/>
<ns1:Name>12345</ns1:Name>
<ns1:SendClassification>
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:CustomerKey>12345</ns1:CustomerKey>
</ns1:SendClassification>
<ns1:SendDefinitionList>
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:List>
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:ID>12345</ns1:ID>
<ns1:ObjectID xsi:nil="true"/>
</ns1:List>
<ns1:SendDefinitionListType>SourceList</ns1:SendDefinitionListType>
<ns1:DataSourceTypeID>FilterDefinition</ns1:DataSourceTypeID>
<ns1:FilterDefinition>
<ns1:PartnerKey xsi:nil="true"/>
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:ObjectID>12345</ns1:ObjectID>
<ns1:CustomerKey>123456<ns1:CustomerKey>
</ns1:FilterDefinition>
</ns1:SendDefinitionList>
<ns1:Email>
<ns1:ModifiedDate xsi:nil="true"/>
<ns1:ID>12345</ns1:ID>
<ns1:ObjectID xsi:nil="true"/>
</ns1:Email>
</ns1:Objects>
</CreateRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>SOAP Request for Starting Email Send Definition
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-28677619" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<PerformRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<Action>start</Action>
<Definitions>
<Definition xsi:type="ns1:EmailSendDefinition" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
<CustomerKey>Market2Lead_Email_Definition_Key</CustomerKey>
</Definition>
</Definitions>
</PerformRequestMsg>
</soapenv:Body>
</soapenv:Envelope>SOAP Response for Starting Email Definition
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsa:Action>PerformResponse</wsa:Action>
<wsa:MessageID>urn:uuid:9a508056-981a-4290-83ba-50c5471ec5a1</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:bab6f37f-ceab-4a5a-a8d3-9c3f3eb708d9</wsa:RelatesTo>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-5dd9cc39-7484-49cf-b203-440b4ecc181e">
<wsu:Created>2009-03-11T21:05:55Z</wsu:Created>
<wsu:Expires>2009-03-11T21:10:55Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<PerformResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Results>
<Result>
<StatusCode>OK</StatusCode>
<StatusMessage>EmailSendDefinition performed</StatusMessage>
<Object xsi:type="EmailSendDefinition">
<ObjectID>66f6728e-7c0e-de11-b30f-001cc494ae9e</ObjectID>
<CustomerKey>Market2Lead_Email_Definition_Key</CustomerKey>
<Name>Market2Lead_Email_Definition</Name>
</Object>
<Task>
<StatusCode>OK</StatusCode>
<StatusMessage>OK</StatusMessage>
<ID>7029017</ID>
<InteractionObjectID>ed9aae62-800e-de11-b30f-001cc494ae9e</InteractionObjectID>
</Task>
</Result>
</Results>
<OverallStatus>OK</OverallStatus>
<OverallStatusMessage/>
<RequestID>1b9a83ff-9588-4185-92bc-8a138368f243</RequestID>
</PerformResponseMsg>
</soap:Body>
</soap:Envelope>SOAP Request to Update Email Send Definition
<soapenv:Body>
<UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<Objects xsi:type="ns1:EmailSendDefinition" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
<CustomerKey>Testing_Pub_List_Key</CustomerKey>
<Client>
<ID>12345</ID>
</Client>
<Email>
<Client>
<ID>12345</ID>
</Client>
<ID>123456</ID>
<ObjectID xsi:nil="true"/>
<Subject>Test Email with Content Areas</Subject>
</Email>
<SendDefinitionList>
<PartnerKey xsi:nil="true"/>
<ObjectID xsi:nil="true"/>
<List>
<Client>
<ID>12345</ID>
</Client>
<ID>1234567</ID>
</List>
<DataSourceTypeID>List</DataSourceTypeID>
</SendDefinitionList>
</Objects>
</UpdateRequest>
</soapenv:Body>SOAP Request to Update Email Send Definition with New Subject
<soapenv:Body>
<UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options/>
<Objects xsi:type="ns1:EmailSendDefinition" xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI">
<CustomerKey>Testing_Pub_List_Key</CustomerKey>
<Client>
<ID>12345</ID>
</Client>
<Email>
<Client>
<ID>12345</ID>
</Client>
<ID>123456</ID>
<ObjectID xsi:nil="true"/>
<Subject>Test Email with Content Areas</Subject>
</Email>
<EmailSubject>EmailSendDef subject updated via API</EmailSubject>
<SendDefinitionList>
<PartnerKey xsi:nil="true"/>
<ObjectID xsi:nil="true"/>
<List>
<Client>
<ID>12345</ID>
</Client>
<ID>1234567</ID>
</List>
<DataSourceTypeID>List</DataSourceTypeID>
</SendDefinitionList>
</Objects>
</UpdateRequest>
</soapenv:Body>