Universal Telephony Connector – UTC
1. Feature Overview
The Universal Telephony Connector (UTC) enables you to integrate your cloud telephony service provider(s) with LeadSquared –
- Integrate multiple instances/accounts of your telephony provider –
If you have multiple contact centers in different regions (E.g., northern region, southern region, etc.), you can configure each of them as separate tabs. - Integrate multiple telephony providers –
If you’re using two or more telephony service providers, you can now integrate all of them in one place. - Assign to teams –
Assign different instances of one telephony provider or even different providers to teams in your account. For example, you can now assign a northern region telephony instance to your northern region team, a western instance to your western team, and so on. For more information on teams, see LeadSquared Teams.
Note:
- The connector acts as a shell or umbrella under which you can create and configure multiple instances, using either of the following-
- For a list of mail-merge parameters on Click2Call, Agent Panel, and Call Log, refer to this article.
To learn more about LeadSquared telephony integrations, read LeadSquared Telephony – Feature Guide.
2. Prerequisites
- You must be an Administrator user to access the connector configuration.
- Developer experience is required to understand the format of the data and configure the connector with your telephony provider.
- The table below outlines the distinction between APIs/URLs provided by LeadSquared and those provided by your telephony provider. LeadSquared’s APIs/URLs are accessible through the UTC configuration page, while your telephony provider’s APIs must be obtained directly from them. If you encounter any issues with an API, please get in touch with the respective API owner.Â
LeadSquared APIs Telephony Provider APIs Call Route API (Lead/Opportunity routing) – The Call Route API directs incoming calls from existing leads to the corresponding Lead or Opportunity owner in your LeadSquared account. Â
Note: LeadSquared does not automatically route calls to owners. Instead, it provides the Lead/Opportunity Owner details to your telephony provider, who then routes the call accordinglyClick2Call API – The Click2Call feature allows your sales reps or agents to initiate outbound calls by simply clicking on a lead’s phone number in the Manage Leads or Lead Details pages Agent Popup API – This API logs all inbound and outbound calls made through your telephony account into LeadSquared, ensuring comprehensive call tracking. Agent Panel URL – Agent Panel URL allows you to embed your provider’s Softphone into LeadSquared. Call Log API – All inbound and outbound calls made through your Telephony account can be logged in LeadSquared by setting up Call Logs Call Disposition – Call disposition allows users to record specific information related to a phone call once it ends. Single Sign–On API – This API enables embedding LeadSquared within your telephony provider’s portal.Â
3. Installation
Navigate to Apps>Apps Marketplace, search for the Universal Telephony Connector and click Install.

4. Configuration
- Next, hover the cursor over the settings
icon and click Configure. - Click the Add New Connector button.
- Select the Connector Type (LeadSquared Generic Telephony Connector, Ozonetel V2, etc.).
- Name the connector, then click Add.

Note: You can add a new instance, clone an existing one or delete an instance using the options highlighted below.

5. Virtual Numbers
Use this section to add one or more virtual numbers (also called DIDs/CLI) for the connector you’re configuring. You can also tag them if you like. Click the Save
icon to save a virtual number and click Add to add another number.
Note:
- By default, you can add up to 10 Virtual Numbers/DID. To increase this limit, contact your account manager or write to support@leadsquared.com.
- If the virtual number is entered in the correct format <+91-number>, only the tag name will be displayed in the the outbound phone call activity.

6. Call Route API
The Call Route API automatically routes incoming calls from existing leads to the respective Lead owner/Opportunity owner in your LeadSquared account. The API must be configured as a hook on your telephony provider’s end.
- Copy the Call Route API (will resolve to Lead, Opportunity, or Tickets) and deploy it in your cloud telephony account.
- Use HTTP GET to send the data. Please refer to the ‘Usage’ section to understand how to send the data.
Note:
- In existing instances, the deprecated Lead Route API has been replaced with Call Route API. In new instances, only the Call Route API will be displayed.
- To add an extra layer of security you can Enable Additional Authentication and pass the generated key-value pair in the request header when calling the API. These additional authentication headers can also be generated for the Agent Popup API and Call Log API.

7. Agent Popup API
Enable real-time call notifications to users in the form of an Incoming Call Popup during an inbound call from a lead (made to your virtual number). The pop-up displays the lead’s details if the lead exists in your account, or displays an empty form that agents can use to capture the new lead.
Note:
- When you select Enable, it allows admin users to enable the Show Phone Call Popup setting for all users in the account. Disabling this setting does not turn it off for all users.
- Incoming calls matching a lead’s secondary phone number will be tracked without creating a duplicate lead.
- If you have multiple leads with the same phone number, you can pass theÂ
LeadId in the Agent Popup API. This will ensure that the correct lead details appear in the agent popup. For e.g.,Â"LeadId": "4c70ce73-0732-4977-85a2-fb49a978b85c". - To enable client-side logging, which allows browser events, messages, and errors to be logged to a log stream (e.g., Loggly), contact your account manager or write to support@leadsquared.com.
- You can disable the close icon on the Agent Popup form by enabling Hide Close Option “X”. This feature ensures that agents adhere to specific workflows and processes by preventing accidental popup closures.
Agent Pop-Up API Details
- Copy the Agent Popup API URL from the Agent popup tab and deploy it in your cloud telephony account.
- Use the HTTP POST method to send the data to LeadSquared in JSON format.
- Enable Agent Popup by selecting the checkbox.
Refer to the ‘Usage’ section to understand how to send the data.

Custom Mapping
Telephony providers send us varying data using the Agent pop-up API. Enable custom mapping to map the variables received in the JSON file to the corresponding LeadSquared parameters.
| Â Property | Sample Value | Description |
|  SourceNumber | +919611795983 | For Inbound Call-  Lead’s contact  number For Outbound Call-  User’s Number or Agent’s number. A Hyphen separator is expected in the outbound call number if a country code is being passed; for example, +91-9611795983. |
| DestinationNumber | +919611795980 | For Inbound Call-  User’s Number or  Agent’s number. A Hyphen separator is expected in the inbound call number if a country code is being passed; for example, +91-9611795983. For outbound Call-  Lead’s contact  number |
| DisplayNumber | +919020897874 | Virtual(DID) Number provided by the provider |
| StartTime | 2015-08-20 18:26:38 | Start time of the call in IST |
| Status | Answered | Status of the call, can be Answered, Missed, Voicemail |
| IVR | 1 | IVR option to be passed for Opportunity-Virtual Number mapping |
| Opportunity-Telephony MappingId | O$a7131527-55c8-4871-a3bb-7ff74b55555 | Mapping ID passed for Opportunity-based click2calls. |
| Opportunity ID | 83uhd8-uendur-83ehdn | When passed in call log details, activity is posted on the Opportunity. |
| CallSession Id | 080673309211440075398 | Unique Identifier for a call provided by the telephony provider. In case the provider does not provide the identifier, a default identifier will be generated. |
| Agent Id | Test.user@lsqdev.in | Unique Identifier at the provider’s end for identifying an agent. For example, the agent’s phone extension, email ID, or SIP extension. |
| Lead Id | 293847-dhcnj-12333-48fn | Pass to identify the lead directly. this will be given preference over the phone number. |
| Entity Id | Pass to identify the entity directly, takes precedence over the lead or opportunity or ticket ID when resolved. |

Agent Panel Settings
The agent panel enables you to embed a softphone and manage your call center actions directly from your LeadSquared account. Add a custom URL and append mail merge parameters (click the help
icon) to configure the agent panel.
Note:
- When you Enable Agent Panel, it allows admin users to enable the Is Soft phone Enabled option for all sales users in the account. Disabling this setting does not turn it off for all sales users.
- Agents will be presented with only the relevant Angent Panels based on the team-mapping configuration. If team-mapping has not been configured across any instance, then the mapping from the default instance will be applicable.
- For available Mail Merge fields, read this article.

| Setting | Description |
| Show on Top | Displays the agent panel over any overlapping window (including the agent pop-up). |
| Hide Scale Button | Hides the maximize/minimize buttons on the panel. |
| Panel URL | The source iFrame URL for the panel. Click the help |
| Panel Permissions | Configure iFrame permissions like microphone, camera, geolocation, etc. |
| Panel Title | Customize the display text on the panel title bar. |
| Panel Height | Adjust the default height of the panel (in pixels). |
| Panel Width | Adjust the default width of the panel (in pixels). |
8. Call Log API
All inbound and outbound calls made through your Telephony account can be logged in LeadSquared by setting up Call Logs. These logs will be posted to LeadSquared as incoming/outgoing phone call activities.
You can also enable custom mapping functionality, to map and capture data about each phone call in the relevant LeadSquared activity fields. There are also custom fields available to map additional data provided by your telephony service.
Note:
- When your Telephony provider calls the LeadSquared API, data can be pushed into LeadSquared using POST method in JSON format.
- For this API, the Content-Type has to be set to application/JSON, and the Body should be passed in the raw JSON format.
- The Content-Type application/x-www-form-urlencoded is deprecated but is supported on legacy versions.
- In Custom Mapping, when you select the Custom option (below required, additional), you can use the fields
mx_Custom_10tillmx_Custom 14to store additional data sent by the telephony provider.
Once you’ve finished the configurations, you can check your telephony logs by navigating to My Account>Settings>API and Webhooks>Telephony Logs.

Here are the parameters you can post –
{
"SourceNumber":"9611232123",
"DestinationNumber":"9876543210",
"DisplayNumber":"1000001000",
"StartTime":"2015-08-20 18:26:38",
"EndTime":"2015-08-20 18:26:38",
"Duration":"12",
"Status":"Answered",
"CallNotes":"Enquired about product",
"ResourceURL":"server/filename.extension",
"Direction":"Inbound",
"CallSessionId":"080673309211440075398",
}
| Â Property | Sample Value | Description | Mandatory |
|  SourceNumber | +919611795983 | For Inbound Call-  Lead’s contact  number For Outbound Call-  User’s Number or Agent’s number. A Hyphen separator is expected in the outbound call number if a country code is being passed; for example, +91-9611795983. |
 Yes |
| DestinationNumber | +919611795980 | For Inbound Call-  User’s Number or  Agent’s number. A Hyphen separator is expected in the inbound call number if a country code is being passed; for example, +91-9611795983. For outbound Call-  Lead’s contact  number |
Yes |
| Duration | 12 | Duration of call in seconds | Yes |
| DisplayNumber | +919020897874 | Virtual(DID) Number provided by the provider | Yes |
| Status | Answered | Status of the call, can be Answered, Missed, Voicemail | Yes |
| StartTime | 2015-08-20 18:26:38 | Start time of the call in IST | Yes |
| *StartTimeUTC | Tue, 05 Jul 2022 10:30:30 GMT | Start time of the call in UTC | No |
| CallSessionId | 080673309211440075398 | Unique Identifier for a call provided by the telephony provider. In case the provider does not provide the identifier, a default identifier will be generated. | Yes |
| EndTime | 2015-08-20 18:26:50 | End time of the call | No |
| CallNotes | Enquired about a product | Additional notes about the call | No |
| ResourceURL | Server/filename.extension | URL of the file with a recording of the conversation | No |
| Direction | Inbound | Inbound or Outbound | Yes |
| IVR | 1 | IVR option to be passed for Opportunity-Virtual Number mapping | No |
| Opportunity-Telephony MappingId | O$a7131527-55c8-4871-a3bb-7ff74b555555 | Mapping ID passed for Opportunity-based click2calls. | |
| Opportunity ID | 83uhd8-uendur-83ehdn | When passed in call log details, activity is posted on the Opportunity. | No |
| Agent Id | Test.user@lsqdev.in | Unique Identifier at the provider’s end for identifying an agent. For example, the agent’s phone extension, email ID, or SIP extension. | No |
| Lead Id | 293847-dhcnj-12333-48fn | Pass to identify the lead directly. this will be given preference over the phone number. | No |
| Call Origin | Web | Specify the lead origin. | No |
| mx_Custom_10 | Additional custom field to send additional data. The display name of the field can be modified on the UI. It can have any string value passed from the provider. | No | |
| mx_Custom_11 | Additional custom field to send additional data. The display name of the field can be modified on the UI. It can have any string value passed from the provider. | No | |
| mx_Custom_12 | Additional custom field to send additional data. The display name of the field can be modified on the UI. It can have any string value passed from the provider. | No | |
| mx_Custom_13 | Additional custom field to send additional data. The display name of the field can be modified on the UI. It can have any string value passed from the provider. | No | |
| mx_Custom_14 | Additional custom field to send additional data. The display name of the field can be modified on the UI. It can have any string value passed from the provider. | No |
9. Click 2 Call API
The Click2Call feature enables your sales reps/agents to place an outbound phone call just by clicking the lead’s phone number (on the Manage Leads or Lead Details pages). If you use the Opportunities feature, click 2 call can be used to call leads from the Opportunity Management and Opportunity Details pages as well.
Depending on the capabilities of your telephony provider, it can be configured using either a server-side API or a client-side script.
Server-side API
This is the default configuration option.
Your telephony provider’s Click2Call API is configured here, and you can append mail-merge parameters (like agent phone number, lead phone number, etc.) to the API URL to facilitate the calling functionality.
-
- Pass the Click2Call API in the URL textbox.
- You may optionally pass custom headers to the API for authentication.
- Select the HTTP method needed by the telephony operators Click2Call API.
- Map a keyword from the response of the Click2Call API. Typically we use a keyword like “success”. This lets our system know that the API request fired correctly and a response was received.
- Choose the format of the API response data (Text, JSON).
- Admins should configure their telephony provider’s email address in the Provider Support Email field. This ensures that agents receive clear guidance when encountering call failures due to either UTC configuration issues or provider-side technical problems.
- You can filter virtual numbers for users by toggling the Enable Virtual Number Filter option. Read this article for more details.
- Click the Enable
checkbox.

Client-side Script
For telephony providers with JavaScript SDKs, the Click2Call functionality can be configured using a client-side script. The outbound phone call functionality will be handled by the script and the call will be initiated via the browser to the telephony provider.
- Enter the URL of the Javascript file, which must be hosted on the LeadSquared domain (external domains are not supported). The JS file will be published only after an internal review process.
- You can pass data to the script using mail-merge parameters (like agent phone number, lead phone number, etc.).

Note:
- For a sample JS file template, please reach out to your account manager
- Additionally, a flag called Is Softphone Enabled must be checked for each agent, in the user settings UI. This also disables the “Agent Panel” for the agents.

10. Call Disposition
Call disposition lets users enter certain information related to a phone call once it ends.

Note:
- To use this feature, you must first create a Custom lead field in LeadSquared (say ‘Disposition’). For more information, see How to Create Custom Lead Fields.
- Disposition is available only on Lead Fields.
- Only 1 <string> value can be sent to the provider as disposition.
- User Fields can also be mail-merged in the URL and Data Template – contact support@leadsquared.com to enable this feature.
- For available Mail Merge fields, read this article.
When a call has ended the agent can select an appropriate disposition value on the Call/Agent-Notification Popup, dispose of the call, and get ready to receive the next upcoming call.
- Deploy the URL provided by your telephony service in the URL field with the necessary parameters.
- @callSessionId  – Call session Id passed by the telephony provider in the agent popup request
- @customerNumber – Lead Phone number
- @virtualNumber – The virtual number of your telephony account
- @dispositionValue – Selected disposition value in the agent popup form*
- @agentNumber – Agent’s phone number
- @agentId – User Id of the agent
- @notes – Notes on the call
- @comments – Comments on the call
- @date – The date of the call
- Select the HTTP method in which your telephony service accepts the data.
- You can initiate the following actions (and make them mandatory if required) once a call is disposed of –
- Create a task
- Create a custom activity
- Update a lead field
*On Default Lead Field you must map the custom field you have created to capture the disposition value (refer to the Note above). This field can then be mapped with @dispositionValue in the URL (GET request), or in the Data Template (POST request).

11. Single Sign-on API
This API will help you embed LeadSquared within your telephony application. Use the API and the HTTP POST method to send data to LeadSquared in JSON format. To get the leads details, use the Lead Details API.
Please refer to the ‘Usage’ section to understand how to send the data.

Lead/Opportunity Sharing via SSO APIs
Lead or Opportunity Sharing allows agents to temporarily view/edit the information of a lead or Opportunity (during an inbound phone call) that they don’t have access to. For integrations that don’t support the Agent Pop-up functionality, SSO APIs are used for Sharing. Previously, SSO APIs only supported the lead’s phone number to facilitate the identification and sharing of the lead to the agent. Now, the Lead Id is also supported. This will help customers who have leads in their accounts with the same phone number.
Note:Â
leadIdcan be passed in the Lead Details API URL instead ofleadphonenumber.- Lead sharing can also be enabled through Telephony Settings.
12. Team Assignment
You can assign an instance to one or more teams. While making an outbound phone call (using click2 call), the users in those teams will see the instance(s) assigned to them and can choose to place the calls from any of the virtual numbers created for an instance.
So for example, you can create 2 connector tabs, say ‘Bangalore’ and ‘Chennai’, and assign them to your Bangalore and Chennai teams respectively. Your Bangalore team will then only see the virtual numbers associated with the Bangalore instance tab.


13. User Agent Mapping
Here, you can map each agent/user to a unique identifier. This will be used to identify the correct agent when the ‘Agent’s Phone Number’ or ‘Source Number’ is not stored in LeadSquared.
You may enter any string/alphanumeric value for the Agent Identifier. When calling the Call Log APIÂ or Agent Popup API pass this value in the post body like "AgentId":"abcd1234" . The call log posted for the phone call will be updated with the agent/user associated with the Agent Identifier value, even if the source number is not available. Similarly, the user/agent to display the agent popup to will be identified based on the Agent Id value.

14. Call Status Mapping
UTC supports mapping provider-specific call statuses to LeadSquared-specific statuses. Admins can customize call status mappings and configure multiple statuses as a comma-separated list for Inbound and Outbound calls.
For example, let’s specify Attended as the Provider Status Code for Answered.

Then, the Raw Call Status in the call log will show this mapping after the call ends.

15. Integrate with Opportunities
You can integrate the Universal Telephony Connector (UTC) connector with LeadSquared Opportunities. To know how to do this, please refer to Opportunity Integrations in Telephony.
This will enable you to track phone call interactions with your leads, for each opportunity or potential deal. Completed calls will get posted as activities, against the respective opportunities, on the Opportunity Details page.
Any Questions?
Did you find this article helpful? Please let us know any feedback you may have in the comments section below. We’d love to hear from you and help you out!
