Integrations

ServiceNow Zendesk Integration Guide

intermediateAPI Token Authentication with Basic Auth header encodingZendesk

The ServiceNow Zendesk integration enables seamless bidirectional synchronization between Zendesk support tickets and ServiceNow incidents, solving the critical challenge of maintaining consistent customer support data across IT service management and customer service platforms. This integration is essential for organizations running hybrid support models where Level 1 support operates in Zendesk while escalated issues flow to ServiceNow ITSM teams. The integration supports bidirectional data flows including ticket creation, status updates, comment synchronization, and customer record mapping, primarily triggered through webhook-based real-time updates and scheduled synchronization jobs. This integration leverages the official ServiceNow Integration Hub Zendesk spoke and operates within the IntegrationHub application scope, providing pre-built actions for common operations like Create Ticket, Update Ticket Status, and Sync Customer Data.

Prerequisites

  • ServiceNow Utah release or later with Integration Hub Professional license
  • Zendesk Professional plan or higher with API access enabled
  • System Administrator role in ServiceNow with integration_hub_admin role
  • Zendesk Administrator access to create API tokens and configure webhooks
  • IntegrationHub Zendesk spoke installed from ServiceNow Store
  • ITIL role for configuring incident management workflows
  • Network connectivity allowing HTTPS outbound calls to Zendesk API endpoints

Architecture Overview

The integration utilizes the official ServiceNow IntegrationHub Zendesk spoke which provides pre-built actions for common operations like ticket creation, status updates, and customer synchronization. Authentication is established using Zendesk API tokens stored securely in ServiceNow Connection & Credential Alias records, eliminating the need for hardcoded credentials in scripts. Data flows bidirectionally through webhook triggers from Zendesk to ServiceNow Scripted REST APIs for real-time updates, while ServiceNow-initiated actions use the spoke's REST-based actions through Flow Designer workflows. No MID Server is required as all communication occurs over HTTPS directly between ServiceNow and Zendesk's cloud APIs, though organizations with strict firewall policies may route traffic through a MID Server for additional security. Rate limiting considerations include Zendesk's API limits of 700 requests per minute for Professional plans and 2000 requests per minute for Enterprise plans, which the spoke handles through built-in retry mechanisms and exponential backoff strategies.

Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Implementation Steps

1

Install and activate the Zendesk spoke from ServiceNow Store

Navigate to System Applications > All Available Applications > All and search for 'Zendesk' to locate the official IntegrationHub Zendesk spoke. Click Install and wait for the spoke installation to complete, which typically takes 2-3 minutes and includes actions for ticket management, user synchronization, and webhook handling. After installation, navigate to IntegrationHub > Spokes to verify the Zendesk spoke appears in the active spokes list with version information displayed. Activate the spoke by clicking on it and ensuring all required tables and business rules are properly created in your instance.

2

Create Zendesk API token and configure ServiceNow credential record

In your Zendesk admin panel, navigate to Admin Center > Apps and integrations > APIs > Zendesk API to create a new API token with full access permissions for ticket and user management. Copy the generated API token and in ServiceNow, navigate to Connections & Credentials > Credentials to create a new Basic Auth credential record. Set the User name field to your Zendesk admin email address followed by '/token' (e.g., admin@company.com/token) and paste the API token in the Password field. Save the credential record and note the sys_id for use in connection alias configuration.

3

Create Connection Alias for Zendesk API endpoint

Navigate to Connections & Credentials > Connection & Credential Aliases and create a new record with Name set to 'Zendesk_Production' and Connection URL set to your Zendesk subdomain (https://yourcompany.zendesk.com). Select the credential record created in the previous step and set the connection type to HTTP(s) with a 30-second timeout value. Test the connection using the Test Connection button to verify authentication succeeds and returns a 200 status code. Document the connection alias name as it will be referenced in all spoke action configurations and Flow Designer steps.

4

Configure bidirectional field mapping between Zendesk tickets and ServiceNow incidents

Navigate to IntegrationHub > Connections > Transform Maps to create field mappings for ticket-to-incident synchronization, mapping Zendesk ticket fields like subject, description, priority, and status to corresponding ServiceNow incident fields. Create separate transform maps for incident-to-ticket updates ensuring bidirectional consistency while avoiding infinite loops through proper condition scripting. Configure custom field mappings for organization-specific fields such as customer tier, product category, and SLA requirements using the Transform Map's field mapping interface. Test the transform maps using the Preview feature with sample Zendesk ticket JSON payloads to verify correct field population and data type conversion.

ServiceNow Script
var transform = new GlideTransform('Zendesk_Ticket_to_Incident');
transform.setSource(current);
transform.setTarget('incident');
var target = transform.transform();
if (target.isValid()) {
  target.setValue('assignment_group', getAssignmentGroup(current.zendesk_group_id));
  target.setValue('caller_id', lookupServiceNowUser(current.requester_id));
  target.update();
}
5

Create inbound webhook endpoint for Zendesk ticket updates

Navigate to System Web Services > Scripted REST APIs and create a new API with name 'ZendeskWebhook' and API ID 'zendesk_webhook' to receive real-time updates from Zendesk. Create a POST resource method that validates incoming webhook signatures, parses Zendesk ticket JSON payloads, and triggers appropriate incident creation or update workflows. Configure the webhook URL in Zendesk Admin Center > Extensions > Webhooks pointing to your ServiceNow instance's REST endpoint (https://instance.service-now.com/api/x_namespace/zendesk_webhook/ticket_update). Implement proper error handling and logging within the scripted REST API to capture failed webhook processing for troubleshooting purposes.

ServiceNow Script
(function process(request, response) {
  var payload = request.body.data;
  var signature = request.getHeader('X-Zendesk-Webhook-Signature');
  
  if (!validateSignature(payload, signature)) {
    response.setStatus(401);
    return;
  }
  
  var ticketData = JSON.parse(payload);
  var gr = new GlideRecord('incident');
  if (gr.get('x_zendesk_ticket_id', ticketData.id)) {
    updateIncidentFromTicket(gr, ticketData);
  } else {
    createIncidentFromTicket(ticketData);
  }
  
  response.setStatus(200);
})(request, response);
6

Build Flow Designer workflows for ServiceNow to Zendesk synchronization

Navigate to Process Automation > Flow Designer and create a new flow triggered by incident table changes (created, updated, or resolved) to push updates back to Zendesk tickets. Add the Zendesk spoke's 'Update Ticket' action and configure it to use your connection alias, mapping ServiceNow incident fields to appropriate Zendesk ticket properties. Configure flow conditions to prevent synchronization loops by checking for system updates or specific field changes that should not trigger Zendesk updates. Include error handling subflows that log failed API calls to the System Log and optionally create work notes on the incident record for administrator visibility.

7

Implement escalation workflow from Zendesk support tiers to ServiceNow ITSM

Create a Flow Designer workflow that monitors incident priority and assignment group changes to automatically escalate high-priority tickets from Zendesk Level 1 support to specialized ServiceNow ITSM teams. Configure escalation rules based on ticket age, customer tier, and resolution SLA requirements using flow logic and decision tables. Implement automatic assignment group determination using ServiceNow's Assignment Rules or custom scripting that considers factors like incident category, location, and skill requirements. Add notification steps that inform both Zendesk agents and ServiceNow assignees about escalation events through email templates and work note updates.

ServiceNow Script
var escalationRules = new GlideRecord('x_escalation_rules');
escalationRules.addQuery('priority', current.priority);
escalationRules.addQuery('category', current.category);
escalationRules.query();

if (escalationRules.next()) {
  current.assignment_group = escalationRules.assignment_group;
  current.escalated_from_zendesk = true;
  current.work_notes = 'Automatically escalated from Zendesk due to: ' + escalationRules.escalation_reason;
}
8

Test end-to-end integration and configure monitoring

Create test tickets in Zendesk with various priorities and categories to verify proper incident creation in ServiceNow with correct field mapping and assignment. Update incident status, priority, and work notes in ServiceNow to confirm bidirectional synchronization updates the corresponding Zendesk ticket with proper status mapping. Configure Integration Hub action monitoring by navigating to IntegrationHub > Action Executions to track spoke action success rates and identify any recurring failures. Set up proactive monitoring using ServiceNow Event Management or custom scheduled jobs that verify webhook connectivity and API authentication status, alerting administrators to integration failures within 5 minutes of occurrence.

ServiceNow Script
var testIntegration = new sn_ih.IntegrationAction('Zendesk', 'Get Ticket');
testIntegration.setParameter('connection_alias', 'Zendesk_Production');
testIntegration.setParameter('ticket_id', '12345');

var result = testIntegration.execute();
if (result.haveError()) {
  gs.error('Zendesk integration test failed: ' + result.getErrorMessage());
} else {
  gs.info('Integration test successful. Ticket data: ' + result.getResponseBody());
}

Common Use Cases

Automated L1 to L2 Support Escalation

Zendesk Level 1 agents handle initial customer inquiries and when tickets meet escalation criteria (high priority, specific product categories, or resolution time thresholds), they automatically create ServiceNow incidents assigned to specialized L2 technical teams. The integration maintains bidirectional communication so L2 agents can update resolution progress visible to L1 agents and customers. This workflow reduces manual handoff overhead and ensures complex technical issues reach appropriate expertise quickly while maintaining complete audit trails across both platforms.

Customer Master Data Synchronization

Customer records created or updated in Zendesk automatically sync to ServiceNow's customer table (or custom user extensions) ensuring both platforms maintain consistent contact information, support tier classifications, and entitlement data. This bidirectional sync prevents data fragmentation where support agents in different tools see outdated customer information. The integration maps Zendesk organization fields to ServiceNow company records and individual users to appropriate caller_id relationships for proper incident attribution and SLA enforcement.

Major Incident Communication Bridge

When ServiceNow declares a major incident affecting multiple customers, the integration automatically creates linked Zendesk tickets for each affected customer account with templated communication and status updates. As the ServiceNow incident progresses through resolution stages, all linked Zendesk tickets receive synchronized updates ensuring consistent customer communication. This use case is critical for organizations managing both internal IT services through ServiceNow and external customer impact through Zendesk during widespread service disruptions.

SLA and Resolution Metric Consolidation

The integration synchronizes SLA start times, resolution timestamps, and customer satisfaction scores between platforms enabling consolidated reporting and performance analytics across the entire support organization. ServiceNow's Performance Analytics can aggregate metrics from both Zendesk ticket resolution data and internal incident handling to provide executive dashboards showing end-to-end support efficiency. This consolidated view helps identify bottlenecks in the escalation process and optimize resource allocation between L1 Zendesk agents and L2 ServiceNow teams.

Product Incident Pattern Analysis

Customer-reported issues in Zendesk are automatically linked to existing ServiceNow problem records when similar symptoms or product components are detected through intelligent categorization and keyword matching. This connection enables ServiceNow problem managers to see the full customer impact of underlying issues while providing Zendesk agents with known error database information and workarounds. The integration maintains these relationships bidirectionally so problem resolution in ServiceNow automatically updates all related customer tickets with final solutions.

Troubleshooting

Webhook authentication failures with 401 Unauthorized errors

First, verify the webhook signature validation logic in your Scripted REST API by checking the X-Zendesk-Webhook-Signature header format and ensuring the shared secret matches exactly between Zendesk webhook configuration and ServiceNow validation code. Check the System Log for detailed authentication error messages and verify the webhook endpoint URL is accessible externally using ServiceNow's instance REST API tester. If using IP restrictions, ensure Zendesk's webhook IP ranges are whitelisted in ServiceNow's IP Access Control settings.

Bidirectional sync creating infinite loops between platforms

Implement loop prevention by adding conditional logic that checks for system-generated updates versus human-generated changes using the sys_updated_by field and integration user accounts. Create a custom field like 'x_sync_in_progress' that gets set during integration operations and prevents further sync triggers until the operation completes. Review your Flow Designer conditions to ensure webhook-triggered updates don't immediately trigger outbound sync actions back to Zendesk.

Transform map failures with data type conversion errors

Navigate to IntegrationHub > Action Executions and review failed transform operations to identify specific field mapping issues, particularly with date/time formats and choice field value mismatches. Use the Transform Map preview feature with actual Zendesk JSON payloads to test field mappings before deploying to production. Common issues include Zendesk's UTC timestamps requiring conversion to ServiceNow's user timezone and Zendesk priority integers not matching ServiceNow's priority choice values.

Zendesk API rate limiting causing spoke action timeouts

Monitor your Zendesk API usage in the Zendesk Admin Center under API settings to verify you're not exceeding the 700 requests per minute limit for Professional plans. Implement Flow Designer error handling that catches rate limit responses (HTTP 429) and automatically retries the action after the recommended delay period. Consider batching multiple updates into single API calls where possible using Zendesk's bulk update endpoints through custom scripted actions.

Missing customer records causing incident assignment failures

Create a fallback assignment logic in your transform maps that assigns incidents to a default support group when Zendesk requester_id cannot be matched to an existing ServiceNow user record. Implement a separate sync process that regularly updates ServiceNow user records from Zendesk's user base to prevent missing customer data. Add error handling that creates temporary contact records for unknown Zendesk users and queues them for manual review by administrators.

Webhook payload size limits causing truncated ticket updates

Configure Zendesk webhooks to send only essential field updates rather than complete ticket objects to stay within ServiceNow's 5MB REST payload limits for most instances. Implement a hybrid approach where webhooks send ticket IDs and change indicators, then use the Zendesk spoke's Get Ticket action to retrieve full ticket details as needed. For tickets with extensive comment threads, implement pagination logic that retrieves comments in batches rather than attempting to sync all comments in a single payload.

Pro Tips

  • Implement field-level change tracking by storing JSON snapshots of previous ticket states in custom ServiceNow tables, enabling delta synchronization that only updates changed fields rather than full record overwrites. This approach significantly reduces API calls and prevents unnecessary webhook triggers while maintaining complete audit trails of field-level changes across both platforms.
  • Use ServiceNow's Domain Separation feature when managing multiple Zendesk instances or customer environments by creating separate connection aliases and flow workflows for each domain. This approach ensures proper data isolation while leveraging shared spoke actions and transform map logic across multiple Zendesk tenants in MSP scenarios.
  • Configure intelligent assignment group routing by creating lookup tables that map Zendesk group IDs to ServiceNow assignment groups based on skills, time zones, and escalation policies. Include fallback logic that considers current group capacity and member availability to prevent incidents from being assigned to overloaded or offline teams.
  • Implement custom SLA alignment by creating ServiceNow business rules that calculate equivalent SLA response times based on Zendesk's customer tier mappings and support hours. This ensures ServiceNow incident SLAs reflect the original customer commitments made in Zendesk while accommodating different escalation team capabilities and schedules.
  • Create comprehensive integration health monitoring using ServiceNow's Integration Hub dashboards combined with custom scheduled jobs that verify webhook connectivity, test API authentication, and validate recent sync operations. Set up automated email notifications for integration failures that include specific error details and recommended remediation steps for faster resolution.
  • Leverage ServiceNow's REST Message versioning to maintain multiple Zendesk API endpoint configurations for different environments or API versions, enabling seamless testing and rollback capabilities during Zendesk platform updates. Include custom headers and authentication methods that can be easily switched without modifying core integration logic.

Known Limitations

  • Zendesk's API rate limits of 700 requests per minute for Professional plans and 2000 for Enterprise plans can bottleneck high-volume synchronization scenarios, requiring careful batching and retry logic to prevent timeout failures during peak support periods. The Integration Hub spoke includes basic retry mechanisms but may require custom flow logic for complex bulk operations.
  • Real-time bidirectional synchronization can create data consistency challenges when both platforms are updated simultaneously, potentially leading to conflicting field values that require manual resolution. ServiceNow's eventual consistency model may show temporary discrepancies during high-frequency update scenarios.
  • The Zendesk spoke's transform map capabilities are limited compared to custom scripting approaches, particularly for complex data manipulations like concatenating multiple Zendesk fields into single ServiceNow fields or implementing custom business logic during field mapping. Advanced transformations may require custom scripted actions.
  • Zendesk's webhook delivery doesn't guarantee ordering or exactly-once delivery, requiring ServiceNow implementations to handle duplicate webhook payloads and out-of-sequence updates gracefully. This is particularly challenging for status change workflows where the order of operations affects final incident states.
  • Integration Hub Professional license limitations restrict the number of concurrent action executions and may throttle high-volume integrations during peak periods, requiring careful flow design and potentially upgrading to Integration Hub Enterprise for large-scale implementations with thousands of daily ticket interactions.

Frequently Asked Questions

Can the integration sync Zendesk ticket comments to ServiceNow incident work notes bidirectionally?

Yes, the integration supports bidirectional comment synchronization through webhook triggers and Flow Designer workflows that map Zendesk ticket comments to ServiceNow work notes and additional comments. You need to configure separate flows for each direction and implement logic to prevent infinite comment loops by tracking comment sources. The spoke includes actions for adding comments to Zendesk tickets, and webhook payloads include comment data that can be parsed and added to incident records using standard ServiceNow GlideRecord operations.

How does the integration handle Zendesk custom fields and ServiceNow custom incident fields?

Custom field mapping is handled through Transform Maps where you can create field-level mappings between Zendesk custom field IDs and ServiceNow custom field names using the mapping interface. The integration supports all standard ServiceNow field types including choice lists, reference fields, and date/time fields with automatic data type conversion. For complex custom field scenarios, you can implement custom scripting within transform maps or use Flow Designer's data transformation capabilities to manipulate field values before synchronization.

What happens if the ServiceNow instance is down when Zendesk sends webhook notifications?

Zendesk will retry webhook deliveries according to its retry policy (typically 3 attempts over 15 minutes) but failed webhook deliveries are not automatically queued for later processing. You should implement a backup synchronization mechanism using scheduled jobs that periodically query Zendesk's API for recent ticket changes and process any missed updates. Consider using ServiceNow's Mid Server capabilities for additional reliability or implementing a message queue solution for critical webhook processing requirements.

Can multiple Zendesk instances be integrated with a single ServiceNow instance?

Yes, you can configure multiple Zendesk integrations by creating separate Connection Aliases for each Zendesk instance and using ServiceNow's Domain Separation or custom identification fields to distinguish between different Zendesk sources. Each integration requires its own webhook endpoints and Flow Designer workflows, but you can share common transform maps and spoke actions across multiple instances. Consider using naming conventions and custom fields to track which Zendesk instance originated each incident for proper routing and escalation.

How are Zendesk organizations mapped to ServiceNow companies in the integration?

The integration can sync Zendesk organizations to ServiceNow company records using the spoke's organization-related actions and custom transform maps that handle the field mappings between platforms. You'll need to create flows that trigger on organization changes in Zendesk and update corresponding company records in ServiceNow, including handling cases where organizations exist in one platform but not the other. The mapping typically uses unique identifiers like domain names or external organization IDs to maintain relationships and prevent duplicate company records.

What authentication methods are supported beyond API tokens for Zendesk integration?

While API token authentication is the most common and recommended approach, the ServiceNow Zendesk integration also supports OAuth 2.0 authentication for enhanced security in enterprise environments. OAuth implementation requires additional configuration in both platforms including client credentials and token refresh logic within your Connection Alias settings. Basic authentication with username/password is technically supported but not recommended for production use due to security limitations and Zendesk's deprecation of password-based API access.

How can we track integration performance and troubleshoot sync delays?

ServiceNow provides comprehensive monitoring through IntegrationHub > Action Executions where you can view success rates, response times, and error details for all spoke actions. Enable debug logging in your Flow Designer workflows and webhook REST APIs to capture detailed execution information in the System Logs. Create custom dashboards using Performance Analytics to track key metrics like sync latency, failure rates, and volume trends, and consider implementing custom health check scheduled jobs that test integration connectivity and alert administrators to performance degradation.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue