Skip to content
  • Academy KB Home Redesign
  • Broadband Home
  • CCaaS
  • Channel Partner Support
  • Circle Loop Home
  • Collaborate
  • Connectivity
  • Courses
  • Documentation
  • Ethernet
  • FibreXchange
  • FUSION IoT
  • Gamma AI Concierge
  • Gamma Plus
  • Gamma SIP for Cloud Connect
  • Gamma SIP Global Communications Enablement
  • Gamma SIP Trunks for Genesys Cloud
  • Hannah – Homepage WIP
  • Home
  • Horizon
  • Horizon Contact
  • Horizon Forms
  • Horizon Service Description Home
  • Horizon with Webex
  • Inbound
  • iPECS
  • Knowledge Base Intro
  • Knowledgebase Directory
  • LoginPress
  • Microsoft
  • Microsoft Teams Direct Routing Home
  • Microsoft Teams Operator Connect
  • Mobile
  • Multiple KB
  • My Courses
  • No Access
  • No active page
  • Numbering and Porting
  • Phoneline+
  • Product Homepage
  • Quick Download Button
  • Release Notes
  • Release Notes
  • SIP Home
  • Test
  • UCaaS
  • User Account
  • Voice
  • Voice Enablement
  • Webex for Gamma
  • Webex for Gamma Release Notes
  • Gamma Academy Knowledge Base
Gamma Academy Knowledge Base
  • Cloud Calling and Collaboration
    • Webex for Gamma
    • Horizon with Webex
    • Horizon
    • Phoneline+
    • Operator Connect
    • Direct Routing
    • Inbound
    • Akixi CX Analytics
    • Red Cactus
  • Connectivity and Networking
    • Numbering and Porting
    • Broadband
    • FibreXchange
    • Ethernet
    • SIP Trunking
    • Gamma FUSION IoT
  • CX
    • Horizon Contact
    • AI Concierge
  • Mobile Services
    • Gamma Mobile
  • CyberSecurity
    • SafeWeb
  • Partner & Portal Support
Gamma Academy Knowledge Base

Provisioning and In-Life Changes

  • Before Ordering Horizon
    • Example Checklist of a Horizon Installation
    • Horizon Site Survey
    • Customer Site and Horizon Service
    • Horizon Number Requirements
    • Horizon Network Configuration Guidelines
    • Horizon After Care
    • Horizon Glossary
  • Ordering Horizon on the Gamma Portal
    • Ordering a Horizon Company
  • Configuring Your Horizon Company
    • Horizon Sites
    • Add Horizon Users
  • In-Life Ordering
    • Horizon Change Branding
    • Horizon Bolt-Ons
    • Horizon: Managing Subscriptions
    • Horizon Numbers & Porting
  • In-Life Configuration
    • Multi factor Authentication (MFA)
    • Horizon: Configuring the New Solution
    • Horizon Fraud Management
    • Cease a Horizon Company

Features

  • Device Management
    • Device Customisation
    • Yealink DECT – Multiple Users Assigned to a Single Base Station
  • Outgoing Call Settings
    • Click to Dial
    • Call Barge
  • Call Groups
    • Nuisance Call Management for Horizon Call Groups
    • Instant Conference Group
    • Hunt Groups
    • Call Queue Groups
    • Call Pickup
    • Call Park
    • Call Paging
    • Auto Attendant
  • Voicemail
    • Voice Portal
    • Voicemail
    • Horizon Voicemail Map
  • Scheduling
    • Schedules
    • Create a Call Group Schedule
    • Configuring Additional Routing for Christmas Schedules
    • Configuring Schedules for Auto Attendants using a Hunt Group
  • User Call Setup
    • Availability Profiles
    • Busy Lamp Field (BLF)
    • Comfort Messages
    • CLI Presentation
    • Distinctive Ringing for External Calls
    • Do Not Disturb
    • Hot Desking
    • Remote Office
    • Sequential Ringing
    • Twinning
    • 1 or 2 Digit Dialling (Speed Dials)
  • Company Admin
    • Site-to-Site Presentation Policy
    • Music on Hold
    • Horizon Shortcodes
    • Directory
    • Departments
    • Account and Authorisation Codes
  • Incoming Call Settings
    • Call Waiting
    • Call Transfer
    • Call Recording
    • Call Forwarding
    • Call Barring
    • Automatic Call Back
    • Anonymous Call Rejection

Advanced Feature Guides

  • Call Recording
    • Call Recording Service
    • Call Recording – Portal User Guide
    • Call Recording – MFA How to Guide
    • Call Recording – MFA Technical Support
    • Call Recording – Known Behaviours
    • Call Recording – FAQs
  • Integrator
    • Horizon Integrator TAPI User Guide
    • Horizon Integrator Controlled Integrations
    • Horizon Integrator Standard Select Integrations
    • Horizon Integrator Client SDK Engagement Process
    • Horizon Salesforce (Lightning) Adaptor Add-in Guide
  • Call Center Guides
    • Horizon Call Centre Administrators Guide
    • Horizon Internet Explorer Settings for Full Screen Mode
  • Multi-Factor Authentication (MFA)
    • How-To Guide: Horizon Multi-Factor Authentication
    • Multi-Factor Authentication (MFA) FAQs
    • Technical Support Guide: Multi-Factor Authentication
  • Soft Phone Guides
    • Horizon Soft Phone Guide – iOS
    • Horizon Android Soft Phone Guide
    • Horizon Soft Phone Client PC Guide
    • Horizon Setup Soft Phone Client for a user Guide
  • Akixi
    • Akixi Documentation

Technical Support

  • Diagnosing and Raising a Fault
    • Horizon Health Check
    • I Have a Problem With Call Connection/Calls are Dropping
    • I Have a Problem With Call Quality
    • I Have a Problem With a Feature
    • I Have a Problem With the Horizon Portal
    • New Call Recording Technical Support
    • Raise a Fault
  • Handset Support
    • Poly Profile Rules and Recovery
    • Cisco Profile Rules and Recovery Process
    • Yealink Profile Rules and Recovery Process
    • Handset Returns
    • Horizon RMA Check List
  • Handset User Guides
    • Poly Handset User Guides
    • Cisco Handset User Guides
    • Yealink Handset User Guides
    • Sennheiser Handset User Guides
  • Known Behaviours
    • Horizon Known Behaviours
    • Horizon SIP ALG

Service Description

Horizon Release Notes

T&Cs and SLAs

Horizon Forms

Provisioning and In-Life Changes

  • Ordering Horizon with Webex on the Gamma Portal

Features

Technical Support

User Knowledge Base

Service Description

Horizon with Webex Release Notes

Horizon with Webex Forms

T&Cs and SLAs

  • Home
  • Home
  • Advanced Feature Guides
  • Integrator
  • Horizon Salesforce (Lightning) Adaptor Add-in Guide
View Categories

Horizon Salesforce (Lightning) Adaptor Add-in Guide

NOTE: Salesforce Adapter is not supported on Terminal Service environments at present.

Pre-Requisites #

Access to an Administrator account for Salesforce

The Horizon Integrator Client (version 3.0.12.18122 or higher) installed and started

Horizon Integrator Client CRM license

Step 1: Download the Adapter’s Definition #

Go to the following link to download and save the adapter’s XML definition file: 

Download Horizon Integrator Salesforce Adapter.

Step 2: Import the Adapter Definition #

Log in to Salesforce as an administrator, click on the cog and then select ‘set up’

Salesforce Setup link

This will reveal the setup menus.

Call Centers link in Customize section

Search for ‘Call Centers’. Once on this page, press ‘import’, locate the adapter XML definition file, and press ‘import’ again.

Step 3: Manage Call Center Users #

Manage Call Center Users button

Once you have completed the import, you will be automatically taken to the Horizon Integrator Call Center Adapter screen shown here. Click on the ‘Manage Call Center Users’ button.

Add More Users button

In the Manage Users screen, click the ‘Add More Users’ button to start adding users that you want to have access to the Adapter.

Find button

Use the search filters to locate the user(s) that you wish to add, or just leave the filters set to none, and then click the ‘Find’ button.

User selection

This will reveal your filtered list of users. As shown below, tick the user(s) that you want to add, and then click the ‘Add to Call Center’ button.

Users list

When you return to the Manage Users screen, you’ll see your selected users listed.

Step 4: App Manager #

App Manager

Next, search in the ‘quick find’ box again, this time, for ‘App Manager’

List of applications

A list of applications will appear. Select an application that has an app type of ‘Lightning’. Press the drop-down menu and then ‘edit’.

Utility bar

Select ‘Utility Bar’ from the ‘edit app’ form that appears.

Salesforce home

Select “add” and choose “Open CTI Softphone” from the drop-down.

Open CTI Softphone button

The panel width/height is set automatically but can be changed if required. to do this, edit the details under the CTI Softphone form. Once you are happy with the options, press ‘save’.

IMPORTANT:

Visibility is configured per Salesforce App – ie. you need to add it to each App that you want it to be accessible in.

Ensure the user is assigned the Lightning Center Adapter, otherwise it will not be displayed in their utility bar.

You may need to refresh the page for it to show – i.e. Ctrl F5

Panel Status #

If the user has Horizon Integrator running and a valid CRM level license, their Softphone State will show as ‘Available’ and they are ready to work with the Softphone.

If the user is experiencing connection issues, or their Horizon Integrator client does not support the Salesforce integration, their state will show as ‘Not connected’. See the troubleshooting section for help.

Configuring Multiple Search Results Feature #

Multiple search results settings

To allow the multiple searching to work the admin must enable a setting as follows (see screenshot).

Go to Customize – Call Centers – Softphone Layouts

Edit the Standard Softphone Layout

In the section ‘Screen Pop Settings – Multiple-Matching records’, press edit

Select the option “Pop to search page”

Customise “New” Entity #

Customize new entity

If this setting is not configured, then the “+” button will create a new lead. If not configured it is either “No matching records” is set to “Don’t pop any screen” or “Pop to New ‘–None—'”.

Customising the behaviour of the “+” button can be done by selecting another entity in the list.

Note: Different Softphone Layouts can be created and assigned for each user allowing customising of the behaviour for each user. This is not covered here in this guide.

Troubleshooting #

If the status on the Softphone panel shows as “Not Connected”, check the following:

Check that the user has their Horizon Integrator client running and connected to their host account

Please check that your client meets the prerequisite version for Salesforce Adapter

Check that the user has a valid CRM license assigned to them and that they have “CRM” selected as the License Type in their client configuration

If the Softphone panel does not appear for a user:

Check that the user is assigned to use the Horizon Integrator Salesforce Adapter (they should be listed in the Manage Users page shown in Step 3 above)

If multiple contacts are found and the search button does not work:

You should check the section “Configuring Multiple Search Results Feature” above

Optional Configuration #

Include the Users Time Zone in the Call History Subject #

Install this Salesforce Apex class in order to include the user’s Timezone in the Call History subject, for example:

Inbound Call at 16:11:36 Europe/London from 07814256404 (Fred Bloggs) 
Inbound Call at 16:14:28 Asia/Hong Kong from 01202528735 (John Smith) 
Inbound Call at 16:14:50 Asia/Hong Kong from 01202528732 (Bournemouth)

Note: If the Apex class is not installed the softphone will work as usual however will not show a Timezone in the subject.

To Install the Salesforce Apex class:

Go to Setup -> Build -> Develop -> Apex Classes.

Select New Apex Class.

Paste the below code to the edit box and save.

global class GetCurrentUser{ 
    webService static String getUserTimeZone() { 
        TimeZone tz = UserInfo.getTimeZone(); 
        return tz.getDisplayName(); 
    } 

    webService static String getUserId() { 
        return UserInfo.getUserId(); 
    } 
}

How To Modify the InternalNumbersDigits Length (version 1.0.1+) #

In the event that a site has internal extension numbers longer than 5 (default), you should add the method described below to the Apex class.

By adding this method you can override the default value. If the length of the phone number received during a call event is less than or equal to this value, then the call is considered to be an internal call.

Internal calls never get assigned a related entity (1.0.1)

Internal calls do not cause a contact search in Salesforce softphone

Add the following to the body of the Apex class.

webService static integer getInternalNumbersDigitsLength(){ 
    return 5; // change this value
}

Setting Search Entities #

When a call is made or received you can customise which entities are searched for a match by configuring the Softphone Layout as below.

Softphone layout configuration

NB: There are limitations in searching the Cases by phone number; this is a limitation of Salesforce API at the time of writing. Salesforce cannot search the associated contact for a Case.

If multiple matching entities are returned from Salesforce, then the adapter will follow the setting configured under “Multiple Matching records” in the Softphone Layout as shown below.

Screen pop settings

User Guide for Salesforce Adapter #

The Salesforce Adapter presents a convenient embedded call control window in the Salesforce browser window to allow tight integration between Salesforce and the user’s handset.

Users can interact with Salesforce to initiate calls, answer calls, and add new or “pop” existing entities such as Leads, Contacts, Cases etc. using the telephone number of the caller or called party. Call History records are also written against the selected entities.

Key Features #

Create a new Salesforce record (lead/account/case/etc)

Pop an existing Salesforce record

Click to call

Write a call record against a Salesforce entity

Answer, hold and hang up the call without leaving Salesforce

User Interface #

The Adapter provides an embedded user interface within the classic Salesforce view.

When a phone call is received, the adapter will automatically search through all the records held within Salesforce to find the number that is dialling in. Depending on what it finds, one of three things will happen:

One: #

Salesforce view

The phone number is found once: The Phone Panel displays a ‘pop’ button. This button allows the user to open the record that has been found.

Two: #

Multiple instances of the phone number are found: The Phone Panel displays a ‘search’ button. Clicking this will show the multiple instances found, allowing the user to manually select the correct instance.

Salesforce view

Three: #

The phone number is not found: The Phone Panel displays the ‘New’ button. Clicking this button will create and open a new entity with an association to the caller’s number.

Salesforce view #

Answer, Hold and Hang Up the Call Without Leaving Salesforce #

The Adapter offers buttons for the call control features Answer, Hold and Transfer from within the Salesforce page.

Click to Call #

Salesforce click to call

Click to call provides the ability to click on a phone number in Salesforce in order to have your desk phone dial that number. The Adapter also includes a convenient phone number dial field to allow the user to dial a custom number by entering the number and pressing the dial button.

NB: Recently new in-browser diallers have been introduced by third parties. If you are experiencing issues with dialling, you should ensure that no browser dialling addons are active.

Adapter behaviour #

Writing a Call Record Against a Salesforce Entity #

Telephone call activity recording is performed by inserting a completed Activity into Salesforce and where possible associating the activity with a Salesforce entity. This document uses the term “Call Record” to describe the activity record that is created in Salesforce.

When is a Call Record created?

A Call Record is created when a user running the Salesforce Adapter hangs up or transfers a telephone call from the handset that is monitored by the Adapter

How is a Call Record Associated with a Salesforce Entity? #

Associating a call to an entity is affected by multiple situations. This is because the only possible matching opportunity is using the external phone number associated with the active call. Within Salesforce, a number can appear more than once e.g. against a contact, against a company or even multiple times in various leads. This means the recording method relies on user interaction to improve and confirm the entity associations.

Should a match be made, the user can pop into the entity and continue to use Salesforce as they typically would. On call completion, the Call Record will be saved and associated with the current open page. So, in the scenario where the first entity popped was not the preferred match and the user then navigates to the correct match (account for example), then the adapter will use the new entity as the preferred match.

If there is a single match for the contact for an inbound or outbound call, and no interaction is made (for example “popping” the contact record) then the call record will still be associated with that contact automatically.

If there is more than one match, then the user must select a contact for the Call Record to be associated with. If the user does not interact by navigating to an entity in Salesforce, a Call Record will still be added on call completion, but no entity association will be made.

Outbound calls are handled similarly to a single-matched record. For example, if click to dial is actioned from an entity’s page, it can be asserted that this is the correct entity to associate the Call Record with, so, in this case, if the user completes the call without any actual interaction, it will be associated with this entity.

Impact of Transferring a Call #

In telephony, a call is completed when a user transfers or hangs up the active call on their handset. So, in the transfer call scenario, there will be two or more call completion points, hence more than one call saved.

Manual Dialling #

What if you don’t dial or click to dial from within salesforce, that is, you manually make a call from the handset? If the user is logged into Salesforce and the Adapter is connected, the behaviour will be the same as if using “click to dial” from within Salesforce. i.e. if a single contact entity is matched it will be associated with the entity, if more than one is matched and no interaction takes places to select the entity, then it will not be associated. However, if you are not logged in to Salesforce with the Adapter connected then no Call Record will be logged.

Internal calls and Dialling rules #

Internal calls are saved however from version 1.0.1 they will not be associated with the Salesforce entity. They will show in Call Center / Call related reports. Determining whether a call is internal or external is governed by the settings in client software that the Adapter uses to make the connection to the telephone system (by default a number of 6 digits or greater is treated as external).

Reporting on Call Records #

To report on call history, the user is required to create a Salesforce report. Follow the steps provided in the appendices on Creating Call History report.

As the call is recorded as a Salesforce Activity we are limited to what information we can store. (See appendices on Call Record Example.)

Summary of Call Record Association handling #

Outbound #

Click to dial has the best chance of correct association as uses the page dialled from.

If a single match is made that entity is associated with the call record.

If dialled from the List Page, like the Home page, then you should navigate to an entity for the correct association to occur.

Manual dial via number entry – the user should dial from the home screen i.e. not from an entities page. Without interaction, it will not associate with any entity, but if you are on a contact record it will associate with that record.

Inbound #

If a single match is made that entity is associated with the call record.

If multiple matches are found, then based on the user’s interaction of selecting a contact will determine the association.

If not found and the user selects the new button, the call record is associated with the new record.

If not found and the call ends without selecting the new button then no association is made.

Transfer #

Multiple Calls records are created for each user who handles the call

Searches occur after a transfer – so the second user will need to navigate to the correct contact too

Internal calls #

Are saved – from 1.0.1 onwards are not associated with Salesforce entity other than user – internal calls follow dialling rules set in the client for min Length and must start with

Dial from Handset. #

Call recorded if Salesforce is open, logged in, Client is running, user has CRM license and Adapter is active on an open Salesforce page. No SF adapter no record saved. Note that some Salesforce pages do not have an Adapter section e.g. Report page and Chatter page

FAQ #

I know I called John Smith, but there is no call record. What could cause no call record?

For a call record to be saved – the desktop Client must be running and “Connected” to the user’s device AND Salesforce Adapter must be active “connected” and receiving events. If one of these conditions are not met then a call cannot be recorded.

Where can I see a report of all calls for my department?

You will need to add a Salesforce report on Activities – follow the instructions in the Appendices (Creating Call History report).

I never made that call, where did it come from?

Check if someone else logged into your Salesforce account and if they have a Salesforce adapter configured. This would generate a call record for your user when a call is made.

Why does my adapter say “Not Connected”?

Check that your client is running and has a valid CRM/DB license.

I can dial from Salesforce but my adapter says not connected. Why?

Click-to-dial is a basic level feature of the client software. The dial may be using a browser’s add-on or extension. In other words, you can configure click to dial in any browser even if you have a CLIENT license. So, it is feasible that you have enabled this via another method and it’s not actually using the adapter to facilitate click-to-dial.

Why does the initial call show up in the adapter as a valid contact name, then it shows as not found?

If you have configured another CRM integration in the client, e.g. Outlook, the event that is received may have been decorated with a found contact from another CRM and added this information to the call event. You should be aware that other CRMs can be configured alongside the SF adapter, but you should be aware of this behaviour.

Appendixes #

Call Record examples #

A call record is an Activity and includes the following fields

Assigned to: Salesforce user involved with the call

Description: text field describing the call in the format: at <Time> <**TimeZone > to/from <number> <contact name>

e.g. Outbound Call at 1:09:36 PM Greenwich Mean Time to 07814256404 (David Teague)

Duration: seconds

Date: Date of the call

Priority: Normal – this is set by Salesforce

Status: Adapter sets the task as completed

Task: Ticked as per completed above

Associated entity: one or more entities] By associating the activity with an entity, the call is visible in an entity’s Activity History panel

Creating a Call History report #

In salesforce navigate to the Reports tab and select New Report

Reports and dashboards

Select an Activities and Task report and select “Create”

Create new report

You are taken to a customise page, select Save

Customise report

Name the report and specify its visibility/Report Folder.

Save report

You have created a Call report.

To improve the report we suggest adding Duration, and Call Start time.

Feedback #

Name

Roy Farrow

Role

Product Manager Advanced Services

roy.farrow@gamma.co.uk

07467 915 825

0333 240 3478

Updated on 21/12/2023
Horizon Integrator Client SDK Engagement ProcessHorizon Integrator TAPI User Guide
Contents
  • Pre-Requisites
  • Step 1: Download the Adapter's Definition
  • Step 2: Import the Adapter Definition
  • Step 3: Manage Call Center Users
  • Step 4: App Manager
  • Panel Status
  • Configuring Multiple Search Results Feature
  • Customise "New" Entity
  • Troubleshooting
  • Optional Configuration
    • Include the Users Time Zone in the Call History Subject
    • How To Modify the InternalNumbersDigits Length (version 1.0.1+)
    • Setting Search Entities
  • User Guide for Salesforce Adapter
    • Key Features
    • User Interface
      • One:
      • Two:
      • Three:
    • Answer, Hold and Hang Up the Call Without Leaving Salesforce
    • Click to Call
  • Adapter behaviour
    • Writing a Call Record Against a Salesforce Entity
      • How is a Call Record Associated with a Salesforce Entity?
      • Impact of Transferring a Call
      • Manual Dialling
      • Internal calls and Dialling rules
      • Reporting on Call Records
    • Summary of Call Record Association handling
      • Outbound
      • Inbound
      • Transfer
      • Internal calls
      • Dial from Handset.
    • FAQ
    • Appendixes
      • Call Record examples
      • Creating a Call History report
  • Feedback

Copyright © 2026 -  Gamma Telecom Ltd

Gamma API
We use cookies to measure performance and make improvements to this service. This includes page views, device/browser, location, and page interactions. We do not collect any information you upload to this site. By agreeing, you consent for your data to be used for this purpose.