agent: |
yVNLxaYN8atzQuGYIY7xMark Ticket as Solved in Zendesk
Mark Ticket as Solved in Zendesk
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task updates the status of a selected ticket to 'solved', indicating the issue has been addressed and resolved in the Zendesk support system.
inputs
outputs
import zenpy
from zenpy.lib.exception import ZenpyException, RecordNotFoundException, APIException
# Credentials for Zendesk API
creds = _get_creds(cred_label)['creds']
ZENDESK_EMAIL = creds['username']
ZENDESK_TOKEN = creds['password']
#ZENDESK_SUBDOMAIN = 'your-subdomain'
# Initialize Zenpy client
client = zenpy.Zenpy(email=ZENDESK_EMAIL, token=ZENDESK_TOKEN, subdomain=ZENDESK_SUBDOMAIN)
def mark_ticket_solved(ticket_id):
"""
Marks a Zendesk ticket as solved.
Args:
ticket_id (int): The ID of the ticket to be marked as done.
The function checks if the ticket exists and is in a markable state (i.e., not already solved or closed),
then updates its status to 'solved'.
"""
try:
# Retrieve the ticket by its ID
ticket = client.tickets(id=ticket_id)
# Check if the ticket is already in a final state (solved or closed)
if ticket.status in ['solved', 'closed']:
print(f"Ticket {ticket_id} is already marked as {ticket.status}.")
return
# Update the ticket status to 'solved'
ticket.status = 'solved'
client.tickets.update(ticket)
print(f"Ticket {ticket_id} has been marked as done (solved).")
except RecordNotFoundException:
# Handle case where the ticket ID does not exist
print(f"Ticket ID {ticket_id} does not exist in Zendesk.")
except APIException as api_ex:
# Handle API related exceptions
print(f"APIException occurred: {api_ex}")
except ZenpyException as zen_ex:
# Handle other Zendesk related exceptions
print(f"ZenpyException occurred: {zen_ex}")
except Exception as e:
# Catch-all for any other unexpected exceptions
print(f"An unexpected error occurred: {e}")
mark_ticket_solved(TICKET_ID_TO_UPDATE)
copied