Creating webhooks to interact with third-party systems

Return to top

68 Comments

  • Ron McClung

    What can I do with the Webhook Response Body that is returned? Can I access it from within a trigger? Or does that have to be done in code?

    0
  • Ronald

    @Timothy Schauder

    You are my hero! Thank you for providing the format for basic auth with token to Zendesk's own API. This was driving me crazy trying to figure this out!

    0
  • Alex C

    Hi, hoping someone can help me here. I'm looking for the appropriate placeholders for {{assignee_id}} and {{satisfaction_rating}} for a json trigger that is notifying an active webhook (that is known to be working).

    The end goal is to add a tag to the ticket made up of the agent's ID+rating, so if a ticket is rated several times, we can capture what rating goes to each agent, versus automatically assigning the satisfaction rating of the ticket to the last agent that touched it.

    The json I'm using (that is not working -.-) is:

    {

    "ticket": {
    "additional_tags": ["csat_{{assignee_id}}_{{satisfaction_rating}}"],
    "id": "{{ticket.id}}"
    }
    }

    The tag I'd want added is something like csat_1234355_bad

    As you can see, it's not catching the placeholders, only adding the csat and underscores. And second issue would be that it's not adding it to tags. I don't know if it won't add it because it knows the tag created is not what was requested, so it doesn't send it over to the ticket, but I'd be surprised if it did do that.

    Note: I was able to use a similar json and trigger with the same webhook to add assignee name to a text field when the ticket changes group (to track number of escalations per agents), but using the placeholder {{current_user.email}}. In all the documentation I find, I can't find that placeholder (I keep using variations of that placeholder because it works, but can't recall where it came from initially). I don't know what the assignee ID and ticket rating counterparts of that placeholder would be. Does anyone know? Any help would be appreciated!

    I've seen these articles:

    Edit:Just found that "additional_tags" is for the endpoint "tickets/update_many.json", and the webhook i'm currently using has endpoint "tickets/{{ticket.id}}". So that might be the issue, haven't created new webhook yet....but still don't know the right placeholders.

    0
  • Dave Dyson
    HI Alexandra,

    For the assignee id, you'd use /1263082116169 (seeZendesk Support placeholders reference for more info on placeholders). However, there isn't a placeholder that simply provides "good" or "bad" as text (there is one that would provide"Good, I am satisfied" (for example), but I think that would be more than you're looking for. As a workaround, you could create two copies of this trigger, one for Good (and Good with comment) ratings, and another for Bad/Bad with comment ratings, and hardcode "good" or "bad" into the string yourself.

    Although I hear your trigger/webhook combo is working, I do have to provide the caveat that updating triggers this way can be unreliable: see Can I use a trigger and a webhook to update tickets?
    1
  • Alex C

    @...谢谢你!这篇文章提供了占位符I needed (I used ticket.assignee.id for my purposes). I continue unable to update the tickets with the update-many endpoint. However, it all works with the tickets/{ticket.id} endpoint. The problem is it replaces all ticket tags with the one we're adding, which is what I did not want to do. So I'll continue messing around with this, but REALLY appreciate the correct placeholder article!

    0
  • Venkata Subba Reddy M

    Webhooks targets - What max no of webhooks are allowed in LIVE?

    0
  • API System

    Is there a way to handle status codes, like 4xx or 5xx responses ?

    0
  • Dane
    Zendesk Engineering
    Hi Venkata,

    There's no documented limit for the number of web-hooks you can created. However, it is advisable to always check the API rate limit of the web-hooks that will be utilized. For Zendesk API rate limits, please refer toUsage Limits.

    @Julien,

    The only natively available option is to see the status of each call. You can go to each web-hook and click the activity tab.



    0
  • prakash.sati

    Hi All,

    i am trying to create a webhook with end point url ashttps://yoursubdomain.zendesk.com/api/v2/tickets/{{ticket.id}}.json(i replaced your domain with our subdomain) however it returns with an error

    If someone can help please!

    0
  • Jacob the Moderator
    Community Moderator

    Hi Prakash,
    What is the error you're seeing?

    Could be a number of things, are you authenticating the call?
    https://support.zendesk.com/hc/en-us/articles/4408839108378?page=2#topic_qbn_v4w_dpb

    0
  • Maik Künnemann

    If I use a webhook with a ticket id placeholder inside the url, the activity log dont show any information about the used url. So I don't know anything about the request if the body was empty. Could you please add the request url to the activity log information?

    0
  • Brett Bowser
    Zendesk Community Manager

    HeyMaik Künnemann,

    You'll want to share this feedback in ourFeedback on the ticketing system (Support)topic since that is actively being monitored by our Product Managers. That doesn't guarantee that you'll receive a response but we do monitor and follow up with users as we have information to share.

    Let me know if you have another questions for me in the meantime.

    Cheers!

    0
  • Otto Lindqvist

    我正在调查创建新线程ets to our other internal system. However this requires data to be in form-data format. Is this something that I can do in ¨Webhooks?

    Also, can I pick up values from the response of internal system such as the ticket number of the internal system which is returned when submitting this call?

    I need to post this type of request to the internal system and pick up the response below to ticket fields.

    0
  • Ronald

    Otto LindqvistI'm hoping we see an answer to your questions! I think according to this article you should be able to do both. But I have no idea how and I've previously run into similar challenges when doing external chat bot integrations.

    For the form-data, I think this part of the article makes it sound like you can send form-data in a webhook:

    You can use webhooks to pass information to third-party services and REST APIs that accept JSON, XML,or form-encoded contentin HTTP requests.

    As for receiving the returned values and updating a ticket's custom fields. This sentence from the article makes it sound like that should be possible:

    Webhooks are important because they are the means by which triggers and automations canresult in actions based on the HTTP responses from third-party services.

    I'm sure I don't fully understand everything because I would not know how to send form data in a webhook and don't know how to make Zendesk do anything with the response from an external system. Maybe I don't understand what you want to do or maybe I'm misinterpreting the article.

    The only way I would currently be able to accomplish something like this would be to send the ticket ID to the other system and then have the other system make a separate call to Zendesk using that Ticket ID to put the two values into the custom fields of that associated Ticket ID.

    1
  • Otto Lindqvist

    Thanks for the replyRonald!

    What you quoted from the docs is excactly what I read and understood also. However I could not find documentation about that how to use those features, especially the latter.

    But after commenting and continuying reading the docs I came to conclusion that webhooks wont work in my case anyways because of the custom header issue already discussed in this article earlier. So I'll need to find some integrator for this, I already tried Zapier but didnt get the results I was looking for.

    0
  • Aurimas Baltik

    Any documentation of how the response body received from the GET method webhook can be accessed and used? Can it be used to update values of the specific tickets?

    0
  • Dane
    Zendesk Engineering
    Hi Aurimas,

    Unfortunately, there's none (at least in Zendesk). This workflow will require you to leverage your own/third-party app that will parse the data from using GET then update the ticket using the Update Ticket API.
    0
  • Raphaël Péguet - Officers.fr

    Hi Zendesk community,

    I've created a trigger that is supposed to sent a User Date Custom Field value to a Ticket Date Custom Field Value.

    But it doesn't work because the User Date Custom Field placeholder sends a date on this format: 2022-10-13 00:00:00 +0000 and the Ticket Field only accepts this format: 2022-10-13.

    I tried liquid : {{ticket.requester.custom_fields.date_dernier_appel | date: "%Y-%m-%d"}} but JSON doesn't accept it..

    I tried $substring (example:$substring("Hello World", 3) => "lo World") but it didn't work too..

    Do you have a solution please?

    Best regards,

    Raphaël

    0
  • Peter Hochstrasser

    HiRaphaël Péguet - Officers.fr

    While the URL does allow for substitutions, the JSON seems to be uninterpreted text only.
    At least, I haven't had any success trying to substitute anything in the payload.

    0
  • Raphaël Péguet - Officers.fr

    HiPeter Hochstrasser,

    Thanks for your answer, as placeholders are interpreted i hoped that liquid will be but it's not.. I still hope finding a solution with Zendesk only, I will put it here if I do!

    Best regards,

    0
  • Kelly Centeno

    We've been back and forth with Zendesk support for the past month and have not got anywhere so I'm hoping if anyone reads this and can help out will comment. Our tickets used to automatically CC the CSMs of the Salesforce account. For some reason this stopped working and we were told to create webhooks. We have and it still fails the test but when I check Activity it says success. Does anyone know what we can do to have the Salesforce CSMs email CC on every ticket?

    This is our current webhook and trigger set up. Any help is greatly appreciated.

    0
  • Ronald

    HiKelly Centeno-- I'm pretty sure your setup is correct and is already actually working.

    A couple of things about your test setup from the screenshots of the Webhook creation page:

    • For the Request JSON body in your screenshot you have the default placeholder request body that Zendesk automatically puts there. If you tried to use that with this PUT request you'll definitely always receive the 404 response. In that box you should put the same JSON request payload as what you have in the second screenshot
    • Another important thing to note about the webhook test is that the test won't work correctly with placeholders like {{ticket.id}} -- but it looks like you've got the placeholders correct in the endpoint of the webhook and request body from the trigger

    In order to test a webhook like this I would submit a test ticket and then use that specific ticket ID rather than the {{ticket.id}} placeholder in the endpoint.

    And I would take the request body you have in the second screenshot, from the trigger, and paste that into the test box but again you'll have to replace the custom field placeholder values for the actual values that are stored in the associated custom fields.

    据我所知,你们公司的唯一问题uld have with the setup is if the custom field values with the intended collaborators don't conform to the requirements of the additional_collaborators property. I'm pretty sure you can simply pass just an email address there but it can also take IDs and objects consisting of a name and email property. I'm assuming you're storing an email address in those custom organization and ticket fields so that should be all good!

    0
  • Troy Johnston

    Hello. As 2FA Session management has not been securely implemented (to mandate users must use 2FA with every login event) I would like to establish an automation to achieve:

    At 7pm each night - destroy all active sessions.

    Can you please provide guidance to this.
    - I have established a webhook that calls the Sessions API and is authenticated via token.
    - How to build the automation that is preferably time dependant. I imagine the logic will need to be something like: Loop through all open sessions - destroy each active session.

    I am not a developer, and at this time I can't see how to achieve this in automation. Please do provide some detailed guidance - especially given the 2FA implementation is not secure.

    Thanks,

    0
  • 利亚姆Hardman

    Has anyone tried creating a webhook for discord since Zendesk discord integration is no longer supported.

    0
  • Efthymis Kouzelis

    Hello all!

    I've managed to create the webhooks and triggers to update tickets. I am stuck though on trying to populate a ticket custom field from a ticket.organization_custom _field.
    Is there anyone here who has done it?
    example
    Organization_custom_field (id:34) is automatically populated through internal code.
    I want this info to be transferred to a ticket_custom_field (id:45).
    I need the JSON body to do this.

    Thanks in advance

    0
  • Otto Lindqvist

    Hi Efthymis!

    When you want to update custom fields on tickets via API, you need to have to have correct structure. Custom fields on the ticket JSON needs to be on an array like this:

    {
    "ticket": {
    "comment": {
    "body":"Body of the message",
    "public":true,
    },
    "custom_fields":[{
    "id": 123456789, //This is the field ID from Zendesk
    "value":"Content for the custom field."
    }]
    }
    }
    0
  • Efthymis Kouzelis

    Thank you Otto for the help,

    Still my main question is "what's the placeholder for an organization custom field"? Can you help?

    Thanks

    0
  • Jacob the Moderator
    Community Moderator

    Efthymis Kouzelis

    There is one for the tag and another for the value of such a field, you can reference this:
    https://support.zendesk.com/hc/en-us/articles/4408886858138-Zendesk-Support-placeholders-reference

    ticket.organization.custom_fields. Property/placeholder format for custom organization fields. SeeAdding custom fields to organizations.
    ticket.organization.custom_fields..title Property/placeholder format for the value of a custom organization drop-down field. SeeAdding custom fields to organizations
    0
  • Peli Eye Care Makati

    hello why my webhooks got 400 bad request and no username

    got this error

    "code": 400,
    "name": "Bad Request",

    0
  • Brett Bowser
    Zendesk Community Manager
    Hey Crm team,

    I'd recommend reaching out to our Customer Support team regarding this issue so they can take a look at your account. More information on contacting their team here:Contact Zendesk Customer Support

    Hope this helps!
    0

Pleasesign into leave a comment.

Powered by Zendesk