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.
Ad

More Related Content

What's hot (20)

Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
Joshua Hoskins
 
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
 
Introduction to the Salesforce Security Model
Introduction to the Salesforce Security ModelIntroduction to the Salesforce Security Model
Introduction to the Salesforce Security Model
Salesforce Developers
 
Getting Started With Apex REST Services
Getting Started With Apex REST ServicesGetting Started With Apex REST Services
Getting Started With Apex REST Services
Salesforce Developers
 
Salesforce admin training 1
Salesforce admin training 1Salesforce admin training 1
Salesforce admin training 1
HungPham381
 
Two-Way Integration with Writable External Objects
Two-Way Integration with Writable External ObjectsTwo-Way Integration with Writable External Objects
Two-Way Integration with Writable External Objects
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
 
Data model in salesforce
Data model in salesforceData model in salesforce
Data model in salesforce
Chamil Madusanka
 
Salesforce Streaming Api
Salesforce Streaming ApiSalesforce Streaming Api
Salesforce Streaming Api
Jayant Jindal
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basic
sanskriti agarwal
 
Getting started with Salesforce security
Getting started with Salesforce securityGetting started with Salesforce security
Getting started with Salesforce security
Salesforce Admins
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
John Stevenson
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release Management
Salesforce Developers
 
Champion Productivity with Service Cloud
Champion Productivity with Service CloudChampion Productivity with Service Cloud
Champion Productivity with Service Cloud
Salesforce Admins
 
Salesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demoSalesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demo
Adama Sidibé
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
Cloud Analogy
 
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
 
Exploring the Salesforce REST API
Exploring the Salesforce REST APIExploring the Salesforce REST API
Exploring the Salesforce REST API
Salesforce Developers
 
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
Salesforce Admins
 
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Edureka!
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
Joshua Hoskins
 
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
 
Introduction to the Salesforce Security Model
Introduction to the Salesforce Security ModelIntroduction to the Salesforce Security Model
Introduction to the Salesforce Security Model
Salesforce Developers
 
Getting Started With Apex REST Services
Getting Started With Apex REST ServicesGetting Started With Apex REST Services
Getting Started With Apex REST Services
Salesforce Developers
 
Salesforce admin training 1
Salesforce admin training 1Salesforce admin training 1
Salesforce admin training 1
HungPham381
 
Two-Way Integration with Writable External Objects
Two-Way Integration with Writable External ObjectsTwo-Way Integration with Writable External Objects
Two-Way Integration with Writable External Objects
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
 
Salesforce Streaming Api
Salesforce Streaming ApiSalesforce Streaming Api
Salesforce Streaming Api
Jayant Jindal
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basic
sanskriti agarwal
 
Getting started with Salesforce security
Getting started with Salesforce securityGetting started with Salesforce security
Getting started with Salesforce security
Salesforce Admins
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
John Stevenson
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release Management
Salesforce Developers
 
Champion Productivity with Service Cloud
Champion Productivity with Service CloudChampion Productivity with Service Cloud
Champion Productivity with Service Cloud
Salesforce Admins
 
Salesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demoSalesforce Marketing Cloud overview demo
Salesforce Marketing Cloud overview demo
Adama Sidibé
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
Cloud Analogy
 
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
 
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan Osgood
Salesforce Admins
 
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Edureka!
 

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...
Cyber Group
 
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDBFrom Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
shyamraj55
 
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
 
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 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
 
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast IronIntegrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Prolifics
 
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
 
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDBFrom Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
From Events to Persistence: Leveraging Salesforce Replay Channel & CockroachDB
shyamraj55
 
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
 
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 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
 
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
 
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast IronIntegrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Integrating Salesforce.com and Oracle ERP Using IBM WebSphere Cast Iron
Prolifics
 
Ad

Recently uploaded (20)

CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Diabetic neuropathy peripheral autonomic
Diabetic neuropathy peripheral autonomicDiabetic neuropathy peripheral autonomic
Diabetic neuropathy peripheral autonomic
Pankaj Patawari
 
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd yearVitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
ARUN KUMAR
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
Open Access: Revamping Library Learning Resources.
Open Access: Revamping Library Learning Resources.Open Access: Revamping Library Learning Resources.
Open Access: Revamping Library Learning Resources.
Rishi Bankim Chandra Evening College, Naihati, North 24 Parganas, West Bengal, India
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Unit 5: Dividend Decisions and its theories
Unit 5: Dividend Decisions and its theoriesUnit 5: Dividend Decisions and its theories
Unit 5: Dividend Decisions and its theories
bharath321164
 
Operations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdfOperations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdf
Arab Academy for Science, Technology and Maritime Transport
 
High Performance Liquid Chromatography .pptx
High Performance Liquid Chromatography .pptxHigh Performance Liquid Chromatography .pptx
High Performance Liquid Chromatography .pptx
Ayush Srivastava
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
SPRING FESTIVITIES - UK AND USA -
SPRING FESTIVITIES - UK AND USA            -SPRING FESTIVITIES - UK AND USA            -
SPRING FESTIVITIES - UK AND USA -
Colégio Santa Teresinha
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Diabetic neuropathy peripheral autonomic
Diabetic neuropathy peripheral autonomicDiabetic neuropathy peripheral autonomic
Diabetic neuropathy peripheral autonomic
Pankaj Patawari
 
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd yearVitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
Vitamins Chapter-7, Biochemistry and clinical pathology, D.Pharm 2nd year
ARUN KUMAR
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Unit 5: Dividend Decisions and its theories
Unit 5: Dividend Decisions and its theoriesUnit 5: Dividend Decisions and its theories
Unit 5: Dividend Decisions and its theories
bharath321164
 
High Performance Liquid Chromatography .pptx
High Performance Liquid Chromatography .pptxHigh Performance Liquid Chromatography .pptx
High Performance Liquid Chromatography .pptx
Ayush Srivastava
 
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar RabbiPresentation on Tourism Product Development By Md Shaifullar Rabbi
Presentation on Tourism Product Development By Md Shaifullar Rabbi
Md Shaifullar Rabbi
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
Ad

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