Ask questions, share tips, and discuss best practices with community peers.
Recently active
Problem StatementThe Assignment Control app is a ticket sidebar application that provides targeted visibility controls for the ticket assignee dropdown. It dynamically hides specific agents and groups based on configurable targeting rules, such as the current agent's role, group membership, ticket attributes etc. Locations: ticket sidebar, new ticket sidebar PromptCreate a ticket_sidebar app called "Assignment Control" that hides specific agents and groups from the ticket assignee dropdown, based on whether the current agent matches configurable targeting rules.Define six app parameters in the manifest so they appear on the app's installation settings screen (all type: text, all optional):`hidden_user_ids` — labelled "Hidden users". Help text: "A comma-separated list of user IDs to be hidden from the Assignee dropdown." `hidden_group_ids` — labelled "Hidden groups". Help text: "A comma-separated list of group IDs to be hidden from the Assignee dropdown." `targeted_user_ids` — labelled
Is there a webhook event that is triggered whenever the requester sends a new message in the ticket?
For those using the new (aka “Advanced”) AI agents, I’m curious how many use cases you have or what would be considered “normal.” I feel like I’m setting up a lot, but maybe that is actually normal.
I'm having a timing issue retrieving data from these three endpoints.It's a Python file that consolidates a final dataframe with these three endpoints.It does retrieve data, but only from August 11, 2025, to February 28, 2026, when I ran it on the 28th. This is just an example.That's approximately six months, and the same thing happened in subsequent months./api/v2/users/{user_id}.jsonapi/v2/incremental/tickets.json/api/v2/users/{user_id}.json
One of the things I’ve always loved about space is the idea that the universe is constantly expanding, but everything in it is still built from the same core materials.Zendesk can feel a little like that.As an organization grows, your Zendesk instance expands with it. More teams come in. More workflows get added. More triggers, automations, views, forms, groups, brands, SLAs, and reporting needs start orbiting around the same system.And if the foundation is strong, that growth can be exciting.If the foundation is weak, it can start to feel like gravity is working against you.For me, one of the biggest lessons in managing Zendesk as an organization grows is that scale does not usually break all at once. It breaks quietly. A trigger gets named something vague. A view gets shared with one too many groups. A team adds a workaround that solves today’s problem but creates tomorrow’s confusion. Nobody means to create chaos. It just happens when the system grows faster than the governance arou
We’re launching Zendesk Voices, a new series that highlights the expertise of Zendesk customers and partners.For our first post, we want to hear from Zendesk Admins who are managing Zendesk as their organization grows. Share what you have learned, how you handle change across teams, how you spot opportunities to improve, and what tools make your work easier.We’d also love to hear how you track the results of your changes, whether through data, feedback, or both.Share your story right here in our Admin center forum, then visit the Spark reward hub for full details and to make sure you are eligible for rewardsOnce we review and approve your post, you will receive points.
We figured out a way to add CCs to a ticket based on conditions defined in a trigger. First, you need to set up a webhook with the endpoint https://<company-name>.zendesk.com/api/v2/tickets/{{ticket.id}}.json as JSON/PUT request. Then, you can define a trigger with your conditions that calls the webhook ("Update active webhook") and sends the following JSON data: { "ticket": { "email_ccs": [ { "user_id": "123456789", "action": "put" }, { "user_id": "987654321", "action": "put" } ] }} You can use the Zendesk API to query the appropriate user IDs. You may also configure another webhook to put a comment into the ticket notifying your agents about the change: { "ticket": { "comment": { "body": "new CCs added", "public": false } }} Please note that the trigger should probably not act on "Ticket is updated" because that might cause an infinite loop wit
Let's be honest: Most Zendesk migrations fail the same way.It’s rarely because the tools are broken or the underskilled teams. It's because someone, somewhere, treated the whole thing of enterprise data migration like an export-import task. They only realize the mistake when the "New Help Desk" goes live and suddenly: tickets are missing context, SLA timestamps have evaporated, and agents can't piece together a customer’s history.That's an expensive way to learn a lesson. This enterprise migration checklist exists so you don't have to be the one explaining to the CTO why six months of data just vanished.Why Enterprise Data Migration Needs a ChecklistHere's the thing about enterprise data migration: the risks aren't usually technical. They're structural.You’re dealing with API throttling that kills your progress mid-transfer. You’re fighting SLA timestamps that won't survive a schema change. You’re managing parent-child ticket relationships that arrive broken, or user identities that tu
With the changes coming to make Advanced AI Agent features available to all customers I am a little in the dark of what that means for existing customers. Are we still required to pay for a seat for the add-on? Keen to hear the views from other Advanced AI Agent customers and if you’ve heard anymore on this?
I just used the updated interface for macros. With the new Zendesk update to Workspaces: Macros, the manual editing of the order of Active macros is now broken.I created a new macro in Workspaces > Macros with the filter Status Active, which is inserted at the bottom of the list of macros.When I select Actions>Edit order, the macros presented are not the Active macros. ERROR.In the previous Managing macros interface, the existing order of Active macros was presented (displayed) correctly.Is this a bug? Is there a fix?
Our organization requires platform-to-platform-specific service user accounts (eg Salesforce:Zendesk and Jira:Zendesk should be different accounts) for integrations in our security policies.Based on guidance we received during initial implementation, it sounds like you need to allocate an agent seat for each integration. For instance, if you want to have individual service users that interface distinctly between Jira and Salesforce using their respective apps, or to operate within a middleware (necessary for storing credentials in non-app API workflows, since you can’t secure them in business rules), you need to pay for an agent seat for each.Is that correct or can this be managed differently to better comply with enterprise data/platform security policies without paying for a dozen seat for “agents” that don’t exist?
Regarding to this post I decide to make this short tutorial. 1. you need to be logedin as Admin or Agent of your ZD account.2. open this link XYZ.zendesk.com/api/v2/macros.json?per_page=99 (but change XYZ to your zendesk account name)2a. If you have more than 100 macros, you should export one more JSON file cause it's up to 100 macros per export. Second file is on this url https://XYZ.zendesk.com/api/v2/macros.json?per_page=99&page=2 (replace XYZ to your ZD name)3. When json file is loaded, save it on your computer (CTRL+S or CMD+S)4. Open site: https://json-csv.com/5. Upload your JSON file6. Wait a little7. Click on Download button. Ta-Da, you have your macros exported in CSV file format. Hope this helps!
Looking for a way to build a report that shows from where my customers are creating a ticket from?
Love the topics and organization!
Hello.. I'm using "client.on("ticket.conversation.changed", func)" in my app, to capture the conversation changes.. But, I'm facing some issues in that.. That function triggers multiple times, when a single message came.. (ie), When user sends a message means, that function triggers multiple times (sometimes more than 40 times), so that it captures the conversation data multiple times.. Therefore, It slows down my app functionality.. So, I need to control that triggering event only once, when new message came or any conversation changes happen.. Can you please suggest any ideas to control or off that conversation listener, when function not called.. I just tried with "client.off("ticket.conversation.changed")", But, its not working.. Looking forward for solutions.. Thank you..
Hello,Considering the following change: Announcing changes to how WhatsApp users are identified – Zendesk helpIs there any way we can retrieve the phone number? maybe a new messaging/sunco endpoint. We rely on this value to carry out integrations with many clients; this will disrupt the operations of many businesses Kinds regads,
Category: Nav Bar App | Custom Objects | Data ManagementWhat this app doesThe Custom Object Directory Manager is a full-featured nav bar app that turns any Zendesk Custom Object into a searchable, filterable, and editable data directory — all without leaving the agent interface.Agents can browse records, filter and search data, open a detail panel to view or edit records, and perform bulk operations such as updating or deleting multiple records at once. Every change is tracked in a session history, and inline edits can be undone and redone with dedicated Undo/Redo controls.This recipe is intentionally designed to be adaptable for any Custom Object structure, regardless of the customer's use case or field configuration.Use caseThis recipe is a good fit if you:Store operational, business, inventory, location, customer, asset, or reference data in Zendesk Custom Objects Want agents to search, filter, and edit records without leaving Zendesk Need bulk update or bulk delete workflows for la
🎟️ Your way to Denver: 10 Discussions, 10 Relate TicketsWe want to help you get to Relate while connecting with the people navigating the same CX hurdles as you. This topic is one of ten. Here is how to win your seat:Engage: Pick any topic that sparks your interest and jump in! You only need to participate in one to enter, but feel free to join as many as you like to increase your odds. The Bonus: Update your community profile with your info for an extra opportunity to win.Winners will be announced the latest on Thursday, May 14. Good luck! 🍀 TOPIC 4: Leading in the AI era 🚀We’re at a point where service leadership is being redefined. On one hand, we’re figuring out the new skills and metrics needed in an AI-driven world. On the other, we know that the most advanced tech doesn’t replace the need for a compassionate, human-centered culture. In fact, investing in your team’s well-being is often the best investment you can make for your customers. We want to open the floor to the lea
My HR Team has started a new Employee Services Instance. We are looking for feedback or success stories of how other HR teams have set up their instance.
Hello,I'd like to request an enhancement to the contact management feature. When viewing contacts (users) within an organization, it's currently challenging to locate a specific individual because there's no alphabetical sorting option. Having to use the 'magnifying glass' search tool, even when already in the organization's view, adds unnecessary steps. Implementing an alphabetical sort for contacts (users) within organizations would significantly improve usability and efficiency.Thanks,
Hello everyone, I am trying to create a metrics that gives me all the ticket ID that verify both conditions: Not include either tags "Y" and "Z" (so exclude all tickets that have both Y and Z and tickets that have Y or Z) Includes any of the tags "A" and "B"I have triedIF (NOT INCLUDES_ALL([Ticket tags], "Y", "Z") AND INCLUDES_ANY([Ticket tags], "A", "B")) THEN [Ticket ID] ENDIFAs well as IF (NOT INCLUDES_ANY([Ticket tags], "Y", "Z") AND INCLUDES_ANY([Ticket tags], "A", "B")) THEN [Ticket ID] ENDIFIn both of them I still have tickets that have either tag “Y” or tag “Z”. The “NOT INCLUDES_ALL” has a lot more results than the “NOT INCLUDES_ANY”. Any help appreciated since the Zendesk Bot only gives me back the NOT INCLUDES_ANY any solution however I rephrase or adjust my request. Cheers!
🎟️ Your way to Denver: 10 Discussions, 10 Relate TicketsWe want to help you get to Relate while connecting with the people navigating the same CX hurdles as you. This topic is one of ten. Here is how to win your seat:Engage: Pick any topic that sparks your interest and jump in! You only need to participate in one to enter, but feel free to join as many as you like to increase your odds. The Bonus: Update your community profile with your info for an extra opportunity to win.Winners will be announced the latest on Thursday, May 14. Good luck! 🍀 TOPIC 8- Resolution RoundtablesDocumentation tells you how things work. Roundtables show you how people are actually using them to solve the hard problems.What’s the one unsolvable CX problem you’re bringing to the Roundtables this year? We're looking for the tough stuff. The "we've tried everything" issues. Let’s prep the experts.Find the Resolution Roundtables and get inspired here.
🎟️ Your way to Denver: 10 Discussions, 10 Relate TicketsWe want to help you get to Relate while connecting with the people navigating the same CX hurdles as you. This topic is one of ten. Here is how to win your seat:Engage: Follow and contribute to the conversations in the Relate Hub that interest you most. Increase your odds: Every discussion you join increases your chances of winning one of 10 complimentary tickets. The Bonus: Update your community profile with your info for an extra opportunity to win.Winners will be announced the latest on Thursday, May 14. Good luck! 🍀 Topic 10- Resolution RoundtableAdmin-to-Admin: What’s actually working?Being a Zendesk Admin often feels like being the person behind the curtain. You’re the one fixing the triggers, cleaning up the tags, and making sure the whole machine actually runs smoothly for everyone else.What’s a recent win you’ve had with your account, or a hurdle you’re still trying to clear? Let’s swap notes on what’s actually making y
🎟️ Your way to Denver: 10 Discussions, 10 Relate Tickets We want to help you get to Relate while connecting with the people navigating the same CX hurdles as you. This topic is one of ten. Here is how to win your seat:Engage: Follow and contribute to the conversations in the Relate Hub that interest you most. Increase your odds: Every discussion you join increases your chances of winning one of 10 complimentary tickets. The Bonus: Update your community profile with your info for an extra opportunity to win.Winners will be announced the latest on Thursday, May 14. Good luck! 🍀 Topic 9- LeadershipHigh-volume support is an endurance sport in its own right. We’ve all seen it happen, the routine starts to feel heavy, the queue never seems to end and keeping a team energized and grounded when the grind gets exhausting is one of the toughest parts of leadership.What are your go-to strategies for keeping your team motivated when the daily routine starts to feel like a burnout trap?
🎟️ Your way to Denver: 10 Discussions, 10 Relate TicketsWe want to help you get to Relate while connecting with the people navigating the same CX hurdles as you. This topic is one of ten. Here is how to win your seat:Engage: Follow to the Group and conversations in the Relate Hub that interest you most. Increase your odds: Every discussion you join increases your chances of winning one of 10 complimentary tickets. The Bonus: Update your community profile with your info for an extra opportunity to win.Winners will be announced the latest on Thursday, May 14. Good luck! 🍀 TOPIC 7.- Automation Automation is great for speed, but there are some moments a bot just can't handle. We’ve all had those situations where only a real person can truly turn things around.Where do you think a human still makes the biggest difference in your customer's journey? Is it a sincere apology, catching a small nuance, or something else entirely?
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.