Increase your team's efficiency, productivity and response to opportunities by integrating your Salesforce organisation into your CINNOX service. Manage all of your customer information & interactions on a single platform.
Sync and link your contacts, automatically log enquiries as cases and calls as tasks between Salesforce and CINNOX efficiently and manage the conversations and engagements in your CINNOX account without switching between applications.
š
Your CINNOX plan must be the Ultimate CX Hub.
Your Salesforce organisation must be an Enterprise, Unlimited, Developer, or an edition with API access.
How do I know what Edition of Salesforce I have?
Identify which Edition you are on:
Note: Other key org details such as "Salesforce.com Organization ID" and "Instance" will also be listed in the right-hand column of the Company Information page.
You may refer to this link to learn more.
What is Salesforce Sandbox?
A sandbox is a copy of your production environment where changes will not affect your data and users.
It's commonly used for integration testing between Salesforce and third-party applications.
What is Salesforce Production?
The Production is a live environment where changes will affect your data and users.
When integrating the Production environment with the third party, Salesforce requires deploying the configurations made in Sandbox (such as Apex classes and triggers) rather than touching the Production directly.
For each Instance (Sandbox and Production), you will need to create a new to the following in Salesforce:
You will need to provide the following information:
Consumer Key and Consumer Secret: are used to authenticate the application you will integrate with Salesforce.
Domain Name: the fully qualified domain name (FQDN) of your Salesforce Org.
Example:
#1. From this Sandbox URL https://abc--testsandbox.lightning.force.com/lightning/page/home, the domain name of your Salesforce org is https://abc--testsandbox.lightning.force.com.
#2. From this Production URL https://abc.lightning.force.com/lightning/page/home, the domain name of your Salesforce org is https://abc.lightning.force.com.
Location: is used for Sandbox integration only. Each created Sandbox has a corresponding location in your Sandbox account.
š§
Please use your System Admin account when integrating your Salesforce to your CINNOX service.
The created Apex Class and Apex Trigger in Sandbox will be required to deploy in Production following the steps provided by Salesforce.
When the integration is successful, you and your staff can log in to your Salesforce user account, and the following features will be available:
| Feature | Description |
|---|---|
| Salesforce Contact Information displays in CINNOX | When a customer enquiry is matched with Salesforce Contact information, it will display in CINNOX as the Enquiry Contact Profile. |
| Synchronous Contacts | Synchronise your Salesforce contacts in CINNOX and vice versa to view all your contacts on a single platform. Contact field mapping between CINNOX & Salesforce allows automatic data syncing between these two applications. Each staff must log in to their Salesforce account to sync their contacts to CINNOX. |
| Link Contacts | One Salesforce contact can link to one CINNOX external contact. One CINNOX external contact can link up to ten (10) Salesforce contacts. |
| Create Contact | Create a new contact in CINNOX, which will also be saved in Salesforce. |
| Search Contact | Search and view Salesforce contact in CINNOX. |
| Update Contact | Update and save Salesforce contact in CINNOX. |
| Automate CINNOX Enquiry to Salesforce Case | Your Contact's Enquiry will automatically be saved as a Contact's Case in Salesforce with information and chat history. |
| Automate CINNOX Call to Salesforce Task | Your Call inside the Enquiry is saved as a Task in Salesforce. The call log is posted in the Task Details. |
| SMS Campaign | Send SMS Campaign to Salesforce Contacts. |
Afterwards, please proceed with the following steps:

Selecting Salesforce Sandbox
Create New Remote Site

Sandbox - Create a New Remote Site
Create a New Connected App
Log in to your Salesforce Sandbox Org using your System Admin account.
Navigate to Setup > Apps > App Manager and click New Connected App.
Fill in all required fields in the form and tick the Enable OAuth Settings checkbox.
Copy the Callback URLfrom CINNOX to Salesforce Callback URL
Under the Selected OAuth Scopes , select and click Add for the following:
Click Save.

Sandbox - Create a New Connected App
A page will appear with a note Changes can take up to 10 minutes to take effect. Deleting a parent org also deletes all connected apps with OAuth settings enabled.

New Connected App Notice
Create New Apex Class

Sandbox - Create New Apex Class
Create New Apex Trigger

Sandbox - Create New Apex Trigger Part 1

Sandbox - Create New Apex Trigger Part 2

CINNOX Dashboard > Sandbox - Setup
Consumer Key and Consumer Secret

Sandbox - Consumer Key and Secret
Location
To find the Sandbox Location:

Sandbox Location in the Production Org
Domain Name
To find the Domain Name:

Sandbox Org Domain

Validate Sandbox Details
A pop-up window will appear, asking you to log in to your Salesforce System Admin account to authorise CINNOX.

Validate the Sandbox Integration
Note: If your Salesforce account is logged into a device and browser for the first time, Salesforce will require the verification code sent to your email.
And provide permissions to CINNOX to access the following:

Allow Permissions to CINNOX
The page below will appear when you have completed the steps and successfully connected your Sandbox Org to your CINNOX service.
Your Salesforce contacts will sync and appear in your CINNOX Contacts by default.
You can toggle ON the Auto-sync External Contacts to Salesforce to sync and display your CINNOX external contacts in Salesforce.

Auto-sync External Contacts to Salesforce Settings

Sandbox Integration to CINNOX Successfully Completed
Salesforce and CINNOX Contact Fields Mapping
The table below shows how we map each field between Salesforce and CINNOX, which allows the automatic syncing of records between these two applications.

Salesforce and CINNOX Contact Fields Mapping
Or you can click the My Account > Integration to be redirected to your Integration page under your My Account to log in to your Salesforce account and sync your contacts.

Salesforce Login in CINNOX
Refer to the Salesforce Contacts and Cases in CINNOX section of this Guide for details on logging in to your Salesforce and the features available in more information.
š§
When you disconnect the sandbox integration, the changes made to Salesforce Contacts and external contacts will be no longer available in your CINNOX service.
The sandbox is used to test the integration and create Apex Classes and Trigger to deploy in the Production.
To disconnect the integration of Salesforce Sandbox and CINNOX.

Disconnect Sandbox and CINNOX
Afterwards, please proceed with the following steps:

Selecting Salesforce Production
š
The creation of New Remote Site and New Connected App steps are similar to the steps of Sandbox integration. The only difference is the environment.
Create New Remote Site

Production - Create a New Remote Site
Create a New Connected App
Log in to your Salesforce Production Org using your System Admin account.
Navigate to Setup > Apps > App Manager and click New Connected App.
Fill in all required fields in the form and tick the Enable OAuth Settings checkbox.
Copy the Callback URL from CINNOX to Salesforce Callback URL
Under the Selected OAuth Scopes , select and click Add for the following:
Click Save.

Production - Create a New Connected App
You must create test classes with a pass rate greater than 75% code coverage to deploy classes in Production.
For more details, please refer to Salesforce - Instructions to test Apex code.
Here are the sample test classes you can add to your Sandbox Org.

Created Apex Class (Webhook) in Sandbox
WebhookMockImpl
global class WebhookMockImpl implements HttpCalloutMock {
public static HttpResponse response;
global HTTPResponse respond(HTTPRequest req) {
response = new HttpResponse();
response.setStatusCode(200);
return response;
}
global static void callout(String url, String content) {
}
}
TestContactTrigger
@isTest
public class TestContactTrigger {
@isTest static void TestTrigger() {
// Test data setup
// Create an account with an opportunity, and then try to delete it
Account acct = new Account(Name='Test Account2');
insert acct;
Contact newContact = new Contact(LastName='TestContact3', AccountId=acct.id);
//insert newContact;
// Perform test
Test.startTest();
Test.setMock(HttpCalloutMock.class, new WebhookMockImpl());
Database.SaveResult result = Database.insert(newContact, false);
Test.stopTest();
// Verify
System.debug(result.getErrors());
System.assert(result.isSuccess());
}
}
TestWebhook
@isTest
public class TestWebhook {
@isTest static void TestJsonContent() {
System.TriggerOperation op = TriggerOperation.AFTER_INSERT;
List<Account> contacts = new List<Account>();
String result = Webhook.jsonContent(op, contacts, contacts);
System.assert(result.length()>0);
}
}
š
A total of four (4) Apex Classes should be created in your Sandbox Org.

Created Apex Classes (Webhook + test classes) in Sandbox
When the Upload Authorization Direction is not a green arrow pointing to Production from Sandbox. For example, it displays a separate red line (please refer to the image below).

Deployment Settings - Upload Authorisation Direction Status

Production Deployment - Allow Inbound Changes

Production Deployment Settings
Next,

Sandbox Outbound Change Sets

Sandbox Outbound Create New Change Set

Sandbox Outbound Change Set Components

Sandbox Outbound Change Set Components - Apex Classes

Sandbox Outbound Change Set Components - Apex Trigger

Sandbox Outbound Change Set Components - Apex Classes & Trigger

Sandbox Outbound Change Set Upload

Sandbox Outbound Change Set Upload

Sandbox Outbound Change Set Upload Status

Email Received - Successful Upload of Change Sets
Then,

Production Inbound Change Set Deployment

Production Inbound Change Set Deployment

Production Inbound Change Set Deployment

Production Inbound Change Set Deployment Status

Production - Apex Classes

Production - Apex Trigger

CINNOX Dashboard > Production - Setup
š
Providing the Consumer Key, Consumer Secret, and Domain steps are similar to the steps of Sandbox integration. The only difference is the environment.
Consumer Key and Consumer Secret
To provide the Consumer Key:
To provide the Consumer Secret:

Production - Consumer Key and Secret
Domain Name
To find the Domain Name:

Production Org Domain

Validate Production Details
A pop-up window will appear, asking you to log in to your Salesforce System Admin account to authorise CINNOX.

Validate the Production Integration
Note: If your Salesforce account is logged into a device and browser for the first time, Salesforce will require the verification code sent to your email.
And provide permissions to CINNOX to access the following:

Allow Permissions to CINNOX
The page below will appear when you have completed the steps and successfully connected your Production Org to your CINNOX service.
Your Salesforce contacts will sync and appear in your CINNOX Contacts by default.
You can toggle ON the Auto-sync External Contacts to Salesforce to sync and display your CINNOX external contacts in Salesforce.

Auto-sync External Contacts to Salesforce Settings

Production Integration to CINNOX Successfully Completed
Refer to Salesforce Contacts and Cases in CINNOX section of this Guide for details on logging in to your Salesforce and the features available in more information.