Ask questions, share tips, and discuss best practices about apps and integrations, App builder, APIs, SDKs, ZAF, and Sunshine
Recently active
Hello,we are migrating Jira from Data Center to Cloud, and we have a ZenDesk integration.I saw this article: https://support.zendesk.com/hc/en-us/articles/4408830699546-Migrating-the-Zendesk-Jira-integration-when-moving-Jira-instancesThe migration guide seems to be quick and simple, but it just talks about a switch from DC to Cloud.Since we are on a big instance, we are planning a migration in more steps.How would it work in this case? Is it possible to migrate projects in more steps? Or is it required to migrate all ZenDesk projects at once? Thanks a lot!Roberto
Hi team, Could someone please help me figure out how to format the json to set actions (i.e., update fields) for many macros at once? I'm looking here, but it only shows me how to update the active status for the macro or the macro position. But I need to update other fields (like, all of them: priority, type, comment text, category, etc) for ~500 macros, so I'm desperately hoping I'm just formatting my json incorrectly and it's not the case that you can only use this endpoint for updating active status and position :x. This is the json I used to test, and the active status changed properly but the actions didn't stick. Am I formatting incorrectly? { "macros": [ { "id": 1234, "active": false, "actions": [ { 
I recently moved our brand in a multibrand Zendesk instance to our own instance. We use our closed tickets as a knowledge base (did we have this error already? etc.), so we needed to import a lot of our existing tickets. About 99% of the tickets are in the closed state, so that got a lot of attention while figuring out how to migrate. On Zendesk's own recommendation, I initially evaluated Helpdesk Migration as a service to import all of our tickets. I quickly came to the conclusion that while they offer an interesting service, we'd rather do it ourselves, because we had some special requirements. So, I started to collect all of the requirements: export and import tickets and all of their associated objects, starting at the release date of our last supported release of the product we support using Zendesk. Since we cross-linked Zendesk tickets with our development issue tracker (JIRA), we required that the Zendesk tickets in the new instance can be identified knowing their ID in the ol
Hi folks,I got user and ticket XML data from freshservice. Now I want to import that data into zendesk.So using the user id from freshserice and assigning that value to the external id in zendesk , we imported the user data into zendesk. Now we want to import all ticket data in the same way, but we want to use the external id of a user to be able to associate tickets with him.Any thoughts, you folks have? I tried to do it using an external id only to upload a ticket. But it did not upload the ticket to that specific user.
I am trying to use a nonce to avoid allowing unsafe-inline/unsafe-eval in my CSP for my site where I am using the new (messenger) version of the Zendesk chat widget.I followed the steps here -> https://developer.zendesk.com/documentation/zendesk-web-widget-sdks/sdks/web/csp/#cnc_machining_service and added a nonce to my script tags. The nonce seems to be coming through correctly, but I still get console errors saying that inline style cannot be applied.Here's how I have the script tags used in my .cshtml file:<!-- Start of Zendesk Widget script --> <script nonce="@ViewBag.nonce" id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=[mykey]"></script> <!-- End of Zendesk Widget script --> <script type="text/javascript" nonce="@ViewBag.nonce"> function initZendeskWidget() { if (typeof zE !== 'undefined') { zE('messenger', 'hide'); // Hide everything on load $('#chat-link').on('click',
Hello Zendesk Devs! I am looking to update all 17K of the macros we have in our instance and am looking for a good way to do this. I've seen documentation on updating the description but what I'm looking for is: a way to add the actions of "add a tag" and whatever tag I need associated with the particular Macro Can anyone help me out with this?
Problem StatementThe Attachment Manager app is a ticket sidebar application that helps manage ticket attachments. It lets agents redact sensitive files, control which file types are allowed/invalid, organize attachments in a library, and tag tickets based on attachments. Location: ticket sidebar PromptCreate a ticket_sidebar app called "Attachment Manager" that lets agents view, redact, and manage ticket attachments through an accordion-style interface with three sections: All Attachments, Invalid Attachments, and a personal Attachment Library. Define five app parameters in the manifest so they appear on the app's installation settings screen:`attachment_tag` — labelled "Attachment tag". Help text: "Tag added to existing tickets which have attachments." (type: text, required, default: `has_attachment`) `new_attachment_tag` — labelled "New attachment tag". Help text: "Tag to be added to new ticket comments with attachments." (type: text, required, default: `has_new_attachment`) `allowli
I have custom private app and using Zafclient to fetch data from external API to show on ticket side bar. When I include a custom HTTP header like ZENDESK_AUTH_TOKEN, that header is not being sent to the external API (I have access to external API, so I can see request metadata). However if I add Authorization HTTP header, I can see that header is sent. Is there restriction on which headers can be sent to external API via Zafclient and Zendesk proxy? I am using secure settings with placeholder {{setting.myParam}} and Zendesk proxy to replace these values, in case this helps.
We’re seeing occasional fatal crashes in production that symbolicated to SunCoFayeClient.connect inside ZendeskSDKMessaging (Sunshine / Faye layer), not our app code — e.g. SunCoFayeClient.swift ~line 155, with thunk for closure, objc_destructInstance / swift_deallocClassInstance, and work on a background queue (EXC_BAD_ACCESS / bad pointer).Setup: Native iOS app, ZendeskSDKMessaging 2.37.0 (update if we’ve bumped), initialize Messaging after login with channel key + JWT (initialize, loginUser, event observers). Crashes correlate with iOS 26.x (e.g. 26.3.x) on recent iPhones.We’ve already tried main-thread dispatch for app state updates from SDK callbacks, weak captures in observers, and serializing init, but stacks still point at SunCoFayeClient.connect.Questions for Zendesk / the community:Is this a known issue with a fix in a specific SDK version or release notes we should read? Any recommended patterns for iOS 26 (init/teardown order, avoiding overlapping connect, threading)? Are o
I remember when testing the incremental API few years back that adding a comment to a ticket using the dashboard did not trigger an update event but changing the priority/status/assignee did. But when I tried the incremental API recently, adding a comment to the ticket via the dashboard successfully triggered an update event when using the incremental API for tickets object. Was there a change in the API behavior ? If so can someone please point me to the documentation / changelog where this is mentioned. Many thanks.
We have a tool, Help Desk Migration, that supports the automatic migration from and to Zendesk. Recently, we have been encountering the issue with getting the 403 error when sending the API requests to Zendesk.If we use the method GET on these endpoints:help_center/user_segmentshelp_center/localeshelp_center/categories/{category_id}/translations/missinghelp_center/sections/{section_id}/translations/missing And the token of the Zendesk instance where we send the request is expired, we get the error 403. However, the error we should be getting is 401, not 403. The same happens if we use the methods GET and POST at these endpoints:help_center/articleshelp_center/categorieshelp_center/sectionshelp_center/categories/{category_id}/translationshelp_center/sections/{section_id}/translationshelp_center/articles/{article_id}/translationshelp_center/articles/{article_id}/bulk_attachmentsAlso, the same error when deleting article using help_center/articles/{article_id} We get the 403 error when
Problem StatementThe Proactive Tickets App helps build better relationships with your customers by allowing you to proactively reach out to them via Zendesk Support tickets. The app allows you to search a list of your users based on any searchable user field, and then create tickets in bulk on their behalf. Location: nav bar Screenshots Prompt Create a nav_bar app called "Proactive Tickets" that lets agents search for end users, build a ticket template, and bulk-create one support ticket per selected user — then create a Zendesk view to track all those tickets.Add two settings to the app so admins can configure them during installation:`newStatusTicketFieldId` — labelled "Status field ID". Help text: "The ID of the ticket status field. Find it under Admin > Objects and rules > Tickets > Fields." Required, type: number. `numberOfUsersPerPage` — labelled "Users per page". Help text: "Number of users to show per page in the search results." Type: number, default: 20.Read thes
Hi allI’m not a developer but I am the Customer Experience Manager at my company and we have an app for iOS and Android. We want to add the option for customers to access support through the app (including chatting with an agent, engaging with AI agents, accessing Knowledge articles, submitting a ticket). I’m confused as to how we can do this and what it could look like if we did. I have two questions:where do we find resources that explain how to do what we are trying to do? where can we find examples of what it could look like, or other companies who have done it?Thanks so much!Fiona
There is an error in validation for creating translations for categories and sections. The returned error is "Name cannot be blank" however what it is actually validating on is "Title." for sectionLocale in missingSectionTranslations: #create a new section for each translation payload["translation"]["locale"] = sectionLocale payload["translation"]["title"] = payload["translation"]["name"] response = requests.request( "POST", c.URL+"sections/"+str(section["id"])+"/translations", json=payload, auth=(c.USER,c.PASSWORD), headers=c.HEADERS )
Is there a way to open the web widget with a help center article loaded? Right now I have a link in my app that opens a help center article in a new tab, and I would like to keep them in-app by opening it in the web widget instead. I know that there are ways to open the widget with a search query or filter but I would like to just immediately open the article inside the widget.
Hi champs!As specified in this doc (https://developer.zendesk.com/documentation/apps/app-developer-guide/manifest/#gaid) I added my google analytics to my Marketplace application.I do see events like “first_visit”, “page_view” etc on Google analytics etc but I had questions about the rest:“form_start” seems to fire when the user selects the plan, at the stage where it’s required to select their Zendesk subdomain. Can you confirm? Is this the last event that the page fires before the user navigates away from this page? I’m searching for the best conversion event for advertisement campaign that I’d like to launch - Is any event for when the app is installed by the user or is the form_start the last ? LMK if you need more information
NEED HELPI tried uploading react app on zendesk but getting error manifest.json:{ "name": "Customer App React", "author": { "name": "Mohit", "email": "myemail@google.com" }, "defaultLocale": "en", "private": true, "location": { "support": { "ticket_sidebar": { "url": "http://localhost:3000/", "flexible": true } } }, "version": "1.0", "frameworkVersion": "2.0"}I first run this command : npm run buildThis created one folder dist which have only one folder by the name assetsAfterwards I run this command : zcli apps:create ./distThen got this error : Error: Invalid app path: ./dist
For many Zendesk accounts, attachments, especially large media files like videos, PDFs, or high-resolution images, can quickly take up a lot of storage. This can slow down searches, make reporting less accurate, and complicate overall data management.One way to handle this efficiently is to delete attachments in bulk while keeping the ticket content intact. The GDPR Compliance tool makes this possible and, importantly, lets you filter exactly what to delete:Attachment preferences: Choose whether to remove all attachments or skip inline ones, like embedded images. File-type filtering: Target specific file types, for example, remove only videos or PDFs that take up the most space, while keeping smaller or essential files. Flexible scope: Process a single ticket, all tickets from a requester, or custom lists of tickets or users.After the process, you can review the details, including how much storage was freed and which tickets were affected.This approach makes it simple to manage storage
Kanban boards are becoming increasingly popular among Zendesk agents because they make managing tickets more visual and intuitive.Instead of working through a long list of tickets with generic statuses, agents can see at a glance which tickets are new, which need review, and which are ready for follow-up.The latest Kanban Pro update makes this even better. Board views can now be fully customizable, giving teams more control over how tickets are organized and displayed, so workflows can truly reflect the way each team works.Here’s how agents can use it:1. Group tickets by any custom fieldColumns can reflect workflow stages, priorities, or request types — for example: New Request → Under Review → Escalated → Completed. This helps teams see exactly where tickets are in the process.2. Reorder and hide columnsColumns can be moved to match the team’s actual workflow, and irrelevant stages can be hidden to reduce clutter and keep the board focused.3. Tailor boards for different teamsSupp
We are a relatively established SaaS offering that has recently integrated with Zendesk. We submitted our app through the marketplace and had a pretty smooth experience. We are excited to support this community. However recently we have had instances where our paying customers are not able to utilize our marketplace app because of 401 permissions. They aren't able to integrate the application and we are not able to see anything on our side. The only thing we have access to is apps.zendesk.com which appears to have read only info about our global oauth client. What is our course of action here?What path would we take if we needed to cycle the secret for our oauth client?How can we debug with clients when the error we get back is: “The access token provided is expired, revoked, malformed or invalid for other reasons.” Is there anywhere that can give us greater visibility on what specifically is causing these errors? Thank you!
Hi, everyone! We have encountered an issue with photo rendering in the Zendesk Messaging chat on Android devices and would appreciate your assistance. We are using Zendesk Unity UPM package version 3.2.0 Issue Description:When a user sends a photo in the support chat, the photo is successfully sent to the support team. However, the user cannot see the sent photo in the chat interface. To view the previously sent photo, the user must either: Relaunch the support chat, or Send another photo, which then triggers the display of the previously sent photo. Expected Behavior:The sent photo should be immediately visible to the user in the chat interface without requiring a relaunch or additional actions. Could you please confirm if this is a known issue? If so, is there a fix or workaround available to resolve this behaviour? Thank you for your time and support. We look forward to your response.
Hi, I'm working on a private Support app using the ZAF framework. When I go to upload the app within Zendesk I get this error. I've tried running `zcli apps:validate` but it says there are no validation errors. For some more context: the app is based on the provided react scaffold, and runs in the ticket_sidebar location. As far as I can tell, the manifest and other required files match what is described in the docs.
The default handling for Suspended Tickets doesn't have a bulk mode, but in some cases the agents or admins want to take care of a number of suspended tickets in bulk, without entering each one, which saves time when lots of suspended tickets appear at once. This application allows anyone with access to quickly manage and delete or recover suspended tickets.Problem StatementAs ticket volumes increase, it can become time consuming to manage the volume of suspended tickets, and if a malicious user sends in tickets in bulk, cleaning them up can be tedious. Adding a management app like this creates an interface designed for bulk management of the suspension queue. Screenshots PromptThis should be a Side Navigation App, to provide enough room to see the details. We are making an app to handle bulk management of suspended tickets. Create an app that displays all tickets in the Suspended Tickets queue. Allow users to select one or more tickets from the li
From what I understand requests to the /requests endpoint will now trigger a verification email. However, there is also a way to attach x-csrf-tokens to the /requests endpoint (https://developer.zendesk.com/documentation/help_center/help-center-api/secured-requests/). If a request contain a x-csrf-token would it still be subject to the verification flow?
Hi Zendesk team,I've added the ticket editor placeholder to my zendesk app, and it behaves as expected in my local environment — the icon appears in both Public Reply and Internal Note views when the ticket editor pane is activated.However, in the hosted environment, the icon only appears in the Public Reply section. When I switch to Internal Note, the icon disappears entirely. I’ve already updated the manifest.json as per the documentation, and ensured that the app initializes correctly when the ticket editor is active.Has anyone faced a similar issue? Is there any additional configuration or workaround needed to ensure the icon renders properly in both editor modes in the hoisted environment?Any help or suggestions would be appreciated!Thanks in advance.
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.