Hi Zendesk team,
Zendesk already provides HTML comment placeholders like {{ticket.latest_public_comment_html}} and {{ticket.latest_comment_html}} that return properly rendered HTML when used in email notifications. However, as documented, when these same placeholders are sent to a URL target or webhook, unformatted text is used instead of HTML.
This is a significant limitation for third-party integrations. In our case, we sync Zendesk ticket comments to Freshservice. Agent signatures contain rich content (bold text, images, links, horizontal rules) that renders correctly in HTML. But when sent through a webhook, the HTML placeholders are stripped down to plain text, leaving raw Markdown syntax like , **, and --- visible in the receiving system.
The irony is that the data already exists in the right format — the Ticket Comments API returns a perfectly rendered html_body field. But since webhooks don't preserve the HTML formatting of these placeholders, we're forced to set up an external middleware (Power Automate, Lambda, etc.) that:
1. Receives the webhook with just the ticket ID
2. Makes an extra API call back to Zendesk to fetch the comment's html_body
3. Forwards the HTML to the third-party system
This adds unnecessary complexity, latency, and an additional API call per comment — to retrieve data that Zendesk already has and already renders correctly for email notifications.
Proposed solution:
Allow HTML comment placeholders ({{ticket.latest_public_comment_html}}, {{ticket.latest_comment_html}}, etc.) to retain their HTML formatting when used in webhook payloads, rather than converting them to plain text. This could be an opt-in setting per webhook, or a new set of dedicated placeholders for webhook use.
This would greatly simplify integrations with third-party ITSM tools (Freshservice, ServiceNow, Jira Service Management) and reduce unnecessary API overhead.
Thank you for considering this!