Sales and customer support teams typically operate on different platforms: Salesforce for CRM and Zendesk for ticketing. Without a Salesforce Zendesk integration, these teams work in silos, leading to inconsistent customer experiences and duplicated effort. A proper integration bridges this gap by enabling automatic, bidirectional data flow between both systems.
This guide covers the practical benefits of integrating Salesforce with Zendesk, how to evaluate integration solutions, and a step-by-step approach to implementing the sync using Exalate.
Key Takeaways
- A Salesforce Zendesk integration enables automatic synchronization of Cases, tickets, contacts, and custom fields between both platforms
- Native Zendesk integration provides one-way sync from Salesforce to Zendesk only, limiting bidirectional workflows
- Third-party solutions like Exalate offer full bidirectional sync with Groovy scripting for complex use cases
- Exalate’s unified console lets you manage all connections from one interface with AI-assisted configuration (Aida)
- Security features include ISO 27001 certification, role-based access control, and encryption at rest and in transit
- Outcome-based pricing means you pay for active sync pairs, not user seats
Why Integrate Salesforce and Zendesk?
Salesforce and Zendesk serve distinct but complementary functions. Salesforce manages customer relationships, sales pipelines, and account data. Zendesk handles support tickets, customer conversations, and service workflows. When these platforms don’t communicate, problems arise.
Use Case Example:
A support agent receives a ticket in Zendesk from an existing customer reporting a product defect. Without integration, the agent can’t see the customer’s purchase history, account status, or open opportunities in Salesforce. They might escalate to sales without context, or worse, provide generic support to a high-value enterprise account.
Without Integration: Manual lookup in Salesforce, copy-paste between systems, and delayed response times. Sales teams remain unaware of support issues affecting their accounts.
With Integration:
- Customer account data from Salesforce appears in the Zendesk ticket
- Support tickets automatically create linked Cases in Salesforce
- Status changes, comments, and resolution notes sync bidirectionally
- Sales reps see active support issues directly in their account view
- Escalations include the complete customer history from both systems
Benefits of Salesforce Zendesk Integration
Unified Customer View: Sales and support teams access the same customer information without switching platforms. Support agents see account value, recent purchases, and sales context. Sales reps see ongoing support issues and customer satisfaction signals.
Reduced Manual Work: Automatic synchronization eliminates duplicate data entry. When a Zendesk ticket updates, the corresponding Salesforce Case updates too. Comments, attachments, and status changes flow in real-time.
Improved Collaboration: Support can flag issues for sales attention. Sales can monitor service quality for key accounts. Both teams work from consistent, current data.
Faster Resolution: Escalations include complete context. No back-and-forth asking for customer details already captured in the other system.
Better Reporting: Unified data enables cross-functional reporting. Track how support issues affect sales cycles. Measure customer health across both engagement and support metrics.
What Data Can You Sync Between Salesforce and Zendesk?
A Salesforce Zendesk integration can synchronize various entity types and fields:
Entities:
- Zendesk tickets ↔ Salesforce Cases
- Zendesk users ↔ Salesforce Contacts or Leads
- Zendesk organizations ↔ Salesforce Accounts
- Zendesk comments ↔ Salesforce Case comments or chatter feed
- Attachments (files, images, documents)
Standard Fields:
- Subject/Summary
- Description/Body
- Status and priority
- Assignee and reporter
- Created date and due date
Advanced Sync:
- Custom fields from both platforms
- Tags and labels
- Satisfaction ratings
- Time tracking data
- Related records and parent-child relationships
- Any field accessible via the REST API
Common Use Cases for Salesforce Zendesk Integration
Support Ticket to Sales Case Escalation
Scenario: Customer reports a billing error that requires sales involvement.
Workflow:
- Ticket created in Zendesk with customer details and issue description
- Agent tags the ticket for escalation
- Integration automatically creates a Salesforce Case with a complete ticket history
- Sales rep assigned based on account ownership
- Resolution in Salesforce syncs back to close the Zendesk ticket
- Customer receives consistent updates regardless of which system handles the response
Customer Account Health Monitoring
Challenge: Sales teams need visibility into support activity for their accounts without logging into Zendesk.
Solution:
- Active support tickets sync to Salesforce as Cases
- Ticket count and severity roll up to Account records
- Sales reps see support health indicators in their dashboard
- High-priority tickets trigger alerts in Salesforce
- Integration supports connections to other platforms like Jira, ServiceNow, Azure DevOps, Freshservice, and Freshdesk for multi-tool environments
Automate Customer Success Workflows
Scenario: The onboarding team in Salesforce needs to track support interactions during implementation.
Workflow:
- Implementation project tracked in Salesforce Opportunities
- Customer submits questions via Zendesk during setup
- Tickets sync to Salesforce with Opportunity association
- The customer success team sees all touchpoints in one view
- Issue patterns inform future implementations
Consolidate Related Tickets in Zendesk
Sync all the support tickets to the organization level so there would be an overview of all the tickets in a particular organization. This could involve sending all related tickets based on the assignee or label.
Customer success representatives can benefit from having a complete overview of Salesforce objects.
What Are the Best Ways to Connect Salesforce and Zendesk?
Before implementing, understand the available approaches and their trade-offs.
Native Zendesk for Salesforce Integration
Zendesk offers a built-in integration with Salesforce through its Admin Center.
Capabilities:
- Display Salesforce data in Zendesk ticket sidebar
- One-way data sync from Salesforce accounts to Zendesk organizations
- One-way sync from Salesforce contacts/leads to Zendesk users
- Zendesk ticket view within Salesforce pages
Limitations:
- One-way sync for most data (Salesforce → Zendesk)
- Requires specific Salesforce editions (Performance, Unlimited, Enterprise, or Developer with API access)
- Multi-organization connections have feature limitations
- Limited customization for complex field mappings
Best For: Basic visibility of Salesforce data within Zendesk when full bidirectional sync isn’t required.
Custom Development
Building a custom integration using Salesforce and Zendesk APIs offers maximum control.
Advantages:
- Complete flexibility in data mapping
- No third-party licensing fees
Challenges:
- 100+ hours of development time
- Ongoing maintenance burden
- No built-in error handling or retry logic
- Security and authentication must be implemented from scratch
- Scaling requires additional development
Best For: Organizations with dedicated integration teams and unique requirements that no existing solution handles.
Read our detailed guide: Build vs. Buy Integration Solutions, or estimate the investment with our build vs. buy calculator.
Third-Party Integration Platforms
Integration platforms provide pre-built connectors with configuration options.
Template-based tools (like Zapier or Unito) work for simple, trigger-based automation. They struggle with complex mappings, conditional logic, and enterprise requirements.
Script-based solutions (like Exalate) offer flexibility comparable to custom development with the operational benefits of a managed platform.
What to Consider When Choosing an Integration Solution
Selecting the right tool determines whether your Salesforce Zendesk integration becomes a productivity asset or a maintenance headache. Focus on these capabilities.
Security and Compliance
Your integration transfers customer data, account information, and support conversations between systems. Weak security exposes sensitive information.
What to look for:
- ISO 27001 certification for verified security practices
- Data encryption in transit (TLS 1.2/1.3) and at rest
- Role-based access control (RBAC) to separate permissions
- Authentication options like OAuth 2.0 and API tokens
- Audit trails for compliance and troubleshooting
- Public Trust Center with security documentation and penetration test results
Why it matters: Integration endpoints are attack vectors. Certified platforms undergo regular security audits. Uncertified solutions may have undiscovered vulnerabilities.
Visit the Exalate Trust Center for security documentation.
Real-time Bidirectional Synchronization
One-way sync creates incomplete workflows. If tickets update in Zendesk but Cases don’t reflect changes in Salesforce, teams work with stale data.
What to look for:
- True bidirectional sync (changes flow both directions)
- Real-time updates without polling delays
- Conflict resolution for simultaneous changes
- Selective sync (choose which fields go which direction)
Why it matters: Native Zendesk integration offers a limited one-way sync. If you need Cases to update tickets (not just tickets to create Cases), you need a bidirectional solution.
Customization and Flexibility
Your workflows aren’t generic. Status values don’t match between systems. Priority scales differ. Custom fields require transformation logic.
What to look for:
- Custom field mapping between platforms
- Status transformation (e.g., Zendesk “Solved” → Salesforce “Closed”)
- Conditional sync rules (only sync high-priority tickets)
- Groovy or script-based configuration for complex logic
- AI-assisted configuration to generate scripts from natural language
Why it matters: Rigid integrations force you to change your workflows. Flexible integrations adapt to how you already work.
Operational Control and Reliability
Integrations fail. APIs timeout. Systems go down for maintenance. Your solution needs resilience.
What to look for:
- Automatic integrated retry mechanism
- Queue-based processing that resumes after outages
- Test Run functionality to validate changes before production
- Script versioning with rollback capability
- Activity dashboard for monitoring sync health
Why it matters: A broken integration is worse than no integration. Stale data creates confusion. Reliable platforms minimize downtime and provide safety nets.
Scalability
You might start with one Salesforce org syncing to one Zendesk instance. Six months later, you add a second Zendesk brand, connect Freshservice for IT, and integrate Asana for project tracking.
What to look for:
- Multi-instance support (multiple Salesforce orgs, multiple Zendesk instances)
- Connections to other platforms (Jira, ServiceNow, Azure DevOps Cloud and Server, Freshdesk, GitHub)
- Unified console for managing all integrations
- Network visualization showing all connected systems
Why it matters: Starting with a limited solution means migration pain later. Choose a platform that grows with your integration needs.
Transparent Pricing
Integration pricing models vary widely. Some charge per user, some per transaction, some per connection.
Pricing models:
- Per-user: Costs scale with team size regardless of sync volume
- Per-transaction/API call: Unpredictable bills that penalize active use
- Per-connection: Fixed cost per integration pair
- Outcome-based (sync pairs): You pay for items actively in sync
Exalate uses outcome-based pricing; you pay for active sync pairs at any given time, not user seats. The cost per item decreases as volume increases. Each integration (e.g., Salesforce ↔ Zendesk) is billed independently.
View pricing details | Exalate Plan Calculator
Why Use Exalate to Integrate Salesforce and Zendesk?
Exalate combines scripting flexibility with operational simplicity through a unified management console:
- Groovy scripting engine: Handle any custom workflow with full programming capabilities
- AI-assisted configuration (Aida): Generate and troubleshoot sync scripts using natural language prompts
- Unified console: Manage all integrations from one interface with network visualization
- Test Run functionality: Validate script changes before production deployment
- Script versioning: Full audit trail with rollback to previous configurations
- Real-time sync: Complete queue visibility with automatic retry on failures
- Security-first: ISO 27001 certified, RBAC, encryption at rest and in transit
- Broad connectivity: Jira, ServiceNow, Azure DevOps (Cloud and Server), Freshservice, Freshdesk, Asana, GitHub, and more. View all supported connectors
- Outcome-based pricing: Pay for active items in sync, not user seats
How to Integrate Salesforce and Zendesk: Setup Guide
This walkthrough demonstrates connecting Salesforce and Zendesk using Exalate. The process involves creating a workspace, establishing a connection, configuring sync rules, and setting up triggers.
Getting Started
Access the Exalate console at app.exalate.com. Create an account if you’re new, or log in to your existing workspace.
Creating a Workspace
Workspaces organize your integrations. All connections between your systems live within a workspace.
Navigate to the Workspaces tab and click “+ Create Workspace”. Provide a name that reflects your use case (e.g., “Sales-Support Sync”) and add an optional description.

Connecting Salesforce and Zendesk
From your workspace, go to the Connections tab and select “+ Add connections” → “Create new connection”.
System A (First Platform): Enter “Salesforce” as the system name and your Salesforce instance URL. Exalate auto-detects the platform and prompts for the API token. Authorize Exalate to access your Salesforce org.

System B (Second Platform): Enter “Zendesk” as the system name and your Zendesk subdomain URL (e.g., yourcompany.zendesk.com). Provide your Zendesk token when prompted.
Connection Details: Name your connection descriptively (e.g., “Support Tickets to Sales Cases”). Click Next, review the summary, and confirm.

Configuration Options

Quick Sync (Publish & Quick Sync): This option immediately publishes the default sync configuration and lets you test with a single item. Use this to verify the connection works before customizing.
Under “Item sync monitor,” enter a Zendesk ticket ID or Salesforce Case number. Click “Sync Now” to create a linked item on the other side, or “Link with existing” to connect two items that already exist in both systems.

The sync monitor shows real-time status. Once complete, you can open both items to verify data transferred correctly.

Edit & Test (Open Draft Editor): This option opens the configuration editor where you customize sync rules before publishing. Recommended for most implementations where default mappings need adjustment.
Understanding Sync Rules
Exalate uses Groovy-based scripts to control data flow.

The Replica: Think of the replica as a data payload traveling between systems. It’s a JSON-like object that carries field values from source to destination. The outgoing script populates the replica; the incoming script reads from it.
Two scripts govern each connection side:
Outgoing Script: Defines what data leaves your system. The script populates a “replica” object with field values.
Example (Zendesk outgoing):
replica.summary = ticket.subject
replica.description = ticket.description
replica.priority = ticket.priority
replica.status = ticket.status
replica.comments = ticket.comments
Incoming Script: Defines how incoming data maps to local entities. The script reads from the replica and writes to local fields.
Example (Salesforce incoming):
if(firstSync) {
entity.projectKey = "SUPPORT"
}
entity.summary = replica.summary
entity.description = replica.description
entity.priority = replica.priority
Code language: JavaScript (javascript)The replica acts as a payload carrying data between systems. Each side controls its own scripts independently.
Editing Sync Rules
To customize the sync, click “Open draft editor” or navigate to your connection and click “Edit.”
Before modifying the active configuration, create a new version by clicking “+ New version” or “Open latest draft.” This ensures you don’t accidentally change production settings. Draft changes save automatically.
Click “Edit” next to the Scripts section to open the script editor.
The Script Editor Interface:
The editor displays two panels side-by-side:
- Left panel: Outgoing script (data leaving this system)
- Right panel: Incoming script (data entering this system)
Use the direction toggle (arrows near the connection name) to switch between viewing Salesforce-side scripts and Zendesk-side scripts.
The default script sends common ticket fields:
groovy
replica.key = ticket.key
replica.summary = ticket.subject
replica.description = ticket.description
replica.priority = ticket.priority
replica.status = ticket.status
replica.assignee = ticket.assignee
replica.reporter = ticket.reporter
replica.comments = ticket.comments
replica.attachments = ticket.attachmentsEach line maps a ticket field to the replica. The replica carries these values to Salesforce.
To sync additional fields, add lines to the outgoing and incoming scripts depending on how you want the data to flow. To exclude a field, remove or comment out the corresponding line.
Using AI-Assisted Configuration
Aida, Exalate’s AI assistant, generates sync scripts from natural language descriptions. Instead of writing Groovy manually, describe what you want:
“Sync the ticket subject to the Case subject. Map Zendesk priority High to Salesforce priority Urgent. Only sync tickets tagged ‘escalate’ to Salesforce.”

Aida generates the corresponding script. Review the suggested changes where green highlights show additions, red shows removals. Insert valid suggestions or refine your prompt.
Testing Before Deployment
Click “Start Test Run” to validate your configuration against real data without affecting production.
Select one or more items to test. The Test Run shows how the replica looks on both sides, what data leaves the source, and how it maps at the destination.

Review field mappings. If something looks wrong, go back, adjust the scripts, and test again. Publish only when the preview matches expectations.

Setting Up Triggers
Triggers define which items enter the sync automatically. Without triggers, you’d manually initiate each sync.

Zendesk Triggers: Use Zendesk search syntax.
- Sync all open tickets:
status<solved - Sync escalated tickets:
tags:escalate - Sync high priority:
priority:high
Salesforce Triggers: Use SOQL (Salesforce Object Query Language).
- Sync all Cases:
Status != 'Closed' - Sync specific record type:
RecordType.Name = 'Support Case'
Click “+ Add Trigger”, select the entity type, enter your query, and activate.

Deploying and Monitoring
Publish your configuration to go live. Exalate begins processing items that match your triggers.
Monitor sync health from the workspace dashboard. The Activity Dashboard shows sync status across all connections. The Troubleshooting tab displays errors with Aida-powered diagnosis.

If errors occur, Aida explains the issue in plain language and suggests fixes. Click the error, review the diagnosis, and resolve.
Advanced Salesforce Zendesk Integration Scenarios
Exalate’s scripting engine supports complex workflows beyond basic field mapping.
Multi-Instance Connections
Connect multiple Zendesk brands to a single Salesforce org, or multiple Salesforce orgs to one Zendesk instance. The unified console visualizes all connections in a network view.
Manage configurations consistently using script templates across similar connections. Bulk operations apply changes to multiple connections simultaneously.
Custom Field Transformations
Map Zendesk custom fields to Salesforce custom fields with transformation logic:
// Transform Zendesk custom field to Salesforce picklist
def zendeskValue = replica.customFields."Product Category"
entity.Product_Category__c = zendeskValue ?: "General"
Code language: JavaScript (javascript)Status Mapping
Align different status workflows between systems:
// Map Zendesk statuses to Salesforce statuses
def statusMap = [
"new": "New",
"open": "Working",
"pending": "Waiting on Customer",
"solved": "Closed"
]
entity.Status = statusMap[replica.status] ?: "New"
Code language: JavaScript (javascript)Conditional Sync
Only sync specific items based on field values:
// Outgoing: Only sync if ticket is escalated
if(ticket.tags?.contains("escalate")) {
replica.summary = ticket.subject
replica.description = ticket.description
// ... other fields
}
Code language: JavaScript (javascript)Preserving Attachments
Sync files between Zendesk tickets and Salesforce Cases:
replica.attachments = ticket.attachments
The incoming side receives attachments and creates them on the destination entity automatically.
Frequently Asked Questions
Why should I integrate Salesforce and Zendesk?
A Salesforce Zendesk integration eliminates data silos between sales and support teams. Without integration, agents manually copy customer data between systems, leading to errors and delays. With integration, tickets automatically create Cases, status updates sync in real-time, and both teams share a unified customer view.
What’s the difference between Exalate and native Zendesk Salesforce integration?
The native Zendesk integration provides:
- One-way data sync (Salesforce accounts → Zendesk organizations)
- Salesforce data is displayed in the Zendesk ticket sidebar
- Limited customization options
Exalate provides:
- Full bidirectional sync (changes flow both directions)
- Groovy scripting for complex transformations
- AI-assisted configuration (Aida) for script generation
- Unified console managing multiple platforms (Jira, ServiceNow, Azure DevOps, Freshdesk, etc.)
- Test Run and script versioning for safe deployments
Can I sync custom fields between Salesforce and Zendesk?
Yes. Exalate syncs any field accessible via the REST API, including custom fields on both platforms. You define the mapping in sync scripts. For example, map a Zendesk custom dropdown to a Salesforce picklist field with value transformation.
Does Exalate support bidirectional sync?
Yes. Exalate enables true bidirectional synchronization where changes in either system automatically update the other. Create a ticket in Zendesk, and a Case appears in Salesforce. Update the Case status in Salesforce, and the ticket status changes in Zendesk.
How does Exalate handle sync failures?
Exalate queues all sync operations. If a failure occurs (API timeout, system maintenance, etc.), the queue retains pending changes. When systems recover, Exalate automatically processes the queue in order without manual intervention. Script versioning lets you roll back to previous configurations if a change causes issues.
What Salesforce editions work with Exalate?
Exalate works with any Salesforce edition that supports API access: Enterprise, Unlimited, Performance, and Developer editions.
Can I connect multiple Salesforce and Zendesk instances?
Yes. Exalate supports multi-instance architectures. Connect multiple Zendesk brands to one Salesforce org, or connect multiple Salesforce orgs to one Zendesk instance. The unified console shows all connections in a network visualization for easy management.
How does Exalate pricing work?
Exalate uses outcome-based pricing. You pay for active sync pairs, that is, the items currently synchronized between systems, at any given time. You don’t pay per user or per transaction. Each integration (Salesforce ↔ Zendesk) is billed independently. Costs decrease as sync volume increases.
Is Exalate secure for enterprise use?
Yes. Exalate is ISO 27001 certified with:
- Data encryption in transit (TLS 1.2/1.3) and at rest
- Role-based access control (RBAC)
- OAuth 2.0 and API token authentication
- Full audit trails of configuration changes
Review security documentation at the Exalate Trust Center.
Does Exalate integrate with other platforms?
Yes. Beyond Salesforce and Zendesk, Exalate connects Jira, Jira Service Management, ServiceNow, Azure DevOps (Cloud and Server), GitHub, Freshservice, Freshdesk, and Asana. View all integrations.
Ready to Connect Salesforce and Zendesk?
With Exalate, you get:
- Unified visibility: Manage all integrations from one console
- Operational control: Full scripting flexibility with Groovy
- AI-assisted setup: Aida generates scripts from natural language
- Safe deployment: TestRun validates changes, versioning enables rollback
- Real-time monitoring: Activity Dashboard tracks sync health
- Enterprise security: ISO 27001 certified, RBAC, encryption at rest and in transit
- Outcome-based pricing: Pay for active sync pairs, not user seats
Integrate Salesforce and Zendesk to unify your sales and support data, eliminate manual copying, and give both teams a complete customer view.

Recommended Reads:



