Common mistakes — Messages
1. Variables that don't exist
Typo a variable path and at runtime it resolves to nothing — the recipient sees a blank where the value should be:
Dear , your application from to has been approved.
The Preview button catches this. The Checklist tab catches it too — unresolved variable paths flag the message as not ready.
2. Forgetting the source table
Without a source table you can't reference fields with the table name.
You only get system variables ({{ now }}, {{ user.name }}).
If your message is about a record (most are), bind the source table.
3. Hardcoded names instead of variables
Dear Ahmad, ← BAD: only works for Ahmad
Dear {{ staff.full_name }}, ← GOOD: works for everyone
The whole point is one template, many sends.
4. Recipients pointing at the wrong column
You set recipients to staff.email but the column is actually
email_address. The send fails silently (or worse, picks up a default
mailbox).
Always preview a real recipient address before publishing.
5. HTML in Markdown mode
Markdown supports inline HTML, so <b>bold</b> works — but it's
fragile. If you find yourself wanting a custom layout (a table, a
header image, two columns), switch the body to Source mode and
write proper HTML.
6. Letters without the letterhead
For official Letter-category messages the agency letterhead and signature block live in Settings. If you publish without those checked, the printout has no header — it'll look like a draft.
7. Not testing on real data
Preview uses a sample record. The real records will be different. Once your message is active, send a test to yourself with a real ID before letting it loose on actual users.
When in doubt
Open the Checklist tab in this drawer.