How to Sync Custom Fields from Zendesk to ServiceNow

Published: Sep 30, 2025 | Last updated: Feb 25, 2026

Table of Contents

Knowing how a customer feels when a Zendesk ticket is raised, or a ServiceNow incident is logged, can make a real difference in how fast and how well your team responds.

Say a ticket comes in through Jira Service Management with a custom field showing the customer is “livid.” The support team using Zendesk needs that context, so the field has to sync to a corresponding custom field in Zendesk. And if the Zendesk team then needs to escalate the work item to IT on ServiceNow, the same customer mood has to travel there too.

This multi-tiered use case walks you through syncing a custom “customer mood” field between Zendesk and ServiceNow using Exalate. You can also extend this to a multi-platform connection by including your Jira instance.

Why Sync Custom Fields Between Zendesk and ServiceNow?

Custom fields carry critical context that standard fields don’t capture. When support and IT teams operate in separate systems, that context gets lost unless you deliberately sync it.

Here are a few scenarios where custom field syncing matters:

  • A customer mood or sentiment field helps the receiving team prioritize tone and urgency in their response.
  • An external ticket reference number (like a Zendesk ticket ID stored in ServiceNow) gives agents a quick way to cross-reference work items across systems.
  • Custom priority classifications that go beyond the default priority levels can carry over nuanced escalation criteria between teams.
  • Account tier or SLA information attached to a ticket can automatically inform ServiceNow’s incident handling workflow.

Without this sync, agents end up copy-pasting between systems or, worse, making decisions without the full picture.

Zendesk Custom Fields

Zendesk supports a variety of custom field types: drop-down lists, text (strings), numbers, regex, checkboxes, dates, and more. These fields let you capture information beyond the standard scope, such as customer mood, incoming ticket IDs, or account-specific details.

When naming custom fields, use unique names and identifiers to avoid conflicts with default field names.

For this use case, the custom field in Zendesk is called “ServiceNow Desk Ticket Number”.

ServiceNow Custom Fields

Custom fields in ServiceNow extend what’s available to users on an incident or record. They’re typically text fields (sometimes read-only) or drop-down lists. You can also set dynamic default values and define maximum character lengths for incoming values.

For this use case, the custom field in ServiceNow is called u_jira_mood.

How to Sync Customer Mood Between Zendesk and ServiceNow

To set up the sync, connect Zendesk and ServiceNow using Exalate. Log in to exalate.app, authenticate both systems, and create a connection between them.

Once the connection is active, open the connection details and navigate to the script editor. You’ll see outgoing and incoming sync scripts for each side.

Here’s a quick breakdown:

  • Outgoing sync controls what data leaves a system.
  • Incoming sync controls how incoming data is applied on the receiving system.

Below are the Groovy scripts you need for each direction.

ServiceNow Outgoing Sync

To send the customer mood value from ServiceNow to Zendesk, add this to the ServiceNow outgoing script:

replica.mood = entity.u_jira_mood

The replica picks up the mood value from the incident and carries it over to the Zendesk ticket as a string.

ServiceNow Incoming Sync

To receive the mood value coming from Zendesk into ServiceNow, add this to the ServiceNow incoming script:

entity.u_jira_mood = replica.customFields."ServiceNow Desk Ticket Number".value

The entity saves the incoming mood based on the payload carried by the replica from the designated Zendesk custom field.

Zendesk Incoming Sync

To receive the customer mood from ServiceNow, add this to the Zendesk incoming script:

issue.customFields."ServiceNow Desk Ticket Number".value = replica.mood

This maps the incoming mood value from the ServiceNow replica to the corresponding Zendesk custom field.

Zendesk Outgoing Sync

To send the mood value from Zendesk to ServiceNow, add this to the Zendesk outgoing script:

replica.customFields."ServiceNow Desk Ticket Number".value = issue.customFields."ServiceNow Desk Ticket Number".value

The replica retrieves the custom field value and forwards it to the ServiceNow incident field. Make sure to include the .value method to avoid errors.

That’s it. You’ve successfully synced the customer mood between Zendesk and ServiceNow.

Tip: You can use Aida, Exalate’s AI-assisted configuration, to generate or troubleshoot these Groovy scripts. Just describe what you want to sync in plain language, and Aida will draft the script for you. Always review the output before publishing.

You can also use Test Run to validate your sync scripts against real data before deploying to production, so nothing unexpected hits your live environment.

Set Up Triggers for Zendesk to ServiceNow Sync

Triggers automate which tickets or incidents enter the sync. They use platform-native filter syntax, so you’re working with queries you already know.

Zendesk trigger example (using Zendesk search syntax):

type:ticket ticket_type:incident priority:urgent

This rule syncs every ticket with urgent priority.

ServiceNow trigger example (using ServiceNow filter queries):

urgency = 1

This automatically triggers the sync for any high-urgency incident created in ServiceNow.

You can layer multiple trigger conditions to control exactly which work items flow between systems.

To see how this works in practice, check out the video walkthrough below.

If you have questions or want to see how Exalate fits your specific use case, book a call with one of our integration engineers.

Recommended Reading:

Subscribe to the Newsletter

Join +5.000 companies and get monthly integration content straight into your inbox

Shopping Basket