Why doesn’t my webhook payload include the URL behind a link in a ticket comment?

Why link URLs aren't in my webhook payload

When the system sends comment placeholders to a webhook or URL target, the system renders the content as unformatted text instead of full HTML. Because of this, the webhook payload won't include hyperlinks that exist only as the underlying href of a button or formatted HTML link.

For example, a ticket comment can contain text or an image with a hyperlink, such as Click here.

When a webhook payload uses a comment placeholder, it includes only the visible text associated with an image or link, not the destination URL behind it. Any image URL that appears in the payload is typically the attachment or hosted image URL stored by the system, not the hyperlink target behind the image or button.

This happens when you use comment data placeholders such as:

ticket.description

ticket.latest_comment_html

ticket.latest_public_comment

ticket.latest_public_comment_html

Why does the link still work in the Zendesk UI?

The Zendesk ticket interface can render email or comment content to view, which includes clickable images, buttons, or formatted links. However, webhook placeholders don't return the same content as fully preserved HTML. Instead, they use a processed text version of the comment or description.

As a result, the behavior in the UI can differ from the content in the webhook payload.

Why do some links still appear in the payload?

Some links can still appear if they are present in the plain-text version of the email or comment.

For example, a webhook payload can include:

a raw URL written directly in the message

a link preserved in plain text or Markdown format

image or attachment links represented in a text-friendly format

By contrast, links embedded only inside more complex HTML structures, such as table-based buttons, won't be preserved in the webhook payload.

Is there a placeholder that reliably returns the hidden URL?

There's no placeholder that reliably extracts and returns the underlying hyperlink URL for button-style or HTML-formatted links in webhook payloads.

What can I do if I need the exact URL from the ticket comments?

If your workflow requires the actual hyperlink destination, consider one of these approaches:

Option 1: Extract the URL and store it in a custom ticket field. Use your own logic to parse the inbound email or comment, extract the URL, and write it into a custom ticket field. You can then use the custom ticket field placeholder to include that custom field in your webhook payload.

Option 2: Use the Ticket Comments API:

Do not rely on the webhook payload to contain the link. Instead, send the ticket ID in the webhook payload and have your external system call the Ticket Comments API to retrieve the comment content and parse the URL there.

This is generally the most reliable approach if you need to work with the actual hyperlink destination.