Businesses often find themselves managing multiple Salesforce orgs to cater to diverse needs or establish partnerships with other Salesforce-utilizing enterprises. The necessity arises to seamlessly collaborate and share records across these various orgs. This is where a Salesforce-to-Salesforce connection becomes invaluable, allowing organizations to establish a direct link between two orgs and facilitate the sharing of records.

While not every Salesforce customer may require a Salesforce-to-Salesforce connection, it proves crucial for those managing several Salesforce orgs under one company seeking to exchange records with collaborative business partners.

In this blog post, we’ll guide you through the process of integrating one Salesforce org with another using REST API.

Essentials To Integrate One Salesforce Org to Another Salesforce Org:

REST API (Representational State Transfer Application Programming Interface) is an internet standard for building web services. It allows different software systems to communicate and exchange data using HTTP requests like GET, POST, PUT, and DELETE. Data is often in formats like JSON or XML.

It allows different software systems

 To embark on this journey, ensure you have the following prerequisites in place:

  1. Target Org(Salesforce Org)
  2. Source Org(Salesforce Org)
To embark on this journey

Steps to integrate Salesforce org to another Salesforce Org

Org A (Source Org)

Step 1: Create AuthProvider in source Org

Step 2: Create named Credential in source Org

Step 3: Create Remote Site Setting in source Org

Step 4: Write apex in source Org to fetch data from destination Org.

Org B (Target Org)

Step 1: Create a connected App in Target org

Step 2: Create Web Services for Target Org
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

> Org A (Source Org)

Login to Org A:

Step 1: Create AuthProvider in source Org

  • Go to Source Org.
  • Navigate to “Setup | Administer | Security Controls | Auth. Providers | Create New”.
Create AuthProvider in source Org
  • Select “Salesforce” as Provider Type
Select “Salesforce” as Provider Type
  • Provide “Consumer Key” and “Consumer Secret” from the previous step
  • In “Default Scope” enter the value as “api” and “refresh_token, offline_access” should be separated by space
  • Finally, Save
In “Default Scope” enter the value

Once you save, you will have a new Callback URL generated at the bottom of the page in the ‘Salesforce Configuration’ section. Copy this Callback URL and update your Callback URL value in the Connected App you created in the above step.

Copy this Callback URL and update your Callback URL

Once you save, you will have a new Callback URL generated at the bottom of the page in the ‘Salesforce Configuration’ section. Copy this Callback URL and update your Callback URL value in the Connected App you created in the above step.

Step 2: Create named Credential in source Org

  • Navigate to “Setup | Administer | Security Controls | Named Credentials | New Named Credential “.
Navigate to “Setup
  • Provide the name (label)
  • In URL, provide URL of Salesforce instance where we want to Connect
  • Select “Named Principal” as Identity Type
  • In our example select “Authentication Protocol” as OAuth 2.0
  • Select the “Auth Provider” created in the previous step
  • In scope, enter the value as “api refresh_token”
  • Check “Start Authentication Flow on Save” (this is important)
  • Save
Check “Start Authentication Flow on Save
  • As you click on the save button it will redirect you to verify your Salesforce account.
verify your Salesforce account

Step 3: Create Remote Site Setting in source Org

  • Navigate to “Setup || Security |Remote Site Setting “.
Navigate to “Setup || Security
  •  Make you remote site active and in the url mention your target org Url and make it active.
Make you remote site active and in the url

Step 4: Create Apex HTTP callouts

The common HTTP callouts are Get, Post, Put, Delete.

Here we have created callouts following callouts using endpoint –

Apex class – SalesforcedataSend.cls
public with sharing class SalesforcedataSend {

  • HTTP callout for Get Method
  • HTTP callout for Post Method
  •  HTTP callout for Delete Method
  •  HTTP callout for Put Method

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Org B (Target Org)

Login to Org B:

Navigate to App Manager:

Click on the “App Launcher” (grid icon in the upper-left corner).

In the search bar, type “App Manager” and select it from the dropdown.

Create a New Connected App:

In the App Manager, click the “New Connected App” button.

In the App Manager

Fill in the Basic Information:

  • Connected App Name: Enter a name for your connected app.
  • API Name: The API name will be automatically generated based on the connected app name.
  • Contact Email: Provide an email address for the contact person.
Provide an email address for the contact person

Enable OAuth Settings:

  • Enable OAuth Settings: Check this box to enable OAuth.
  • Callback URL: Enter a callback URL. It can be a placeholder for now.
  • Selected OAuth Scopes: Choose the necessary OAuth scopes based on your requirements (e.g., full access, perform requests on your behalf).
Check this box to enable OAuth

Once OAuth Scope is selected check the checkbox for the following permission and Click the “Save” button to save the connected app. Once you are back on the page click on Manage Consumer Users.

click on Manage Consumer Users

Once you click on Manage Consumer Details it will redirect you to verify the org so enter the verification code.

click on Manage Consumer Details

Once you verify yourself it will redirect you to the connected app page. Click on the manage button.

Click on the manage button

Click on Edit Policies button –

Click on Edit Policies button

In IP Relaxation: Choose the IP relaxation settings based on your security requirements.

  • Permitted Users: Choose the appropriate setting based on your needs (e.g., “All users may self-authorize”).

Configure Available OAuth Flows:

  • OAuth Flows: Choose the appropriate flow for your integration (e.g., “Authorization Code”).
  • Refresh Token Policy: Choose the policy based on your needs.
Configure Available OAuth Flows
  • Click the “Save” button to save the connected app.

Note down the following credentials:

  • Consumer Key (ClientId): This is the “Consumer Key” field.
  • Consumer Secret (ClientSecret): Click on the “Click to reveal” link next to “Consumer Secret” to obtain it.
link next to

Create Web Services for Target Org -

First, you would have to create an Apex class and define it as global. You can do that by adding ‘global’ access identifier to the class definition.
Apex class – RestApiUsingConnectClass

Conclusion

So, here is our strategic guide to Integrate Salesforce org to another Salesforce Org using web services callout. Feel free to try out the solution and share your experience with us.

Catch you on the next one. Happy Learning!.

Related Articles
Integrating-Salesforce-Lightning-Map-with-Lead-Object-A-Step-by-Step-Guide-to-Adding-Address-Markers

Lightning Web Components (LWC) is a modern JavaScript framework used to build responsive, dynamic applications on the Salesforce platform. LWC leverages web standards, allowing developers to utilize the latest JavaScript features and methodologies. Compared to older Salesforce frameworks like Aura and Visualforce, LWC is lightweight, fast, secure, and more efficient in terms of performance. Additionally, […]

Read More
Step-by-Step Guide to Creating a Custom Agentforce Agent

A custom Agentforce Agent is imperative to increase the efficiency and effectiveness of your business operations. Do you know why? In this blog, we will walk you through the key steps that can help you create a custom Agentforce Agent: What is Agentforce? Agentforce is an AI support service designed to assist agents in providing […]

Read More
Steps to Develop Prompt Template with Data Using Flow or Apex

In the world of Salesforce development, prompt templates are like the secret ingredient that powers some of the coolest features in Einstein 1 Studio. They’re the behind-the-scenes magicians who make things happen, from drafting personalized emails to summarizing records and beyond. But here’s the thing: to make these templates truly shine, you’ve got to ground […]

Read More
A Complete Guide to Second Generation Managed Packages

Second Generation Managed Packaging (2GP) is a must-have modern approach that helps in building and managing packages on Salesforce. It offers a myriad of tools for developing, distributing, and managing apps and metadata to AppExchange partners.   With the help of Managed 2GP packaging, you can utilize your custom Apex code, interact with your version control […]

Read More
Unlocking the Future Salesforce's Biometrics Service for Mobile Apps

Salesforce’s cutting-edge offering, Biometrics Service, is about to revolutionize mobile utility safety with its Spring ’24 release. This new carrier lets builders seamlessly integrate biometric authentication functions, including fingerprint and facial recognition, without delay into Lightning Net components (LWCs). This capability is important for defensive touchy records on mobile gadgets, ensuring unauthorized entry is thwarted […]

Read More
creating-dynamic-pagination-in-salesforce-using-lightning-web-components.jpg

Dynamic Pagination is a useful technique in Salesforce used for splitting large datasets into smaller and more manageable pages. The main purpose of “Dynamic Pagination” is to boost the user experience while dealing with a large amount of information. So, creating a Dynamic Pagination is important! In this blog, we will show you how to […]

Read More
Our Location worldwide
Indian Flag India
3rd Floor, A-10, Pegasus Tower, Sector 68, Noida, Uttar Pradesh 201301 +91-1203117884
United States of America Flag USA
333 West Brown Deer Road Unit G – 366 Milwaukee WI, USA 53217 +1(262) 310-7818
United Kingdom Flag UK
7 Bell Yard, London, WC2A 2JR +44 20 3239 9428
Canada Canada
HIC Global Solutions INC
43 Lafferty Lane, Richmond Hill, L4C 3N8, CA +1(262) 310-7818