How to stop Zendesk replies going out with unfilled placeholders
By Jake Marsh · Updated
To stop agents sending Zendesk replies with unfilled blanks, install Heedwell and leave Ask when a reply has a blank to fill in on. When an agent presses Submit on a public reply that still holds something like [Customer name], {{first_name}}, <<date>>, XX or TODO, Heedwell opens a window naming each blank. To make blanks impossible to send publicly, also turn on Block replies with blanks instead of asking.
Steps
- Install Heedwell from the Zendesk Marketplace.
- Open its settings in Admin Center > Apps and integrations > Apps > Zendesk Support apps > Heedwell.
- Check that Ask when a reply has a blank to fill in is on. It is on by default.
- Choose ask or block. Leave Block replies with blanks instead of asking off to let agents send anyway after a warning. Turn it on to stop the reply until the blank is filled or the reply is sent as an internal note.
- Test it. Open a ticket, choose Public reply, type "Hi [Customer name]" and look at the Heedwell sidebar. It shows Would ask (or Would block) with the reason "The reply still has a blank to fill in".
What counts as a blank
| Pattern | Flagged | Examples |
|---|---|---|
| Double curly braces that aren't Zendesk placeholders | Yes | {{first_name}}, {{order}} |
| Zendesk placeholders | No, Zendesk fills them at save | {{ticket.requester.first_name}}, {{current_user.name}} |
| Square brackets with a placeholder word | Yes | [Customer name], [insert link], [date], [order number] |
| Square brackets in capitals | Yes | [ORDER NO], [PLACEHOLDER] |
| Double angle brackets | Yes | <<date>>, <<amount>> |
| Marker words in capitals | Yes | TODO, TBD, FIXME, XX, XXX |
Ordinary bracketed text like "[see below]" isn't flagged unless it holds one of the placeholder words.
Ask or block: what the agent sees
| Setting | Agent presses Submit | Agent's options |
|---|---|---|
| Ask (default) | A window: Send this as a public reply? with each blank listed | Go back and edit, or Send publicly |
| Block | No window: Zendesk shows a red notice, "Heedwell stopped this public reply", with each blank, and the reply isn't sent | Fill in the blank, or send it as an internal note |
In ask mode the window also lists who gets the email: the requester and every CC. In block mode a blank stops the reply even when other checks would only ask.
Keep the check useful
- Put real Zendesk placeholders in your macros, such as
{{ticket.requester.first_name}}, so Heedwell leaves them alone and Zendesk fills them in. - Use one blank style across your macros, such as
[Customer name], so agents learn to look for it. - If a word in square brackets is part of your normal replies and fires too often, rewrite it in the macro.
Combine it with other checks
The same Submit check covers more than blanks: "attached" with no file, words meant for your team, links to other tickets, email addresses not on the ticket, and an internal note switched to public. The Heedwell documentation lists every check and its default.
What it costs
Heedwell is $2 per agent per month after a 14-day free trial, billed monthly by Zendesk, with every check included.
Heedwell
Public reply guard: asks before a risky public reply goes out and says why. Notes are never checked. $2 a month per agent.
Questions
Can I prevent agents from submitting a reply that contains specific words?
Yes. Besides blanks, Words meant for your team only takes your own words and phrases and asks before a public reply containing one. Only blanks can be set to block.
Does it check internal notes?
No. Internal notes are never checked, so agents can leave themselves blanks in notes.
Does it work on macros applied by triggers or the API?
No. Heedwell checks replies sent from the Zendesk agent interface when the agent presses Submit. Replies by email, API or other apps aren't checked.
Will {{ticket.requester.first_name}} trigger it?
No. Zendesk placeholders such as that one are fine, because Zendesk renders them when the reply is saved.