Ask questions, share tips, and discuss best practices about apps and integrations, App builder, APIs, SDKs, ZAF, and Sunshine
Recently active
I have created a bot response in Zendesk using custom HTML code. In the response, I added thumbs-up 👍 and thumbs-down 👎 links for users to give quick feedback.Was this suggestion helpful? <a href="https://example.com/feedback?value=up">👍 Yes</a> | <a href="https://example.com/feedback?value=down">👎 No</a>Currently, I can capture the feedback value (Yes/No), but I also need to capture which user clicked on the link (for example, their Zendesk user ID or email).Is there a way to: Pass the logged-in user details automatically when they click the link? Or capture this information via Zendesk API / placeholders (like {{current_user.email}}) in the link? Any guidance or best practices would be really helpful.
Our project is quite large, so we use "treat warnings as errors" to keep the codebase as clean as possible. During our recent upgrade to Xcode 26, we noticed that some dependencies such as ZendeskSupportSDK (9.0.0) are emitting deprecation warnings like the following: 'mainScreen' is deprecated: first deprecated in iOS 26.0 - Use a UIScreen instance found through context instead (i.e, view.window.windowScene.screen), or for properties like UIScreen.scale with trait equivalents, use a traitCollection found through context. We tried moving the `ZendeskSupportSDK` dependency into its own target with warnings-as-errors disabled. Unfortunately, that doesn’t seem to work, because the SDK is treated as an explicitly precompiled module. As a result, it is compiled before the rest of the project and still picks up the main app target’s treat warnings as errors setting. We're wondering if there is a way for the dependency to either 1) move away from using UIScreen.main altogether
Hi, Is it possible to sync the created date and last commented date timestamps from a linked Jira into corresponding Zendesk ticket fields? We wanted these fields to sync from Jira to Zendesk, so that we can calculate: the time the Zendesk ticket spent with the group until the linked Jira was created the time it took from Jira created date to Zendesk ticket closure date I see that Zendesk has a custom “date” field which does not seem to support actual timestamps. So not sure, if it is possible to still sync over these dates into Zendesk using the standard Jira Zendesk integration app. Any suggestions if anyone has executed similar sync without a third party app.Thanks in advance.
I had a question regarding the send/post message API endpoint (link of doc: https://developer.zendesk.com/api-reference/conversations/#tag/Messages/operation/PostMessage).api endpoint: https://{subdomain}.zendesk.com/sc/v2/apps/{appId}/conversations/{conversationId}/messageswith body for sending attachments:{ "author": { "type": "business" }, "content": { "type": "image", “mediaUrl”: “xyz” "text": "very big text" }}If the content.type is set to "image", is there any limitation on the content.text character length? Specifically, if the text field contains a long string, is there a maximum character limit that could potentially cause an error?
Hi! I found in https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#update-ticket that for handling tags I need to use additional_tags. However it does not seem to work when I'm just updating a single ticket but only when bulk updating tickets. How do I add a tag to single ticket via API? If I use tags, it will replace already existing tags which is not the result I want. If I use additional_tags in my PUT request {{testUrl}}/api/v2/tickets/883 it does nothing. Br. Otto
Hi Everyone I hope this message finds you all well. Today, I am reaching out to seek assistance and advice regarding a technical issue we are facing with our data center and the integration of Zendesk API. Our organization relies heavily on Zendesk for customer support and ticket management. To enhance our processes, we have recently implemented the Zendesk API to integrate it with our data center infrastructure. However, we are encountering challenges related to the seamless integration of Zendesk API within our data center environment. Here are the specific issues we are currently facing: Performance and response time: Since integrating the Zendesk API, we have noticed a decrease in overall system performance and response time. Data retrieval and updates via the API take longer than expected, impacting the efficiency of our customer support processes. Connectivity and reliability: We have experienced intermittent connectivity issues with the Zendesk API from within our data cente
Hi all,I'm implementing a data sync thing using Zendesk's Incremental Export APIs (specifically the cursor-based version), and I want to confirm that the approach I'm using is sound. I'm primarily interested in making the incremental sync recoverable. So, if everything blows up in the middle of paging over incremental requests and I lose a valid cursors, I want to be able to fallback to timestamp. My idea is to use the timestamp right before a successful end_of_stream response as a recovery point. Here's the pattern I'm thinking:Initial Full Sync:Before fetching any data at all, I record a start_time timestamp. I then perform a full sync using the standard REST APIs to pull all existing records.I record the timestamp before any requests to catch anything that may have changed during the full sync. First incremental sync or recovery from timestamp (no cursor): I start the first incremental sync using either last_recovery_time or start_time, and loop through the res
Does anyone know which endpoint(s) I need to use to access time tracking data? We report on number of touches and time spent, and in Explore can access this data via the “Support: Updates history" report type and the "Update handling time” metric. According to the example response on this page - https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_audits/ - this data looks like it should come out as “time_spent” when using the ticket_audits endpoint, but I can't find any more details about what this metric actually relates to, and it doesn't appear when I make calls to that endpoint in our account.
Hey team, We have several custom fields that are checkboxes on the ticket form. Is it possible to check/uncheck them using an API call? So far I had no luck doing so. { "ticket": { "custom_fields": [ { "id": 31040284313501, "value": true } ] }}Thanks!
Hoje o aplicativo não consegue buscar os tickets de conversa paralela: Estou tentando criar um app que busque e exiba todas as conversas paralelas vinculadas ao ticket, traga o tempo em minutos em cada status desse ticket da conversa paralela, a nota da pesquisa de csat, tenha o link de direcionamento para os tickets paralelos desse ticket original. Essa listagem com as conversas paralelas devem exibir id do ticket, assunto, grupo, status, data de criação, tempo por status do ticket em minutos, link de direcionamento, nota csat do ticket paralelo, opção de adicionar comentarios no ticket selecionado
I am attempting to create a ticket using the `comment.body` field to use Markdown formatting documented here: https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/#bodies Here's an example curl request with my test body: curl https://{subdomain}.zendesk.com/api/v2/tickets.json \ -d '{"ticket": {"assignee_id": 1234, "id": null, "subject": "A test email", "comment": {"body": "This message should render **markdown**"}, "requester": {"email": "redacted@rdctd.io", "id": null, "name": "redacted"}}}' \ -v -u "{username}:{password}" -X POST -H "Content-Type: application/json" The sent email is not formatted as expected. My suspicion is that the body is incorrectly translated to HTML because `html_body` is populated in the response: ...ticket audit response"events":[{"id":12345,"type":"Comment","author_id":15379865986587,"body":"This message should render **markdown**","html_body":"<div class=\"zd-comment\" dir=\"auto\"><p dir=\"auto\">This message should
So i try to get looker api token using these options const loginOptions = { type: "POST", url: "https://domain.cloud.looker.com/api/4.0/login/", contentType: 'application/x-www-form-urlencoded', data: "client_id=id&client_secret=secret", }; const response = await zafClient.request(loginOptions);i got 400 bad request, when i am trying with curl/postman it's worked, currently i'm using zaf sdk version 2.0.11, anyone can help me?this is what i got in chrome dev tools: request actually go to the looker side, but it returns bad request
Hello, I'm attempting to create a timer app that will automatically add a tag to the ticket after a certain number of minutes. What works so far: Timer is able to be applied with click of a button Timer counts down correctly Timer continues even when ticket is adjusted or closed by user A Tag is applied after timer is done The issue: When the timer is done, the tag is just placed and requires a user to “Submit” the ticket After the app was updated to automatically “Submit” tickets it began throwing the error: Failed to submit ticket: {"name":"Error"} The app builder replied with: Now I can see the issue. The documentation doesn't show a ticket.submit action. Let me check if there's a different way to submit tickets or if we need to use a different approach. Looking at the documentation, I notice there are ticket submission events (ticket.submit.start, ticket.submit.done, etc.) but no explicit ticket.submit action. The error suggests that zafClient.invoke('ticket.submit')
What is the recommended approach to building an app in a test sandbox them moving that app to a production environment?
We’ve noted a weird behavior of POST /api/v2/calls/{call_id}/comments endpoint. Randomly, we may get unrelated JSON back. We have hundreds of those cases daily. e.g. {'id': 26582381911698, 'type': 'Notification', 'via': {'channel': 'rule', 'source': {'from': {'deleted': False, 'title': 'Notify assignee of comment update', 'id': 29505822}, 'rel': 'trigger'}}, 'subject': '[{{ticket.account}}] Re: {{ticket.title}}', 'body': 'This ticket (#{{ticket.id}}) has been updated.\n\n{{ticket.comments_formatted}}', 'recipients': [22155944916242]} Since the introduction of the Calls API years ago, we have seen it across dozens of Zendesk instances. Can someone from the Zendesk team take a look and save our logs from those errors?
I love this, but I'd like the app to be available in the nav bar. Is there a trick to doing that?
I'm programming a small custom App that depending on what is happening should display some popup notifications to the user. I am using the ZAF client invoke and doing the following:client.invoke('notify', 'somewarning, 'error', 30000);This by itself does work. I did however have issues finding any documentation on how to handle this through https://developer.zendesk.com/api-reference/apps/apps-core-api/client_api/#clientinvokename--args and the pages linked to from there. I only found this code snippet in an old app someone else had already done in our company. The following things I couldn't quite figure out: for the 3rd parameter, through some trial and error I found that ‘error’, ‘notification’ and ‘warning’ are options that change the color of the popups title. Are there any additional options that have other behaviours? For the text passed in the 2nd parameter, I'd like to do some formatting to make it look different. I have found that at least some simple HTML markup works,
Is it possible to create a ticket in Jira using the ZAFclient in a Zendesk client-side application? I'm aware that calls to the Jira API cannot be made from third-party websites for security. However, I thought ZAFclient requests going through a proxy would allow me to make authenticated requests to Jira. When making the request, I keep getting XSRF check failed error.
Hey Team, I am currently integrating the iOS Messaging Zendesk SDK by initialising the SDK with the channel key and launching the ZDKMessaging.instance.messagingViewController on successful initialisation. I am running into an issue there - The zendesk chat opens up with previous message history and flows ONLY on the first launch of the zendesk viewcontroller instance. If I close the zendesk chat, and re-open it, I see the zendesk chat view controller with a no previous messages. I can type the message in the input field at the bottom, however, once I hit send, the message isn't seen in the chat window. Here is the attached screenshot of how the blank zendesk chat view controller is seen on the second instance.
Hi, It appears that the SupportSDK + Zendesk screens that are created from don't accurately reflect the user's choice of DarkMode. I tried the latest iOS SupportSDK + sample app(s) which at the time of this post is v5.5 here: https://github.com/zendesk/ios_sdk_demo_apps And dark mode is still not supported. I didn't see anything in the themes either that would help solve this. Is this something that can be raised / fixed on the Zendesk side? To test / verify: * enable Dark Mode on your iOS simulator device by opening Settings -> Developer -> Toggle ON Dark Appearance * Run one of the iOS Support SDK apps in this Simulator * Zendesk screens will all be white + white background Thanks!
Hey everyone!I'm currently developing a Zendesk app using Angular — that's the framework I'm most familiar and comfortable with. So far, I’ve managed to build a small form and display it within my Zendesk environment. The next step is to use the built-in ZAF methods (get, invoke, set, etc.) inside my Angular application. However, I’m running into an issue: for some reason, I can’t seem to initialize the ZAFClient — it always comes back as undefined. I’ve made my GitHub repository public in case anyone wants to take a look (note that everything is still in the early stages):🔗 https://github.com/ojuto/user-management-app1. The SDK is included in my index.html2. I’m trying to access the methods through my service zafclient.service.tsUnfortunately, it still doesn’t work — and now I’m not sure whether the issue lies in my Zendesk configuration or my Angular setup. If there are any Angular developers who’ve integrated Zendesk apps before and could help me figure out what I’m
Hello Team, Please note that we have a mobile application, and we would like to inquire about the technical guidance required for integrating the chatbot iframe into our React Native app. Could you please advise us on the recommended steps to proceed? We would also appreciate it if we could arrange a meeting with one of your developers to discuss these details further. Regards.
Hi,Is there a way to define a dark mode variant for the app logos?We are required to provide PNG files for logos (320x320 and 128x128), but there is no option for a dark mode variant.If we could supply SVG, we could encode support inside of the file itself, but alas this is not possible with PNG. Any ideas? Thanks!Martín.
Hi team, the hyperlink from the ticket is not being sent through the webhook.Even though I am using the HTML content field in the trigger:"ticket_data": "{{ticket.latest_public_comment_html}}",the webhook data appears as: "ticket_data": "----------------------------------------------\n\nAbinash Bhatta, Oct 7, 2025, 09:03\n\nTest\n\nAbinash Bhatta" It seems the HTML is being stripped out. I will check this further and update once I have more information.
Zendesk doesn’t offer a built-in way to remove multiple attachments at once. Handling them one by one can be slow and inefficient, especially with large volumes of files.The Attachment Redaction Add-on in the GDPR Compliance app makes this process simple and flexible. Users can set their preferences, choose what to remove, and process single tickets, users, or entire lists — all while keeping the rest of the ticket intact.Use cases it solves Freeing up storage: Quickly remove attachments that take up significant space without affecting ticket content. Data compliance: Safely redact sensitive files to meet GDPR or other privacy requirements. Inactive or outdated data cleanup: Remove attachments from tickets or users that are no longer relevant. File-type specific removal: Target large media files while keeping important documents untouched (for example). Custom lists and conditions: Users can create specific lists of tickets or users with their own conditions, making bul
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.