SlideShare a Scribd company logo
Integration Pattern
Overview
SalesforceCodex.com 1
SalesforceCodex.com 2
About Me
Dhanik Lal Sahni
Technical Architect
Conduent Business Solution
Certified Application Architect
Twitter : @dhaniksahni
Blog : salesforcecodex.com
SalesforceCodex.com 3
Session 1-Agenda
• Provided an integration scenario, describe requirements and
issues that the Architect must consider to select the right pattern
(Layer, Timing, Direction, and Volume).
• In a customer scenario containing business requirements,
summarize which implementation pattern will achieve those
goals.
• Compare and contrast the advantages and drawbacks (design
trade-offs) of using various patterns, such as Remote Process
Invocation—Request and Reply, Remote Process Invocation—Fire
and Forget, Batch Data Synchronization, Remote Call-In, and UI
Update Based on Data Changes.
28%
17%
15%
10%
15%
10%
5%
Integration Architecture
Designer Exam
1 2 3 4 5 6 7
Salesforce Integration Patterns: 17%
SalesforceCodex.com 4
What is Integration?
Integration is the process of connecting different sub-
systems or components into a single larger system that
functions as one.
SalesforceCodex.com 5
Why we need Integration?
1. A 360-degree view of customer information
2. Better data flow
3. Faster business processes
4. Improved efficiency across teams
5. Improved security
6. Reduced costs
SalesforceCodex.com 6
Types of Integration Pattern
Type Description
Remote Process Invocation—
Request and Reply/Response
Salesforce invokes a process on a remote system, waits for completion of that process,
and then tracks state based on the response from the remote system.
Remote Process Invocation—
Fire and Forget
Salesforce invokes a process in a remote system but doesn’t wait for completion of the
process. Instead, the remote process receives and acknowledges the request and then
hands off control back to Salesforce.
Batch Data Synchronization Data stored in Lightning Platform is created or refreshed to reflect updates from an
external system, and when changes from Lightning Platform are sent to an external
system. Updates in either direction are done in a batch manner.
Remote Call-In Data stored in Lightning Platform is created, retrieved, updated, or deleted by a remote
system
UI Update Based on Data
Changes
The Salesforce user interface must be automatically updated as a result of changes to
Salesforce data
Data Virtualization Salesforce accesses external data in real time. This removes the need to persist data in
Salesforce and then reconcile the data between Salesforce and the external system.
SalesforceCodex.com 7
Integration Pattern Approach
Data Integration
Process Integration
Virtual Integration
Address the requirement to synchronize data that resides in two or
more systems so that both systems are in sync.
• Address the need for a business process to leverage two or
more applications to complete its task.
• Triggering application has to call across process boundaries to
other applications
• Address the need for a user to view, search, and modify data
that’s stored in an external system
• Triggering application has to call out to other applications and
interact with their data in real time
SalesforceCodex.com 8
Pattern Selection Aspects
Source/Target
Timing
Specifies the style of integration: Process, Data, or Virtual
• Synchronous—Blocking or “near-real-time” requests
• Asynchronous—Non-blocking, queue, or message-
based requests
Type
Specifies the requester of the integration transaction along with
the target(s) that provide the information.
SalesforceCodex.com 9
Pattern Selection Matrix
Source/Target Process
Integration
Data
Integration
Virtual
Integration
Synchronous Asynchronous Patterns to Consider
Type Timing
  Remote Process
Invocation- Request n
Response
Salesforce –>
Other System


Remote Process
Invocation- Fire n Forget


Remote Process
Invocation- Request n
Response
UI Update Based on
data changes
 Data Virtualization
SalesforceCodex.com 10
Pattern Selection Matrix
Source/Target Process
Integration
Data
Integration
Virtual
Integration
Synchronous Asynchronous Patterns to Consider
Type Timing
  Remote Call-in
Other System
–> Salesforce


Remote Call-in



Remote Call-In
Batch Data
Synchronization
SalesforceCodex.com 11
Classify Integration API
SalesforceCodex.com 12
Integration Layers?
SalesforceCodex.com 13
Factors which will affect Pattern
Same
Transaction
Synchronous/
Asynchronous
Message Size
Same Transaction
Any operation required on
response from remote
system?
Synchronous/Asynchronous
Process need to be done in real time
or near real time?
Guaranteed
Delivery
Contract First
Declarative
Preferred
Message Size
Message size is small or
big?
Contract First Integration
Remote system support
Salesforce contract?
Guaranteed Delivery
What if external system is down?
Declarative Preferred
Integrate with Standard or custom
code?
SalesforceCodex.com 14
Remote Process Invocation—Request and Reply
Problem : When an event occurs in Salesforce, how do you initiate a process in a remote
system, pass the required information to that process, receive a response from the remote
system, and then use that response data to make updates within Salesforce?
Solution Fit/Rating Pattern Description
External Services Best
Enhanced External Services best fit if
1. External Service is REST API
2. Request and response definitions
contain primitive data types
3. Transaction can initiate from Flow
4. Transaction doesn’t risk exceeding
the synchronous Apex governor
limits
SalesforceCodex.com 15
Remote Process Invocation—Request and Reply
Solution Fit/Rating Pattern Description
Salesforce Lightning or VF Page Best
• Process can initiate form custom UI
• Salesforce enables us to consume a WSDL and generate a
resulting proxy Apex class.
• It provide HTTP service to do REST API operations.
• Full Control of logic
Trigger Suboptimal
1. Apex triggers to perform external callout on data changes
2. Call should be asynchronous
3. Not suited for this. Can be used In fire n forget calls.
Batch Apex job Suboptimal
1. Make calls to a remote system from a batch job
2. Given batch has limits to the number of calls
SalesforceCodex.com 16
Remote Process Invocation—Fire and Forget
Problem : When an event occurs in Salesforce, how do you initiate a process in a remote
system and pass the required information to that process without waiting for a response
from the remote system?
Solution Fit/Rating Pattern Description
Process-driven platform events Best
1. Publish Platform Event when remote process need to be invoked
from an insert or update event
2. Can process same event to multiple systems
3. Use Flow or process builder to process event
Customization-driven platform
events
Good
1. When point n click not works then use custom platform events
2. Publish and consume platform events by using Apex or an API.
Workflow-driven outbound
messaging
Good
1. Use when remote process is invoked from an insert or update
event.
2. Messages are sent asynchronously
3. Contract First Integration
4. Solution becomes a “first-mile” guarantee of delivery.
5. Retry if successful response is not received
SalesforceCodex.com 17
Remote Process Invocation—Fire and Forget
Solution Fit/Rating Pattern Description
Salesforce Lightning or VF Page Best
• Process can initiate form custom UI
• User interface-based scenarios, but does require customization
• Salesforce enables you to consume a WSDL and generate a
resulting proxy Apex class.
• It provide HTTP service to do REST API operations.
Trigger Suboptimal
1. Apex triggers to perform external callout on data changes
2. Call should be asynchronous
Batch Apex job Suboptimal
1. Make calls to a remote system from a batch job
2. Given batch has limits to the number of calls
SalesforceCodex.com 18
Batch Data Synchronization
Problem : How do you import data into Salesforce and export data out of Salesforce, taking
into consideration that these imports and exports can interfere with end-user operations
during business hours, and involve large amounts of data?
Solution Fit/Rating Pattern Description
Salesforce Change Data Capture Best
• Change Data Capture publishes change events, which represent
changes to Salesforce records.
• Receive near-real-time changes of Salesforce records
ETL Tool Best
1. Connect to system, extract data and transform in required format
2. Upload data using Bulk API
Remote Call-in Good
System can call each other whenever data is changed.
SalesforceCodex.com 19
Remote Call-in
Problem : How does a remote system connect and authenticate with Salesforce to notify
Salesforce about external events, create records, and update existing records?
1. SOAP APIs can be used by clients to
• Publish events to notify your Salesforce org
• Query data in your org
• Create, update, and delete data
• Obtain metadata about your org
• Run utilities to perform administrative tasks
2. Valid login session is required.
3. Provides Enterprise WSDL and Partner WSDL for
communication
4. Client wait for response
Best
SalesforceCodex.com 20
Remote Call-in
Problem : How does a remote system connect and authenticate with Salesforce to notify
Salesforce about external events, create records, and update existing records?
REST APIs can be used by clients to
• Publish events to notify your Salesforce org
• Query data in your org
• Create, update, and delete data
• Obtain metadata about your org
• Valid login session is required.
• Client wait for response
• Each record treated as separate transaction
• For bulk data operations (more than 500,000
records), use the REST-based Bulk API.
Best
SalesforceCodex.com 21
Remote Call-in
• Apex class can be used as web service method
• Use when full transactional support is
required
• Custom Logic is required
Apex web
services
Apex REST
services
• Apex class exposed as REST URI
• Use for multiple updates in same transaction
• No need to consume WSDL
Bulk API
• REST based API to support larger data sets
• Support query, update, delete records large
no of records asynchronously
Sub
optimal
Optimal
Sub
optimal
SalesforceCodex.com 22
UI Update Based on Data Changes
Problem : When an event occurs in Salesforce, how can the user be notified in the
Salesforce user interface without having to refresh their screen and potentially losing work?
Salesforce Streaming API is best for this use case.
A JavaScript-based implementation of the CometD required
SalesforceCodex.com 23
Data Virtualization
Problem : How do you view, search, and modify data that’s stored outside of Salesforce,
without moving the data from the external system into Salesforce?
Solution Fit/Rating
Salesforce Connect Best
• Use Salesforce Connect to access data from external sources, along
with your Salesforce data
• Salesforce Connect maps data tables in external systems to external
objects in your org.
• Salesforce Connect uses a live connection to external data to always
keep external objects up-to-date.
Request and Reply Suboptimal
1. Use Salesforce web service APIs to make ad-hoc data requests to
access and update external system data.
2. Use Salesforce SOAP API.
3. A custom Visualforce page or button initiates an Apex SOAP callout
in a synchronous manner
SalesforceCodex.com 24
Pattern Summary
Request &
Response
Fire & Forget UI Update
Batch
Integration
Remote Call-In UI Update
Data
Virtualization
Salesforce waits
for response
Response not
needed
immediately
Data
Synchronization
between two
systems
External System
Calling Salesforce
Refresh UI on
data changes
Show live
external data
salesforcecodex.com 25
Keep Exploring. Keep Learning.

More Related Content

What's hot

Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
Salesforce overview
Salesforce overviewSalesforce overview
Salesforce overview
Ratchata Ardchawuthikulawong
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
Salesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demoSalesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demo
Adama Sidibé
 
Enterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the FieldEnterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the Field
Salesforce Developers
 
Introduction to Salesforce.com
Introduction to Salesforce.comIntroduction to Salesforce.com
Introduction to Salesforce.com
Edureka!
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
Salesforce Developers
 
Deep dive into Salesforce Connected App
Deep dive into Salesforce Connected AppDeep dive into Salesforce Connected App
Deep dive into Salesforce Connected App
Dhanik Sahni
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
Salesforce Developers
 
Salesforce Lightning Experience Overview by Brainiate
Salesforce Lightning Experience Overview by BrainiateSalesforce Lightning Experience Overview by Brainiate
Salesforce Lightning Experience Overview by Brainiate
brainiate
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
Sujesh Ramachandran
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
Rich Helton
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
Salesforce Developers
 
Data model in salesforce
Data model in salesforceData model in salesforce
Data model in salesforce
Chamil Madusanka
 
Introduction to External Objects and the OData Connector
Introduction to External Objects and the OData ConnectorIntroduction to External Objects and the OData Connector
Introduction to External Objects and the OData Connector
Salesforce Developers
 
Architect day 20181128 - Afternoon Session
Architect day 20181128 - Afternoon SessionArchitect day 20181128 - Afternoon Session
Architect day 20181128 - Afternoon Session
Salesforce - Sweden, Denmark, Norway
 
Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutions
JanBask LLC
 
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
Yury Bondarau
 
Session 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCESession 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCE
SmritiSharan1
 

What's hot (20)

Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Salesforce overview
Salesforce overviewSalesforce overview
Salesforce overview
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Salesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demoSalesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demo
 
Enterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the FieldEnterprise Integration - Solution Patterns From the Field
Enterprise Integration - Solution Patterns From the Field
 
Introduction to Salesforce.com
Introduction to Salesforce.comIntroduction to Salesforce.com
Introduction to Salesforce.com
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
 
Deep dive into Salesforce Connected App
Deep dive into Salesforce Connected AppDeep dive into Salesforce Connected App
Deep dive into Salesforce Connected App
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
 
Salesforce Lightning Experience Overview by Brainiate
Salesforce Lightning Experience Overview by BrainiateSalesforce Lightning Experience Overview by Brainiate
Salesforce Lightning Experience Overview by Brainiate
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
 
Data model in salesforce
Data model in salesforceData model in salesforce
Data model in salesforce
 
Introduction to External Objects and the OData Connector
Introduction to External Objects and the OData ConnectorIntroduction to External Objects and the OData Connector
Introduction to External Objects and the OData Connector
 
Architect day 20181128 - Afternoon Session
Architect day 20181128 - Afternoon SessionArchitect day 20181128 - Afternoon Session
Architect day 20181128 - Afternoon Session
 
Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutions
 
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
Salesforce Security Model (Dmitry Goshko, Igor Haritonovich)
 
Session 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCESession 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCE
 

Similar to Salesforce Integration Pattern Overview

Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Cyber Group
 
JDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platformJDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platform
Deepu Chacko
 
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic EventsSalesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 
Unlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with ConfluentUnlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with Confluent
AaronLieberman5
 
SAP and Salesforce Integration
SAP and Salesforce IntegrationSAP and Salesforce Integration
SAP and Salesforce Integration
Glenn Johnson
 
Microsoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
Microsoft Sync Framework (part 1) ABTO Software Lecture GarntsarikMicrosoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
Microsoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
ABTO Software
 
Control your world using the Salesforce1 Platform (IoT)
Control your world using the Salesforce1 Platform (IoT)Control your world using the Salesforce1 Platform (IoT)
Control your world using the Salesforce1 Platform (IoT)
InternetCreations
 
The Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceThe Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With Salesforce
AaronLieberman5
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
MysoreMuleSoftMeetup
 
Salesforce For Brady
Salesforce For BradySalesforce For Brady
Salesforce For Brady
luke_leonhard
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
pdufourSFDC
 
A Review on Salesforce Integration
A Review on Salesforce IntegrationA Review on Salesforce Integration
A Review on Salesforce Integration
ijtsrd
 
Integration study group 2: Patterns
Integration study group 2: PatternsIntegration study group 2: Patterns
Integration study group 2: Patterns
gemziebeth
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Developers
 
The Importance of Integration to Salesforce Success
The Importance of Integration to Salesforce SuccessThe Importance of Integration to Salesforce Success
The Importance of Integration to Salesforce Success
Darren Cunningham
 
Salesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica CloudSalesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica Cloud
Darren Cunningham
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
Shivanath Devinarayanan
 
Build Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectBuild Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku Connect
Jeff Douglas
 
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s GuideIntegrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Salesforce.org
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
Jitendra Bafna
 

Similar to Salesforce Integration Pattern Overview (20)

Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
 
JDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platformJDF18 - Connecting the customer success platform
JDF18 - Connecting the customer success platform
 
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic EventsSalesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
 
Unlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with ConfluentUnlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with Confluent
 
SAP and Salesforce Integration
SAP and Salesforce IntegrationSAP and Salesforce Integration
SAP and Salesforce Integration
 
Microsoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
Microsoft Sync Framework (part 1) ABTO Software Lecture GarntsarikMicrosoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
Microsoft Sync Framework (part 1) ABTO Software Lecture Garntsarik
 
Control your world using the Salesforce1 Platform (IoT)
Control your world using the Salesforce1 Platform (IoT)Control your world using the Salesforce1 Platform (IoT)
Control your world using the Salesforce1 Platform (IoT)
 
The Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceThe Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With Salesforce
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
 
Salesforce For Brady
Salesforce For BradySalesforce For Brady
Salesforce For Brady
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
 
A Review on Salesforce Integration
A Review on Salesforce IntegrationA Review on Salesforce Integration
A Review on Salesforce Integration
 
Integration study group 2: Patterns
Integration study group 2: PatternsIntegration study group 2: Patterns
Integration study group 2: Patterns
 
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
 
The Importance of Integration to Salesforce Success
The Importance of Integration to Salesforce SuccessThe Importance of Integration to Salesforce Success
The Importance of Integration to Salesforce Success
 
Salesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica CloudSalesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica Cloud
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Build Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectBuild Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku Connect
 
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s GuideIntegrating SIS’s with Salesforce: An Accidental Integrator’s Guide
Integrating SIS’s with Salesforce: An Accidental Integrator’s Guide
 
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
MuleSoft Surat Virtual Meetup#24 - MuleSoft and Salesforce Integration and De...
 

Recently uploaded

Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
Bisnar Chase Personal Injury Attorneys
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Assignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docxAssignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docx
ArianaBusciglio
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 

Recently uploaded (20)

Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Assignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docxAssignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docx
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 

Salesforce Integration Pattern Overview

  • 2. SalesforceCodex.com 2 About Me Dhanik Lal Sahni Technical Architect Conduent Business Solution Certified Application Architect Twitter : @dhaniksahni Blog : salesforcecodex.com
  • 3. SalesforceCodex.com 3 Session 1-Agenda • Provided an integration scenario, describe requirements and issues that the Architect must consider to select the right pattern (Layer, Timing, Direction, and Volume). • In a customer scenario containing business requirements, summarize which implementation pattern will achieve those goals. • Compare and contrast the advantages and drawbacks (design trade-offs) of using various patterns, such as Remote Process Invocation—Request and Reply, Remote Process Invocation—Fire and Forget, Batch Data Synchronization, Remote Call-In, and UI Update Based on Data Changes. 28% 17% 15% 10% 15% 10% 5% Integration Architecture Designer Exam 1 2 3 4 5 6 7 Salesforce Integration Patterns: 17%
  • 4. SalesforceCodex.com 4 What is Integration? Integration is the process of connecting different sub- systems or components into a single larger system that functions as one.
  • 5. SalesforceCodex.com 5 Why we need Integration? 1. A 360-degree view of customer information 2. Better data flow 3. Faster business processes 4. Improved efficiency across teams 5. Improved security 6. Reduced costs
  • 6. SalesforceCodex.com 6 Types of Integration Pattern Type Description Remote Process Invocation— Request and Reply/Response Salesforce invokes a process on a remote system, waits for completion of that process, and then tracks state based on the response from the remote system. Remote Process Invocation— Fire and Forget Salesforce invokes a process in a remote system but doesn’t wait for completion of the process. Instead, the remote process receives and acknowledges the request and then hands off control back to Salesforce. Batch Data Synchronization Data stored in Lightning Platform is created or refreshed to reflect updates from an external system, and when changes from Lightning Platform are sent to an external system. Updates in either direction are done in a batch manner. Remote Call-In Data stored in Lightning Platform is created, retrieved, updated, or deleted by a remote system UI Update Based on Data Changes The Salesforce user interface must be automatically updated as a result of changes to Salesforce data Data Virtualization Salesforce accesses external data in real time. This removes the need to persist data in Salesforce and then reconcile the data between Salesforce and the external system.
  • 7. SalesforceCodex.com 7 Integration Pattern Approach Data Integration Process Integration Virtual Integration Address the requirement to synchronize data that resides in two or more systems so that both systems are in sync. • Address the need for a business process to leverage two or more applications to complete its task. • Triggering application has to call across process boundaries to other applications • Address the need for a user to view, search, and modify data that’s stored in an external system • Triggering application has to call out to other applications and interact with their data in real time
  • 8. SalesforceCodex.com 8 Pattern Selection Aspects Source/Target Timing Specifies the style of integration: Process, Data, or Virtual • Synchronous—Blocking or “near-real-time” requests • Asynchronous—Non-blocking, queue, or message- based requests Type Specifies the requester of the integration transaction along with the target(s) that provide the information.
  • 9. SalesforceCodex.com 9 Pattern Selection Matrix Source/Target Process Integration Data Integration Virtual Integration Synchronous Asynchronous Patterns to Consider Type Timing   Remote Process Invocation- Request n Response Salesforce –> Other System   Remote Process Invocation- Fire n Forget   Remote Process Invocation- Request n Response UI Update Based on data changes  Data Virtualization
  • 10. SalesforceCodex.com 10 Pattern Selection Matrix Source/Target Process Integration Data Integration Virtual Integration Synchronous Asynchronous Patterns to Consider Type Timing   Remote Call-in Other System –> Salesforce   Remote Call-in    Remote Call-In Batch Data Synchronization
  • 13. SalesforceCodex.com 13 Factors which will affect Pattern Same Transaction Synchronous/ Asynchronous Message Size Same Transaction Any operation required on response from remote system? Synchronous/Asynchronous Process need to be done in real time or near real time? Guaranteed Delivery Contract First Declarative Preferred Message Size Message size is small or big? Contract First Integration Remote system support Salesforce contract? Guaranteed Delivery What if external system is down? Declarative Preferred Integrate with Standard or custom code?
  • 14. SalesforceCodex.com 14 Remote Process Invocation—Request and Reply Problem : When an event occurs in Salesforce, how do you initiate a process in a remote system, pass the required information to that process, receive a response from the remote system, and then use that response data to make updates within Salesforce? Solution Fit/Rating Pattern Description External Services Best Enhanced External Services best fit if 1. External Service is REST API 2. Request and response definitions contain primitive data types 3. Transaction can initiate from Flow 4. Transaction doesn’t risk exceeding the synchronous Apex governor limits
  • 15. SalesforceCodex.com 15 Remote Process Invocation—Request and Reply Solution Fit/Rating Pattern Description Salesforce Lightning or VF Page Best • Process can initiate form custom UI • Salesforce enables us to consume a WSDL and generate a resulting proxy Apex class. • It provide HTTP service to do REST API operations. • Full Control of logic Trigger Suboptimal 1. Apex triggers to perform external callout on data changes 2. Call should be asynchronous 3. Not suited for this. Can be used In fire n forget calls. Batch Apex job Suboptimal 1. Make calls to a remote system from a batch job 2. Given batch has limits to the number of calls
  • 16. SalesforceCodex.com 16 Remote Process Invocation—Fire and Forget Problem : When an event occurs in Salesforce, how do you initiate a process in a remote system and pass the required information to that process without waiting for a response from the remote system? Solution Fit/Rating Pattern Description Process-driven platform events Best 1. Publish Platform Event when remote process need to be invoked from an insert or update event 2. Can process same event to multiple systems 3. Use Flow or process builder to process event Customization-driven platform events Good 1. When point n click not works then use custom platform events 2. Publish and consume platform events by using Apex or an API. Workflow-driven outbound messaging Good 1. Use when remote process is invoked from an insert or update event. 2. Messages are sent asynchronously 3. Contract First Integration 4. Solution becomes a “first-mile” guarantee of delivery. 5. Retry if successful response is not received
  • 17. SalesforceCodex.com 17 Remote Process Invocation—Fire and Forget Solution Fit/Rating Pattern Description Salesforce Lightning or VF Page Best • Process can initiate form custom UI • User interface-based scenarios, but does require customization • Salesforce enables you to consume a WSDL and generate a resulting proxy Apex class. • It provide HTTP service to do REST API operations. Trigger Suboptimal 1. Apex triggers to perform external callout on data changes 2. Call should be asynchronous Batch Apex job Suboptimal 1. Make calls to a remote system from a batch job 2. Given batch has limits to the number of calls
  • 18. SalesforceCodex.com 18 Batch Data Synchronization Problem : How do you import data into Salesforce and export data out of Salesforce, taking into consideration that these imports and exports can interfere with end-user operations during business hours, and involve large amounts of data? Solution Fit/Rating Pattern Description Salesforce Change Data Capture Best • Change Data Capture publishes change events, which represent changes to Salesforce records. • Receive near-real-time changes of Salesforce records ETL Tool Best 1. Connect to system, extract data and transform in required format 2. Upload data using Bulk API Remote Call-in Good System can call each other whenever data is changed.
  • 19. SalesforceCodex.com 19 Remote Call-in Problem : How does a remote system connect and authenticate with Salesforce to notify Salesforce about external events, create records, and update existing records? 1. SOAP APIs can be used by clients to • Publish events to notify your Salesforce org • Query data in your org • Create, update, and delete data • Obtain metadata about your org • Run utilities to perform administrative tasks 2. Valid login session is required. 3. Provides Enterprise WSDL and Partner WSDL for communication 4. Client wait for response Best
  • 20. SalesforceCodex.com 20 Remote Call-in Problem : How does a remote system connect and authenticate with Salesforce to notify Salesforce about external events, create records, and update existing records? REST APIs can be used by clients to • Publish events to notify your Salesforce org • Query data in your org • Create, update, and delete data • Obtain metadata about your org • Valid login session is required. • Client wait for response • Each record treated as separate transaction • For bulk data operations (more than 500,000 records), use the REST-based Bulk API. Best
  • 21. SalesforceCodex.com 21 Remote Call-in • Apex class can be used as web service method • Use when full transactional support is required • Custom Logic is required Apex web services Apex REST services • Apex class exposed as REST URI • Use for multiple updates in same transaction • No need to consume WSDL Bulk API • REST based API to support larger data sets • Support query, update, delete records large no of records asynchronously Sub optimal Optimal Sub optimal
  • 22. SalesforceCodex.com 22 UI Update Based on Data Changes Problem : When an event occurs in Salesforce, how can the user be notified in the Salesforce user interface without having to refresh their screen and potentially losing work? Salesforce Streaming API is best for this use case. A JavaScript-based implementation of the CometD required
  • 23. SalesforceCodex.com 23 Data Virtualization Problem : How do you view, search, and modify data that’s stored outside of Salesforce, without moving the data from the external system into Salesforce? Solution Fit/Rating Salesforce Connect Best • Use Salesforce Connect to access data from external sources, along with your Salesforce data • Salesforce Connect maps data tables in external systems to external objects in your org. • Salesforce Connect uses a live connection to external data to always keep external objects up-to-date. Request and Reply Suboptimal 1. Use Salesforce web service APIs to make ad-hoc data requests to access and update external system data. 2. Use Salesforce SOAP API. 3. A custom Visualforce page or button initiates an Apex SOAP callout in a synchronous manner
  • 24. SalesforceCodex.com 24 Pattern Summary Request & Response Fire & Forget UI Update Batch Integration Remote Call-In UI Update Data Virtualization Salesforce waits for response Response not needed immediately Data Synchronization between two systems External System Calling Salesforce Refresh UI on data changes Show live external data