atmon docs

REFERENCE/TOOLKITS/ZENDESK.MD

Zendesk

Support ticketing. Create, triage, and resolve tickets, manage the customers and organizations who file them, and apply macros.

PropertyValue
Slugzendesk
Definition version0.3.0
Base URLhttps://{{account.subdomain}}.zendesk.com
Auth schemesoauth2
Action tools34
By class19 read, 11 write, 4 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

52 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 34 cases written by hand and 18 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-130/5257.7%
top-842/5280.8%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://{{account.subdomain}}.zendesk.com/oauth/authorizations/new
Token URLhttps://{{account.subdomain}}.zendesk.com/oauth/token
Default scopesread, write
Refresh tokensno, so the end user reauthorizes when the token expires

Tools

34 action tools. The catalog-wide slug is zendesk.<tool>, which is what search_tools returns and call_tool takes.

zendesk.create_ticket

Open a new Zendesk support ticket. Use when a user wants to file, log, or report a customer issue, complaint, or request in Zendesk. Requires a subject and the first comment; requester, assignee, group, priority, type, and tags are optional.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls POST /api/v2/tickets.json.

Arguments:

ArgumentTypeRequiredNotes
assignee_idintegernoAgent user id to assign the ticket to. Omit to leave unassigned.
comment_bodystringyesText of the ticket's first comment (the reported issue).
comment_publicbooleannoWhether the first comment is customer-visible. Default true.
group_idintegernoGroup id to route the ticket to, from list_groups.
prioritystring, one of low, normal, high, urgentnoTicket priority. Omit for Zendesk's default.
requester_idintegernoUser id of the person the ticket is filed for, from search_users.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
subjectstringyesTicket subject line.
tagsarray of stringnoTags to attach at creation. Omit for none.
typestring, one of problem, incident, question, tasknoTicket type. Omit to leave unset.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.assignee_idinteger
ticket.created_atstring
ticket.idinteger
ticket.prioritystring
ticket.requester_idinteger
ticket.statusstring
ticket.subjectstring

Also retrieved by: "open a support case for a customer", "log a customer complaint", "file a new help desk ticket", "start tracking a customer's issue", "report a problem a customer is having".

zendesk.get_ticket

Get one Zendesk ticket's full detail by id: subject, status, priority, requester, assignee, and tags. Use when the user names a specific ticket number. For many tickets at once use list_tickets or search_tickets.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.assignee_idinteger
ticket.created_atstring
ticket.descriptionstring
ticket.group_idinteger
ticket.idinteger
ticket.prioritystring
ticket.requester_idinteger
ticket.statusstring
ticket.subjectstring
ticket.tagsarray of string
ticket.typestring
ticket.updated_atstring

Also retrieved by: "pull up a customer's support case", "check the status of a help desk ticket", "show me what this complaint says", "what's going on with this support case".

zendesk.update_ticket

Edit a Zendesk ticket's own fields: subject, priority, type, or tags. Use when the user wants to retitle, reprioritize, or retag a ticket. For its status use update_ticket_status; for assignee or group use assign_ticket; to add a reply use add_ticket_comment.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls PUT /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
prioritystring, one of low, normal, high, urgentnoNew priority.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
subjectstringnoNew subject line.
tagsarray of stringnoReplacement tag list. Omit to leave tags unchanged.
ticket_idintegeryesTicket id to edit, from list_tickets or search_tickets.
typestring, one of problem, incident, question, tasknoNew ticket type.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.idinteger
ticket.prioritystring
ticket.subjectstring
ticket.tagsarray of string
ticket.typestring

Also retrieved by: "retitle a support case", "change the priority on a customer issue", "edit the details on a complaint", "retag a help desk ticket".

zendesk.delete_ticket

Permanently delete a Zendesk ticket. Use when the user wants to delete or remove a ticket for good, not just close or solve it. Irreversible; prefer update_ticket_status (closed) when the user might want the record kept.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes tickets:write. Calls DELETE /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id to delete, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "wipe a support case from the system for good", "purge a customer complaint record entirely", "get rid of a help desk ticket permanently".

zendesk.list_tickets

List Zendesk tickets across the whole account, most recently updated first. Use when the user asks what tickets exist or wants a general queue, not a keyword search. For text or field filters use search_tickets; for one known ticket use get_ticket.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/tickets.json.

Arguments:

ArgumentTypeRequiredNotes
sort_bystring, one of id, status, updated_at, created_atnoField to sort by. Default updated_at.
sort_orderstring, one of asc, descnoSort direction. Default desc.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
next_pagestring
ticketsarray of object
tickets[].assignee_idinteger
tickets[].idinteger
tickets[].prioritystring
tickets[].requester_idinteger
tickets[].statusstring
tickets[].subjectstring
tickets[].updated_atstring

Also retrieved by: "show me every open support case", "what's in the help desk queue", "browse the whole ticket backlog".

zendesk.search_tickets

Search Zendesk tickets by keyword and field filters, e.g. status, priority, requester, or tag. Use for any ticket lookup that names a customer, keyword, or filter rather than a known ticket id. Zendesk query syntax, e.g. "status:open priority:urgent tag:billing".

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/search.json.

Arguments:

ArgumentTypeRequiredNotes
querystringyesZendesk search syntax, scoped to tickets, e.g. "type:ticket status:open requester:jane@example.com".
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
countinteger
resultsarray of object
results[].idinteger
results[].prioritystring
results[].requester_idinteger
results[].statusstring
results[].subjectstring

Also retrieved by: "find a support case by keyword", "look up tickets from a certain customer", "hunt down complaints tagged a certain way", "which cases are still open and urgent".

zendesk.list_ticket_comments

List the comments (replies) on a Zendesk ticket, in order, including whether each is public or an internal note. Use when the user wants to read a ticket's conversation or history. To post a new one use add_ticket_comment.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/tickets/{{params.ticket_id}}/comments.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
commentsarray of object
comments[].author_idinteger
comments[].bodystring
comments[].created_atstring
comments[].idinteger
comments[].publicboolean

Also retrieved by: "show me the conversation on this support case", "what has been said back and forth on this ticket", "read the history of replies on this complaint".

zendesk.add_ticket_comment

Post a new comment or reply on a Zendesk ticket, public (customer visible) or an internal note. Use when the user wants to reply, respond, or add a note to a ticket. For its subject or priority use update_ticket instead.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls PUT /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesComment text.
publicbooleannoCustomer-visible reply if true, internal note if false. Default true.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id to comment on, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.idinteger
ticket.statusstring
ticket.updated_atstring

Also retrieved by: "reply to a customer's support case", "leave an internal note on a ticket", "respond to a help desk complaint", "write back to the customer on this case".

zendesk.assign_ticket

Assign a Zendesk ticket to an agent, a group, or both. Use when the user wants to assign, route, or hand off a ticket to someone or to a team. For the ticket's own fields use update_ticket.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls PUT /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
assignee_idintegernoAgent user id to assign to, from search_users or list_users.
group_idintegernoGroup id to route to, from list_groups.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id to assign, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.assignee_idinteger
ticket.group_idinteger
ticket.idinteger

Also retrieved by: "hand this support case to an agent", "route this ticket to the billing team", "put this complaint on someone's plate".

zendesk.update_ticket_status

Change a Zendesk ticket's workflow status: open, pending, solved, or closed. Use when the user wants to close, solve, reopen, or mark a ticket pending. For the ticket's own fields use update_ticket; to delete it entirely use delete_ticket.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls PUT /api/v2/tickets/{{params.ticket_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
statusstring, one of new, open, pending, hold, solved, closedyesNew ticket status.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketobject
ticket.idinteger
ticket.statusstring

Also retrieved by: "mark a support case as solved", "reopen a closed ticket", "put a complaint on hold", "close out a help desk case".

zendesk.merge_tickets

Merge one or more Zendesk tickets into a target ticket, closing the merged-away tickets. Use when the user wants to merge, combine, or fold duplicate tickets together. Irreversible: the merged-away tickets' own identity is gone, the same reasoning as a CRM merge_contacts.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes tickets:write. Calls POST /api/v2/tickets/{{params.ticket_id}}/merge.json.

Arguments:

ArgumentTypeRequiredNotes
idsarray of integeryesTicket ids to merge into the target.
source_commentstringnoOptional comment left on the merged-away tickets.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
target_commentstringnoOptional comment left on the target ticket.
ticket_idintegeryesTarget ticket id that survives the merge.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
job_statusobject
job_status.idstring
job_status.statusstring

Also retrieved by: "combine two duplicate support cases into one", "fold this ticket into the other one", "treat these two complaints as the same case".

zendesk.create_user

Create a new Zendesk user: a customer (end-user) or, with the right role, an agent. Use when the user wants to add, register, or create a new customer or contact in Zendesk. Requires a name and email.

Class write (writes, no confirmation needed). Scopes users:write. Calls POST /api/v2/users.json.

Arguments:

ArgumentTypeRequiredNotes
emailstringyesEmail address.
namestringyesFull name.
organization_idintegernoOrganization id to file the user under, from list_organizations.
phonestringnoOptional phone number.
rolestring, one of end-user, agent, adminnoZendesk role to grant. Default end-user.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.emailstring
user.idinteger
user.namestring
user.rolestring

Also retrieved by: "add a new customer to zendesk", "register a new contact in the help desk", "set up a new agent account".

zendesk.get_user

Get one Zendesk user's profile by id: name, email, role, and organization. Use when the user names a specific customer or agent. For many users at once use list_users, or search_users to find one by name or email.

Class read (reads only). Scopes users:read. Calls GET /api/v2/users/{{params.user_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
user_idintegeryesUser id, from list_users or search_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.created_atstring
user.emailstring
user.idinteger
user.namestring
user.organization_idinteger
user.phonestring
user.rolestring

Also retrieved by: "pull up a customer's zendesk profile", "check an agent's account details", "show me what we have on file for this person".

zendesk.update_user

Edit a Zendesk user's name, email, role, organization, or phone. Use when the user wants to edit, correct, or update a customer's or agent's own profile details.

Class write (writes, no confirmation needed). Scopes users:write. Calls PUT /api/v2/users/{{params.user_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
emailstringnoNew email address.
namestringnoNew full name.
organization_idintegernoNew organization id, from list_organizations.
phonestringnoNew phone number.
rolestring, one of end-user, agent, adminnoNew Zendesk role.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
user_idintegeryesUser id to edit, from list_users or search_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
userobject
user.emailstring
user.idinteger
user.namestring
user.rolestring

Also retrieved by: "fix a customer's phone number on file", "change someone's role in zendesk", "edit a contact's email address".

zendesk.delete_user

Permanently delete a Zendesk user. Use when the user wants to delete, remove, or purge a customer or agent record for good. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes users:write. Calls DELETE /api/v2/users/{{params.user_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
user_idintegeryesUser id to delete, from list_users or search_users.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "wipe a customer's record from zendesk for good", "purge an old contact entirely", "remove someone's account permanently".

zendesk.list_users

List Zendesk users, optionally filtered to one role or organization. Use when the user asks who exists in Zendesk, e.g. every agent or everyone in an organization, rather than a name or email lookup. For a keyword lookup use search_users.

Class read (reads only). Scopes users:read. Calls GET /api/v2/users.json.

Arguments:

ArgumentTypeRequiredNotes
organization_idintegernoRestrict to one organization's users. Omit for all.
rolestring, one of end-user, agent, adminnoRestrict to one role. Omit for all roles.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
usersarray of object
users[].emailstring
users[].idinteger
users[].namestring
users[].rolestring

Also retrieved by: "show me everyone in zendesk", "list all the agents in the help desk", "browse every contact in one organization".

zendesk.search_users

Search Zendesk users by name, email, or other field. Use when the user names a specific person by name or email rather than asking for a whole list. For every user in a role or organization use list_users.

Class read (reads only). Scopes users:read. Calls GET /api/v2/search.json.

Arguments:

ArgumentTypeRequiredNotes
querystringyesName, email, or Zendesk search syntax, e.g. "jane@example.com" or "type:user role:agent".
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
countinteger
resultsarray of object
results[].emailstring
results[].idinteger
results[].namestring
results[].rolestring

Also retrieved by: "find a customer by their email", "look up someone by name in zendesk", "who matches this email address in the help desk".

zendesk.create_organization

Create a new Zendesk organization (a company or account grouping customers). Use when the user wants to add, register, or set up a new company or account in Zendesk.

Class write (writes, no confirmation needed). Scopes organizations:write. Calls POST /api/v2/organizations.json.

Arguments:

ArgumentTypeRequiredNotes
detailsstringnoOptional free-text details about the organization.
namestringyesOrganization name.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
organizationobject
organization.idinteger
organization.namestring

Also retrieved by: "add a new company to zendesk", "register a new account grouping for customers", "set up a business record in the help desk".

zendesk.get_organization

Get one Zendesk organization's detail by id: name and details. Use when the user names a specific company or account. For the whole list use list_organizations.

Class read (reads only). Scopes organizations:read. Calls GET /api/v2/organizations/{{params.organization_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
organization_idintegeryesOrganization id, from list_organizations.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
organizationobject
organization.created_atstring
organization.detailsstring
organization.idinteger
organization.namestring

Also retrieved by: "pull up a company's zendesk record", "show me details for an account", "what do we have on file for this business".

zendesk.update_organization

Rename a Zendesk organization or edit its details. Use when the user wants to edit, rename, or retitle a company or account record.

Class write (writes, no confirmation needed). Scopes organizations:write. Calls PUT /api/v2/organizations/{{params.organization_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
detailsstringnoNew free-text details.
namestringnoNew organization name.
organization_idintegeryesOrganization id to edit, from list_organizations.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
organizationobject
organization.detailsstring
organization.idinteger
organization.namestring

Also retrieved by: "rename a company on file", "edit the details on an account record", "fix the name of a business record".

zendesk.delete_organization

Permanently delete a Zendesk organization. Use when the user wants to delete or remove a company or account record for good. Irreversible; the users that belonged to it are not deleted along with it.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes organizations:write. Calls DELETE /api/v2/organizations/{{params.organization_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
organization_idintegeryesOrganization id to delete, from list_organizations.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove a company from zendesk for good", "purge an account record entirely", "wipe a business record out completely".

zendesk.list_organizations

List every organization (company or account) in the Zendesk account. Use when the user asks what companies, accounts, or organizations exist in Zendesk, or wants to find one's id for another tool.

Class read (reads only). Scopes organizations:read. Calls GET /api/v2/organizations.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
organizationsarray of object
organizations[].idinteger
organizations[].namestring

Also retrieved by: "show me every company in zendesk", "what accounts exist in the help desk", "browse the whole organization list".

zendesk.list_groups

List the agent groups (teams) configured in Zendesk. Use when the user asks what teams or groups exist, or wants a group's id for assign_ticket.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/groups.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
groupsarray of object
groups[].descriptionstring
groups[].idinteger
groups[].namestring

Also retrieved by: "what teams exist in zendesk", "show me the agent groups configured", "which support teams are set up".

zendesk.get_group

Get one Zendesk agent group's detail by id: name and description. Use when the user names a specific team or group. For the whole list use list_groups.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/groups/{{params.group_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
group_idintegeryesGroup id, from list_groups.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
groupobject
group.descriptionstring
group.idinteger
group.namestring

Also retrieved by: "pull up details on a support team", "show me who's in a specific agent group", "what's this particular team called".

zendesk.list_macros

List the macros (canned reply and action bundles) configured in Zendesk. Use when the user asks what macros or canned responses exist, or wants a macro's id for preview_macro_on_ticket.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/macros.json.

Arguments:

ArgumentTypeRequiredNotes
activebooleannoRestrict to active (true) or inactive (false) macros. Omit for all.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
macrosarray of object
macros[].activeboolean
macros[].idinteger
macros[].titlestring

Also retrieved by: "what canned responses do we have set up", "show me the macros configured in zendesk", "list the quick-reply templates".

zendesk.preview_macro_on_ticket

Compute what a Zendesk macro would change on a ticket (its resulting status, priority, tags, or comment) without saving anything. Use when the user wants to preview, check, or see what a macro would do before applying it. Does not itself change the ticket.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/tickets/{{params.ticket_id}}/macros/{{params.macro_id}}/apply.json.

Arguments:

ArgumentTypeRequiredNotes
macro_idintegeryesMacro id, from list_macros.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
ticket_idintegeryesTicket id to preview against, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
resultobject
result.ticketobject
result.ticket.idinteger
result.ticket.prioritystring
result.ticket.statusstring
result.ticket.tagsarray of string

Also retrieved by: "check what a canned response would do to this ticket", "see what this macro would change before applying it", "preview a quick reply's effect on a support case".

zendesk.add_tags_to_ticket

Add one or more tags to a Zendesk ticket without removing its existing tags. Use when the user wants to tag, label, or categorize a ticket. To take tags off use remove_tags_from_ticket.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls POST /api/v2/tickets/{{params.ticket_id}}/tags.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
tagsarray of stringyesTags to add, e.g. ["billing", "vip"].
ticket_idintegeryesTicket id, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
tagsarray of string

Also retrieved by: "label this support case as billing", "tag this complaint as vip", "categorize this ticket with a tag".

zendesk.remove_tags_from_ticket

Remove one or more tags from a Zendesk ticket, leaving its other tags in place. Use when the user wants to untag, unlabel, or remove a category from a ticket. To add tags use add_tags_to_ticket.

Class write (writes, no confirmation needed). Scopes tickets:write. Calls DELETE /api/v2/tickets/{{params.ticket_id}}/tags.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
tagsarray of stringyesTags to remove, e.g. ["billing"].
ticket_idintegeryesTicket id, from list_tickets or search_tickets.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
tagsarray of string

Also retrieved by: "untag this support case", "take a label off this complaint", "drop a category tag from this ticket".

zendesk.list_views

List the ticket views (saved filters like "Unassigned tickets" or "My open tickets") configured in Zendesk. Use when the user asks what views or queues exist, or wants a view's id for list_tickets_in_view.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/views.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
viewsarray of object
views[].activeboolean
views[].idinteger
views[].titlestring

Also retrieved by: "what saved filters exist in zendesk", "show me the ticket queues set up", "what views can I look at".

zendesk.list_tickets_in_view

List the tickets currently sitting in one Zendesk view (saved filter), e.g. everything in "Unassigned tickets" right now. Use when the user asks what's in a specific view or queue. For the whole account use list_tickets.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/views/{{params.view_id}}/tickets.json.

Arguments:

ArgumentTypeRequiredNotes
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".
view_idintegeryesView id, from list_views.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
ticketsarray of object
tickets[].idinteger
tickets[].prioritystring
tickets[].statusstring
tickets[].subjectstring

Also retrieved by: "show me what's in the unassigned queue", "pull up every case in my open tickets view", "what's sitting in this saved filter right now".

zendesk.list_satisfaction_ratings

List the customer satisfaction (CSAT) ratings left on Zendesk tickets. Use when the user asks about customer satisfaction scores, CSAT, or ratings across many tickets. For one known rating use get_satisfaction_rating.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/satisfaction_ratings.json.

Arguments:

ArgumentTypeRequiredNotes
scorestring, one of good, bad, good_with_comment, bad_with_commentnoRestrict to one score kind. Omit for all.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
satisfaction_ratingsarray of object
satisfaction_ratings[].commentstring
satisfaction_ratings[].idinteger
satisfaction_ratings[].scorestring
satisfaction_ratings[].ticket_idinteger

Also retrieved by: "how are our csat scores looking", "show me customer satisfaction ratings", "what feedback have customers left on tickets".

zendesk.get_satisfaction_rating

Get one Zendesk customer satisfaction (CSAT) rating's detail by id: score, comment, and which ticket it belongs to. Use when the user names a specific rating. For many ratings use list_satisfaction_ratings.

Class read (reads only). Scopes tickets:read. Calls GET /api/v2/satisfaction_ratings/{{params.rating_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
rating_idintegeryesSatisfaction rating id, from list_satisfaction_ratings.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
satisfaction_ratingobject
satisfaction_rating.commentstring
satisfaction_rating.idinteger
satisfaction_rating.scorestring
satisfaction_rating.ticket_idinteger

Also retrieved by: "pull up one customer's satisfaction score", "check the comment left on this csat rating", "what did this particular customer say in their feedback".

zendesk.search_help_center_articles

Search Zendesk's public help center (Guide) knowledge base articles by keyword. Use when the user asks whether a help article, doc, or FAQ already answers a question, before opening a support ticket. For one known article use get_help_center_article.

Class read (reads only). Scopes hc:read. Calls GET /api/v2/help_center/articles/search.json.

Arguments:

ArgumentTypeRequiredNotes
localestringnoLocale to search, e.g. "en-us". Omit for the default locale.
querystringyesSearch keywords.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
resultsarray of object
results[].html_urlstring
results[].idinteger
results[].titlestring

Also retrieved by: "is there a help doc that answers this", "search the knowledge base for an faq", "look for an existing article before opening a ticket".

zendesk.get_help_center_article

Get one Zendesk help center article's full content by id: title and body. Use when the user names a specific article. For keyword lookup across all articles use search_help_center_articles.

Class read (reads only). Scopes hc:read. Calls GET /api/v2/help_center/articles/{{params.article_id}}.json.

Arguments:

ArgumentTypeRequiredNotes
article_idintegeryesArticle id, from search_help_center_articles.
localestringnoLocale to fetch, e.g. "en-us". Omit for the default locale.
subdomainstringyesZendesk account subdomain, e.g. "acmesupport".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
articleobject
article.bodystring
article.html_urlstring
article.idinteger
article.titlestring

Also retrieved by: "pull up the full text of this help article", "show me what this knowledge base doc says", "read me the whole content of this faq entry".