HelpWP fires WordPress action hooks at every important moment in a doc’s or ticket’s life. Hook into them to add Slack notifications, log to your own table, sync to a CRM, or anything else.
Tickets
Hook
Args
Fired when
helpwp-tickets-ticket_created
$ticket
A new ticket is created (front-end form or REST POST).
helpwp-tickets-client_commented
$ticket
A client posts a comment on a ticket.
helpwp-tickets-agent_commented
$ticket
An agent posts a comment on a ticket.
helpwp-tickets-ticket_status_changed
$new, $old, $ticket
A ticket’s status changes (and both statuses are valid).
helpwp-tickets-ticket_status_{new}_to_{old}
$ticket
Same event, dynamic name. Useful for very specific filters.
helpwp-tickets-agent_changed
$new_agent_id, $old_agent_id
The assigned agent of a ticket changes.
helpwp_tickets_comment_added
$comment_id, $ticket_id
Any comment was added (low-level, fires before the role-specific hooks).
helpwp-tickets-ticket_model_status_changed
(no args)
Internal, fires inside the Ticket model right after a status set.
Auth and users
Hook
Args
Fired when
helpwp-tickets-code_generated
$email, $code
A login verification code is generated. Used by the email controller to send the code.
helpwp-tickets-user_found
$data
An existing user was matched during the login flow.
helpwp-logged_in
$user_id
A user just signed in via the helpwplogin flow.
helpwp_user_inserted
$user_id
A brand-new HelpWP user was created during login.
Docs
Hook
Args
Fired when
helpwp-doc_created
$doc
A doc is created via REST.
helpwp-after_doc_content
$doc
Inside the single-doc template, after the post body. Use this to inject a “was this helpful?” widget, related-articles block, etc.
AI
Hook
Args
Fired when
helpwp_ai_auto_respond
$ticket_id
The auto-responder cron job. Single argument: the ticket ID. Use this if you want to replace the bot reply behavior end-to-end.
A practical example
Send a Slack message every time a Severe urgency ticket lands: