How to Set Up a Salesforce ServiceNow Integration: The Complete Step-by-Step Guide

Salesforce ServiceNow integration

If your teams use powerful platforms like Salesforce and ServiceNow to increase productivity and efficiency, a Salesforce ServiceNow integration can help them gather and collate their ever-increasing information in a better manner. It will help them share important and accurate information with each other, automatically and with the least ado. 

You can allow teams to stay on their own platform and at the same time let data be shared bi-directionally with other teams. This guide walks you through why a Salesforce ServiceNow integration can be beneficial and how you can choose the right tool for achieving it. Then it goes on to discuss how such an integration can be configured and implemented end-to-end.

So let’s begin! 

Here’s what we’ll cover in this blog post:

Why Integrate Salesforce and ServiceNow

Salesforce

Salesforce is a leading CRM (Customer Relationship Management) platform. It aims towards bridging the gap between customers and companies. It provides a range of services and apps to different departments in the company like sales, marketing, IT, and the like to help them enrich and enhance their relationships with customers. 

ServiceNow

ServiceNow is a cloud-based platform that automates workflows. It helps streamline and automate routine work tasks reducing the time spent on administrative work. It also assigns and prioritizes incidents raised, based on agent availability and skill level. It has its roots in ITSM (IT Service Management). 

Why You Need a Salesforce ServiceNow Integration?

Both these platforms are capable of handling huge amounts of information, beneficial for the teams to do their tasks effectively. 

This information, if shared between them, can help them enhance their overall business objectives. Customer service teams using ServiceNow can benefit from customer overviews, feedbacks, and queries from Salesforce. And the sales team using Salesforce can keep track of incidents reported by important customers. 

Sometimes the same information both teams need exists on different platforms, leading to duplication and inefficiency. 

So sharing this information across will help different teams gather and collate important information within their own platforms. But if done manually, it can be time-consuming, error-prone, and can even lead to incorrect or duplicate information. 

If this is all done automatically and in real-time, it can help teams deliver better customer service and an end-to-end enhanced customer experience. The teams won’t even have to leave their platforms or switch between applications to get information exchanged. A Salesforce ServiceNow integration can help teams achieve all this with the least possible fuss. 

With such integration in place, relevant information can also be filtered and passed between teams. For instance, a sales team might only be interested in seeing the status of incidents raised by key customers and not in other technical details of the incident. Similarly, the support teams might not want to view personal information about the customers, but only the technical details, if any, that can help them solve their incidents faster. 

When implementing a ServiceNow Salesforce integration, it is important to choose the right tool for your scenario. This can help you realize the benefits of your integration in a better manner. 

The Right Tool for Setting up a Salesforce ServiceNow Integration

It is crucial that your tool understands your integration scenario well and adapts to it seamlessly as every integration case is unique.

Security is also an important aspect of information exchange. So look for tools that have inherent security mechanisms like encrypted file transfer, secure transfer protocols, role-based access controls, and the like. 

Tools supporting a distributed integration architecture can help both sides of the integration control what is being shared to the other side and how to interpret information coming from the other side. This ensures that both sides have autonomy and can work independently.  

The integration tool must also be reliable to address issues related to downtimes and system failures without manual intervention. Changes must be queued and applied in the same order of their initiation, without the integrating parties noticing the outage. 

You might also want to integrate with your other partners, suppliers, customers, or vendors in the future. Having a tool that already integrates with the applications they use will make it easy for you to make the transition.  

All these features are supported natively by Exalate and that is the reason why we choose it for our Salesforce ServiceNow integration. 

Exalate has the flexibility to adapt to your unique integration case with the help of its scripting engine. So you don’t need to spend a lot of time configuring your tool to fit your case, you simply change the sync rules and get going. We will see how to do this in a while. 

Note: Want to learn all about Exalate’s security and architecture? Read this whitepaper.

Exalate supports a distributed integration, where each side controls what information is sent and received independently without any interference from the other side. 

It has a transactional synchronization engine that allows applying changes queued for synchronization in the same order as their initiation without manual intervention, even if there’s downtime or your system is being upgraded or your firewall is being configured. 

It also comes with integrations for Jira (on-premise and cloud), Github, Zendesk, Azure DevOps, and HP QC/ALM. So if these are the applications that the companies you want to integrate with use, then you can simply extend your Exalate network. 

This was just a head start. Let’s see how a Salesforce ServiceNow integration is set up.

How to set up a Salesforce ServiceNow Integration 

To set up a Salesforce ServiceNow integration, you need to first install Exalate on both sides. 

Once done, it can be configured to share the incoming and outgoing information on each side independent of one another. After that, you can start your synchronization.  

Step 1: Install Exalate on Salesforce

Exalate currently offers Salesforce through its EAP(Early Access Program). In this section, we will discuss the installation steps relevant to this program. If you want, you can refer to the detailed procedure here.

You start by navigating to your Salesforce instance and creating a “New Connected App”. To create it, click on the cog icon on the top right side of the screen. Then click “Setup”. 

salesforce set up

On the left menu, click “Apps” – “Apps Manager” and “New Connected App”.

salesforce app manager

A form will appear, wherein you need to fill in the required details. Give a name to your app and also enter your email address. If you want, you can even add a logo image or your contact phone. Here we have added the “Connected App Name” and the email address. 

Salesforce OAuth scopes

For the purpose of this app, we use the OAuth protocol. So scroll down on this page and click on “Enable OAuth Settings”. Then add the OAuth scopes for the app. Exalate needs the following two OAuth scopes for the app, so add them using the “Add” arrow button.

Salesforce API

Provide a callback URL for the EAP and click “Save” once you are done. 

Meanwhile, check the OAuth policies of your connected app. Wait for some time if the changes you have made are not reflected. Go to the left-hand menu, click Apps> Connected Apps> Manage Connected Apps, and select “Exalate”. There make sure the “Permitted users” is set to “All users may self-authorize”. If it’s not, follow these steps to get it done.

Now you need to request the evaluation license of Exalate for Salesforce on its integrations page.

Salesforce integration page on Exalate

When you select “Salesforce” as the tracker, a form that looks like this will pop up. As seen on the form, you need to first enter your email address.

Next, there are 3 things that you need to fetch from your Salesforce instance and fill on the form:

  1. Consumer key
  2. Consumer secret and
  3. Salesforce URL.
Form for requesting Salesforce integration

To get these details, navigate to your Salesforce instance. You can view the connected app in the list by navigating to the “App Manager” as you have done a little while before. 

On the right side of the app name, click the down arrow and select “View” from the drop-down list. 

salesforce lightening

From the details of the app, we need the “Consumer Key” and the “Consumer Secret” that needs to go on the form. So copy them somewhere and keep them handy. 

manage connected apps in salesforce

Now we need the Salesforce tracker URL. Note here, that the Salesforce URL is the URL of the “Classic” version and not the “Lightning” edition. So if you are already in the Lightning Edition, click on the profile icon on the top right of the screen and select “Switch to Salesforce Classic”. It will redirect you to the classic version and you can copy the URL from there. 

salesforce classic

Now that you have all the 3 things you need, paste them at the appropriate places on the form. For the “Organization type”, we have selected “Production”, but in case you are confused about what to select, click here. Click “Submit” after.

Now head back to your email and click on the link you must have received from Exalate. This is the link for your Salesforce instance. But before you go ahead, you need to set up the Exalate app to start using it.

So give the necessary permissions to Exalate by clicking “Allow”.

Allow access Jira Salesforce integration

And then fill in your contact information. This will help Exalate verify your instance and activate your evaluation license.

Exalate for Salesforce

Fill out the necessary information and click on “Agree and Submit”. You will now have received an email. Open it and click on “Verify Exalate instance”.

verify exalate instance for a Salesforce Zendesk Integration

After clicking it, your email will be verified and you need to create your login credentials. Once done, you can start using Exalate right away!

exalate for salesforce email validation

Step 2: Install Exalate on ServiceNow

Here is a complete guide to install ServiceNow on Exalate. But we will discuss the process briefly here. 

You can request a ServiceNow instance by navigating to Exalate’s integrations page

get exalate for servicenow

On this page, click on the ServiceNow logo. A pop-up form will appear. Enter the organization details and a few other personal details and click “Submit”. 

You will receive an email with your ServiceNow node URL. 

exalate for servicenow

For the next part, you will need to download an XML file. This file consists of information  ServiceNow will need to access Exalate. Get it here

Next, log in to your ServiceNow account. In the left-hand menu search for “System Update Sets”. Click on the “Filter navigator” search box, if the list is too long and you cannot find it. Now expand the “System Update Sets” by clicking on it. In the entry select “Retrieve Update Sets”.  

exalate for servicenow retrieved update sets

Under the “Related Links” heading, click on “Import Update Set from XML”. 

upload the xml file to servicenow

Choose the XML file that you have downloaded and click “Upload”. After a successful update, the XML file will be listed. Now click on the “Preview Update Set”. 

Click on “Commit Update Set” to finish the installation of Exalate on ServiceNow. 

You can now proceed to the next step. 

Step 3: Set up a Connection between Salesforce and ServiceNow

Before you can start synchronization with Exalate, you need to establish a connection between Salesforce and ServiceNow. The connection defines how your synchronization behaves and it specifies your sync rules and scope. 

One side initiates the connection and the other side accepts it. This can be done from either the Salesforce or the ServiceNow side. The Exalate UI is uniform across different platforms, so you can perform the remaining steps on either side. 

Let us start initiating the connection from the Salesforce instance. 

To do this, in the Exalate left-side menu click “Connections”. This screen has a list of all your connections. If it’s your first time, it will be empty. 

Start by clicking “Initiate connection”. 

initiate a Salesforce ServiceNow integration

A pop-up will appear. Enter the destination URL in the text box. The destination means the other side you want to connect with. In our case, that’s ServiceNow. 

In case you don’t know the URL, you can navigate to the Exalate console on ServiceNow and click on “General Settings” in the left-hand menu. Copy the URL from there. 

After entering the URL, Exalate performs a quick check to see if it’s been installed on the other side. You will get appropriate status messages.  

Exalate configuration modes

You are then prompted to choose the mode of connection. 

Exalate supports 2 modes: Basic and Script. The UI for both these modes is slightly different, so we will take a look at both of them in detail. 

Continue with the Basic Mode

The Basic mode is a low-code configuration UI. It comes with pre-defined sync rules and mappings that you cannot change. It’s suitable for your basic synchronization needs. But if you need some advanced customizations, you can upgrade to the script mode anytime! 

Note: Exalate also comes with a Forever Free plan. With this plan, you can have Basic mode connections with up to 1000 free syncs per month. Get started with the Free plan here

To continue with this mode, click “Yes, I have admin access” on the next screen if you have access to the ServiceNow instance. Click no if you don’t and Exalate will generate an invitation code for you, that you can copy and paste on the ServiceNow side. You can refer to the details on how to go about this in the Script mode section. 

Either way, click “Initiate”. 

initiate a basic connection between salesforce and servicenow

After a quick verification, you will be redirected to the ServiceNow side. 

Here, you can start your first synchronization by entering the incident number and clicking  “Exalate”. 

accept Salesforce ServiceNow sync invitation

You can also choose to synchronize later by closing this window and creating triggers or using the “Bulk Connect” option. 

Note: At this point, you can even go to the Exalate console on the Salesforce side. You will see a similar screen being displayed there, asking you to enter the Case key to sync.  If you don’t see this screen, you can click on the 3 dots next to your connection name in the “Connections” tab and click “Exalate”. 

For fetching the URL of Salesforce entities you must click on that entity and copy the number from the URL, as shown in the image below. 

Case in Salesforce

Wait for some time.

Salesforce ServiceNow Integration in progress

A successful synchronization looks like this. You can click on the remote link to see the synced entity on the Salesforce side, or you can click on the incident number link to go to the incident on the ServiceNow side. 

successful Salesforce ServiceNow sync

To view the default mappings of the Basic mode connection, click on the edit connection icon next to the connection name under “Connections” in the Exalate console. 

exalate connection list

As seen, you cannot change these default mappings, but choose to upgrade for advanced integration use cases. 

salesforce servicenow basic sync rules

Continue with the Script Mode

If you have complex and advanced use cases, we recommend you use the Script mode. It gives you the ability to modify the sync rules and control what and how information is shared with the other side. 

To continue using the Script mode, you must generate an invitation code from one side and accept the code on the other side. 

We have already initiated the connection from the Salesforce side. 

Select “Script” on the screen below and click “Next”. 

exalate script mode

Name the connection now. 

For this, you must give a name to your local instance (Salesforce in our case) and also to the remote instance (ServiceNow). Exalate automatically generates a connection name for you by combining the local and remote instance names. But you can change it if you want. 

Also, give it a description, because it is extremely useful when you have a lot of connections and it becomes difficult to know why you created them in the first place. 

Whenever you are ready, click “Initiate”.

initiate ServiceNow Salesforce integration

An invitation code is generated. This is a unique string that Exalate generates for every connection you set up. It is a part of its security mechanism. 

Copy the code somewhere safe and click “Go to remote”. This will take you to the other side, ServiceNow. 

copy exalate invitation code

You can choose not to click on “Go to remote” and directly access the ServiceNow Exalate console. 

If you do this, the connection on the Salesforce side will be shown as “Pending” and only when you finish setting it up on the ServiceNow instance, will the status become “Active”.

salesforce to servicenow sync status

On the ServiceNow side, under “Connections”, click the “Accept Invitation” button. 

accept a servicenow salesforce sync invitation

Then paste the code you had copied and click “Next”.

pase exalate invitation code

After this, your connection has been successfully established and you can see the status as follows. You can now configure it to control what information is sent to the other side. 

For this click on the “Configure Sync” button and proceed to the next step. 

configure Salesforce ServiceNow sync

Step 4: Configure your connection to determine what information gets shared

If you don’t wish to configure the connection right away, you can do it later by clicking on the edit connection icon next to your connection name under the “Connections” tab. 

configure ServiceNow Salesforce connection

From here, you can choose to activate, deactivate, or delete the connection by clicking on the 3 dots. You can even go to the other side of the connection by clicking the remote antenna button. The status of your connection is also displayed here apart from some other general information. 

Let’s proceed to the steps after you press the “Configure Sync” button. Editing the connection also has similar screens, so either way, there are 4 tabs displayed: “Rules”, “Triggers”, “Statistics” and “Info”. 

The “Statistics” tab gives an overview of synchronization-related information like the number of issues, comments, and attachments synced.  It also states the number of issues last synced, in addition to the date and time of the sync. 

The “Info” tab gives general information related to the connection like its name, type, description, and destination URL. You can edit the description here if you want. 

edit Salesforce ServiceNow sync rules

We will discuss the “Rules” tab now and “Triggers” in step 6. 

Exalate has an “Outgoing sync” and “Incoming sync” written in Groovy scripting language. Both are rules that control what information is sent and received from the other side. 

The outgoing sync rules like their name suggests control what information must be sent to the destination side, while the incoming rules control how to interpret the information coming from the other side. 

Both these rules are present on either side of the connection i.e Salesforce and ServiceNow. So you have complete autonomy of deciding what must be shared and what shouldn’t. You don’t need to configure or even inform the other side about the way you modify your script rules. So if you are in Salesforce, “Outgoing sync” specifies what information you send to ServiceNow and the “Incoming sync” specifies how you receive information from ServiceNow. This holds true for ServiceNow as well.

The rules on the Salesforce side look like this: 

salesforce servicenow sync rules

You can edit the rules to control the information flow. 

For this, you can either delete a particular line to stop sharing information or add additional lines for syncing something extra like custom fields. 

For deletion, remove the particular line from the incoming or outgoing sync or simply add a comment. 

Add comments by adding “//” at the start of the line. If you need to comment a block of lines add “/*” at the starting of the block and “*/” where the comment ends. 

For example, if we add a comment to the line replica.description = entity. Description in the Outgoing sync section, then the description of the Case will not be shared with the ServiceNow instance. 

salesforce servicenow integration rules

Any Salesforce entity can be synced by adding additional scripts relevant to that entity.  Refer to this document on how to do it. For the ServiceNow side, check out this one instead.

For example, if you want to sync Tasks in addition to Cases in Salesforce, then you add the following script in the Outgoing sync. 

if(entity.entityType == “Task”) {

    replica.key        = entity.Id

    replica.summary    = entity.Subject

    replica.description = entity.Description

}

Accordingly, the subject and description of the Task will be shared on the ServiceNow side. 

Once done, click “Publish”. The changes you have made will be saved and applied from the next sync onwards. 

To add “Triggers”, don’t click “Publish” just yet and proceed to the next step. 

Step 5: Create Automatic Synchronization Triggers 

Triggers are used to synchronize Salesforce and ServiceNow entities automatically. 

For creating triggers you need to add a query. When Exalate comes across entities that match the search query, they are automatically synchronized with the other side according to the sync rules you have set. 

To begin with, click on the “Triggers” tab on the above screen. You can also reach triggers by clicking on the left-hand “Triggers” menu of the Exalate console. If you do it this way, there is an extra step of selecting the connection you want to apply the trigger for. All the other steps are the same. 

On this screen, you will see all your triggers. To create a new one, click “Create trigger”. 

Create ServiceNow Salesforce sync triggers

An “Add trigger” pop-up will appear. 

You start by selecting the entity from a dropdown list to which the trigger is applied. 

There are many ServiceNow entities like Change Requests, Cases, Problems, etc. supported by Exalate. 

We have selected “Incident” for this example. 

add a trigger to Salesforce ServiceNow sync

The “If” section allows you to enter search queries specific to the platform. Since we are on the ServiceNow side, we have given the query as “urgency=1”. So a trigger to sync Incidents with the highest priority is created. When such an incident is generated, it will be automatically synced. 

Note: Refer to this page if you want to know more about creating triggers. 

The same on the Salesforce side will allow you to select Salesforce entities from a drop-down list. There are many Salesforce entities supported by Exalate, but the most common ones are Account, Opportunity, Case, Task, and Product. Here, we have selected an “Opportunity”. 

sync a salesforce opportunity

And then either select conditions to filter the Opportunity by entering the details in the text boxes or toggle the switch to use the search query instead. For the search query on the Salesforce side, the Salesforce Object Query Language (SOQL) is used. 

ServiceNow Salesforce sync triggers

Learn more about how to add search queries in Salesforce here

There is an option to add “Notes” to the trigger. Add them to describe what the trigger does. 

You can also use the “Active” toggle switch to activate or deactivate the trigger. This is useful when you don’t want to use the trigger right now, but also don’t want to go through the effort of creating it from scratch again. Remember to toggle it to the “Active” stage to make the trigger work.

Click “Add” when you are done. 

exalate triggers

You can see the trigger listed on the previous screen as shown above. There is a button to edit or delete the trigger. You also synchronize the existing entities that fulfill the trigger condition using the “Bulk exalate” option by clicking the 3 dots next to the trigger.  

After you are done making the changes, click “Publish”. 

Step 6: Start Synchronizing Information 

For the Script mode

Adding or deleting scripts in sync rules means you control what is sent and received, but to start the synchronization, you either need to create triggers or sync existing Salesforce and ServiceNow entities in bulk using the “Bulk Connect” option. 

For the Basic mode:

You can simply sync entities by entering the Incident number or the Case number after creating a connection like we saw in step number 3. 

Or by clicking on the 3 dots next to the connection name in the “Connections” tab either on the Salesforce or the ServiceNow side and then selecting “Exalate”. 

You can create a trigger or sync entities in bulk too. But you cannot add new ones or change the existing default mappings for advanced configurations like in the Script mode. 

Common Use Cases

Customer Support and Sales Teams 

Perhaps the most common scenario that comes to mind for a Salesforce ServiceNow integration is for your sales team to have an automatic update on the “Incident” status of key customers. 

So when an Incident of urgency =1 from a particular customer comes up in ServiceNow, it will automatically create a Case or a Task (depending on the trigger you set) on the Salesforce side, so that the sales team can keep track of it automatically thereon. 

Any updates or additional information requested by the customer for an Incident can be viewed in Salesforce and provided to the support team by the sales team if they have it with them. This can resolve Incidents faster and improve SLAs, leaving you with happier customers. 

The customer support agents can also review Cases, Accounts, or Opportunities in Salesforce to gather information relevant to their Incidents, helping them to resolve them faster. 

Customer Success Representatives and Sales Teams

You can also envision the customer success representatives to have a complete overview of the customers in their ServiceNow by gathering information from Accounts, Opportunities, and Cases in Salesforce. 

They can then work on maintaining a low churn and help generate better revenues for the business. Sales teams can also proactively provide feedback, queries, or other relevant details to the customer success teams to help them with their responsibilities better. 

Development and Sales teams 

It’s possible that your development team practices agile development methodology and uses ServiceNow. Your sales team, on the other hand, uses Salesforce. Since the sales team is constantly in contact with customers and is well aware of their feedback, complaints, queries, or feature requests, it would be helpful if they get to exchange this information with the development team.

This can in turn help the developers get an idea about what customers or end-users are looking for in a product or how they want to improve it. An integration between ServiceNow and Salesforce can help these teams share information and filter out unnecessary details. 

Conclusion

A Salesforce ServiceNow integration can definitely help teams close their information gaps and bring them to work towards a common goal of improving customer experience. 

For this, we saw how such an integration will be beneficial for teams working on different platforms like ServiceNow and Salesforce, without them having to leave their own familiar environment. 

We then got a glimpse of what a right integration tool must inherently support and chose Exalate as the tool for our integration because it supports the features we were looking for.

And then we finally saw how such an integration can be implemented through a step-by-step approach. We also saw common use cases that can benefit from such an integration. 

Recommended Reads:

Comments are closed.