SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Track: Developers 
#CNX14 
#CNX14 
Dive Deep into the Fuel APIs 
Kris Chant 
Sr. Technical Product Manager - API 
@sprshrp
Track: Developers 
#CNX14 
Goals – Presentation Overview 
1 2 3 
Intro to Fuel APIs 
• REST 
• SOAP 
• SDKs 
Developer Edition 
• Get Your Own 
Free Developer 
Account! 
Building a Journey: 
• Scenario 
Description 
• Developer Setup 
• Build the Journey
Track: Developers 
#CNX14 
A Brief Introduction
Track: Developers 
#CNX14 
APIs 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Header> 
<oAuth xmlns="http://exacttarget.com"> 
<oAuthToken> 
gd2324hruukedkremtwqhae9 
</oAuthToken> 
</oAuth> 
</soap:Header> 
<soap:Body> 
<RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI" 
<RetrieveRequest> 
<ObjectType>List</ObjectType> 
<Properties>ListName</Properties> 
<Properties>Description</Properties> 
<Properties>Category</Properties> 
<Properties>ListClassification</Properties> 
• SOAP (since 2007) 
• Oldest and comprehensive 
• Programmatically exposes the 
email application
Track: Developers 
#CNX14 
APIs 
POST https://www.exacttargetapis.com/address/v1/validateEmail 
Authorization: Bearer gd2324hruukedkremtwqhae9 
{ 
"email": "iamaspamtrap@spam.com", 
"validators": [ 
"SyntaxValidator", 
"GlobalUnsubValidator", 
"ListDetectiveValidator" 
] 
} 
HTTP/1.1 200 OK 
{ 
"email": "iamaspamtrap@spam.com", 
"valid": false, 
"failedValidation": "ListDetectiveValidator" 
} 
• SOAP (since 2007) 
• Oldest and comprehensive 
• Programmatically exposes the 
email application 
• REST (since 2012) 
• Newer & less comprehensive 
• Multi-channel support
Track: Developers 
#CNX14 
SDKs 
public class PrintAllLists { 
public static void main(String[] args) 
throws ETSdkException 
{ 
ETClient client = new ETClient(); 
List<ETList> lists = 
client.getAllLists(); 
for (ETList list : lists) { 
System.out.println(list.getName()); 
} 
} 
} 
• Native support for major 
programming languages 
and frameworks (Java, .NET, 
PHP, Python, and Ruby) 
• Greatly simplifies integration 
with ExactTarget 
• Faster time to market with 
lower cost 
• Bridges SOAP & REST APIs, 
giving you easy access to all 
capabilities
Track: Developers 
#CNX14 
SDKs 
public class PrintAllLists { 
public static void main(String[] args) 
throws ETSdkException 
{ 
ETClient client = new ETClient(); 
List<ETList> lists = 
client.getAllLists(); 
for (ETList list : lists) { 
System.out.println(list.getName()); 
} 
} 
} 
• Native support for major 
programming languages 
and frameworks (Java, .NET, 
PHP, Python, and Ruby) 
• Greatly simplifies integration 
with ExactTarget 
• Faster time to market with 
lower cost 
• Bridges SOAP & REST APIs, 
giving you easy access to all 
capabilities
Track: Developers 
#CNX14 
SDKs 
public class PrintAllLists { 
public static void main(String args[]) { 
PartnerAPI service = new PartnerAPI(); 
soap = service.getSoap(); 
Client client = ClientProxy.getClient(soap); 
Endpoint endpoint = client.getEndpoint(); 
Map<String, Object> outProperties = new HashMap<String, Object>(); 
outProperties.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN); 
outProperties.put(WSHandlerConstants.USER, username); 
PasswordCallbackHandler callback = new PasswordCallbackHandler(); 
callback.setPassword(password); 
outProperties.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); 
outProperties.put(WSHandlerConstants.PW_CALLBACK_REF, callback); 
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProperties); 
endpoint.getOutInterceptors().add(wssOut); 
endpoint.getOutInterceptors().add(new SAAJOutInterceptor()); 
endpoint.getInInterceptors().add(new LoggingInInterceptor()); 
endpoint.getOutInterceptors().add(new LoggingOutInterceptor()); 
RetrieveRequest retrieveRequest = new RetrieveRequest(); 
retrieveRequest.setObjectType("List"); 
retrieveRequest.getProperties().add("ListName"); 
RetrieveRequestMsg retrieveRequestMsg = new RetrieveRequestMsg(); 
retrieveRequestMsg.setRetrieveRequest(retrieveRequest); 
RetrieveResponseMsg retrieveResponseMsg = soap.retrieve(retrieveRequestMsg); 
for (APIObject apiObject : retrieveResponseMsg.getResults()) { 
List l = (List) apiObject; 
System.out.println(l.getListName()); 
} 
} 
} 
• Native support for major 
programming languages 
and frameworks (Java, .NET, 
PHP, Python, and Ruby) 
• Greatly simplifies integration 
with ExactTarget 
• Faster time to market with 
lower cost 
• Bridges SOAP & REST APIs, 
giving you easy access to all 
capabilities
Track: Developers 
#CNX14 
code.exacttarget.com/developer 
-edition 
kchant@exacttarget.com
Track: Developers 
#CNX14 
Building the Journey
Track: Developers 
#CNX14 
Scenario: 
Fitbit wants to drive installation of their 
Mobile app for new users.
Track: Developers 
#CNX14 
Steps to Get There 
1. Get Your Free Developer Account 
2. Setup your Dev Environment 
3. Import Data 
4. Define Your Contact Model 
5. Build Your Journey
Track: Developers 
#CNX14 
Create your Application
Track: Developers 
#CNX14 
Select API Integration
Track: Developers 
#CNX14 
3. Get your Client ID and Secret
Track: Developers 
#CNX14 
Configure the SDK
Track: Developers 
#CNX14 
Example Code: 
https://github.com/sprshrp/conn 
ections14
Track: Developers 
#CNX14 
Setup your Data Model
Track: Developers 
#CNX14 
Setup your Data Model
Track: Developers 
#CNX14 
Import your Data
Track: Developers 
#CNX14 
Create the Emails
Track: Developers 
#CNX14 
Demo
Track: Developers 
#CNX14 
Map the Contact Model
Track: Developers 
#CNX14 
Define the Contact Model
Track: Developers 
#CNX14 
Build the Journey – Create a Trigger
Track: Developers 
#CNX14 
Define the Trigger Filter
Track: Developers 
#CNX14 
Build the Canvas
Track: Developers 
#CNX14 
The Decision Split
Track: Developers 
#CNX14 
The Decision Split
Track: Developers 
#CNX14 
Event Definition Key
Track: Developers 
#CNX14 
Retrieve an Authorization Token
Track: Developers 
#CNX14 
Execute the Journey
Track: Developers 
#CNX14 
Thank you! 
Recap: 
1. Registered an Account 
2. Setup your Dev Environment 
3. Imported your Data 
4. Defined Your Contact Model 
5. Built Your Journey
Track: Developers 
#CNX14 
Questions? 
Code From Today’s Session 
https://github.com/sprshrp/connections14 
Dev Portal, SDKs, Reference 
http://code.exacttarget.com/developer-edition 
AppCenter 
https://appcenter.exacttarget.com/appcenter
Track: Developers 
#CNX14 
CUSTOMER JOURNEY 
SHOWCASE 
MARKETING 
THOUGHT LEADERS 
EMAIL MARKETING PRODUCT STRATEGY 
& ROADMAP 
PERSONAL 
TRANSFORMATION 
& GROWTH 
SOCIAL MARKETING MOBILE & WEB 
MARKETING 
DEVELOPERS HANDS-ON 
TRAINING 
INDUSTRY 
TRENDSETTERS 
CREATIVITY & 
INNOVATION 
SALESFORCE FOR 
MARKETERS 
ROUNDTABLES
Track: Developers 
#CNX14

Weitere ähnliche Inhalte

Was ist angesagt?

Anypoint MQ-DLQ NYC Meet Up
Anypoint MQ-DLQ NYC Meet UpAnypoint MQ-DLQ NYC Meet Up
Anypoint MQ-DLQ NYC Meet UpNeerajKumar1965
 
Collaborative Contract Driven Development
Collaborative Contract Driven DevelopmentCollaborative Contract Driven Development
Collaborative Contract Driven DevelopmentBilly Korando
 
Angular4 getting started
Angular4 getting startedAngular4 getting started
Angular4 getting startedTejinderMakkar
 
Serverless and you @ Women Who Code London 2020
Serverless and you  @ Women Who Code London 2020Serverless and you  @ Women Who Code London 2020
Serverless and you @ Women Who Code London 2020Gabriela Ferrara
 
How to build Sdk? Best practices
How to build Sdk? Best practicesHow to build Sdk? Best practices
How to build Sdk? Best practicesVitali Pekelis
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersPaweł Żurowski
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2Dhyego Fernando
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftAnkitaJaggi1
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkBo-Yi Wu
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...Heiko Voigt
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkCodemotion
 
Batch Processing with Mule 4
Batch Processing with Mule 4Batch Processing with Mule 4
Batch Processing with Mule 4NeerajKumar1965
 

Was ist angesagt? (15)

Anypoint MQ-DLQ NYC Meet Up
Anypoint MQ-DLQ NYC Meet UpAnypoint MQ-DLQ NYC Meet Up
Anypoint MQ-DLQ NYC Meet Up
 
Collaborative Contract Driven Development
Collaborative Contract Driven DevelopmentCollaborative Contract Driven Development
Collaborative Contract Driven Development
 
Angular4 getting started
Angular4 getting startedAngular4 getting started
Angular4 getting started
 
Serverless and you @ Women Who Code London 2020
Serverless and you  @ Women Who Code London 2020Serverless and you  @ Women Who Code London 2020
Serverless and you @ Women Who Code London 2020
 
An Overview of Angular 4
An Overview of Angular 4 An Overview of Angular 4
An Overview of Angular 4
 
Meetup presentation-june26
Meetup presentation-june26Meetup presentation-june26
Meetup presentation-june26
 
How to build Sdk? Best practices
How to build Sdk? Best practicesHow to build Sdk? Best practices
How to build Sdk? Best practices
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developers
 
Power of LWC + Mulesoft
Power of LWC + MulesoftPower of LWC + Mulesoft
Power of LWC + Mulesoft
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP Framework
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
 
Batch Processing with Mule 4
Batch Processing with Mule 4Batch Processing with Mule 4
Batch Processing with Mule 4
 

Andere mochten auch

Design at Scale: An ExactTarget Case Study
Design at Scale: An ExactTarget Case StudyDesign at Scale: An ExactTarget Case Study
Design at Scale: An ExactTarget Case StudyDesignMap
 
ExactTarget - Sponsor Luncheon Presentation:
ExactTarget - Sponsor Luncheon Presentation:ExactTarget - Sponsor Luncheon Presentation:
ExactTarget - Sponsor Luncheon Presentation:MediaPost
 
Fueling the Funnel through Customer Engagement - ExactTarget
Fueling the Funnel through Customer Engagement - ExactTargetFueling the Funnel through Customer Engagement - ExactTarget
Fueling the Funnel through Customer Engagement - ExactTargetOnline Marketing Summit
 
Implementing Test&Target - Agility2013
Implementing Test&Target - Agility2013Implementing Test&Target - Agility2013
Implementing Test&Target - Agility2013Ensighten
 
Adobe, ExactTarget & The Guardian
Adobe, ExactTarget & The GuardianAdobe, ExactTarget & The Guardian
Adobe, ExactTarget & The GuardianMark Terry
 
Criteo Infrastructure (Platform) Meetup
Criteo Infrastructure (Platform) MeetupCriteo Infrastructure (Platform) Meetup
Criteo Infrastructure (Platform) MeetupIbrahim Abubakari
 
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014ro11 GmbH
 
Customer journey mapping
Customer journey mappingCustomer journey mapping
Customer journey mappingCardiff City FC
 
C# development workflow @ criteo
C# development workflow @ criteoC# development workflow @ criteo
C# development workflow @ criteoIbrahim Abubakari
 
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...recsysfr
 
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...Webrazzi
 
Reinventing the Cisco Brand
Reinventing the Cisco BrandReinventing the Cisco Brand
Reinventing the Cisco BrandMediaPost
 
RecSys 2015: Large-scale real-time product recommendation at Criteo
RecSys 2015: Large-scale real-time product recommendation at CriteoRecSys 2015: Large-scale real-time product recommendation at Criteo
RecSys 2015: Large-scale real-time product recommendation at CriteoRomain Lerallut
 
Disrupting the Marketing Model with Journey Builder
Disrupting the Marketing Model with Journey BuilderDisrupting the Marketing Model with Journey Builder
Disrupting the Marketing Model with Journey BuilderSalesforce Marketing Cloud
 
Can Search Be Machine Learned?
Can Search Be Machine Learned?Can Search Be Machine Learned?
Can Search Be Machine Learned?MediaPost
 
Machine learning at Criteo - Paris Datageeks
Machine learning at Criteo - Paris DatageeksMachine learning at Criteo - Paris Datageeks
Machine learning at Criteo - Paris DatageeksNicolas Le Roux
 
Collaboration friday
Collaboration fridayCollaboration friday
Collaboration fridaykacrey
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Daniel Woods
 
Content marketing that converts - Istanbul
Content marketing that converts - IstanbulContent marketing that converts - Istanbul
Content marketing that converts - IstanbulConversionista
 

Andere mochten auch (20)

Design at Scale: An ExactTarget Case Study
Design at Scale: An ExactTarget Case StudyDesign at Scale: An ExactTarget Case Study
Design at Scale: An ExactTarget Case Study
 
ExactTarget - Sponsor Luncheon Presentation:
ExactTarget - Sponsor Luncheon Presentation:ExactTarget - Sponsor Luncheon Presentation:
ExactTarget - Sponsor Luncheon Presentation:
 
Fueling the Funnel through Customer Engagement - ExactTarget
Fueling the Funnel through Customer Engagement - ExactTargetFueling the Funnel through Customer Engagement - ExactTarget
Fueling the Funnel through Customer Engagement - ExactTarget
 
Implementing Test&Target - Agility2013
Implementing Test&Target - Agility2013Implementing Test&Target - Agility2013
Implementing Test&Target - Agility2013
 
Adobe, ExactTarget & The Guardian
Adobe, ExactTarget & The GuardianAdobe, ExactTarget & The Guardian
Adobe, ExactTarget & The Guardian
 
Criteo Infrastructure (Platform) Meetup
Criteo Infrastructure (Platform) MeetupCriteo Infrastructure (Platform) Meetup
Criteo Infrastructure (Platform) Meetup
 
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014
Customer Journey Analyses: Requirements and Choices Digital Analytics Day 2014
 
Customer journey mapping
Customer journey mappingCustomer journey mapping
Customer journey mapping
 
C# development workflow @ criteo
C# development workflow @ criteoC# development workflow @ criteo
C# development workflow @ criteo
 
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
 
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...
Webrazzi Dijital'14 - Aligning with the Customer (Decision) Journey - Wolfhar...
 
Reinventing the Cisco Brand
Reinventing the Cisco BrandReinventing the Cisco Brand
Reinventing the Cisco Brand
 
RecSys 2015: Large-scale real-time product recommendation at Criteo
RecSys 2015: Large-scale real-time product recommendation at CriteoRecSys 2015: Large-scale real-time product recommendation at Criteo
RecSys 2015: Large-scale real-time product recommendation at Criteo
 
Disrupting the Marketing Model with Journey Builder
Disrupting the Marketing Model with Journey BuilderDisrupting the Marketing Model with Journey Builder
Disrupting the Marketing Model with Journey Builder
 
Can Search Be Machine Learned?
Can Search Be Machine Learned?Can Search Be Machine Learned?
Can Search Be Machine Learned?
 
Machine learning at Criteo - Paris Datageeks
Machine learning at Criteo - Paris DatageeksMachine learning at Criteo - Paris Datageeks
Machine learning at Criteo - Paris Datageeks
 
Collaboration friday
Collaboration fridayCollaboration friday
Collaboration friday
 
Brexit Webinar Series 3
Brexit Webinar Series 3Brexit Webinar Series 3
Brexit Webinar Series 3
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Content marketing that converts - Istanbul
Content marketing that converts - IstanbulContent marketing that converts - Istanbul
Content marketing that converts - Istanbul
 

Ähnlich wie #CNX14 - Dive Deep into the ExactTarget Fuel APIs

Cnx2014 breakouts- dive deep into the fuel apis
Cnx2014 breakouts- dive deep into the fuel apisCnx2014 breakouts- dive deep into the fuel apis
Cnx2014 breakouts- dive deep into the fuel apisKris Chant
 
Ruby on Rails vs ASP.NET MVC
Ruby on Rails vs ASP.NET MVCRuby on Rails vs ASP.NET MVC
Ruby on Rails vs ASP.NET MVCSimone Chiaretta
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET DeveloperJohn Calvert
 
DEVNET-1136 Cisco ONE Enterprise Cloud Suite for Infrastructure Management.
DEVNET-1136	Cisco ONE Enterprise Cloud Suite for Infrastructure Management.DEVNET-1136	Cisco ONE Enterprise Cloud Suite for Infrastructure Management.
DEVNET-1136 Cisco ONE Enterprise Cloud Suite for Infrastructure Management.Cisco DevNet
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreStormpath
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbsAWS Chicago
 
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Lucas Jellema
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using GoCloudOps2005
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIsJohn Calvert
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsTom Johnson
 
Write better code faster with rest data contracts api strat
Write better code faster with rest data contracts   api stratWrite better code faster with rest data contracts   api strat
Write better code faster with rest data contracts api stratKris Chant
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixYunong Xiao
 
58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-serviceshomeworkping3
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar SlidesDuraSpace
 
Continuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in XcodeContinuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in XcodeHiep Luong
 
Leveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsLeveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsDragan Panjkov
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack apiLiang Bo
 

Ähnlich wie #CNX14 - Dive Deep into the ExactTarget Fuel APIs (20)

Cnx2014 breakouts- dive deep into the fuel apis
Cnx2014 breakouts- dive deep into the fuel apisCnx2014 breakouts- dive deep into the fuel apis
Cnx2014 breakouts- dive deep into the fuel apis
 
Ruby on Rails vs ASP.NET MVC
Ruby on Rails vs ASP.NET MVCRuby on Rails vs ASP.NET MVC
Ruby on Rails vs ASP.NET MVC
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
 
Developing With Data Technologies
Developing With Data TechnologiesDeveloping With Data Technologies
Developing With Data Technologies
 
DEVNET-1136 Cisco ONE Enterprise Cloud Suite for Infrastructure Management.
DEVNET-1136	Cisco ONE Enterprise Cloud Suite for Infrastructure Management.DEVNET-1136	Cisco ONE Enterprise Cloud Suite for Infrastructure Management.
DEVNET-1136 Cisco ONE Enterprise Cloud Suite for Infrastructure Management.
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET Core
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
 
WCF - In a Week
WCF - In a WeekWCF - In a Week
WCF - In a Week
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using Go
 
Angular2 inter3
Angular2 inter3Angular2 inter3
Angular2 inter3
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
API Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIsAPI Workshop: Deep dive into REST APIs
API Workshop: Deep dive into REST APIs
 
Write better code faster with rest data contracts api strat
Write better code faster with rest data contracts   api stratWrite better code faster with rest data contracts   api strat
Write better code faster with rest data contracts api strat
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
Continuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in XcodeContinuous Integration and Code Coverage in Xcode
Continuous Integration and Code Coverage in Xcode
 
Leveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutionsLeveraging APIs from SharePoint Framework solutions
Leveraging APIs from SharePoint Framework solutions
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 

Mehr von Salesforce Marketing Cloud

Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List!
Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List! Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List!
Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List! Salesforce Marketing Cloud
 
#CNX14 - Journey Builder - The New App Experience
#CNX14 - Journey Builder - The New App Experience#CNX14 - Journey Builder - The New App Experience
#CNX14 - Journey Builder - The New App ExperienceSalesforce Marketing Cloud
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and SpeedSalesforce Marketing Cloud
 
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...Salesforce Marketing Cloud
 
#CNX14 - Building Enterprise Mobile Apps With Salesforce1
#CNX14 - Building Enterprise Mobile Apps With Salesforce1#CNX14 - Building Enterprise Mobile Apps With Salesforce1
#CNX14 - Building Enterprise Mobile Apps With Salesforce1Salesforce Marketing Cloud
 
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...Salesforce Marketing Cloud
 
#CNX14 - Personalized Experiences: Web & Email Customization Made Easy
#CNX14 - Personalized Experiences: Web & Email Customization Made Easy#CNX14 - Personalized Experiences: Web & Email Customization Made Easy
#CNX14 - Personalized Experiences: Web & Email Customization Made EasySalesforce Marketing Cloud
 
#CNX14 - The Power to Predict: The How-To's of Personalized Content
#CNX14 - The Power to Predict: The How-To's of Personalized Content#CNX14 - The Power to Predict: The How-To's of Personalized Content
#CNX14 - The Power to Predict: The How-To's of Personalized ContentSalesforce Marketing Cloud
 
#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance
#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance
#CNX14 - Make Audiences the Center of Your Advertising for Greater PerformanceSalesforce Marketing Cloud
 
#CNX14 - Social Listening: From Getting Started to Executing at Scale
#CNX14 - Social Listening: From Getting Started to Executing at Scale#CNX14 - Social Listening: From Getting Started to Executing at Scale
#CNX14 - Social Listening: From Getting Started to Executing at ScaleSalesforce Marketing Cloud
 
#CNX14 - Great Customer Service is Great Marketing
#CNX14 - Great Customer Service is Great Marketing#CNX14 - Great Customer Service is Great Marketing
#CNX14 - Great Customer Service is Great MarketingSalesforce Marketing Cloud
 
#CNX14 - Content Marketing: The Art of Business Storytelling
#CNX14 - Content Marketing: The Art of Business Storytelling#CNX14 - Content Marketing: The Art of Business Storytelling
#CNX14 - Content Marketing: The Art of Business StorytellingSalesforce Marketing Cloud
 
#CNX14 - Propelling Your Career with Mentors & Sponsors
#CNX14 - Propelling Your Career with Mentors & Sponsors#CNX14 - Propelling Your Career with Mentors & Sponsors
#CNX14 - Propelling Your Career with Mentors & SponsorsSalesforce Marketing Cloud
 
#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement
#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement
#CNX14 - Use Chatter and Communities to Drive Stronger Customer EngagementSalesforce Marketing Cloud
 
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...Salesforce Marketing Cloud
 
#CNX14 - Marketing and Sales United With a Common Goal
#CNX14 - Marketing and Sales United With a Common Goal#CNX14 - Marketing and Sales United With a Common Goal
#CNX14 - Marketing and Sales United With a Common GoalSalesforce Marketing Cloud
 
#CNX14 - 7 Technology Trends Transforming Customer Communication
#CNX14 - 7 Technology Trends Transforming Customer Communication#CNX14 - 7 Technology Trends Transforming Customer Communication
#CNX14 - 7 Technology Trends Transforming Customer CommunicationSalesforce Marketing Cloud
 
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...Salesforce Marketing Cloud
 

Mehr von Salesforce Marketing Cloud (20)

Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List!
Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List! Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List!
Salesforce Marketing Cloud Partner Webinar: A New Twist on Growing Your List!
 
#CNX14 - Journey Builder - The New App Experience
#CNX14 - Journey Builder - The New App Experience#CNX14 - Journey Builder - The New App Experience
#CNX14 - Journey Builder - The New App Experience
 
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed#CNX14 - Using Ruby for Reliability, Consistency, and Speed
#CNX14 - Using Ruby for Reliability, Consistency, and Speed
 
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
 
#CNX14 - Building Enterprise Mobile Apps With Salesforce1
#CNX14 - Building Enterprise Mobile Apps With Salesforce1#CNX14 - Building Enterprise Mobile Apps With Salesforce1
#CNX14 - Building Enterprise Mobile Apps With Salesforce1
 
#CNX14 - Disruption Panel
#CNX14 - Disruption Panel#CNX14 - Disruption Panel
#CNX14 - Disruption Panel
 
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...
#CNX14 - Get Started with Mobile Marketing: Email, SMS, Push and Responsive E...
 
#CNX14 - Personalized Experiences: Web & Email Customization Made Easy
#CNX14 - Personalized Experiences: Web & Email Customization Made Easy#CNX14 - Personalized Experiences: Web & Email Customization Made Easy
#CNX14 - Personalized Experiences: Web & Email Customization Made Easy
 
#CNX14 - The Power to Predict: The How-To's of Personalized Content
#CNX14 - The Power to Predict: The How-To's of Personalized Content#CNX14 - The Power to Predict: The How-To's of Personalized Content
#CNX14 - The Power to Predict: The How-To's of Personalized Content
 
#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance
#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance
#CNX14 - Make Audiences the Center of Your Advertising for Greater Performance
 
#CNX14 - Social Listening: From Getting Started to Executing at Scale
#CNX14 - Social Listening: From Getting Started to Executing at Scale#CNX14 - Social Listening: From Getting Started to Executing at Scale
#CNX14 - Social Listening: From Getting Started to Executing at Scale
 
#CNX14 - Great Customer Service is Great Marketing
#CNX14 - Great Customer Service is Great Marketing#CNX14 - Great Customer Service is Great Marketing
#CNX14 - Great Customer Service is Great Marketing
 
#CNX14 - Content Marketing: The Art of Business Storytelling
#CNX14 - Content Marketing: The Art of Business Storytelling#CNX14 - Content Marketing: The Art of Business Storytelling
#CNX14 - Content Marketing: The Art of Business Storytelling
 
#CNX14 - Crisis Communication
#CNX14 - Crisis Communication#CNX14 - Crisis Communication
#CNX14 - Crisis Communication
 
#CNX14 - Propelling Your Career with Mentors & Sponsors
#CNX14 - Propelling Your Career with Mentors & Sponsors#CNX14 - Propelling Your Career with Mentors & Sponsors
#CNX14 - Propelling Your Career with Mentors & Sponsors
 
#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement
#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement
#CNX14 - Use Chatter and Communities to Drive Stronger Customer Engagement
 
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
#CNX14 - Accelerate Pipeline with Pardot: The Salesforce B2B Marketing Automa...
 
#CNX14 - Marketing and Sales United With a Common Goal
#CNX14 - Marketing and Sales United With a Common Goal#CNX14 - Marketing and Sales United With a Common Goal
#CNX14 - Marketing and Sales United With a Common Goal
 
#CNX14 - 7 Technology Trends Transforming Customer Communication
#CNX14 - 7 Technology Trends Transforming Customer Communication#CNX14 - 7 Technology Trends Transforming Customer Communication
#CNX14 - 7 Technology Trends Transforming Customer Communication
 
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...
#CNX14 - The Connected Nonprofit and the Connected Campus: Creating Stronger ...
 

#CNX14 - Dive Deep into the ExactTarget Fuel APIs

  • 1. Track: Developers #CNX14 #CNX14 Dive Deep into the Fuel APIs Kris Chant Sr. Technical Product Manager - API @sprshrp
  • 2. Track: Developers #CNX14 Goals – Presentation Overview 1 2 3 Intro to Fuel APIs • REST • SOAP • SDKs Developer Edition • Get Your Own Free Developer Account! Building a Journey: • Scenario Description • Developer Setup • Build the Journey
  • 3. Track: Developers #CNX14 A Brief Introduction
  • 4. Track: Developers #CNX14 APIs <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <oAuth xmlns="http://exacttarget.com"> <oAuthToken> gd2324hruukedkremtwqhae9 </oAuthToken> </oAuth> </soap:Header> <soap:Body> <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI" <RetrieveRequest> <ObjectType>List</ObjectType> <Properties>ListName</Properties> <Properties>Description</Properties> <Properties>Category</Properties> <Properties>ListClassification</Properties> • SOAP (since 2007) • Oldest and comprehensive • Programmatically exposes the email application
  • 5. Track: Developers #CNX14 APIs POST https://www.exacttargetapis.com/address/v1/validateEmail Authorization: Bearer gd2324hruukedkremtwqhae9 { "email": "iamaspamtrap@spam.com", "validators": [ "SyntaxValidator", "GlobalUnsubValidator", "ListDetectiveValidator" ] } HTTP/1.1 200 OK { "email": "iamaspamtrap@spam.com", "valid": false, "failedValidation": "ListDetectiveValidator" } • SOAP (since 2007) • Oldest and comprehensive • Programmatically exposes the email application • REST (since 2012) • Newer & less comprehensive • Multi-channel support
  • 6. Track: Developers #CNX14 SDKs public class PrintAllLists { public static void main(String[] args) throws ETSdkException { ETClient client = new ETClient(); List<ETList> lists = client.getAllLists(); for (ETList list : lists) { System.out.println(list.getName()); } } } • Native support for major programming languages and frameworks (Java, .NET, PHP, Python, and Ruby) • Greatly simplifies integration with ExactTarget • Faster time to market with lower cost • Bridges SOAP & REST APIs, giving you easy access to all capabilities
  • 7. Track: Developers #CNX14 SDKs public class PrintAllLists { public static void main(String[] args) throws ETSdkException { ETClient client = new ETClient(); List<ETList> lists = client.getAllLists(); for (ETList list : lists) { System.out.println(list.getName()); } } } • Native support for major programming languages and frameworks (Java, .NET, PHP, Python, and Ruby) • Greatly simplifies integration with ExactTarget • Faster time to market with lower cost • Bridges SOAP & REST APIs, giving you easy access to all capabilities
  • 8. Track: Developers #CNX14 SDKs public class PrintAllLists { public static void main(String args[]) { PartnerAPI service = new PartnerAPI(); soap = service.getSoap(); Client client = ClientProxy.getClient(soap); Endpoint endpoint = client.getEndpoint(); Map<String, Object> outProperties = new HashMap<String, Object>(); outProperties.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN); outProperties.put(WSHandlerConstants.USER, username); PasswordCallbackHandler callback = new PasswordCallbackHandler(); callback.setPassword(password); outProperties.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); outProperties.put(WSHandlerConstants.PW_CALLBACK_REF, callback); WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProperties); endpoint.getOutInterceptors().add(wssOut); endpoint.getOutInterceptors().add(new SAAJOutInterceptor()); endpoint.getInInterceptors().add(new LoggingInInterceptor()); endpoint.getOutInterceptors().add(new LoggingOutInterceptor()); RetrieveRequest retrieveRequest = new RetrieveRequest(); retrieveRequest.setObjectType("List"); retrieveRequest.getProperties().add("ListName"); RetrieveRequestMsg retrieveRequestMsg = new RetrieveRequestMsg(); retrieveRequestMsg.setRetrieveRequest(retrieveRequest); RetrieveResponseMsg retrieveResponseMsg = soap.retrieve(retrieveRequestMsg); for (APIObject apiObject : retrieveResponseMsg.getResults()) { List l = (List) apiObject; System.out.println(l.getListName()); } } } • Native support for major programming languages and frameworks (Java, .NET, PHP, Python, and Ruby) • Greatly simplifies integration with ExactTarget • Faster time to market with lower cost • Bridges SOAP & REST APIs, giving you easy access to all capabilities
  • 9. Track: Developers #CNX14 code.exacttarget.com/developer -edition kchant@exacttarget.com
  • 10. Track: Developers #CNX14 Building the Journey
  • 11. Track: Developers #CNX14 Scenario: Fitbit wants to drive installation of their Mobile app for new users.
  • 12. Track: Developers #CNX14 Steps to Get There 1. Get Your Free Developer Account 2. Setup your Dev Environment 3. Import Data 4. Define Your Contact Model 5. Build Your Journey
  • 13. Track: Developers #CNX14 Create your Application
  • 14. Track: Developers #CNX14 Select API Integration
  • 15. Track: Developers #CNX14 3. Get your Client ID and Secret
  • 16. Track: Developers #CNX14 Configure the SDK
  • 17. Track: Developers #CNX14 Example Code: https://github.com/sprshrp/conn ections14
  • 18. Track: Developers #CNX14 Setup your Data Model
  • 19. Track: Developers #CNX14 Setup your Data Model
  • 20. Track: Developers #CNX14 Import your Data
  • 21. Track: Developers #CNX14 Create the Emails
  • 23. Track: Developers #CNX14 Map the Contact Model
  • 24. Track: Developers #CNX14 Define the Contact Model
  • 25. Track: Developers #CNX14 Build the Journey – Create a Trigger
  • 26. Track: Developers #CNX14 Define the Trigger Filter
  • 27. Track: Developers #CNX14 Build the Canvas
  • 28. Track: Developers #CNX14 The Decision Split
  • 29. Track: Developers #CNX14 The Decision Split
  • 30. Track: Developers #CNX14 Event Definition Key
  • 31. Track: Developers #CNX14 Retrieve an Authorization Token
  • 32. Track: Developers #CNX14 Execute the Journey
  • 33. Track: Developers #CNX14 Thank you! Recap: 1. Registered an Account 2. Setup your Dev Environment 3. Imported your Data 4. Defined Your Contact Model 5. Built Your Journey
  • 34. Track: Developers #CNX14 Questions? Code From Today’s Session https://github.com/sprshrp/connections14 Dev Portal, SDKs, Reference http://code.exacttarget.com/developer-edition AppCenter https://appcenter.exacttarget.com/appcenter
  • 35. Track: Developers #CNX14 CUSTOMER JOURNEY SHOWCASE MARKETING THOUGHT LEADERS EMAIL MARKETING PRODUCT STRATEGY & ROADMAP PERSONAL TRANSFORMATION & GROWTH SOCIAL MARKETING MOBILE & WEB MARKETING DEVELOPERS HANDS-ON TRAINING INDUSTRY TRENDSETTERS CREATIVITY & INNOVATION SALESFORCE FOR MARKETERS ROUNDTABLES

Hinweis der Redaktion

  1. Unicorn Story
  2. When you’re at Code@, make sure to Download an SDK in the flavor of your choice. You’ll also want to Register for an account on AppCenter.
  3. In this section, we’ll walk through an example that leverages the APIs as well as the SDKs, to accomplish a real world scenario. This scenario is an abbreviated example of the exercises in the Journey Builder for Apps book. You can pick up a free copy in the dev zone.
  4. This Scenario should sound familiar, it’s the same use case described in yesterday’s keynote. We’re going to outline an example of how FitBit could use Journey Builder to Drive Installation of their mobile app for new users.
  5. First, we’d like to introduce something new for you, the developers. This week at connections, we’ve launched Developer Edition, which allows any developer to begin developing applications on the platform for FREE. Log in and break stuff, have a good time.
  6. After you’ve Created your Developer and AppCenter accounts, you’re going to want to create your first application. This application will allow you to make API calls.
  7. Make sure to select API Integration for Application Type.
  8. And then Record your ClientID and Secret
  9. You’ll use your clientId and clientSecret to configure the SDK, as well as to make API calls to the platform.
  10. You can download the following examples on github at this URL. I’ll give you a moment to take a photo or punch in the URL.
  11. Next, we’ll model your customer model into the Marketing Cloud Platform. Here, we’re defining a relational table, which we call a Data Extension. DataExtensionName would be the name of your Customer Model CustomerKey is an identifier you can use to refer to this table by, IsSendable means this table will contain email addresses that you’d like to send email to, which are defined in SendableDataExtensionField and SendableSubscriberField, below.
  12. After we configure the metadata of the Data Extension, we’ll define the columns. In this example, we’ll keep it simple: Email Address, Name and a flag to determine if the customer has installed the mobile app. Notice that we’re setting the EmailAddress as the primary key, which is required.
  13. After we’ve defined our data extension, we’ll use the SDK to begin populating it with our Data. In thissimple example, we’re uploading our Customer’s names and email addresses, but this could easily grow to accommodate much more complex data.
  14. Finally, we’ll use the SDK to create the emails we’ll be sending as part of our Drip campaign. Customer Key is the Primary Key you can refer to the email by, IsHTMLPaste refers to the type of email you’ve created. In this case, you simply populate the Email Body with the HTML body specified above.
  15. Now that we’ve defined our data model, and imported it into the Marketing Cloud, we can now map our data to the Contact model. This mapping allows us to strongly enforce a 1:1 customer model, guaranteeing that you’re always sending data to customers in the right channel at the right time. Because this is an email-based journey, we’re mapping the Customer’s Contact Key to their email address.
  16. Next, we’ll update the Channel Address Order, specifying that the email address in the Data Extension is also an available channel for communication.
  17. After we’ve Extended the Contact Model, we’re ready to begin building our Customer Journey. We’ll start by Creating a Trigger – an entry-point into a customer Journey.
  18. For this journey, we’re interested in driving mobile app installations. We’ll define our filter to only trigger if the flag on their account indicates that they haven’t installed our App yet. In this case, we’re starting the journey for both the case where we’re not sure , or if they’ve explicitly not installed the app.
  19. After we’ve defined our filter, it’s time to build the Drip campaign on the Journey Builder Canvas. Here, if the Filter conditions are met, we’ll define 2 emails to be sent. The first is the welcome email, welcoming the customer to the platform, and encouraging them to download and install the mobile app. If after 3 days, the customer still hasn’t installed the application, we’ll send a second reminder email.
  20. A key part of this journey is that we don’t want to message the customer if they’ve already installed the application. Journey Builder gives us a great tool to manage this evaluation, called the Decision Split. The decision split can be compared to an if-then statement – it evaluates a condition, and performs an action based upon that result. Here, we’re evaluating whether the user has installed the application.
  21. A key part of this journey is that we don’t want to message the customer if they’ve already installed the application. Journey Builder gives us a great tool to manage this evaluation, called the Decision Split. The decision split can be compared to an if-then statement – it evaluates a condition, and performs an action based upon that result. Here, we’re evaluating whether the user has installed the application.
  22. We’re almost complete. After Activating and saving the Journey, we’re now ready to begin guiding customers through it’s steps. In order to execute this Journey, we’ll need to invoke it via the API. To do so, we’ll need to know our Event Definition Key. We’ll use this key to indicate that a journey is ready to be evaluated, and potentially executed. You can access the Event Definition Key by clicking “Trigger Administration” on the Journey Builder dashboard.
  23. The functionality to execute a Journey hasn’t yet made it to all the SDKs, so we’re going to use the REST API natively. Before we perform the REST API Call to execute our Journey, we’ll need to get an authorization token. If we were using the SDK, this would be handled for us. In this example, we POST our clientID and Secret to the requestToken endpoint, and it will return an accessToken, valid for an hour. Please note that you’ll only need to retrieve this token if it has expired, it’s not necessary to retrieve a fresh token before each call.
  24. Armed with our EventDefinitionKey, and our Auth Token, we can now execute the Journey. We POST a call to the events endpoint, indicating which user we’d like to evaluate the journey for. In this case We specify both the ContactKey which we mapped earlier, and the email address for the customer. In this case, these happen to be identical. After the call is made, Journey Builder will evalute The filter we defined, and if the criteria are met, will initiate the customer’s journey. The welcome email will be sent, encouraging the customer to install the mobile app. 3 days later, if the customer Still hasn’t installed the app, a second attempt will be made.
  25. That’s it, thanks for participating! To recap, Using the SOAP and REST APIs, as well as our SDKs, we helped drive a journey to encourage new Fitbit users to download their mobile application. We… 1-5 It’s not difficult to imagine extending that journey, or building new journeys such as the ones we saw at yesterday’s Keynote. I know that was a whirlwind. This presentation was built very to complement the Journey Builder for Apps book, which we’re giving away for free at the Dev Zone. Please feel free to drop by and pick up your copy. And with that, let’s open up the floor to questions:
  26. Data Contract: URI HTTP Verbs, Response Codes Request Parameters Request / Response Body Definitions
  27. Data Contract: URI HTTP Verbs, Response Codes Request Parameters Request / Response Body Definitions
  28. Goals of the client libraries Write less code Make it possible to accomplish advanced use cases (the “20%”) Expose the same objects and properties… … but do so in a way that feels “native” to the language or environment being used Java, PHP, C# libraries officially supported Expect Feature Parity Across all Libraries Auto-generation based on our API Discovery Service
  29. We’re currently developing an API Style Guide, which we will publish on Code@, to ensure Consistency across our RESTFul Interfaces Will define * common parameter names (e.g. created and modifiedDate), custom interactions (e.g. related object hydration, pagination, asynchronous activities) Goal : developers can predictably interact with the API with less frequent trips to the documentation