Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

How to create incident via zoom

Shusovit Dutta
Tera Expert

There is requirement to integrate zoom with ServiceNow which can create incidents from the interactions being generated from zoom (for e.g: someone calls up in a zoom ivr and the interaction is posted in SN and a incident is created from that interaction) how can be achieve this via OOB plugins/spoke. 

2 REPLIES 2

Vaishnavi Lathk
Mega Sage

Hello @Shusovit Dutta ,

You can achieve this using OOTB ServiceNow capabilities without custom development. Here's the practical approach:


Recommended Method: Zoom Webhooks + Integration Hub

Architecture:

 
 
Zoom IVR Call → Zoom Webhook Event → ServiceNow REST API → 
Flow Designer → Incident Created

Implementation Steps:

1. Configure Zoom Webhook (Zoom Admin Portal):

 
 
- Navigate: Zoom Marketplace > Develop > Build App
- Select: "Webhook Only" app type
- Subscribe to events: "Phone Call Ended" or "Recording Completed"
- Webhook URL: https://yourinstance.service-now.com/api/x_custom/zoom/interaction
- Get credentials: Client ID & Secret

2. Create REST API Endpoint (ServiceNow):

 
 
Navigate: System Web Services > Scripted REST APIs
Create: New API - "Zoom Integration"
Resource Name: Create Incident from Call
HTTP Method: POST
Relative Path: /interaction

3. Sample Script (REST API):

 
 
javascript
(function process(request, response) {
    var payload = request.body.data;
    
    // Parse Zoom webhook data
    var callerPhone = payload.caller_number;
    var callDuration = payload.duration;
    var ivrPath = payload.ivr_path; // e.g., "1,2,3"
    var callId = payload.call_id;
    
    // Create incident
    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'Support Call from ' + callerPhone;
    inc.description = 'Call Duration: ' + callDuration + ' seconds\n' +
                      'IVR Path: ' + ivrPath + '\n' +
                      'Call ID: ' + callId;
    inc.contact_type = 'phone';
    
    // Lookup caller by phone
    var user = new GlideRecord('sys_user');
    user.addQuery('phone', callerPhone);
    user.query();
    if(user.next()) {
        inc.caller_id = user.sys_id;
    }
    
    // Map IVR path to category
    if(ivrPath.startsWith('1')) {
        inc.category = 'Hardware';
    } else if(ivrPath.startsWith('2')) {
        inc.category = 'Software';
    }
    
    var incNumber = inc.insert();
    
    response.setStatus(200);
    response.setBody({
        success: true,
        incident: incNumber
    });
    
})(request, response);
```

**4. Alternative: Use Flow Designer:**
```
Navigate: Flow Designer > New Flow
Name: "Create Incident from Zoom Call"

Trigger: REST API (receives Zoom webhook)

Actions:
1. Parse JSON payload
2. Lookup caller by phone (Table: sys_user)
3. Create Record (Table: incident)
   - Short Description: "Call from {{caller_name}}"
   - Description: Call details from Zoom
   - Caller: Matched user
   - Category: Based on IVR selection
   - Assignment: Route based on category
4. Send email notification (optional)
```

---

### **OOTB Plugins/Spokes Available:**

**Check ServiceNow Store for:**
- **Zoom Integration Spoke** (if available - search in Integration Hub > Spokes)
- **Contact Center Plugin** (com.sn_customerservice_contactcenter) - for full IVR capability
- **Integration Hub** (required - usually included with SPM Pro)

**If Zoom Spoke exists:**
```
Navigate: All > Integration Hub > Spokes
Search: "Zoom"
Install: Zoom spoke
Use actions: Get Meeting Details, Get User Info
```

---

### **Field Mapping (Zoom → Incident):**

| Zoom Data | ServiceNow Field |
|-----------|-----------------|
| caller_number | Caller (lookup sys_user by phone) |
| call_id | Correlation ID / Custom field |
| duration | Work notes / Custom field |
| ivr_path | Category/Subcategory mapping |
| recording_url | Attachment or work notes link |
| start_time | Opened at |

---

### **IVR Path Mapping Example:**

Create a mapping table or business logic:
```
IVR Path "1" = Category: IT Support
IVR Path "2" = Category: HR Support  
IVR Path "3" = Category: Facilities
IVR Path "1,1" = Category: IT, Subcategory: Hardware
IVR Path "1,2" = Category: IT, Subcategory: Software

Testing:

  1. Make test call to Zoom IVR
  2. Check ServiceNow System Logs for webhook receipt
  3. Verify incident created with correct data
  4. Validate caller lookup works
  5. Test IVR path to category mapping

    Thanks

Tanushree Maiti
Tera Sage

Hi @Shusovit Dutta 

 

Refer this : 

https://www.youtube.com/watch?v=XKqvhllwXhI

 

https://www.servicenow.com/community/in-other-news/instant-collaboration-with-the-notify-zoom-connec...

Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin:
Learn how to integrate Zoom with ServiceNow directly from ServiceNow experts. Over the past few weeks, Zoom Video Communications has become increasingly popular as an easy way to communicate and connect with others. GlideFast designed a ServiceNow integration where you can create a Zoom meeting ...