Ricerche recenti


Nessuna ricerca recente

Kevin Ford's Avatar

Kevin Ford

Data ingresso 15 apr 2021

·

Ultima attività 29 giu 2022

Community Moderator

Seguiti

0

Follower

0

Attività totali

20

Voti

10

Abbonamenti

0

PANORAMICA ATTIVITÀ

Ultima attività di Kevin Ford

Kevin Ford ha commentato,

CommentoExtending Zendesk

Hi Carmelo Rigatuso,

Unless Zendesk adds some new functionality, the only way you're going to be able to populate a ticket field is to have your internal system use the Zendesk API to update the field outside of sending the response.

KF

Visualizza commento · Data ultimo post: 03 dic 2021 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Discussion - Tips and best practices from the community

@... there is a way using the API but it's not built into Zendesk. 

Visualizza commento · Data ultimo post: 03 dic 2020 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Discussion - Tips and best practices from the community

@... yes, but you have to manually set the requester to the appropriate person. 

Visualizza commento · Data ultimo post: 03 dic 2020 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Discussion - Tips and best practices from the community

@... I've actually stopped using my solution above. Now that Zendesk has rolled out side conversation tickets, it's actually a much better solution. It's not perfect for this use case, but it's definitely an improvement.

Visualizza commento · Data ultimo post: 17 nov 2020 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Feedback - Community Forums (Gather)

I'll chime in as well. Our users also cross share documents like XML config files. 

Visualizza commento · Data ultimo post: 16 ott 2020 · Kevin Ford

0

Follower

1

Voto

0

Commenti


Kevin Ford ha commentato,

Commento nella community Q&A - Objects, workspaces, and rules

Hi Brett,

I posted this in User Tips and Best Practices even though it isn't a best practice!

KF

Visualizza commento · Data ultimo post: 10 mar 2020 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha creato un post,

Post Discussion - Tips and best practices from the community

Often, a requester will request something within an existing ticket. I cobbled something together that allows you to create a new ticket and copy CCs/followers. Be warned, this isn't trivial and you're going outside the realm of what Zendesk considers best practice.

You're going to create a ticket via the API and trigger this by notifying an external target. So, to start, create an external HTTP target. For the URL, use https://YOURDOMAIN.zendesk.com/api/v2/tickets.json but replace YOURDOMAIN with your actual domain. Method is POST. Content type is JSON. Enable basic authentication and put in valid credentials.

Now, you need to build your user interface. I used ticket fields with conditions.

Drop all of those on your form(s). I set a condition to hide all of the fields when Split Ticket? is unchecked. I also require Subject and Description. Note that if you don't have conditional fields, requiring those fields might be problematic. If you leave them as optional you MUST fill out the description otherwise ticket creation will fail.

Next, create your trigger. These are the conditions I set:

And these are the actions:

Note you want the target to be your ticket creation target. The JSON/Liquid is kind of complex, so here is what I wrote. Note: you MUST change the ticket field ID number (the 360036041113 in {{ticket.ticket_field_360036041113}} to match the ID numbers of your unique fields. Sorry, it's horrible to read. I would suggest pasting it into your favorite text editor to help.

{
    "ticket": {
        {% comment %} Set subject to Subject ticket field on parent. Change long number to match actual subject field number. {% endcomment %}
        "subject": "{{ticket.ticket_field_360036041113}}", 
        {% comment %} Set requester to match parent requester. {% endcomment %}
        "requester_id": "{{ticket.requester.id}}",
        {% comment %} Set assignee to match parent assignee. {% endcomment %}
        "assignee_id": "{{ticket.assignee.id}}",
        {% comment %} If copy CCs is checked, add them to the child ticket. Change long number to match actual copy CCs field number. {% endcomment %}
        {% if ticket.ticket_field_360036041493 contains 1 %}
        {% comment %} The for loop iterates over all of the CCs and adds them. The if inhibits a trailing comma. {% endcomment %}
        "collaborator_ids": [{% for cc in ticket.ccs %}{{cc.id}}{% if forloop.last %}{% break %}{% else %}, {% endif %} {% endfor %}],
        {% endif %}
        {% comment %} If copy followers is checked, add them to the child ticket. Change long number to match actual copy followers field number. {% endcomment %}
        {% if ticket.ticket_field_360036106114 contains 1 %}
        {% comment %} The for loop iterates over all of the followers and adds them. The if inhibits a trailing comma. {% endcomment %}
        "additional_collaborators": [{% for cc in ticket.followers %}{{cc.id}}{% if forloop.last %}{% break %}{% else %}, {% endif %} {% endfor %}],
        {% endif %}
        "comment": { 
            {% comment %} Set first comment to Description ticket field on parent and add a link to parent ticket. Change long number to match actual field number. {% endcomment %}
            "body": "{{ticket.ticket_field_360036041273}}\n\nThis request originated in ticket #{{ticket.id}}.", 
            {% comment %} If public is checked, the comment on the child will be public. Change long number to match actual public field number. {% endcomment %}
            "public": {% if ticket.ticket_field_360036106034 contains 1 %} true {% else %} false {% endif %},
            "author_id": "{{ticket.assignee.id}}" 
        }
    }
}

Anyway, that's working for us now. Let me know if you have questions.

Data ultimo post: 10 mar 2020 · Kevin Ford

0

Follower

11

Voti

11

Commenti


Kevin Ford ha commentato,

Commento nella community Q&A - Objects, workspaces, and rules

Now that Split 'n' Close is a paid app and I didn't feel like paying $1800 a year for the functionality, I cobbled something together that replicates the functionality that we need. It could be expanded to more closely replicate split 'n' close but I'll leave that to you. Be warned, this isn't trivial and you're going outside the realm of what Zendesk considers best practice.

You're going to create a ticket via the API and trigger this by notifying an external target. So, to start, create an external HTTP target. For the URL, use https://YOURDOMAIN.zendesk.com/api/v2/tickets.json but replace YOURDOMAIN with your actual domain. Method is POST. Content type is JSON. Enable basic authentication and put in valid credentials.

Now, you need to build your user interface. I used ticket fields with conditions.

Drop all of those on your form(s). I set a condition to hide all of the fields when Split Ticket? is unchecked. I also require Subject and Description. Note that if you don't have conditional fields, requiring those fields might be problematic. If you leave them as optional you MUST fill out the description otherwise ticket creation will fail.

Next, create your trigger. These are the conditions I set:

And these are the actions:

Note you want the target to be your ticket creation target. The JSON/Liquid is kind of complex, so here is what I wrote. Note: you MUST change the ticket field ID number (the SubjectIdNum in {{ticket.ticket_field_SubjectIdNum}} to match the ID numbers of your unique fields. Sorry, it's horrible to read.

{
"ticket": {
{% comment %} Set subject to Subject ticket field on parent. Change long number to match actual subject field number. {% endcomment %}
"subject": "{{ticket.ticket_field_SubjectIdNum}}",
{% comment %} Set requester to match parent requester. {% endcomment %}
"requester_id": "{{ticket.requester.id}}",
{% comment %} Set assignee to match parent assignee. {% endcomment %}
"assignee_id": "{{ticket.assignee.id}}",
{% comment %} If copy CCs is checked, add them to the child ticket. Change long number to match actual copy CCs field number. {% endcomment %}
{% if ticket.ticket_field_CopyCcsIdNum contains 1 %}
{% comment %} The for loop iterates over all of the CCs and adds them. The if inhibits a trailing comma. {% endcomment %}
"collaborator_ids": [{% for cc in ticket.ccs %}{{cc.id}}{% if forloop.last %}{% break %}{% else %}, {% endif %} {% endfor %}],
{% endif %}
{% comment %} If copy followers is checked, add them to the child ticket. Change long number to match actual copy followers field number. {% endcomment %}
{% if ticket.ticket_field_CopyFollowersIdNum contains 1 %}
{% comment %} The for loop iterates over all of the followers and adds them. The if inhibits a trailing comma. {% endcomment %}
"additional_collaborators": [{% for cc in ticket.followers %}{{cc.id}}{% if forloop.last %}{% break %}{% else %}, {% endif %} {% endfor %}],
{% endif %}
"comment": {
{% comment %} Set first comment to Description ticket field on parent and add a link to parent ticket. Change long number to match actual field number. {% endcomment %}
"body": "{{ticket.ticket_field_DescriptionIdNum}}\n\nThis request originated in ticket #{{ticket.id}}.",
{% comment %} If public is checked, the comment on the child will be public. Change long number to match actual public field number. {% endcomment %}
"public": {% if ticket.ticket_field_PublicIdNum contains 1 %} true {% else %} false {% endif %},
"author_id": "{{ticket.assignee.id}}"
}
}
}

Anyway, that's working for us now. Let me know if you have questions.

Visualizza commento · Data ultimo post: 09 mar 2020 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Feedback - Ticketing system (Support)

As an example of a workflow that could make use of custom statuses, we offer remote, billable support. We also offer on site service visits. In both cases, we use the ticket to track work. Typically, this involves a technician working to solve the technical issue and an administrator coming in afterwards to handle invoicing and other duties.

I would love for the technician to be able to have Problem Solved status and then leave the Solved for the administrator. We've tried having the techs solve the issue and leave the ticket solved for the duration of administrative cleanup but the forced 28 day closing of the ticket sometimes presents a challenge due to trailing expenses.

Visualizza commento · Data ultimo post: 05 mar 2019 · Kevin Ford

0

Follower

0

Voti

0

Commenti


Kevin Ford ha commentato,

Commento nella community Feedback - Ticketing system (Support)

You can kind of implement this functionality on your own but it's not the most elegant. I added a checkbox ticket field called Pause. The tag for this is "paused." For us, this is paired with another ticket field that is a date field cause Pause Until.

I put in an automation that will remove the pause when the date is reached (date is within previous x days).

Modify your SLA to exclude tickets that have the paused tag. This will keep things from breaching. Unfortunately, the clock keeps ticking because the SLA policy looks as the last public reply that may be weeks or months ago. In other words, this delays the SLA breach until the automation removes the pause.

To fix this, when the automation fires, the automation makes a public reply before removing the pause. Zendesk does not allow you to make a comment on a ticket via automation. To do this, I use an HTTP target extension and have the automation notify the target.

The unfortunate thing about this is this is making a public reply. You can suppress sending this to the requester by modifying the notify requester and CCs trigger that there is a comment update. Then, go back and retroactively make the reply an internal note with a trigger so it can't be seen in the help center.

The JSON body for the automation looks like this:

{"ticket": {
  "comment": {
    "body": "WHATEVER TEXT YOU WANT THE PUBLIC COMMENT TO SAY",
    "public": true
    }
  }
}

The extension/target looks like this:

URL: https://YOURSUBDOMAIN.zendesk.com/api/v2/tickets/{{ticket.id}}.json

Method: PUT

Content type: JSON

Basic authentication: enabled and type in your username and password.

Visualizza commento · Data ultimo post: 08 gen 2019 · Kevin Ford

0

Follower

2

Voti

0

Commenti