Sales teams and customer support staff can stay in lockstep regarding customers when both teams have access to relevant, real-time data.
This will help them sync information from default and custom fields between Salesforce cases and Freshdesk tickets.
To get this to work smoothly, you’ll need a Freshdesk Salesforce integration solution developed in-house or by a third-party vendor.
In this article, I’ll discuss the core principles of integrating Salesforce with Freshdesk, why the in-house solution isn’t feasible, and explore a few real-world use cases.
Why Integrate Salesforce With Freshdesk?
The benefits of integrating a Freshdesk instance with Salesforce vary depending on every specific business or technical use case.
But the first reason is to unify the efforts of both teams (within the same organization) with the help of cross-platform integration.
For teams in different organizations, Freshdesk to Salesforce integration is the gateway to cross-company collaborations without affecting internal company culture.
Besides, Freshdesk works well for omnichannel support delivery, while Salesforce is the perfect CRM solution for teams looking to provide the best SLA-based support to their customers.
Teams on both sides also get a better view of ongoing operations, open tickets, and trending customer concerns. This, in turn, improves the quality of services delivered to customers as well as their overall satisfaction levels.
More so, integrating Salesforce with Freshdesk using a tool like Exalate breaks down information silos, creating a clear path of communication between support and sales.
And most importantly, both teams can save money by staying within their own instance without having to onboard new members to a separate platform in order to acquire the required information.
What Are the Use Cases for Freshdesk Salesforce Integration?
Here are some practical applications of Freshdesk to Salesforce integration for organizations:
Case 1: Escalate Salesforce Cases as Freshdesk Tickets
Whenever a customer creates a case, the contents are escalated to Freshdesk to create a new ticket or update an existing one. This keeps each side in their own environment and provides timely updates.
With a solution like Exalate, you can write scripts to control specific mapping conditions using sync rules.
The standard fields and entities supported for integration between Freshdesk and Salesforce include comments, attachments, descriptions, account information, and many more.
On Freshdesk, you can also sync read-only entities like reporter, source, responder ID, and company ID. You can also sync case source, milestone status, custom fields, and all contact information from Salesforce CRM.
Case 2: Sync Freshdesk Ticket Status and Priority with Salesforce Case Status
Obviously, Freshdesk cannot share status updates directly with Salesforce because they are incompatible. So, when teams on either side are working on a similar concern raised by the same customer, they can stay updated about progress updates with the help of status mapping.
Assuming a Freshdesk ticket is marked as “Open” and the priority is “Urgent”, the case status will reflect in the Salesforce Case as “New” with “High” priority. This will help the managers in charge to delegate and allocate resources to address the issue in a timely manner, automating support workflows end-to-end.
Case 3: Map Multiple Salesforce Cases to A Single Freshdesk Ticket
Multiple related customers could create change requests, incidents, or problems on a Freshdesk instance, and these could be synchronized to a single Salesforce Case to consolidate everything.
In the same way, multiple related Salesforce cases can be mapped to a corresponding Freshdesk entity (problem or incident), so it can be escalated to the right support team. This prevents the unnecessary duplication of tickets and cases.
3 Ways to Integrate Salesforce and Freshdesk
All the integration options for Salesforce and Freshdesk can be grouped into the following categories:
Native Integrations
Freshdesk comes with an out-of-the-box native integration for different apps. You can integrate e-commerce integrations like Stripe and Shopify or work management systems such as Salesforce, Jira, and Zendesk.
Salesforce has an array of native integration options, like Mulesoft, which is a hybrid between a native and third-party solution.
Mulesoft allows you to connect your Salesforce org with your Freshdesk account. But the major drawback is that you’re limited only to the template connections, which you cannot use for complex integration scenarios.
You’d need a Salesforce connector that gives you more flexibility and customization options.
Custom Integrations
If you want to extend the scope of applicability for your Freshdesk to Salesforce integration, a custom solution is a no-brainer.
A custom integration solution could be a middleware application developed in-house from scratch to interact with the API of both platforms. It could also be a simple script that performs a specific function and fetches data based on the code.
The problem with custom integration is that it requires a lot of resources to build and maintain. And you will only be limited to the platforms for which the integration was developed.
Third-party Applications
To avoid the development and maintenance costs associated with custom integration development, the other option is to opt for a third-party integration.
Unlike native integrations, third-party apps allow bidirectional data exchange between CRMs, ERPs, and cloud solutions.
In addition to that, third-party integrations support connections with multiple platforms simultaneously, which makes it possible to scale with your system workload.
Exalate is an AI-powered integration tool that supports one-way and two-way custom connections between Salesforce and service desk platforms such as Freshdesk, Zendesk, and ServiceNow.
It also supports integrations with work management systems such as Azure DevOps and Jira.
Let’s look at the standout reasons why enterprises choose Exalate:
- The Groovy-based scripting mode improves the flexibility of the integration by allowing your engineers to implement advanced sync scenarios. Its embedded AI chatbot, AI Assist, automates script generation.
- Exalate uses automated triggers to streamline the replication of tickets and other desired actions on either side of the connection. They rely on native conditional logic to control how a connection acts when an event occurs (ticket priority changes, for example).
- Exalate provides an IaaS (integration as a service) offering for companies connecting with multiple partners, vendors, MSPs, customers, or suppliers.
- It uses a single-tenant architecture to isolate your system (and data) from other companies. The system also uses JWT-based authentication, role-based access controls, and secure data encryption protocols.
- Exalate also scales according to the ticket volume or the number of issues without needing additional maintenance or upgrades.
How to Implement Freshdesk Salesforce Integration Using Exalate
The following are the integral steps involved in installing and configuring Exalate for Salesforce to Freshdesk integration.
Step 1 – Install Exalate on Salesforce
To install Exalate for Salesforce, go to the AppExchange marketplace and search for it. You can also get Exalate from the integrations page.
Click “Get it Now” to install it in Production or click “Try It Free” to install it in the Sandbox.
Fill out the required fields. Check that you have read and agree to the Terms and Conditions, then click “Confirm and Install.”
Log in to your Salesforce account. You are automatically redirected to the Salesforce login screen once you confirm the installation.
Select a group of users who have permission to use the Exalate app.
Check out how to manage users’ permissions in Exalate for Salesforce. Choose the installation option and click “Install”.
Then check the box and click “Continue” to approve third-party access.
Click Done to complete the installation and head back to your Salesforce instance.
Next, go to Setup and search for “Trusted URLs”. Click “Add new trusted URL”.
Fill in Trusted URL Information: API Name and URL. Check all the boxes in the CSP Directives section, then click “Save”.
Next, go to Setup > Permission sets.
To assign a permission set to a user, go through these steps: Exalate Admin > Manage Assignments > Add assignment > Select User with System Administrator Profile > Assign > Done.
The next step is to create the Connected App. Go to Setup > Apps> App Manager and click on New Connected App.
Select the “Create a Connected App” option:
On the setup page, fill in these fields:
- Connected App Name
- API Name
- Contact Email
- In API (Enable OAuth Settings), check Enable OAuth Settings
- In the Callback URL field, paste: https://connect.exalate.net/rest/oauth/callback
- Select and add all rows in Selected OAuth Scopes
- Require Secret for Web Server Flow should be selected
- Require Secret for Refresh Token Flow is optional
Important: Do not select Require Proof Key for Code Exchange (PKCE)!
In case this field is not editable or this feature is required by your organization, please contact support for help with the additional steps required.
This issue is being addressed and will be resolved in an upcoming release.
Click “Save” when done.
Important: Wait 10-20 minutes after creating the connected app for the changes to be fully applied.
Go to Setup > Apps> App Manager > Your created App > View > Manage Consumer Details and collect the Consumer Key and Consumer Secret from the connected app.
Once the application is installed, you can request an Exalate node. First, find the Exalate app in the search bar.
Copy the Consumer Key and Secret from the connected app and paste them here, then click on “Request Node”.
Click Allow on the app permissions.
After you allow the permissions, you will be redirected back to the Salesforce interface.
Note: The Exalate console may render in a few minutes.
Once you have requested the node, it is time to configure it.
Fill in your contact information in the registration form. Exalate sends you a verification email to verify your instance, activate an evaluation license, and create an admin account to receive error notifications.
Click “Agree and submit” to agree to the EULA and continue.
Note: After clicking Agree and submit, you accept our End User License Agreement (EULA). You can read it here: https://static.idalko.com/legal/eula-addons.pdf.
Click “Resend email” if you have not received a confirmation email. Click “Change email” to modify the email address provided earlier.
If you encounter an error during verification, check out Solving issues with email verification.
Open your email and click “Verify Exalate instance”.
Once you receive the email and verify the registration of the node, you are redirected to the Exalate console admin > Connections screen.
Congratulations! The registration process has been completed.
The entire documentation page for the installation process is available here. You can also install and host Exalate for Salesforce on Docker.
Step 2 – Install Exalate on Freshdesk
Next, request your Freshdesk Exalate node from the integrations page. Enter your basic information, and our team will reach out to you with further details for the trial.
After submitting the form, you will be redirected to your new node in a separate tab. Save the link to this node, as it serves as your permanent access point to the Exalate Freshdesk node.
Next, fill in and save the “General Settings” fields by providing your Freshdesk instance and the credentials of the Exalate proxy user.
Note: A proxy user is a Freshdesk account that is responsible for accessing the information stored on your instance and applying any incoming changes.
The form fields signify the following:
- Tracker URL: a URL of your Freshdesk account where you install Exalate.
- Exalate URL: a Freshdesk node URL, provided by Exalate.
- User: an account of a proxy user.
- Password / API Token: an API key generated for your Freshdesk proxy user. See details here.
To complete the registration, provide the details and credentials of the user who will configure synchronization in the Exalate console. Then, read and agree to the End User License Agreement.
An email confirmation will be sent to your mailbox. If you can’t find it in your inbox, check the spam or junk folder.
In the confirmation email, click “Verify Exalate Instance.” This will redirect you back to the Exalate console application to configure your first sync.
To change the proxy user in Exalate for Freshdesk, log in to the Exalate admin console. Then go to “Settings” and input the necessary details.

Once done, click “Save” to complete the Freshdesk installation process.
Step 3 – Connect Your Salesforce and Freshdesk Instances
Now that you’ve installed Exalate on both platforms, you can connect them.
Exalate allows you to set up your connection using the Basic Mode and the Script Mode.
The Basic Mode allows you to work with preset sync rules that are generated automatically and cannot be modified. These connections are recommended for use cases with basic synchronization needs.
The AI-assisted Script Mode allows you to sync almost anything. You can modify the sync rules using the Groovy language. This mode is also AI-assisted. We will learn more about it in the coming section.
Basic Mode Connection
Let’s start with the simple Basic Mode connection from the Salesforce side. You can also start from the Freshdesk side. One side initiates the connection, and the other side accepts the connection invitation.
In your Salesforce instance, click the “Initiate connection” button.
Then enter the destination URL and select the Basic Mode.
Confirm if you have admin access to the destination instance. The flow is different depending on the user’s access level. We’ll cover both instances.
If you have admin privileges, click on “Yes, I have admin access” and then click “Next”. You’ll be redirected to the destination instance to establish a connection.
You will be automatically redirected to the destination instance, which will also verify and set up the connection. After establishing the connection, you can sync your first issue in Exalate to see how it works.
If you don’t have admin privileges, then click “No, I have admin access”. Click on “Initiate”.
Copy the invitation code to your dashboard.
You can send the invitation code to the destination instance admin and click “Done”.
Next, go over to the destination instance. Click on “Accept Invitation” under the Connections tab in the Exalate Admin Console in the destination instance and paste the invitation code.
Once pasted, click “Next” to complete the configuration and set up the connection.
Next, enter an “entity key” and click Exalate to complete the process.
Script Mode Connection
In your Salesforce instance, click the “Initiate connection” button.
Enter the Destination Instance URL, then select Script Mode and click “Next”.
After selecting Script Mode, you will see a screen where you can enter the details of the connection.
Enter the names and description of the connections for both the local and remote instances. Then click “Initiate”.
Copy the invitation code to your clipboard and click “Done” before heading over to the destination instance.
To finish setting up the connection, the partner on Freshdesk needs to accept the connection invitation.
Navigate to the Connections tab in the Exalate console on Freshdesk and click “Accept Invitation”.
Paste the invitation code and click “Next”.
Congratulations! The connection is set up.
You can now start making changes to the sync by clicking on “Configure Sync”.
Step 4 – Configure Your Connection to Determine What Gets Shared
Exalate also allows you to configure the sync rules using the “Rules” tab.
You can choose to send or receive specific information between Salesforce and Freshdesk. For instance, you can choose to send attachments from Salesforce to Freshdesk.
Click on the “Edit Connection” icon next to the Script mode connection or click the “Configure sync” button above to get started.
This will redirect you to the “Rules” tab. Rules are divided into Incoming and Outgoing sync rules.
The above image shows the rules for the Salesforce instance. Similar rules exist on the Freshdesk side.
Here, the Outgoing sync decides what information leaves the Salesforce instance, whereas the Incoming sync decides how the information coming from the Freshdesk instance is mapped.
The rules use the Groovy language, so if you already have some experience, all the better.
Note: You can learn more about Groovy in chapter 4 of the Exalate Academy or refer to our Groovy scripting guide.
Each rule shows how fields are mapped onto each other.
replica.attachments = entity.attachments
You can adjust these lines to change anything you like. If there are fields you don’t want to sync, delete them. Read more about the sync rules here.
When you’re done, click the green “Publish” button to save your changes.
Use AI to Generate Sync Rules in Script Mode
Exalate’s Script mode now utilizes AI, with AI Assist appearing as a chat window in both your incoming and outgoing sync rule tabs. All you have to do is enter your sync requirements, and AI Assist will automatically generate the scripts for you.
For instance, you can write a prompt to map the statuses of a Salesforce case with a Freshdesk ticket so that any “Open” Salesforce case will be reflected as a “New” Freshdesk ticket.
The part highlighted in green is the added code, while the part highlighted in red is the deleted portion. If you’re satisfied with the output, click “Insert Changes”. Otherwise, click “Discard”.
These scripts are built based on your inputs, existing settings, and Exalate’s scripting API.
Keep in mind that AI Assist is prone to errors. To get the best results, be as precise and detailed as possible when crafting your prompts.
Step 5 – Set Up Automated Synchronization Triggers
Triggers define the synchronization conditions. If you click the “Triggers” tab on the left panel of the Exalate console, you can access the automated synchronization triggers.
Note: You can also set them by clicking the “Triggers” tab when you edit the connection. Only this way, you won’t need to select the connection.
If you want to create a new trigger, click the “Create Trigger” button at the top right.
Triggers are written in a different language depending on the platform. Freshdesk and Salesforce use their own query languages to create triggers. Read more about it in the documentation.
On the “Add trigger” screen, there’s a drop-down box at the top where you can select what kind of entity the trigger applies to.
The Freshdesk trigger looks something like this.
filter = new_and_my_open, requester_id = 103099112292
This query filters for tickets that are new and open that are assigned to the user (with ID 103099112292), making the query.
On the Salesforce side, you have to use the Salesforce Object Query Language to set the triggers.
Back in the trigger list, you can see the entry you just created. Now, items that match the condition will be synced automatically.
You can edit or delete these triggers by clicking the respective icons in the list under the “Action” heading. If you click the three dots, you also get the option to “Bulk Exalate” and “Unbulk Exalate”.
Step 6 – Start Synchronizing Tasks
You’ve set up your Freshdesk Salesforce integration and defined what is shared. You’ve also set the conditions for synchronization. When a ticket or case meets those conditions, it will be synced.
For performance reasons, Exalate checks for matching items periodically, so if you don’t see the sync begin immediately, check again after a few minutes.
After a while, you should see the synced items reflected in the connection entry in the connections list. If not, make sure your sync rules and triggers are set up correctly. Make adjustments and test them until everything is working as you intend.
Get Started with Your Freshdesk Salesforce Integration
Salesforce and Freshdesk integration can help your organization provide better support and improve customer satisfaction. Before choosing any integration solution, consider how it fits into your organization’s budget and objectives.
Exalate provides one-way and two-way connectivity with partners, clients, MSPs, and internal teams. You just need to set up the connection and configure the triggers to kick things off.
Want to learn more about Exalate? Find out how it works. To discuss your use case and see if Exalate is the right choice, book a demo with our integration engineer.
Recommended Reads
- Freshdesk Jira Integration in the Age of Customer Satisfaction
- Freshdesk Azure DevOps Integration: A Recipe For Happy Users
- The Best Salesforce Integration Apps For Business Productivity
- Simplify Your Business Processes with Salesforce Integration Tools
- How to Sync Comment Threads & User Mentions – Jira & Salesforce
- Sync Statuses and Custom Fields Between GitHub and Salesforce