最近搜索


没有最近搜索

Kevin Ford's Avatar

Kevin Ford

已加入2021年4月15日

·

最后活动2022年6月29日

Community Moderator

关注

0

关注者

0

活动总数

20

投票

10

订阅

0

活动概览

的最新活动 Kevin Ford

Kevin Ford 进行了评论,

评论Extending 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

查看评论 · 已于 2021年12月03日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 Discussion - Tips and best practices from the community

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

查看评论 · 已于 2020年12月03日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 Discussion - Tips and best practices from the community

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

查看评论 · 已于 2020年12月03日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 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.

查看评论 · 已于 2020年11月17日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 Feedback - Community Forums (Gather)

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

查看评论 · 已于 2020年10月16日 发布 · Kevin Ford

0

关注者

1

投票

0

评论


Kevin Ford 进行了评论,

社区评论 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

查看评论 · 已于 2020年3月10日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 创建了一个帖子,

帖子 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.

已于 2020年3月10日 发布 · Kevin Ford

0

关注者

11

投票

11

评论


Kevin Ford 进行了评论,

社区评论 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.

查看评论 · 已于 2020年3月09日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 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.

查看评论 · 已于 2019年3月05日 发布 · Kevin Ford

0

关注者

0

投票

0

评论


Kevin Ford 进行了评论,

社区评论 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.

查看评论 · 已于 2019年1月08日 发布 · Kevin Ford

0

关注者

2

投票

0

评论