Hi,
I am using Frappe Helpdesk on a private bench. I have the following requirement:
When Agent 1 reassigns a ticket to Agent 2, the customer should
automatically receive an email notification like:
“Your ticket #TICKET-001 has been assigned to James.
They will get back to you shortly.”
What I have tried:
- Notification on ToDo doctype (New event) — but unable to
fetch customer email dynamically from HD Ticket
- Server Script on HD Ticket Before Save — but unsure if
this works on Helpdesk portal context
Questions:
- Is there a standard way to handle this in Frappe Helpdesk?
- Does Server Script on HD Ticket fire when assignment
changes from Helpdesk agent view?
- Is there a hook or override available for this in
Helpdesk app itself?
Frappe Version: 16
Helpdesk Version: 1.22.2
Thanks
Easiest fix is a Server Script:
- Script Type: DocType Event
- Reference Document Type: ToDo
- Doctype Event: After Insert
if doc.reference_type == "HD Ticket" and frappe.db.exists("HD Agent", doc.allocated_to):
ticket = frappe.get_doc("HD Ticket", doc.reference_name)
if ticket.raised_by:
agent = frappe.db.get_value("HD Agent", doc.allocated_to, "agent_name")
frappe.sendmail(
recipients=[ticket.raised_by],
subject=f"Your ticket #{ticket.name} has been assigned",
message=f"Your ticket #{ticket.name} has been assigned to {agent}. They will get back to you shortly.",
reference_doctype="HD Ticket",
reference_name=ticket.name,
)
This fires no matter where the assignment happens, agent desk, portal, or the API, because they all go through the same ToDo.
Note: I did not test the code so no guarantee that it works out of the box
Bringing this one back up because it’s an interesting topic! Marc’s suggestion about using a Server Script sounds promising. Has anyone tried implementing this solution? I’m wondering if there are any updates on its effectiveness or any tweaks that might improve it. Also, any additional examples of similar scripts or hooks would be awesome to see if anyone has them to share!