Skip to main content

Webhook CRM Integration

Overview​

Connect any REST API to Cisco CallManager using Call Telemetry's policy engine. When a call arrives, Call Telemetry sends a webhook to your API endpoint — you can use the response to display the caller's name on Cisco IP Phones, or simply publish call data to external systems for logging, ticketing, or analytics.

Common use cases:

  • Caller ID resolution — Look up a name from your CRM and display it on the phone
  • Call logging — POST call data to Salesforce, ServiceNow, or a ticketing system
  • Screen pops — Trigger a browser popup or desktop notification on incoming calls
  • Custom workflows — Route calls or trigger automations based on API response data

This guide uses the Star Wars API as a demonstration endpoint. The same steps apply to any REST/JSON API — Salesforce, ServiceNow, HubSpot, or your own internal systems.

Requirements​

Step 1: Create a Call Policy​

  1. Navigate to Policies
  2. Click Add Policy
  3. Name it (e.g., "CRM Policy")

Step 2: Create a Policy Rule​

  1. Select your new policy
  2. Click Add Rule
  3. Define a trigger pattern using Regular Expressions (e.g., .* to match all calls)

Policy showing registered

tip

You can apply the policy to a translation pattern, route pattern, or phone extension. The policy triggers on all calls that match the rule pattern.

See the Call Policy Design Guide for architecture details.

Step 3: Create a Webhook App​

  1. Navigate to Realtime Policies → Apps
  2. Click Add → Select Webhook under the Realtime tab

Creating a Webhook App

  1. Configure the webhook:
    • Name: Descriptive name (e.g., "CRM Caller ID Lookup")
    • Description: Brief description of the integration
    • URL: Your API endpoint URL. Use {event.calling_number} as a template variable. For this demo: https://swapi.dev/api/people/{event.calling_number}/
    • HTTP Method: Select GET

Step 4: Associate the Webhook with Your Rule​

  1. Navigate to Policies and select your CRM rule
  2. Open the rule and click Associate App
  3. Select your Webhook App

Webhook request associated with a rule

Step 5: Test the Integration​

  1. Navigate to Policies → Call Test
  2. Enter a test calling number that maps to your CRM data (e.g., 1 for the demo API)
  3. Run the test
  4. Check app_data.webhooks.data in the results for your API response

Call Test results from API

Step 6: Map the Caller Name​

  1. Open your rule configuration
  2. Use {app_data.webhook.data.name} in the Calling Party Name modifier to display the resolved name

Rule modifiers showing webhook data reference

Step 7: Verify End-to-End​

  1. Run another call test
  2. Check the raw CURRI API response — the calling_name field should contain the resolved name
  3. This is the payload Cisco CallManager uses to display the name on Cisco IP Phones

CURRI response showing resolved name