The ServiceNow Webex integration enables seamless communication between ServiceNow incident management workflows and Cisco Webex Teams collaboration spaces. This integration allows organizations to automatically notify support teams in Webex spaces when critical incidents occur, create Webex meetings directly from ServiceNow records, and leverage Webex bots to query ServiceNow data without leaving the collaboration environment. IT teams, service desk agents, and business users benefit from reduced context switching and faster incident response times. The integration supports bi-directional communication through the Webex Teams spoke in ServiceNow's IntegrationHub, enabling both outbound notifications from ServiceNow to Webex spaces and inbound commands from Webex bots that can query or update ServiceNow records. Primary automation patterns include event-driven notifications triggered by business rules on incident, problem, or change records, with all configuration managed through the Flow Designer and Connection & Credential Aliases.
Prerequisites
- •ServiceNow Orlando release or later with IntegrationHub Professional license
- •Cisco Webex Teams administrator access to create bot applications
- •Integration Hub Installer role to install the Webex Teams spoke
- •System Administrator role in ServiceNow for credential configuration
- •Active Webex Teams spaces where notifications will be sent
- •Network connectivity from ServiceNow instance to webexapis.com on port 443
- •Flow Designer user role for building notification workflows
Architecture Overview
The integration utilizes the official Webex Teams spoke available in the ServiceNow Store, which provides pre-built Flow Designer actions for sending messages, creating meetings, and managing bot interactions. Authentication is established using OAuth 2.0 Bearer tokens stored in Connection & Credential Aliases, with bot tokens obtained from the Webex for Developers portal and stored securely in ServiceNow's encrypted credential store. Data flow is primarily unidirectional from ServiceNow to Webex for notifications and meeting creation, with optional bidirectional capability through webhook endpoints for bot commands that can query ServiceNow data. No MID Server is required as the integration uses direct HTTPS REST API calls to the Webex cloud APIs at webexapis.com. API rate limiting follows Webex's standard limits of 300 requests per minute per application, with the spoke handling retry logic and exponential backoff automatically through IntegrationHub's built-in error handling mechanisms.
Sourdough: ServiceNow Monitoring and Analytics
A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.
Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.
Implementation Steps
Install the Webex Teams spoke from ServiceNow Store
Navigate to System Applications > All Available Applications > All in the ServiceNow application navigator and search for 'Webex Teams'. Click on the official Cisco Webex Teams spoke and select Install to add it to your instance. The installation includes pre-built Flow Designer actions for sending messages, creating spaces, and managing meetings. Verify the installation completed successfully by navigating to Process Automation > Flow Designer > Spokes and confirming the Webex Teams spoke appears with a status of Active. Note that you'll need the Integration Hub Installer role to complete this installation, and the spoke requires IntegrationHub Professional licensing to function properly.
Create a Webex bot application and obtain API credentials
Log into the Webex for Developers portal at developer.webex.com using your Webex Teams administrator account and navigate to My Webex Apps > Create a New App. Select 'Create a Bot' and provide a bot name like 'ServiceNow Integration Bot', username, and description that clearly identifies its purpose for your organization. After creating the bot, copy the Bot Access Token that's generated - this is a long string starting with the characters that will be used for API authentication. Store this token securely as it won't be displayed again and you'll need it for ServiceNow credential configuration. Ensure the bot is added to the appropriate Webex spaces where you want to receive ServiceNow notifications by having a space moderator add the bot using its username.
Configure Connection and Credential Aliases in ServiceNow
Navigate to Connections & Credentials > Credentials in ServiceNow and click New to create a new credential record. Set the Name field to 'Webex Teams Bot Credential' and Type to 'Basic Auth Credentials', then in the User name field enter 'Bearer' and paste your Webex bot access token into the Password field. Next, navigate to Connections & Credentials > Connection & Credential Aliases and create a new alias with Name 'webex_teams_connection' and Type 'HTTP(S)'. Set the Connection URL to 'https://webexapis.com' and in the Credential section, select the credential you just created. Test the connection by clicking the Test Connection button to verify ServiceNow can successfully authenticate with the Webex APIs.
Create a Flow Designer workflow for incident notifications
Navigate to Process Automation > Flow Designer and click New > Flow to create a new notification workflow. Set the trigger to 'Record' and configure it to trigger on the Incident table when State changes to 'High' priority or when Assignment group is updated. Add a new Action step by searching for and selecting 'Webex Teams - Send Message to Space' from the available spoke actions. Configure the space ID by obtaining it from the Webex space URL or using the List Spaces API endpoint, then set the message content to include dynamic incident details using data pills like incident number, short description, and assigned group. Test the flow by creating a sample incident that meets your trigger conditions and verify the notification appears in the target Webex space with properly formatted incident information.
// Example message template for incident notifications
var message = 'Incident Alert: ' + current.number + '\n' +
'Priority: ' + current.priority.getDisplayValue() + '\n' +
'Description: ' + current.short_description + '\n' +
'Assigned to: ' + current.assignment_group.getDisplayValue() + '\n' +
'Link: ' + gs.getProperty('glide.servlet.uri') + 'incident.do?sys_id=' + current.sys_id;Configure Webex meeting creation from ServiceNow records
Create another Flow Designer workflow triggered when a Problem record is created or when a Major Incident requires stakeholder collaboration. Add the 'Webex Teams - Create Meeting' action from the spoke and configure it to generate a meeting with a title that includes the record number and brief description. Set the meeting agenda to include relevant record details and configure the start time based on business rules or manual input from the form. Map the meeting join URL back to a custom field on the Problem or Incident record so users can easily access the collaboration session directly from ServiceNow. Consider adding conditional logic to only create meetings for high-priority items or when specific assignment groups are involved to avoid meeting overload.
// Script to update record with meeting URL after creation
var gr = new GlideRecord('problem');
if (gr.get(inputs.record_sys_id)) {
gr.setValue('u_webex_meeting_url', outputs.meeting_url);
gr.setValue('u_meeting_id', outputs.meeting_id);
gr.update();
gs.info('Updated problem ' + gr.number + ' with Webex meeting URL');
}Set up Webex webhook for bot commands
Navigate to System Web Services > Scripted REST APIs and create a new API called 'WebexWebhook' with a resource that accepts POST requests at path '/webhook'. Configure the resource script to parse incoming Webex webhook payloads and respond to specific bot commands like '/incident [number]' or '/status'. In the Webex for Developers portal, create a webhook subscription pointing to your ServiceNow instance URL followed by '/api/now/webex/webhook' with event types set to 'messages:created'. Ensure your ServiceNow instance is accessible from the internet or configure appropriate firewall rules to allow inbound webhooks from Webex's IP ranges. Test the webhook by sending a command message in a Webex space where your bot is present and verify the bot responds with relevant ServiceNow data.
(function process(request, response) {
var payload = JSON.parse(request.body.dataString);
if (payload.data && payload.data.text && payload.data.text.indexOf('/incident') === 0) {
var incidentNum = payload.data.text.split(' ')[1];
var gr = new GlideRecord('incident');
gr.addQuery('number', incidentNum);
gr.query();
if (gr.next()) {
var responseMsg = 'Incident: ' + gr.number + '\nState: ' + gr.state.getDisplayValue() + '\nAssigned: ' + gr.assigned_to.getDisplayValue();
// Send response back to Webex space
sendWebexMessage(payload.data.roomId, responseMsg);
}
}
response.setStatus(200);
})(request, response);Configure advanced notification formatting and attachments
Enhance your Webex notifications by implementing adaptive cards or rich formatting using the Webex Teams spoke's advanced message options. Navigate back to your Flow Designer workflows and modify the Send Message action to include HTML formatting, mention specific users using their Webex person IDs, or attach relevant documents from ServiceNow's attachment table. Configure conditional logic to send different message formats based on incident priority, with critical incidents including @mention tags for on-call engineers and high-priority items including formatted tables with key metrics. Test various message formats including markdown syntax for bold text, bullet points, and embedded links to ensure they render correctly in Webex clients across desktop and mobile platforms.
// Enhanced message formatting with mentions and HTML
var messageHtml = '<h3>🚨 Critical Incident Alert</h3>' +
'<p><strong>Incident:</strong> ' + current.number + '</p>' +
'<p><strong>Priority:</strong> <span style="color:red">' + current.priority.getDisplayValue() + '</span></p>' +
'<p><strong>Description:</strong> ' + current.short_description + '</p>' +
'<p><a href="' + gs.getProperty('glide.servlet.uri') + 'incident.do?sys_id=' + current.sys_id + '">View in ServiceNow</a></p>';
// Include person ID for @mentions in critical situations
var mentionPersonId = gs.getProperty('webex.oncall.person.id');Test the complete integration and configure monitoring
Perform end-to-end testing by creating test incidents that trigger your notification workflows, verify meeting creation functionality with sample problem records, and test bot commands through the webhook integration. Navigate to System Logs > Outbound HTTP Requests to monitor API calls to Webex and ensure successful response codes (200/201) for all integration points. Set up proactive monitoring by creating a scheduled Flow Designer workflow that periodically tests the Webex connection and sends alerts if API calls fail. Document the integration configuration including space IDs, bot usernames, and webhook URLs for future maintenance, and provide training materials for end users on how to interact with the ServiceNow bot in Webex spaces. Consider implementing error handling workflows that fallback to email notifications if Webex API calls fail to ensure critical communications are never lost.
// Health check script for monitoring Webex connectivity
try {
var r = new sn_ws.RESTMessageV2('Webex Health Check', 'GET');
r.setEndpoint('https://webexapis.com/v1/people/me');
r.setRequestHeader('Authorization', 'Bearer ' + credential_token);
var response = r.execute();
if (response.getStatusCode() != 200) {
gs.error('Webex API health check failed: ' + response.getStatusCode());
// Trigger fallback notification mechanism
} else {
gs.info('Webex integration health check passed');
}
} catch (ex) {
gs.error('Webex health check exception: ' + ex.getMessage());
}Common Use Cases
Critical incident escalation notifications
Automatically notify on-call engineering teams in dedicated Webex spaces when Priority 1 incidents are created or when incidents remain unassigned for more than 30 minutes. The workflow triggers from business rules on the Incident table and sends formatted messages including incident details, affected services, and direct links back to ServiceNow. This reduces mean time to acknowledgment by ensuring critical issues immediately reach the right people in their primary collaboration tool. Integration includes @mentions for specific team members based on assignment group mappings and escalation paths defined in ServiceNow.
Change advisory board collaboration
Generate Webex meeting invitations automatically when Normal or Emergency change requests require CAB approval, with meeting details populated from the change record including risk assessment, implementation plan, and rollback procedures. The Flow Designer workflow creates calendar-ready meeting invites sent to CAB members' Webex accounts and updates the change record with the meeting join URL for easy access. Meeting agendas are dynamically generated from change request fields, and follow-up actions from meetings can be captured directly in ServiceNow through bot commands or webhook integrations.
Service desk team daily standups
Enable service desk teams to query ServiceNow metrics directly from their Webex standup spaces using bot commands like '/tickets-today' or '/sla-breaches' that return real-time data without leaving the collaboration environment. The webhook integration processes natural language commands and responds with formatted reports including open ticket counts, SLA status, and team performance metrics. This streamlines daily standup meetings by providing instant access to key operational data and reduces time spent switching between applications during team discussions.
Major incident war room coordination
Instantly create dedicated Webex spaces for major incident response when Priority 1 incidents are created, automatically inviting incident commanders, subject matter experts, and stakeholders based on affected configuration items and services. The integration populates the space with incident context, creates a persistent Webex meeting for voice coordination, and enables real-time updates back to the ServiceNow incident record through bot commands. Space membership is dynamically managed based on incident assignments and escalation procedures, ensuring the right people have access throughout the incident lifecycle.
Problem management investigation collaboration
Facilitate cross-functional problem investigation by creating Webex meetings and persistent chat spaces when Problem records transition to 'Work in Progress' status, with automatic population of investigation findings, root cause analysis templates, and related incident data. Team members can contribute investigation updates through bot commands that append to problem work notes, and meeting recordings are automatically linked to the problem record for future reference. The integration supports knowledge capture by enabling teams to convert Webex discussions into Knowledge Base articles directly from the collaboration space.
Troubleshooting
401 Unauthorized error when sending messages to Webex spaces
First, verify the bot access token is correctly stored in the ServiceNow credential record and hasn't expired - Webex bot tokens don't expire but can be regenerated which invalidates the previous token. Check the Connection & Credential Alias configuration to ensure the credential is properly linked and the connection URL points to 'https://webexapis.com'. Navigate to System Logs > Outbound HTTP Requests to examine the exact authorization header being sent and confirm it follows the format 'Bearer [token]'. If the token appears correct, verify the bot has been added to the target Webex space and has appropriate permissions to send messages.
Messages sent successfully but not appearing in Webex space
Verify the space ID being used in your Flow Designer action is correct by checking the Webex space URL or using the List Spaces API endpoint to enumerate available spaces. Confirm the bot has been explicitly added to the target space by a space moderator, as bots cannot join spaces automatically or send messages to spaces where they're not members. Check if the space is a direct message space versus a group space, as the API endpoints and required permissions differ between space types. Review the message content for any formatting issues or special characters that might cause rendering problems in Webex clients.
Webex webhook not triggering ServiceNow scripted REST API
Verify your ServiceNow instance is accessible from the internet by testing the webhook URL directly from an external network location, as Webex webhooks originate from Cisco's cloud infrastructure. Check the webhook subscription in the Webex for Developers portal to ensure the target URL matches your ServiceNow instance format exactly, including https protocol and correct path structure. Navigate to System Logs > REST API to examine incoming webhook payloads and verify they're being received, then debug your scripted REST API code to handle webhook authentication and message parsing correctly. Ensure your ServiceNow instance's access control lists allow inbound connections from Webex's published IP address ranges.
Flow Designer Webex actions failing with timeout errors
Check the ServiceNow system property 'glide.outbound_http.timeout' and ensure it's set to at least 30 seconds to accommodate potential Webex API latency during peak usage periods. Navigate to System Properties > HTTP Properties and verify 'glide.outbound_http.max_connections' allows sufficient concurrent connections for your integration volume. Review your Flow Designer error handling configuration to implement retry logic with exponential backoff, as temporary API timeouts are normal during Webex service maintenance windows. Consider implementing asynchronous processing for non-critical notifications to avoid blocking ServiceNow workflows when Webex APIs experience performance issues.
Meeting creation fails with 'Invalid meeting time' error
Ensure the meeting start time is formatted according to ISO 8601 standards and includes proper timezone information, as Webex requires UTC timestamps or timezone-aware datetime values. Verify the meeting start time is set to at least 5 minutes in the future from the current time to account for processing delays and API call execution time. Check that the duration parameter is within Webex's acceptable range (typically 15 minutes to 24 hours) and that recurring meeting patterns, if used, follow Webex's supported recurrence syntax. Navigate to your Flow Designer workflow and add data transformation steps to properly format datetime values from ServiceNow's internal format to Webex API requirements.
Bot commands not parsing correctly from webhook payloads
Add comprehensive logging to your scripted REST API to capture and examine the complete webhook payload structure, as Webex sends different JSON structures for direct messages versus group space messages. Verify your command parsing logic accounts for mentions of the bot name, as group space messages typically include '@botname' prefix that needs to be stripped before command processing. Check for webhook event filtering in your code to only process 'messages:created' events and ignore 'messages:deleted' or other event types that don't require bot responses. Implement proper error handling for malformed commands and ensure your bot responds with helpful usage information when users send unrecognized command syntax.
Pro Tips
- →Implement message deduplication logic in your Flow Designer workflows to prevent spam when multiple business rules trigger simultaneously on the same record. Use a custom table to track recent notifications with a combination of record sys_id and space ID as unique keys, with automatic cleanup of entries older than 10 minutes.
- →Configure separate Webex spaces for different incident priorities and service categories to reduce noise and ensure appropriate team members receive relevant notifications. Create space naming conventions that include environment identifiers (DEV/TEST/PROD) to prevent confusion during multi-environment deployments and testing activities.
- →Leverage ServiceNow's scheduled jobs to create daily or weekly summary reports sent to management Webex spaces, including metrics like SLA performance, ticket volumes, and team productivity statistics. Use the Webex adaptive card format for rich, interactive reports that allow managers to drill down into specific data points directly from the collaboration space.
- →Implement proper error handling and fallback mechanisms in your Integration Hub flows by adding parallel paths that send email notifications when Webex API calls fail. This ensures critical communications reach their intended recipients even during Webex service outages or network connectivity issues between ServiceNow and Cisco's infrastructure.
- →Create custom ServiceNow UI actions that allow agents to manually trigger Webex notifications or meeting creation for exceptional cases that don't fit automated workflow patterns. Include validation logic to prevent duplicate notifications and provide visual feedback to users about the success or failure of manual Webex integration actions.
- →Use ServiceNow's Connection & Credential Alias rotation capabilities to implement bot token refresh procedures, even though Webex bot tokens don't expire, to maintain security best practices and prepare for potential token compromise scenarios. Document the token rotation process and assign backup administrators who can regenerate credentials during primary administrator absence.
Known Limitations
- —Webex APIs enforce rate limiting of 300 requests per minute per application, which can be exceeded during high-incident periods or when processing bulk operations. ServiceNow administrators should implement queuing mechanisms and consider using multiple bot applications for high-volume environments to distribute load across different rate limit buckets.
- —The Integration Hub Webex Teams spoke requires Professional licensing and cannot be used with the base IntegrationHub Starter license included in most ServiceNow subscriptions. Organizations must purchase additional licensing to access the full spoke functionality, with alternative custom REST message implementations possible but requiring additional development effort.
- —Webex webhook deliveries to ServiceNow instances behind corporate firewalls require network infrastructure changes to allow inbound connections from Cisco's cloud IP ranges. Many organizations' security policies prohibit direct internet access to ServiceNow instances, limiting bidirectional integration capabilities and requiring MID Server implementations or DMZ proxy configurations.
- —Message formatting and adaptive card features have varying support across different Webex client versions and platforms, with mobile clients often displaying simplified versions of rich content. Testing should include verification across desktop, web, and mobile Webex applications to ensure consistent user experience across all platforms used by your organization.
- —Bot applications in Webex cannot automatically join spaces and must be manually added by space moderators, creating administrative overhead for dynamic space creation workflows. Organizations with frequent space turnover or project-based collaboration patterns may find the manual bot management requirements cumbersome compared to other collaboration platforms with automatic bot provisioning capabilities.
Frequently Asked Questions
Can I use the same Webex bot for multiple ServiceNow instances?
Yes, a single Webex bot application can serve multiple ServiceNow instances by configuring the same bot access token in each instance's credential store. However, consider creating separate bots for production versus non-production environments to maintain proper separation and avoid confusion during testing activities. Each ServiceNow instance will need its own webhook subscription if you're implementing bidirectional communication, as webhook URLs must point to specific instances. Bot rate limits apply across all instances using the same bot token, so high-volume environments may require dedicated bot applications to avoid hitting API quotas.
How do I handle sensitive information in Webex notifications from ServiceNow?
Implement data classification logic in your Flow Designer workflows to filter sensitive information before sending messages to Webex spaces, using ServiceNow's data classification framework to identify confidential fields automatically. Create separate notification templates for different data sensitivity levels, with high-security incidents sending minimal details and providing secure links back to ServiceNow for full information access. Consider using private Webex spaces with restricted membership for sensitive notifications and implement additional authentication requirements for bot commands that might expose confidential data. Leverage ServiceNow's field-level access controls to ensure bot responses only include information the requesting user has permission to view in the ServiceNow interface.
What happens if the Webex API is unavailable during incident creation?
Configure your Flow Designer workflows with comprehensive error handling that includes retry logic with exponential backoff for temporary API failures and alternate notification channels like email for persistent outages. The Integration Hub spoke includes built-in error handling, but you should supplement this with custom logic that logs failures to a custom table for later retry processing. Implement a fallback notification system that automatically switches to email or SMS when Webex API calls fail multiple times, ensuring critical incident notifications always reach their intended recipients. Consider setting up ServiceNow's Event Management to monitor Webex integration health and alert administrators when API connectivity issues persist beyond normal retry windows.
Can I customize the Webex Teams spoke actions or do I need to build custom integrations?
The official Webex Teams spoke provides pre-built actions for common use cases like sending messages and creating meetings, but complex scenarios often require custom REST message implementations or additional scripting within Flow Designer workflows. You can extend spoke functionality by creating custom flow actions that combine multiple spoke actions or add business logic specific to your organization's requirements. For advanced features not covered by the spoke, such as space management, membership control, or complex webhook processing, you'll need to build custom Scripted REST APIs and RESTMessageV2 implementations. The spoke serves as a solid foundation that can be enhanced with custom development while maintaining the benefit of supported, tested components for core Webex integration functionality.
How do I manage Webex space membership dynamically based on ServiceNow assignment groups?
Create Flow Designer workflows that trigger on assignment group changes in ServiceNow and use the Webex People API to add or remove team members from relevant spaces based on group membership synchronization. Implement a mapping table between ServiceNow groups and Webex person IDs to automate space membership management, though this requires initial setup to correlate ServiceNow user records with Webex accounts. Consider using ServiceNow's scheduled jobs to perform periodic membership synchronization rather than real-time updates to avoid excessive API calls and potential rate limiting issues. For complex organizational structures, you may need to implement custom business logic that considers multiple factors like user roles, geographic location, and on-call schedules when determining appropriate space membership.
What's the best way to test Webex integration functionality before deploying to production?
Set up dedicated test Webex spaces and use a separate bot application for your ServiceNow development and test instances to avoid disrupting production communications during testing activities. Create comprehensive test scenarios that cover various incident types, priority levels, and assignment group combinations to ensure your notification logic works correctly across all use cases. Use ServiceNow's automated testing framework (ATF) to create repeatable test cases that verify Webex integration functionality as part of your deployment pipeline, including negative testing for error handling and fallback mechanisms. Implement feature flags or environment-specific configuration to easily enable or disable Webex integration features during testing and deployment phases, allowing for gradual rollout and quick rollback if issues are discovered.
How can I track the effectiveness of Webex notifications and measure user engagement?
Implement custom logging in your Flow Designer workflows to track notification delivery success rates, response times, and correlation with incident resolution metrics to measure the business impact of Webex integration. Create ServiceNow reports that analyze the relationship between Webex notification timing and incident acknowledgment times to demonstrate improved response metrics to management. Use Webex's analytics APIs where available to gather data on message read rates and user engagement within spaces, though this data may be limited based on your Webex subscription level and privacy settings. Consider implementing feedback mechanisms like bot commands that allow users to rate notification usefulness or report issues, providing qualitative data to complement quantitative metrics about integration effectiveness and user satisfaction.
Test Your Knowledge
Quick 3-question quiz — see how your ServiceNow skills stack up.
A list view on a table with millions of records is slow. Best fix?
Select an answer to continue