Top Banner
Programming the ExactTarget Marketing Cloud Dale McCrory, ExactTarget, Principal Product Manager, Fuel Platform google.com/+DaleMcCrory
63

Programming the ExactTarget Marketing Cloud

Oct 30, 2014

Download

Technology

For over a decade, ExactTarget has offered a comprehensive set of APIs that enable our customers to automate their email campaigns and seamlessly integrate their marketing, analytics, and other business software. Join us as we introduce core Marketing Cloud concepts, including the importance of permission and the value of relevancy, as well as the core technologies that make up the ExactTarget platform, including lists, data extensions, and AMPscript.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming the ExactTarget Marketing Cloud

Programming the ExactTarget Marketing Cloud

Dale McCrory, ExactTarget, Principal Product Manager, Fuel Platformgoogle.com/+DaleMcCrory

Page 2: Programming the ExactTarget Marketing Cloud

Safe harborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Programming the ExactTarget Marketing Cloud

ExactTarget Marketing Cloud

As a customer, you can automate entire marketing campaigns, customize the ExactTarget application to your specific needs,or integrate ExactTarget with a variety of CRM, analytics, and other business software. As a partner, you can build or extend marketing applications and take those applications to market with ExactTarget via one of our platform-related partner programs. As a developer, the possibilities are endless.

Page 4: Programming the ExactTarget Marketing Cloud

ExactTarget Fuel as part of Salesforce1

• Send email, SMS and push messages.• Personalize messages using data and content scripting. • Measure interaction and engagement (email opens & clicks,

etc.). • Build apps that extend the Marketing Cloud.

Page 5: Programming the ExactTarget Marketing Cloud

The Marketing and Development Mindmeld

Page 6: Programming the ExactTarget Marketing Cloud

Customer touchpoints for developers

Principle #1Every email, every message, and every notification should be

thought of as a customer touchpoint -- an opportunity to influence your customers and prospects.

Page 7: Programming the ExactTarget Marketing Cloud

Customer touchpoints for developers

Principle #2Highly-targeted, relevant communication is as much a technology

problem as it is a marketer's dilemma.

Page 8: Programming the ExactTarget Marketing Cloud

Data drives relevancy

Page 9: Programming the ExactTarget Marketing Cloud

Customer events improve relevancy

Page 10: Programming the ExactTarget Marketing Cloud

Customer events improve relevancy

Page 11: Programming the ExactTarget Marketing Cloud

Permission, permission, permission

Page 12: Programming the ExactTarget Marketing Cloud

Customer touchpoint innovation

Page 13: Programming the ExactTarget Marketing Cloud
Page 14: Programming the ExactTarget Marketing Cloud
Page 15: Programming the ExactTarget Marketing Cloud
Page 16: Programming the ExactTarget Marketing Cloud
Page 17: Programming the ExactTarget Marketing Cloud
Page 18: Programming the ExactTarget Marketing Cloud
Page 19: Programming the ExactTarget Marketing Cloud

Key Fuel system objects for email sending

Page 20: Programming the ExactTarget Marketing Cloud

Marketing Cloud Fuel Objects mapped to Force.comMarketing Cloud Fuel Force.com

Lists CRM Campaigns or Reports

Data Extensions Objects

Contacts (Subscribers) CRM Contacts

List Subscription CRM CampaignMembers

Data Extension Fields / Subscriber Attributes

Object Fields

Data Extension Keys Relationships

Marketing Events CRM Contact Activities

Page 21: Programming the ExactTarget Marketing Cloud

A “Super” Example

Page 22: Programming the ExactTarget Marketing Cloud
Page 23: Programming the ExactTarget Marketing Cloud
Page 24: Programming the ExactTarget Marketing Cloud
Page 25: Programming the ExactTarget Marketing Cloud

Free pizza for guessing the coin toss

Page 26: Programming the ExactTarget Marketing Cloud

Free pizza for guessing the coin tossVisualization of saving a subscriber and a data extension

Enroll

CoinToss

RewardsMember

Vote

Demographic Data• Rewards Member ID• First Name• Last Name• Zip Code

Event Data• Rewards Member ID• TossVote

Data Extension

Marketing List

Page 27: Programming the ExactTarget Marketing Cloud

Enrolling a new Rewards Members

$subscriber = new ET_Subscriber();$subscriber->authStub = $myclient;

$subscriber->props = array("SubscriberKey" => "12332432", "EmailAddress" => "[email protected]", "Lists" => array("ID" => $listID));

$subscriber->props['Attributes'] = array( array('Name' => 'First Name', 'Value' => 'John'), array('Name' => 'Last Name', 'Value' => 'Smith'), array('Name' => 'RegisteredDate', 'Value' => '12/01/2013 1:00pm’));

$postResponse = $subscriber->post();

SubscriberKey EmailAddress First Name Last Name RegisteredDate

Page 28: Programming the ExactTarget Marketing Cloud

Enrolling a new Rewards Members

$subscriber = new ET_Subscriber();$subscriber->authStub = $myclient;

$subscriber->props = array("SubscriberKey" => "12332432", "EmailAddress" => "[email protected]", "Lists" => array("ID" => $listID));

$subscriber->props['Attributes'] = array( array('Name' => 'First Name', 'Value' => 'John'), array('Name' => 'Last Name', 'Value' => 'Smith'), array('Name' => 'RegisteredDate', 'Value' => '12/01/2013 1:00pm’));

$postResponse = $subscriber->post();

SubscriberKey EmailAddress First Name Last Name RegisteredDate

Page 29: Programming the ExactTarget Marketing Cloud

Enrolling a new Rewards Members

$subscriber = new ET_Subscriber();$subscriber->authStub = $myclient;

$subscriber->props = array("SubscriberKey" => "12332432", "EmailAddress" => "[email protected]", "Lists" => array("ID" => $listID));

$subscriber->props['Attributes'] = array( array('Name' => 'First Name', 'Value' => 'John'), array('Name' => 'Last Name', 'Value' => 'Smith'), array('Name' => 'RegisteredDate', 'Value' => '12/01/2013 1:00pm’));

$postResponse = $subscriber->post();

SubscriberKey EmailAddress First Name Last Name RegisteredDate

Page 30: Programming the ExactTarget Marketing Cloud

Enrolling a new Rewards Members

$subscriber = new ET_Subscriber();$subscriber->authStub = $myclient;

$subscriber->props = array("SubscriberKey" => "12332432", "EmailAddress" => "[email protected]", "Lists" => array("ID" => $listID));

$subscriber->props['Attributes'] = array( array('Name' => 'First Name', 'Value' => 'John'), array('Name' => 'Last Name', 'Value' => 'Smith'), array('Name' => 'RegisteredDate', 'Value' => '12/01/2013 1:00pm’));

$postResponse = $subscriber->post();

SubscriberKey EmailAddress First Name Last Name RegisteredDate12332432 [email protected] John Smith 12/01/2013 1:00pm

Page 31: Programming the ExactTarget Marketing Cloud

Storing the Rewards Member Vote event

$postDRRow = new ET_DataExtension_Row();$postDRRow->authStub = $myclient;

$postDRRow->Name = "CoinToss";

$postDRRow->props = array(”memberId" => "12332432",

"tossVote" => "heads”);

$postResponse = $postDRRow->post();print_r($postResponse);

memberId tossVote

Page 32: Programming the ExactTarget Marketing Cloud

Storing the Rewards Member Vote event

$postDRRow = new ET_DataExtension_Row();$postDRRow->authStub = $myclient;

$postDRRow->Name = "CoinToss";

$postDRRow->props = array(”memberId" => "12332432",

"tossVote" => "heads”);

$postResponse = $postDRRow->post();print_r($postResponse);

memberId tossVote

Page 33: Programming the ExactTarget Marketing Cloud

Storing the Rewards Member Vote event

$postDRRow = new ET_DataExtension_Row();$postDRRow->authStub = $myclient;

$postDRRow->Name = "CoinToss";

$postDRRow->props = array(”memberId" => "12332432",

"tossVote" => "heads”);

$postResponse = $postDRRow->post();print_r($postResponse);

memberId tossVote

Page 34: Programming the ExactTarget Marketing Cloud

Storing the Rewards Member Vote event

$postDRRow = new ET_DataExtension_Row();$postDRRow->authStub = $myclient;

$postDRRow->Name = "CoinToss";

$postDRRow->props = array(”memberId" => "12332432",

"tossVote" => "heads”);

$postResponse = $postDRRow->post();print_r($postResponse);

memberId tossVote12332432 heads SubscriberKey memberId

Page 35: Programming the ExactTarget Marketing Cloud
Page 36: Programming the ExactTarget Marketing Cloud

Email code to myself

Event TriggeredSend Email

CodeRequest CoinToss RewardsMember

API Call

Send-Time Data ina Data Extension or Subscriber Attribute

Data Extension Subscriber Attributes

Page 37: Programming the ExactTarget Marketing Cloud

Email code to myself: Triggered send eventEvent: Trigger an email send and add personalization data

ET_TriggeredSend ts = new ET_TriggeredSend();ts.AuthStub = $myclient;

ts.CustomerKey = "PromoCode";

ts.Subscribers = new ET_Subscriber[] { new ET_Subscriber() { emailAddress = "[email protected]", subscriberKey = "12332432”, promoCode = "f02020ddE" } };

SendReturn results = ts.Send();

Page 38: Programming the ExactTarget Marketing Cloud

Email code to myself: Triggered send eventEvent: Trigger an email send and add personalization data

ET_TriggeredSend ts = new ET_TriggeredSend();ts.AuthStub = $myclient;

ts.CustomerKey = "PromoCode";

ts.Subscribers = new ET_Subscriber[] { new ET_Subscriber() { emailAddress = "[email protected]", subscriberKey = "12332432”, promoCode = "f02020ddE" } };

SendReturn results = ts.Send();

Page 39: Programming the ExactTarget Marketing Cloud

Email code to myself: Triggered send eventEvent: Trigger an email send and add personalization data

ET_TriggeredSend ts = new ET_TriggeredSend();ts.AuthStub = $myclient;

ts.CustomerKey = "PromoCode";

ts.Subscribers = new ET_Subscriber[] { new ET_Subscriber() { emailAddress = "[email protected]", subscriberKey = "12332432”, promoCode = "f02020ddE" } };

SendReturn results = ts.Send();

Page 40: Programming the ExactTarget Marketing Cloud

Email code to myself: Email personalization

Dear %%First Name%% %%Last Name%%,

Your promo code for free pizza is: %%PromoCode%%

Thanks for voting:%%=Lookup(“CoinToss”,”tossVote”,“memberId”,_subscriberKey)=%%

Substitution String and AMPScript in an Email Template

Rendered Email

Dear John Smith,

Your promo code for free pizza is: f02020ddE

Thanks for voting:Heads

Page 41: Programming the ExactTarget Marketing Cloud

Email code to myself: Email personalizationSubstitution String and AMPScript

in an Email TemplateRendered Email

Dear John Smith,

Your promo code for free pizza is: f02020ddE

Thanks for voting:Heads

Dear %%First Name%% %%Last Name%%,

Your promo code for free pizza is: %%PromoCode%%

Thanks for voting:%%=Lookup(“CoinToss”,”tossVote”,“memberId”,_subscriberKey)=%%

Page 42: Programming the ExactTarget Marketing Cloud

Email code to myself: Email personalizationSubstitution String and AMPScript

in an Email TemplateRendered Email

Data Source #1: Marketing List by Subscriber Key

Dear John Smith,

Your promo code for free pizza is: f02020ddE

Thanks for voting:Heads

Dear %%First Name%% %%Last Name%%,

Your promo code for free pizza is: %%PromoCode%%

Thanks for voting:%%=Lookup(“CoinToss”,”tossVote”,“memberId”,_subscriberKey)=%%

Page 43: Programming the ExactTarget Marketing Cloud

Email code to myself: Email personalizationSubstitution String and AMPScript

in an Email TemplateRendered Email

Data Source #1: Marketing List by Subscriber KeyData Source #2: Transactional Send Data

Dear John Smith,

Your promo code for free pizza is: f02020ddE

Thanks for voting:Heads

Dear %%First Name%% %%Last Name%%,

Your promo code for free pizza is: %%PromoCode%%

Thanks for voting:%%=Lookup(“CoinToss”,”tossVote”,“memberId”,_subscriberKey)=%%

Page 44: Programming the ExactTarget Marketing Cloud

Email code to myself: Email personalization

Dear John Smith,

Your promo code for free pizza is: f02020ddE

Thanks for voting:Heads

Substitution String and AMPScript in an Email Template

Rendered Email

Data Source #1: Marketing List by Subscriber KeyData Source #2: Transactional Send DataData Source #3: Voting Data by SubscriberKey

Dear %%First Name%% %%Last Name%%,

Your promo code for free pizza is: %%PromoCode%%

Thanks for voting:%%=Lookup(“CoinToss”,”tossVote”,“memberId”,_subscriberKey)=%%

Page 45: Programming the ExactTarget Marketing Cloud

Mobile Messaging with Push Notifications

Page 46: Programming the ExactTarget Marketing Cloud

Using push messaging as a customer touchpoint

Page 47: Programming the ExactTarget Marketing Cloud

Using push messaging as a customer touchpoint

POST https://www.exacttargetapis.com/push/v1/messageTag/OEl8ODow/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "InclusionTags": [ "Salesforce", "ExactTarget" ], "ExclusionTags": [ "Competitors" ], "Override": true, "MessageText": "Cloudy with a Chance of Customers - Now playing!", "Sound": "lightning.caf", "Badge": "+1", "OpenDirect": "OD01", "CustomPayload": "{ \"availableSeats\": \"2 billion\" }"}

Page 48: Programming the ExactTarget Marketing Cloud

Using push messaging as a customer touchpoint

POST https://www.exacttargetapis.com/push/v1/messageTag/OEl8ODow/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "InclusionTags": [ "Salesforce", "ExactTarget" ], "ExclusionTags": [ "Competitors" ], "Override": true, "MessageText": "Cloudy with a Chance of Customers - Now playing!", "Sound": "lightning.caf", "Badge": "+1", "OpenDirect": "OD01", "CustomPayload": "{ \"availableSeats\": \"2 billion\" }"}

Page 49: Programming the ExactTarget Marketing Cloud

Using push messaging as a customer touchpoint

POST https://www.exacttargetapis.com/push/v1/messageTag/OEl8ODow/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "InclusionTags": [ "Salesforce", "ExactTarget" ], "ExclusionTags": [ "Competitors" ], "Override": true, "MessageText": "Cloudy with a Chance of Customers - Now playing!", "Sound": "lightning.caf", "Badge": "+1", "OpenDirect": "OD01", "CustomPayload": "{ \"availableSeats\": \"2 billion\" }"}

Page 50: Programming the ExactTarget Marketing Cloud

Using push messaging as a customer touchpoint

POST https://www.exacttargetapis.com/push/v1/messageTag/OEl8ODow/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "InclusionTags": [ "Salesforce", "ExactTarget" ], "ExclusionTags": [ "Competitors" ], "Override": true, "MessageText": "Cloudy with a Chance of Customers - Now playing!", "Sound": "lightning.caf", "Badge": "+1", "OpenDirect": "OD01", "CustomPayload": "{ \"availableSeats\": \"2 billion\" }"}

Page 51: Programming the ExactTarget Marketing Cloud

Mobile Messaging with SMS

Page 52: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

Page 53: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

POST https://www.exacttargetapis.com/sms/v1/messageContact/MzA6Nzg6MA/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "mobileNumbers": [ "13175551212" ], "Subscribe": true, "keyword": "ALERTS", "messageText": "Text ALERTS to 12345 to receive new movie notifications via SMS.", "BlackoutWindow": { "UtcOffset": "-0500", "WindowStart": "1500", "WindowEnd": "2200" }, "SendTime": "2012-10-05 20:01"}

Page 54: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

POST https://www.exacttargetapis.com/sms/v1/messageContact/MzA6Nzg6MA/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "mobileNumbers": [ "13175551212" ], "Subscribe": true, "keyword": "ALERTS", "messageText": "Text ALERTS to 12345 to receive new movie notifications via SMS.", "BlackoutWindow": { "UtcOffset": "-0500", "WindowStart": "1500", "WindowEnd": "2200" }, "SendTime": "2012-10-05 20:01"}

Page 55: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

POST https://www.exacttargetapis.com/sms/v1/messageContact/MzA6Nzg6MA/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "mobileNumbers": [ "13175551212" ], "Subscribe": true, "keyword": "ALERTS", "messageText": "Text ALERTS to 12345 to receive new movie notifications via SMS.", "BlackoutWindow": { "UtcOffset": "-0500", "WindowStart": "1500", "WindowEnd": "2200" }, "SendTime": "2012-10-05 20:01"}

Page 56: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

POST https://www.exacttargetapis.com/sms/v1/messageContact/MzA6Nzg6MA/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "mobileNumbers": [ "13175551212" ], "Subscribe": true, "keyword": "ALERTS", "messageText": "Text ALERTS to 12345 to receive new movie notifications via SMS.", "BlackoutWindow": { "UtcOffset": "-0500", "WindowStart": "1500", "WindowEnd": "2200" }, "SendTime": "2012-10-05 20:01"}

Page 57: Programming the ExactTarget Marketing Cloud

Using SMS messaging as a customer touchpoint

POST https://www.exacttargetapis.com/sms/v1/messageContact/MzA6Nzg6MA/sendAuthorization: Bearer exampletoken1Content-Type: application/json{ "mobileNumbers": [ "13175551212" ], "Subscribe": true, "keyword": "ALERTS", "messageText": "Text ALERTS to 12345 to receive new movie notifications via SMS.", "BlackoutWindow": { "UtcOffset": "-0500", "WindowStart": "1500", "WindowEnd": "2200" }, "SendTime": "2012-10-05 20:01"}

Page 58: Programming the ExactTarget Marketing Cloud

Learning More…

Page 59: Programming the ExactTarget Marketing Cloud

Developer Resources

code.exacttarget.com

Page 60: Programming the ExactTarget Marketing Cloud

Dreamforce Developer Edition

code.exacttarget.com

Page 61: Programming the ExactTarget Marketing Cloud

INNOVATE!!!

Page 62: Programming the ExactTarget Marketing Cloud

Dale McCrory

ExactTarget Principal Product Manager, Fuel Platform

google.com/+DaleMcCrory

Page 63: Programming the ExactTarget Marketing Cloud