You can enable Zendesk to send all ticket information (for tickets with the status New, Open, On-Hold, or Solved) to Salesforce using a target. This is useful for including Zendesk tickets in support analytics generated through the Salesforce reporting module.
If you want to see Zendesk ticket information without sending the ticket information into Salesforce, you can add a Visualforce page with a list of tickets. For information, see Adding ticket view to your Salesforce Account, Contact, Lead, and Opportunity layouts.
The following video explains how to view and send Zendesk Support tickets to Salesforce.
To read about other Zendesk for Salesforce features, see Choosing Zendesk for Salesforce features.
For links to all of our Salesforce documentation, see Salesforce integration resources.
Setting the matching criteria for ticket requester and ticket organization
To enable auto-matching for ticket sending
- In the section Ticket association to Salesforce records, click to select Use auto-matching criteria for searching Salesforce records.
This ensures that both Lead and Contact records in Salesforce will be searched for a matching requester in Zendesk. Users can set up to three criteria for searching (OR logical condition will be used when more than one criteria is set). If you do not check this option, the default criteria will be used:
-
Organization Name (in Zendesk) will match with Account Name (in Salesforce)
-
Requester Email (in Zendesk) will match with Contact/Lead Email (in Salesforce)
-
- If no existing record is found for the match, you may opt to create new records for the ticket’s requester and organization. To do this, click to select Create Contacts or Leads and Accounts.
- Next, use the Create requester as drop-down to choose whether to create the Requester as Contact or Lead:
- Created Contact records can be associated to a default Account by setting the Default Account setting:
All changes are automatically saved.
Editing your target and trigger in Zendesk
When you installed the Salesforce app in Zendesk, Zendesk automatically created a Salesforce target that you will use to send information to Salesforce.
Zendesk also automatically created a trigger named Create a record in Salesforce when ticket is solved in your Zendesk. As the name implies, this trigger creates a new Salesforce Zendesk ticket whenever a ticket is solved.
To modify your Salesforce target
- In Zendesk, click the Admin icon (
) in the sidebar, then select Settings > Extensions.
- Under the Targets tab, locate the Salesforce target extension, and click Edit.
- Use the drop-down menu to select Send full ticket details as a custom object.
- Click Submit.
- In Zendesk, click the Admin icon (
) in the sidebar, then select Business Rules > Triggers.
- Find the new trigger, Create a record in Salesforce when ticket is solved, and click the trigger name to edit it.
- Modify the conditions of this trigger as needed, then click Save.
Now when you solve a ticket, a Salesforce Zendesk ticket is created in your Salesforce organization.
Customizing the Zendesk ticket in Salesforce
- Zendesk Ticket ID
- Status
- Subject
- Priority
- Requester
- Organization name
- Group
- Assignee
- Tags
- Description
- Comments
- Date/Time created
- Date/Time update
- Date/Time solved
- Date/Time initially assigned
- Resolution time (calendar & business)
- Requester wait time (calendar & business)
- Agent wait time (calendar & business)
- Hold time (calendar & business)
- Reply time (calendar & business)
- Form id
- Brand
The Salesforce target also sends all data from custom fields into Salesforce. To take advantage of this feature, you need to expose custom data on the Zendesk Ticket option by completing some steps for each custom field.
- In Salesforce, go to the Administration Setup page.
- In the left panel, under Build, select Create > Objects.
- Click the Zendesk Ticket object (not Edit).
- In the Custom Fields & Relationships section, click New.
- Select a Data Type for your new field, then click Next.
In most cases, Text, Text Area, or Number is appropriate. For Zendesk drop-down fields, a Text field is sufficient. Only the selected value will be synced, not all the options in the list.
- Enter a Field Label.
Matching the Field Label to the Zendesk Custom Field Name is preferred, but not required.
- Complete the other mandatory fields, then click Next.
- Click Next again, then click Save.
- Click the Zendesk tab in the Zendesk for Salesforce app.
- In the Ticket Sending to Salesforce section, click Get Custom Ticket Fields.
A list of custom fields from your Zendesk account appears. Note: You must have already created custom fields in Zendesk.
- Deselect the Create Contacts and Accounts in Salesforce checkbox if you do not want to create a new Contact or Account in Salesforce when no match is found for the ticket's requester or organization.
By default, when Zendesk sends ticket information to Salesforce, if an exact email match is not found between the ticket requester and a Contact (not a lead) a new Contact is created in Salesforce. Likewise, if an exact email match is not found between the organization and an Account, a new Account is created in Salesforce.
- If you opt to create new Contacts for unmatched ticket requesters, you can enter an existing Account as the Default Account for new Contacts if no organization is present in Zendesk. You can also click the Account lookup icon to set the default Account.
Setting a default Account will prevent orphaned Accounts from being created.
- Map your custom Zendesk field to the new field you created on the Salesforce Zendesk Ticket object.
- Click Save.
When a ticket is sent into Salesforce via the target in Zendesk, your custom field data will automatically populate according to these mappings.
Editing from the Zendesk Ticket object
While tickets are synced in either direction between Zendesk and Salesforce, the Zendesk Ticket objects are only synced one-way: from Zendesk to Salesforce. Making changes directly to the Zendesk Ticket object will not update information in Zendesk.
You can, however, access and edit the ticket from Salesforce by clicking "edit ticket details." Your changes will be saved directly in Zendesk.
- In Salesforce, open a Zendesk Ticket record, then click Personal Settings.
- In the Authentication section, enter your Zendesk login and password, then click Save.
Note: You must be an Agent or a Light Agent in Zendesk to edit tickets. Light Agents are limited to adding private comments in tickets.
- In the Zendesk Ticket record, click Edit Ticket Details.
- Click Edit.
Alternatively, click New if you want to create a new ticket in Zendesk.Note: You cannot edit Closed tickets.
- Make any changes you'd like, then click Save.
You are redirected to the Zendesk Ticket.
65 Comments
Hi Kathy and welcome to Zendesk :-)
Thanks for reaching out on this! There's a few different ways to handle this, but it all comes down to trigger conditions. Some customers utilize a custom checkbox field on tickets "Send to Salesforce", and only have the trigger action on those tickets where the box is checked. For more information regarding triggers, please check out our triggers resources page.
Please let me know if this helps! If you'd like to discuss the specifics of your workflow/account, I'd be happy to open up a ticket to continue this conversation, just let me know.
Thanks and have a great day!
Hi there!
Working on custom fields mapping I haven't found any info about my next issue: my settings are not saved in Global settings window:
1) In ZenDesk I created text custom field "CandidateID", in Salesforce - "CandidateIdText" (Text(255)), and chose it in mapping on the screenshot

2) after I had clicked to "Save" I received successful notification:
3) buut after that, if to open map settings again, clicking on button "Get Custom Ticket Fields" , I see that Zendesk field is not related to any Salesfroce ticket field, it is related to "None" as earlier:
Could you please give me any advise with it? Because as a result an information from Zendesk custom ticket field isn't recorded into Salesforce ticket
Hi Eugene! I'm checking to see if somebody can answer this for you. Stand by!
Hi Jessie!
Sorry for boring you, guys, I have already received the answer from Benjamin Towne! Just in case, if there will be some inattentive person like me:
I was clicking on the wrong "Save" button (the "Save" button for the ticket field section is actually at the top and not the one in the "Ticket List View for Salesforce Objects" section.)
Hey Eugene!
I'm glad that you got your question answered, and thank you so much for coming back and sharing what you found out. :)
I am trying to map custom fields to the Type and Priority default fields that are included in Salesforce.
Is this possible?
Hey Allastair,
Are you referring to the Type and Priority fields on the Salesforce Case object?
Or are you referring to the Zendesk Ticket System fields of the custom ticket object that gets created when pushing tickets into Salesforce?
Thanks in advance for clarifying.
Hi Ben,
I am referring to the Type and Priority field that is included through the visualforce plug-in. Those fields are mapped to Type and Priority in Zendesk which are standard fields but not ones that we are going to be using. We have instead created custom fields with our own values that I would then like to map to the Type and Priority fields available through the plug-in.
Thanks for clarifying.
Unfortuantely it is not currently possible to modify which columns are displayed by the visualforce page module.
This includes changing the mappings of the field types displayed by the VFP module.
Hi
I wanted to know if this is possible to send not only solved tickets, but as they open tickets and keep them updated till they are closed?
Thanks
Yael
Hi Yael,
It is definitely possible to send tickets at other times as besides just solving. In order to do so, you'll need to modify the trigger conditions. Here's an article that touches on how triggers function and a bit about their manipulation: https://support.zendesk.com/hc/en-us/articles/203662246-About-triggers-and-how-they-work
If you'd like them to send on all ticket updates, you'll want to put the following into the ANY condition of the Salesforce trigger:
If that's in the ANY condition, the trigger will fire whenever a ticket is created or updated, which should encompass all actions taken on a ticket.
Hi Dwight,
Thank you for your quick respond!
Just wanted to make sure if it will update the same record in Salesforce and will not make duplication of the same case following any update on the Zendesk ticket, right?
That's correct, Yael! It should update the custom Zendesk Support Ticket object.
If you're sending tickets over as Cases, the fields that are updated are much more limited (subject, requester name, requester email), but there are NOT duplicate cases created.
Hi, I understand that there's a way to create a new contact/lead in SFDC when a new user is created in Zendesk, is there a way to update a SFDC contact/lead when the user is updated in Zendesk? I want to have bi-directional user-contact updating enabled.
Say for instance an existing user emails in to Zendesk, but we need to update their user information. The contact already exists in SFDC, will the updated information push through to SFDC?
If it's not native, has anyone setup an integration or custom API to do this task? This is the last item to check off before signing off on Zendesk for support. Any help is appreciated.
Hey Aaron,
Unfortunately our on-going sync is not bi-directional at the moment.
It is a one direction sync going Salesforce into Zendesk.
Zendesk cannot update objects on the Salesforce side of things once it's been created.
Either a separate 3rd party service would be required or a custom solution would need to be created to automatically sync changes from Zendesk into Salesforce.
You could look into preforming a Bulk Sync manually Zendesk --> Salesforce via the Bulk Sync tool feature of the Zendesk for Salesforce package.
Hope this helps.
Is it possible to filter tickets sync to Salesforce on Zendesk Brand ?
HeyO Ed,
Absolutely! That filtering logic would be placed inside the trigger that sends the ticket-object over to SFDC. You'd want to include a "Brand is" condition, whether in the "Meets ALL conditions" section if it's a single brand, or a number of similar conditions in the "Meets ANY conditions" section.
Is there anywhere that these values are clearly defined?
Mainly, I am looking to report in SalesForce on First Response Time (FRT) which is available in Insights. It is unclear whether Reply time or another of these values corresponds with that.
Thanks!
Hi Mark,
The documentation for those metrics can be found in this article: https://developer.zendesk.com/rest_api/docs/core/ticket_metrics
I believe Reply time is the one you're after in this case, based on the description from the aforementioned API documentation:
"Number of minutes to the first reply inside and out of business hours"
Hopefully this helps to answer your question!
When i tried to activate the "Create a record in Salesforce when ticket is solved" trigger it disappeared. It/'s no longer in the active or inactive triggers. How can I rebuild this trigger?
Nevermind, It's back.
Not sure where it went, but after I re-submitted the salesforce target it seems to have re-appeared.
Removing the connection to Salesforce on the CRM tab and Connecting to Salesforce again fresh will recreate the Salesforce Trigger and Target fresh.
Steps:
1. Remove connection to Salesforce from within Zendesk.
2. Connect to Salesforce (Make sure a Salesforce System Admin signs into Salesforce for this step.)
3. Activate newly created Salesforce Trigger.
Hope this helps!
Thank you @ben!
As I ssaid, just resubmitting seems to have fixed it.
Currently it's only set up to import "solved" tickets. Is it possible to have it import new and ongoing tickets, and would the tickets get updated at each import?
No problem at all!
I'd recommend modifying the trigger to look like this if you'd like to have all events on the ticket pushed into Salesforce. The integration is smart enough to not create duplicate ticket objects within Salesforce if one already exists.
Thanks, I'm considering that, but from what I am reading, these imported tickets do not get updated once they are created in salesforce, correct? That is to say we can not have a live update of Salesforce tickets when a Zendesk ticket changes? (one-way live sync from Zendesk to salesforce)
I made the changes aws you suggested and it does the updates to salesforce right away! That's great!
Glad to hear you got things working properly, Marc!
Qué debo hacer??
De qué tickes se trata
Por favor me responden en español
Quiero saber sí mi solicitud de préstamo está activa.
Hola Ivan. No logro entender a que te refieres. ¿Puedes indicarnos por favor a que tipo de préstamo te estas refiriendo?
I am looking to implement this and have some questions...
We currently use the Zendesk Visualforce page. In Zendesk we imported all of our SF Account ID's as a custom field on the ZD Org. We are using this as the map for the Visual force page. Can I use the same field if we enable this?
I see the sync is initiated on a Zendesk trigger. As you cannot update Closed Tickets can we only sync <= Solved?
Please sign in to leave a comment.