Choosing the Best Technical Approach for Salesforce Integration
- Featured Insights
- February 17, 2023
Why do we need Integration?
Ever wonder why we need a specific team of testers, developers, business analysts, consultants, and architects to deliver client work when we can have only developers doing the entire work? Well, we need support and excellence from diverse groups to deliver work collectively, which happens when we work together in a team. Similarly, organizations manage tons of customer data.
This data includes customer PII information, analytical, interactions with marketing and email campaigns, preferences, purchase histories, and touchpoints from various systems, software, apps, and tools. This information is managed by various applications.
No single application can be the source of truth for everything. The result is data silos, customer frustration with multiple login credentials, and a lack of a consistent view of the business.
Addressing this challenge requires a successful integration strategy that focuses on using Salesforce’s powerful data integration API in one place to easily achieve your goals.
What is Exactly a Salesforce Integration?
Here are some advantages of Salesforce Integration
- Improve Productivity.
- Access Data from Different Sources.
- Make Better Decisions.
- Automate workflows.
- Modernize the Data Infrastructure.
- Birds-eye-view on different systems.
What are the considerations for choosing the best
Same transaction vs Multi Thread
Does the entire operation needs to happen in a single transaction or can be chunked in multiple transactions?
Synchronous vs Asynchronous
Does it require processing responses in real-time or near real-time?
Does it fits in the heap size limit?
Guaranteed delivery needed
What if the external system is down?
Do we want a no-code solution in Salesforce?
What authentication protocol is supported by an external system?
What are the considerations for choosing the best Integration patterns
Remote Process Invocation Request and Reply
Salesforce invokes a process on a remote machine, waits for the process to complete, and then monitors its status based on the remote machine’s response.
Remote Process Invocation—Fire and Forget
Salesforce initiates the process on the remote system but does not wait for it to complete. Instead, the remote process receives the request, approves it, and passes control back to Salesforce.
Batch Data Synchronization
Data stored in the Lightning Platform is created or updated to reflect updates from the external system as well as when changes are sent from the Lightning Platform to the external system. Updates in either direction are processed in batches asynchronously.
Data stored on the Lightning Platform is created, retrieved, updated, or deleted by a remote system.
UI Update Based on Data Changes
The Salesforce UI should automatically update because of Salesforce data changes.
Salesforce accesses external data in real time. This eliminates the need to store data in Salesforce and then reconcile it between Salesforce and external systems. Hence, it eliminates the need to do a data migration of external data in Salesforce and saves a lot of storage space for customers.
What are the best practices for Designing Enterprise Integration Architecture in Salesforce?
Data Structure Formatting
To normalize your data, it’s best to start by identifying the initial data schema and possibly the number of subsequent changes in the future.
Integration Pattern Decision
Understanding the core principle of the business use case and deciding a pattern for the integration based upon the type of integration.
Integration Maintenance Process
The integration process requires maintenance like changing data structures, debugging failed responses, updating expired credentials, etc.
Always Accommodate maintenance steps to keep certain parameters configurable, capturing API logs and making use of self-retry mechanisms to make the overall process robust.
Align with the Business value
It is pointless to write complex integrations if it does not solve the business problem. Always design an approach by sticking to the business value it brings.
Use Salesforce Security Best Practices
It is always mandatory to keep security high while designing an integration process. Always store the client credentials in a recommended storage in salesforce such as Named credentials. Also, use OAuth flows for authentication of external applications with Salesforce and set up the policies for access such as IP restrictions, access token timeout, and access level in the Connected app to maintain rightful access to the Salesforce system.