Scenarios

Sample Code for Marketing Cloud Engagement for AppExchange API Calls 

This section provides sample code related to Marketing Cloud Engagement for AppExchange API.

Sample Create Call 

1// Action: Create SalesforceSend object
2CreateResult[] results = etForAppx.Create(new CreateOptions(), new APIObject[] { sfs }, out requestID, out status);

This code sample represents the create call, and it executes one Salesforce send. Note the following aspects about this call:

  • Default CreationOptions properties are used.
  • One or many SalesforceSend or Email objects can be created with a single Create call.
  • One CreateResult object is associated with one APIObject - in this case, a SalesforceSend object.
  • Returned “out” parameters are subject to your development environment. In .NET, they are exposed as parameters on the Create call.

Sample Re-subscribe Call 

1private void Activate(){
2    Console.WriteLine("updating sf subscriber");
3    int subTypeID = -1;
4    string status = null;
5    string rid = null;
6    PartnerAPI.Subscriber wsdlSub = new PartnerAPI.Subscriber();
7    //set the 18 digit SF ID
8    wsdlSub.SubscriberKey = "0037000000UyRdo";
9    //set the status to active
10    wsdlSub.Status = SubscriberStatus.Active;
11    wsdlSub.StatusSpecified = true;
12    //set the subscriber Type
13    PartnerAPI.SubscriberTypeDefinition std = new PartnerAPI.SubscriberTypeDefinition();
14    std.SubscriberType = "salesforcecontact"; //"salesforcelead"
15    wsdlSub.SubscriberTypeDefinition = std;
16    wsdlSub.IDSpecified = false;
17    wsdlSub.Client = new ClientID();
18    wsdlSub.Client.ID = 3069; //wsdlSub.Client.UserID = objPrincipal.EmployeeID; PartnerAPI.ServiceWse partnerAPI = new PartnerAPI.ServiceWse();
19    UsernameTokenProvider utp = new UsernameTokenProvider("etsfdev2", "xxxx"); partnerAPI.SetClientCredential<UsernameToken>(utp.GetToken());
20    Policy policy = new Policy(new UsernameOverTransportAssertion());
21    partnerAPI.SetPolicy(policy);
22    partnerAPI.Timeout = -1;
23    UpdateResult[] results = partnerAPI.Update(new PartnerAPI.UpdateOptions(), new PartnerAPI.APIObject[] { wsdlSub }, out rid, out status);
24    for (int cntr = 0; cntr < results.Length; cntr++)
25    {
26    Console.WriteLine(string.Format("Results for object {0}: Status code: {1}. Message: {2}.", cntr, results[cntr].StatusCode, results[cntr].StatusMessage));
27    }
28    Console.ReadLine();
29}

Sample SOAP API Call 

1//1. Create email
2Email email = new Email();
3email.ID = 3079342;
4email.IDSpecified = true;
5//2. Specify target recipients
6Target report = new Target();
7report.ObjectID = "00O60000001PWEa";
8report.ObjectType = ObjectTypes.Report;
9//3. Specify target recipients to exclude from the send
10Target reportExclude = new Target();
11reportExclude.ObjectID = "00O60000001PWEc";
12reportExclude.ObjectType = ObjectTypes.Report;
13// 4. Create Salesforce send object
14SalesforceSend sfs = new SalesforceSend();
15sfs.Email = email;
16sfs.Targets = new Target[] { report };
17sfs.Exclusions = new Target[] { reportExclude };
18sfs.FromName = "Lead/Contact Owner Name"; // Use CRM Record owner from from address and name
19sfs.SendDate = DateTime.UtcNow.Add(3); // Use UTC time for Scheduling sends
20//5. Use Create call to initiate the send
21CreateResult[] results = etForAppx.Create(new CreateOptions(), new APIObject[] { sfs }, out requestID, out status);
22//6. Print out overall results
23Console.WriteLine(string.Format("Overall result: {0}. RequestID: {1}. Result Message: {2}", status, requestID, results[0].StatusMessage));