Salesforce Integration Guide
The ability to seamlessly connect and consolidate data across various platforms is crucial for success.?
Salesforce, a leading customer relationship management (CRM) platform, empowers businesses to streamline their operations and enhance customer experiences. However, to harness its full potential, effective Salesforce integration is essential.?
In this comprehensive guide, we will explore the key aspects of Salesforce integration, offering a roadmap for businesses to achieve seamless connectivity and maximize their Salesforce investment.
The purpose of this guide is not to teach you how to implement an integration step by step. Instead, we hope to give you an introduction to understanding integration concepts, ready for you to move on to the more complicated aspects later.
Firstly, let us understand the meaning of Salesforce Integration.?
What is Salesforce Integration?
Salesforce Integration is like making different computer systems work together smoothly. It's the process of connecting two or more systems so that they can share information and make things run more efficiently.
Imagine having information in one computer program that you also need in another. With Salesforce Integration, you can link them up, making it easy to handle information across different tasks and programs.
Why is integration important?
In today's digital world, we always want to work faster and provide the best experience for our customers. Systems rarely work alone anymore. That's why integrating them is crucial. It helps us become more efficient, doing things quickly, and it's something that can grow as our needs get bigger.
Basic Integration Framework and Architecture
When we link up computer systems, there are a few ways to do it. Let's talk about three methods: Point-to-Point Integration, Hub-and-Spoke Integration, and Enterprise Service Bus (ESB).
Point-to-Point Integration:
Think of it like a direct line between two systems. If you have a sales app talking to a billing system, a shipping app, and a tracking system separately, that's point-to-point. The challenge is, if you want the tracking and shipping apps to chat, you'll need another direct line. It's easy for a few systems but gets tricky to manage as you add more. Also, it can be costly and tough to scale.
Hub-and-Spoke Integration:
Now, picture a central hub that connects all the systems. Instead of a direct line between each pair, all systems talk through this central hub. It's like a traffic cop directing everyone. This setup is easier to design and implement, but it comes with a catch. If the hub fails, everything stops. Also, it might struggle with lots of data.
Enterprise Service Bus Integration (ESB):
ESB is like the upgraded version of hub-and-spoke. Here, an integration engine connects all systems. It's great for complex tasks like directing messages to different systems, deciding the order of actions, transforming messages between systems, and adding extra security layers. It's like having an adjustable adapter for each system – making it more flexible as your needs change.
So, when choosing how to connect your systems, think about your needs. If it's simple and won't change much, point-to-point might work. For something more robust, hub-and-spoke could be your choice. And if you're dealing with a complex dance of data, ESB might be the star of the show.
Different Approaches to Time-Based Salesforce Integration Processes
In the world of Salesforce integration, the timing of processes matters. There are three types: Synchronous, Asynchronous, and Batch processes. Let's explore when to use each.
Synchronous Process:
What it is: When a user does something, like creating a new account, and needs an immediate response before moving on.
Tools/Techniques: REST or SOAP API
Scenario: Think of it like checking if a Salesforce account already exists in an older system before saving the new one.
Asynchronous Process:
What it is: Similar to synchronous, but the user doesn't have to wait for the system's response to keep working.
Tools/Techniques: MQ, Kafka
Scenario: Imagine changing an account record, and the system starts replicating the change to other systems immediately. Meanwhile, the user can continue without waiting for this replication.
Batch Process:
What it is: Handling big chunks of data by breaking it down and processing it in steps, usually scheduled.
Tools/Techniques: Bulk API/ETL/File Transfer
Scenario: When there's a need to update a lot of account information daily in a back-end system, this is your go-to. It's like processing a bulk of updates in one go, making it efficient.
What is an API?
API, which stands for Application Programming Interface, encompasses a collection of definitions and protocols designed for the construction and amalgamation of application software. By facilitating integration with diverse systems and data, APIs pave the way for the emergence of innovative business models, products, and services.
SOAP, or Simple Object Access Protocol, is like a set of rules for sharing information between a computer and a service online. It uses a language called XML to encode the information that's being exchanged.
REST, which stands for Representational State Transfer, is a way for developers to talk to a server on the internet using standard methods like GET, POST, PUT, and DELETE. It's like a set of guidelines for how to ask for or change information on the web. REST APIs use simple formats like JSON or XML to make data easy to understand.
GraphQL was created as a response to REST APIs. It lets you ask for exactly what you need, making the process simpler and the information you get lighter. Instead of getting a lot of unnecessary stuff, you can be specific about what you want, and the API will give you just that.
In gRPC, RPC stands for Remote Procedure Call. It's like asking another computer to do something for you, but it's not right next to you. You choose what you want to do, send a message with all the needed details, and the server (the other computer) does the job. It then sends the result back to you. It's a way for computers to work together, even if they're in different places.
Outbound Message
If you've been working with Salesforce for a while, you might have come across the option to add an 'outbound message' when creating a workflow rule or approval process. This is like setting up a message to be sent to another system whenever a specific event occurs in Salesforce. You can easily configure this without coding!
The message, containing the fields you choose, is sent to a specified endpoint URL. It's not super quick (asynchronous), but the other system will acknowledge receiving the message. If there's an issue, Salesforce keeps trying for 24 hours before notifying the System Admin.
Important to note: Outbound Messages aren't meant for super-fast integration. If you need that, Salesforce suggests using the Streaming API.
Web Service Callouts
Salesforce makes 'callouts' when it reaches out to another system. For instance, when a user updates an Account's address, Salesforce checks with an address database. This isn't automatic; it's triggered by certain events.
Salesforce Connect
With Salesforce Connect, you can view and edit data from an external system in Salesforce. It's like having a peek at external data when needed, without storing it in Salesforce. This is a paid but easy-to-use feature, saving on data storage.
How it works
Heroku Connect:
Heroku is a cloud platform, and Heroku Connect is the bridge between Salesforce and Postgres databases, enabling 'Data synchronization.'
When to use Heroku Connect
Salesforce Integration Patterns:
Patterns are like concepts. Depending on what you need, you choose the right pattern based on timing, direction, and type.
When a system outside of Salesforce creates, retrieves, updates, or deletes data in Salesforce, it's known as Remote Call-In. An example is a business using an order system to update Salesforce with order statuses.
Salesforce triggers a process on a remote system, waits for it to finish (synchronous), and then gets a response. This is common in callouts, where Salesforce requests information from another system and waits for a reply.
In this scenario, Salesforce initiates a process on a remote system but doesn't wait for it to finish. The remote system acknowledges the request and hands back control to Salesforce, allowing it to continue with other activities. Examples include Outbound Messages and Platform Events.
Data in Salesforce is updated based on changes from an external system, and reciprocally, changes from Salesforce are sent to an external system on a defined schedule. This is done in batches, like extracting customer activity info from Salesforce and importing it into a data warehouse weekly.
Changes in Salesforce data trigger updates in the Salesforce user interface (UI). For instance, a Case Manager needs to see the updated status of a case. A custom UI is created, utilizing the Streaming API with PushTopic to receive alerts.
Data is shown in Salesforce only when needed but doesn't permanently reside in Salesforce. While we discussed this earlier with Salesforce Connect, it can also be used with Apex SOAP, or REST Callout through a Visualforce page.
Summary
Salesforce Integration involves various elements. Understanding the basics of integration and its importance is crucial. This overview covers different integration architectures, capabilities, and patterns. Exploring these concepts is essential to determine which Salesforce integration services suit the specific needs of your organization and users.