Recent searches


No recent searches

Ticket custom fields and user fields

Answered


Posted Apr 22, 2022

Hey there,

I'm currently looking to store the clients phone number while creating a new request. I didn't find any option regarding this matter in the Forms/Fields, only for email field that is added automatically in the form when the user is not signed in. Is there a way to save this phone number custom field inside the user profile contact details information automatically ? Currently our agents have to copy the number from the custom field in the ticket to the user profile. 

Thanks !


1

14

14 comments

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


image avatar

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


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

1


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


image avatar

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


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

Regards

Sylvia

0


image avatar

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


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


image avatar

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


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


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


image avatar

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


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


image avatar

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.

Didn't find what you're looking for?

New post