Appearance
CRM Integration for Caller ID with HTTP Webhooks
Overview
Integrating your CRM with Cisco CallManager using Call Telemetry allows you to enhance your customer service by displaying caller information on your Cisco IP Phones. This guide demonstrates how to use the Call Telemetry policy engine to process CURRI API call events and trigger Apps that look up caller ID names from any JSON API.
In this example, we'll use the Star Wars API to demonstrate how the integration works. Although the Star Wars API doesn't have phone numbers, the concepts are applicable to any CRM API.
Prerequisites
Before starting, ensure you have the following:
- Call Telemetry Appliance: Version 0.7.0 or later. Deployment Guide
- Call Telemetry Premium License
- Cisco CallManager 8.5: Configured with CURRI API Integration to Call Telemetry. Setup Guide
Integration Steps
The integration involves the following steps - creating a policy, a rule, and associating a webhook App.
Create a New Policy
- Go to Policies.
- Click on Add Policy.
- Provide a name and description for the policy. Let's call this one "CRM Policy."
Create Policy Rule
- Select the newly created policy.
- Click Add Rule.
- Define a trigger pattern for the rule using Regular Expressions. For example, to match all calls, use
.*
.
Policy Design
For this example we will apply the policy on a phone.
TIP
You can apply the policy in any inbound direction to a translation pattern, route pattern, or phone extension. The policy will trigger on all calls that match the rule pattern.
Refer to the Call Policy Design Guide
Create a Webhook App to talk your CRM API
This example uses the Star Wars API to demonstrate how to query a CRM API for caller information.
Navigate to Realtime Policies
- From the sidebar, click Realtime Policies.
- Click on Apps.
Create a New Webhook App
- Click Add to create a new App.
- Choose Webhook under the Realtime tab, as shown below.
Fill in your Webhook API Details
- Name: Enter a name for your App, such as "CRM Caller ID Lookup".
- Description: Provide a brief description.
- URL: Enter the URL of your API. For this example, we use the Star Wars API:
https://swapi.dev/api/people/{event.calling_number}/
. - HTTP Method: Select
GET
.
Finally, Associate the Webhook with Your Rule
Open the Policy:
- Navigate to Policies.
- Select your CRM Rule.
Assign the Webhook:
- Open the rule.
- Click Associate App.
- Select your Webhook App.
4. Test the CRM API Integration
Run a Call Test
- Go to the Call Telemetry dashboard.
- Navigate to Call Tests.
- Set up a test with a calling number that maps to your CRM data (e.g., calling number
1
for "Luke Skywalker").
Review API Results
- Execute the test call.
- Check the results under
app_data.webhooks.data
. - Verify that the name field from the API response is correctly populated.
TIP
For the Star Wars API, people are numbered starting with 1 (Luke Skywalker). Ensure your call test uses the calling number 1.
Reference API Data within the CRM Rule
This step is important to ensure that the caller ID name is correctly displayed on your Cisco IP Phone. In the last step, we confirmed that the API response contains the caller ID name. Now, we need to reference this data in the rule configuration.
Modify the Rule
- Go back to your rule configuration.
- Use the workflow variable path
app_data.webhook.data.name
to assign the caller ID name.
Verify the CRM Integration
This final step ensures that the caller ID name is correctly displayed on your Cisco IP Phone. We will verify this by running another call test. And the CURRI API response should contain the correct name. This will be the payload that is sent to the Cisco Callmanager, and displayed on the Cisco IP Phone.
Run Final Call Test
- Initiate another call test with the calling number
1
. - Verify that the raw Cisco CURRI API response contains the correct name (e.g., "Luke Skywalker").
Benefits of CRM Integration
Integrating your CRM with Cisco CallManager through Call Telemetry offers the following benefits:
- Improved Caller Identification: Instantly access caller information from your CRM, providing context to your team before answering calls.
- Enhanced Customer Service: Provide personalized service based on caller history.
- Efficiency and Productivity: Reduce the time spent on looking up caller information and streamline call handling processes.
- Real-time Data Access: Access up-to-date caller information from your CRM in real-time, ensuring accurate and timely responses.