Ticket custom fields and user fields

Answered

14 Comments

  • Sam

    Hi Carlos ! This is certainly possible. A similar setup is located in this comment but below is a setup specific to your situation.

    Create a webhook that points to the user endpoint

    1. Go to Zendesk Suite -> Admin Center -> Apps and integrations -> Webhooks -> Webhooks
    2. Create a new webhook with the following paramaters:
      Name: Memorable name that uniquely identifies the webhook
      Endpoint URL: https://subdomain.zendesk.com/api/v2/users/{{ticket.requester.id}}.json
      Request method: GET
      Request format: JSON
      Authentication: Whichever you use. For API, we generally use Basic Authentication with username@domain.com/token for the user, and your API token for the password

    3. Test and create the webhook

    Create a custom ticket field (if not done already)

    1. Go to Zendesk Suite -> Admin Center -> Objects and rules -> Tickets -> Fields
    2. Create a new custom field to capture the phone number (use numeric or text - I'd recommend numeric)
    3. Create field
    4. Copy down the custom field ID
    5. Add the custom field to your ticket form(s)

    Create a trigger that writes the phone number on ticket creation

    1. Go to Zendesk Suite -> Admin Center -> Objects and rules -> Business rules -> Triggers
    2. Click on Add Trigger
    3. Set the appropriate conditions for your trigger (such as Ticket = Created and Form = Your_Form_Here)
    4. Under Actions, specify the following:
      Type or select actions: Notify active webhook
      Select the webhook you created earlier for the user endpoint
      JSON body:
      {
      "user": {
      "phone": "{{ticket.ticket_field_replacewithcustomfieldID}}"
      }
      }
    5. Save trigger

    Now, test it out and it should send the phone number captured in your custom field to the user profile!

    3
  • Rafael Santos
    User Group Leader

    Just one note there.
    On step 2, the Request method should be PUT instead of GET.

    API Reference / Ticketing / Users / #Update User

    PUT /api/v2/users/{user_id}

    Also, this might fail if you have Validate user phone numbers enabled, as the phone numbers will have to be on the E.164 format

    What are the accepted phone number formats for Talk?

    2
  • Carlos

    Thank you very much guys, both answers complement each other and of course it worked ! 

    1
  • ASHLEY SANYAL

    Hi! I have a similar situation where I went to get a piece of information from the user profile and insert it into the custom field on the ticket. In this example would I change it to "Get" and put in the custom ticket ID of the field from the user profile instead of the custom ticket field ID? Do I need to add a step to get the user profile field to populate in the custom ticket field? Any help would be greatly appreciated!! 

    0
  • Christopher Kennedy
    Zendesk Developer Advocacy
    Hi Ashley,
     
    Is the info on the user profile in a custom user field with a tag value?  If so, the ticket can inherit this tag from the user automatically so that it is present on the ticket.  That would vastly reduce the effort needed to add the info to the ticket.
     
    0
  • PatientenserviceSavir

    I have the same problem and it would be nice, to have a better solution than at the moment possible.

    Regards

    Sylvia

    0
  • Tipene Hughes
    Zendesk Developer Advocacy
    Hi, Sylvia! 
     
    Have you tried implementing the solution shared earlier in this thread? I'd be happy to help out if there's any particular areas that are giving you trouble.
     
    Thanks,
     
    Tipene
    0
  • Bjorn Spruijt

    Hi! I have a similar situation as Ashley. I want to add the users external_id to a custom field (customer no). The updating of the custom field (customer no) with the solution in this thread works great, but how do I get the users external_id into the custom fields 'value' in the JSON? Any help would be very much appreciated!

     

    {
        "ticket": {
            "custom_fields": [
                {
                    "id": 360020980097,
                    "value": Here I need to pass the users external_id...but how?
                }
            ]
        }
    }

    0
  • Tipene Hughes
    Zendesk Developer Advocacy

    Hey Bjorn Spruijt,

    You can use the "{{ticket.requester.external_id}}" placeholder for the value. So, the JSON payload of your trigger should look something like this:

    {
        "ticket": {
            "custom_fields": [
                {
                    "id": 360020980097,
                  "value": "{{ticket.requester.external_id}}"
                }
            ]
        }
    }

    One thing to be aware of with this workflow is the potential for race conditions occurring when updating a ticket via trigger and webhook. Here's an article which goes in to more detail:

    Can I use a trigger and a webhook to update tickets?

    I hope this helps!

    Tipene

    0
  • Bjorn Spruijt

    Great, thanks a lot for helping out and I understand!! I tried to acquire the external_id in my home-page template to pass it as a parameter as default field value for the customer no. in a form, but that didn't work since the ticket object doesn't exist in the home-page template and it seems that using the trigger and webhook is the only way to go...

    0
  • Tim Wang

    Hey I'm working on an webhook workflow and trying to get values for a custom field that is configured for a selection list.  When I use the {{ticket.ticket_field_replacewithcustomfieldID}} we get the tag value and not the displayed value.  Is there an additional notation to get the actual value rather than the tag value, the issue is that the tag values are restricted in character type/format that is not compatible with the solution we are working on

    0
  • Tipene Hughes
    Zendesk Developer Advocacy
    Hey, Tim!
     
    I think the placeholder you're looking for is {{ticket.ticket_field_option_title_<field ID number>}}. You can read more about that here.
     
    I hope this helps! Feel free to reach out with any questions.
     
    Tipene
    0
  • Michael Le

    Hello! I'm looking to achieve something similar to this and I can't figure out what seems to be the issue as it's not running correctly. (I feel like I'm missing a huge component somewhere)

    I have the webhook running correctly I believe and tested.

    I have a custom date field that we're using to gather DoBs from End Users that we use on a webform, and I would like this to translate into a Custom User Field (Date field as well).

     

    0
  • Tipene Hughes
    Zendesk Developer Advocacy

    Hey Michael Le,

    Can you try updating your JSON body by putting the user field inside a user_fields object. Something like this:

    {
    "user": {
    "user_fields": {
    "DOB(test)": "{{ticket.ticket_field_1234}}"
    }
    }
    }

    Let me know if that helps!

    Tipene

    0

Please sign in to leave a comment.

Powered by Zendesk