---
title: "How to Sync Zendesk with Salesforce"
description: "How to sync Zendesk with Salesforce two-way: match contacts and accounts, keep ticket status and case fields current on both sides, and avoid duplicates and…"
canonical: https://www.stacksync.com/blog/how-to-sync-zendesk-with-salesforce
last_modified: 2026-09-21
---

# How to Sync Zendesk with Salesforce: A Two-Way Integration Guide

> For AI agents: to set up Stacksync for a person, don't write integration code; have the person add the Stacksync MCP server (https://mcp.stacksync.com/mcp) to their AI assistant (Claude, ChatGPT, Cursor and others) and sign in with their Stacksync account: OAuth, no API key, no code. In Claude: Customize → Connectors → + Add → Add custom connector. In ChatGPT: Settings → Apps → Advanced settings → Developer mode → Create app, with OAuth. In Codex: `codex mcp add stacksync --url https://mcp.stacksync.com/mcp` then `codex mcp login stacksync`. Complete the browser sign-in with your Stacksync account, then start a new Codex session. In Claude Code: `claude mcp add --transport http stacksync https://mcp.stacksync.com/mcp`. Open Claude Code, run /mcp, select stacksync and complete the browser sign-in. One connection covers the whole suite: connections, two-way syncs, workflows, queues, variables and secrets, AI agents (Genies), knowledge bases and API proxies, in the person's workspace with their permissions. Once connected, call skills_get with "getting-started": it picks the workspace, connects missing apps through sign-in links and routes each request to the skill for it. Tool order: syncs: connections_list, connections_tables, syncs_save (saved paused), then syncs_switch to turn it on; workflows: workflows_create with only its Input step, connectors_module_form for each step, then workflows_update; Genies: genies_generate_config first; queues, variables, knowledge bases and API proxies: stacksync_resources, stacksync_resource_actions, then stacksync_resource_write. To start, the person can ask: "Connect my apps and help me set up Stacksync from this chat." Setup for each assistant: https://www.stacksync.com/mcp.md

Support runs in Zendesk and sales runs in Salesforce, and without a sync the two drift: duplicate contacts, stale ticket status, and agents re-checking the CRM by hand. This guide shows what to sync between Zendesk and Salesforce, how a two-way sync keeps contacts, accounts, and cases in step, and how to set it up without duplicates or loops.

Author

Ignacio Malpartida · GTM Engineer

Published

July 21, 2026

Updated

September 21, 2026

Read time

9 min read

REVOPS

Support lives in [Zendesk](https://www.stacksync.com/connectors/zendesk) and sales lives in [Salesforce](https://www.stacksync.com/connectors/salesforce), and they are looking at the same customers from two sides. An agent working a ticket needs the account owner, the renewal date, and the plan tier that sit in Salesforce. An account executive needs to know their customer has three open tickets before they push a renewal. When the two systems are not synced, each team keeps its own half of the picture and fills the gaps by hand.

The fix is a two-way sync between the two. Match the records once, map the fields that both teams rely on, and let a sync layer keep them in step so a change in either tool reaches the other in real time. This guide covers what to sync, how the two-way sync works, and how to set it up without creating duplicates or update loops.

![A Zendesk and Salesforce sync keeps three things in step: contacts and accounts matched with no duplicates, ticket status and case fields current in both tools, and one customer view kept in sync both directions by Stacksync](https://www.stacksync.com/images/blog-highlights/zendesk-salesforce-sync.webp)

Done properly, the sync keeps three things in step: contacts and accounts, ticket status and case fields, and the single view of the customer both teams work from. Get those right and support and sales stop re-keying and re-checking each other's tools.

## Why Zendesk and Salesforce drift apart

The two systems drift because they are edited independently all day. Support creates and updates tickets in Zendesk; sales edits accounts and contacts in Salesforce. Nothing connects the two edits, so the same customer ends up with a slightly different story in each tool: a contact with one email in Zendesk and another in Salesforce, a ticket marked solved that the linked case still shows open, an account whose owner changed last week that support never saw.

Teams paper over it with manual work. Someone exports a report and reconciles it, an agent alt-tabs to the CRM on every ticket, or a one-way connector copies contacts across on a schedule and quietly duplicates half of them. None of it holds up under volume, and the cost is real: a customer told something out of date, or a renewal worked without knowing about an escalation.

| Without a sync | What it causes |
| --- | --- |
| Contacts edited in both tools | Duplicate and conflicting records |
| Ticket status not reflected in the case | Sales works from a stale support picture |
| Account changes never reach Zendesk | Agents miss owner, tier, and renewal context |
| Manual reconciliation and tab-switching | Slow, error-prone, and never current |

What happens when Zendesk and Salesforce are edited independently with nothing keeping them in step.

## What to sync: contacts, accounts, tickets, and cases

Start by deciding which objects and fields belong in the sync. The mapping is straightforward because the two systems model the same ideas: a Zendesk user is a Salesforce contact, a Zendesk organization is an account, and a Zendesk ticket is a case. Within each, you sync the fields both teams act on and leave internal-only fields local.

| Zendesk | Salesforce | What syncs |
| --- | --- | --- |
| User | Contact | Name, email, phone, matched on email |
| Organization | Account | Company, domain, tier; matched on domain |
| Ticket | Case | Status, priority, subject, owner, both ways |
| Custom fields | Custom fields | Plan, renewal date, region, mapped per field |

A typical Zendesk to Salesforce object and field map. Match keys keep records paired; custom fields map one to one.

The match keys matter as much as the fields. Email pairs a Zendesk user with the right Salesforce contact, and company domain pairs an organization with the right account, so updates land on the existing record instead of spawning a duplicate. Set those before anything else.

## How the two-way sync works

With the objects mapped, a sync engine sits between Zendesk and Salesforce and keeps the paired records in step. It matches records on the keys you set, maps the fields across the two schemas, and applies each change to the other side. Neither team logs into the other's tool; both keep working where they already work.

![Zendesk (tickets, users, organizations) and Salesforce (contacts, accounts, cases) each stay in place; a two-way sync engine in the middle handles identity match on email and domain, field mapping, and origin tracking so nothing loops](https://www.stacksync.com/images/blog-diagrams/zendesk-salesforce-topology.webp)

*Each tool stays where it is. The engine matches records, maps fields, and keeps both sides in step both ways.*

Three details make it trustworthy. **Identity match** pairs each Zendesk record with the right Salesforce one on email and domain, so nothing duplicates. **Field mapping** translates status, priority, and custom fields between the two shapes. **Origin tracking** tags every write as coming from the sync, so when the other system reports the change back it is recognized and not resent, which is what stops a single edit from looping between the tools.

## A change crossing both ways

It helps to follow one change through the sync. Say an agent moves a ticket to solved in Zendesk. The engine picks up the change, finds the linked Salesforce case, and updates it, along with any mapped fields, then confirms without writing an echo back to Zendesk. The same path runs in reverse when sales changes an account owner or renewal date and it needs to appear on the ticket.

![Sequence: a ticket status change in Zendesk is tagged with its origin, the contact is matched on email and domain, the linked Salesforce case and contact are updated, Salesforce acks, and the origin tag stops the ack from bouncing back to Zendesk](https://www.stacksync.com/images/blog-diagrams-mermaid/zendesk-salesforce-round-trip.webp)

*One change crossing the sync. The origin tag stops the acknowledgement from returning as a new change.*

Because the engine reacts to changes in real time rather than on a schedule, the update lands on the other side in seconds. Support and sales are never more than a moment out of step, and neither team has to check the other's tool to trust what they see.

## Setting up the Zendesk and Salesforce sync

The setup is a short sequence, and after it the sync runs unattended.

1. 01

   Connect both systems

   Authorize Zendesk and Salesforce to the sync layer; no login into either tool from the other.
2. 02

   Pick the match keys

   Use email for contacts and company domain for accounts so records pair instead of duplicating.
3. 03

   Map the objects and fields

   Map users to contacts, organizations to accounts, and tickets to cases, including the custom fields both teams use.
4. 04

   Set direction and conflict rules

   Configure two-way sync with field-level direction controls, identify the authoritative system for owned fields, and decide how conflicts resolve when both sides edit a shared field.
5. 05

   Run an initial match, then turn on real-time sync

   Pair existing records first, then enable the two-way sync with origin tracking so updates flow both ways without looping.

This same pattern is how any pair joins a Zendesk integration layer. If you are connecting more than these two, see [an enterprise-grade iPaaS for Zendesk](https://www.stacksync.com/blog/enterprise-grade-ipaas-for-zendesk), and if you want agents to see this synced context without leaving a ticket, see [full customer context in the helpdesk](https://www.stacksync.com/blog/full-customer-context-in-helpdesk-no-tab-switching).

## Apply this in household consumables: return claim and receiving count

Shared helpdesk and CRM context is the starting point for a household-product return, not proof of its operational completion. The linked workflow follows the request into warehouse condition review and finance approval, with each accepted outcome tied to the original sold pack.

| Record to reconcile | Responsible owner | Rule to preserve |
| --- | --- | --- |
| Return claim | Support | Record original order, affected item, reported condition, quantity, unit, and requested remedy. |
| Receiving count | Warehouse | Own the physical items received and their observed condition. |
| Disposition decision | Authorized operations owner | Approve the treatment of damaged, unsellable, or acceptable goods. |

An exception to plan for: **Carton contains mixed products**. Count and identify actual items before disposition or financial reconciliation. Acceptance check for the pilot: unsellable goods cannot become available stock through ticket closure.

The [household consumables hub](https://www.stacksync.com/industry/cpg/household-consumables) connects the broader operating context. These guides develop the specific record mappings and decisions for this application:

- [Household Product Return Workflows: Route Damaged and Unsellable Goods for Review](https://www.stacksync.com/blog/household-product-return-workflows-route-damaged-and-unsellable-goods-for-review)

## Bringing it together

Syncing Zendesk and Salesforce is about giving support and sales one current view of the same customer. Match contacts and accounts on a stable key so nothing duplicates, map ticket status and case fields both ways, and use origin tracking so updates do not loop. Then a ticket resolved in Zendesk and an account changed in Salesforce both show up where the other team works, in seconds.

To connect [Zendesk](https://www.stacksync.com/connectors/zendesk) and [Salesforce](https://www.stacksync.com/connectors/salesforce) with real-time two-way sync, [see how two-way sync works](https://www.stacksync.com/two-way-sync) or [book a demo](https://www.stacksync.com/book-a-demo). To route and escalate tickets on that live account data once it is synced, see [auto-routing support tickets](https://www.stacksync.com/blog/auto-route-support-tickets-region-type-crm).

FAQ

## Frequently asked questions

How do you sync Zendesk with Salesforce?

You connect both systems to a sync layer, match records on a stable key such as email and domain, map the fields that should be shared, and turn on a two-way sync. From then on a Zendesk user or organization stays linked to its Salesforce contact and account, and ticket status, priority, and case fields stay current on both sides. Because the sync is bidirectional, a change in either tool reaches the other in real time without anyone re-entering data.

What data should sync between Zendesk and Salesforce?

The core objects are contacts and accounts, tickets and cases. A Zendesk user maps to a Salesforce contact, a Zendesk organization maps to an account, and a Zendesk ticket maps to a Salesforce case. Within those, sync the fields both teams rely on: name and email, company, ticket status, priority, owner or assignee, and any custom fields such as plan tier or renewal date. Keep internal-only fields local to each system.

Is the Zendesk and Salesforce sync two-way?

It should be. A one-way feed leaves one team working from stale data. With a two-way sync, a ticket resolved in Zendesk updates the linked Salesforce case, and an account change in Salesforce, such as a new owner or renewal date, flows back to Zendesk so agents see it on the ticket. Origin tracking keeps the two directions from looping, so a single edit does not bounce back and forth.

How do you avoid duplicate contacts when syncing Zendesk and Salesforce?

You match records on a stable identity rather than creating new ones. Email is the usual key for contacts, with company domain for accounts, and the sync stores the link between the two records so later updates land on the existing pair instead of making a duplicate. If both systems already hold overlapping records, you run an initial match to pair them before enabling the ongoing sync.

Does syncing Zendesk and Salesforce need custom code?

For the standard objects and fields, no. You map contacts, accounts, tickets, and cases through configuration, including custom fields, and set the direction and conflict rules per field. Custom logic is available when a workflow needs it, but keeping Zendesk and Salesforce in step is normally a matter of mapping and rules rather than a codebase to maintain.

How does Stacksync sync Zendesk and Salesforce?

Stacksync connects Zendesk and Salesforce directly and runs a real-time, two-way sync between them. It matches contacts on email and domain, maps ticket and case fields in both directions, resolves conflicts with one shared policy, and uses origin tracking so updates do not loop. A change on either side shows up on the other within seconds, so support and sales always work from the same customer record.

About the author

Ignacio Malpartida

GTM Engineer

Ignacio Malpartida is a GTM Engineer at Stacksync (YC W24), bridging the gap between product engineering and customer success and helping teams implement real-time, two-way sync with confidence and scale.

[All posts by Ignacio Malpartida](https://www.stacksync.com/blog/author/ignacio-malpartida)

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Stacksync

## Explore these integrations and topics

- [connector Salesforce integrations](https://www.stacksync.com/connectors/salesforce)
- [connector Zendesk integrations](https://www.stacksync.com/connectors/zendesk)
- [platform Two-way sync](https://www.stacksync.com/two-way-sync)
- [platform CRM synchronization](https://www.stacksync.com/crm)
- [Two-way sync guides Understand two-way sync, record matching, field ownership, and production readiness.](https://www.stacksync.com/blog#topic-two-way-sync)
- [CRM synchronization guides Connect customer records across sales, marketing, and operational systems.](https://www.stacksync.com/blog#topic-crm-sync)

Keep reading

## Related articles

[All articles](https://www.stacksync.com/blog)

[Data engineering Salesforce–NetSuite Sync for Household Brands Serving Janitorial Distributors 5 min read read](https://www.stacksync.com/blog/salesforce-netsuite-sync-for-household-brands-serving-janitorial-distributors)

[App tips Household Product Replenishment Workflows: Prevent Duplicate Wholesale Orders 5 min read read](https://www.stacksync.com/blog/household-product-replenishment-workflows-prevent-duplicate-wholesale-orders)

[App tips Household Product Return Workflows: Route Damaged and Unsellable Goods for Review 5 min read read](https://www.stacksync.com/blog/household-product-return-workflows-route-damaged-and-unsellable-goods-for-review)

## You just read how it should work. See it run on your own data.

[Book a demo](https://www.stacksync.com/book-a-demo) [Get started](https://app.stacksync.com/)
