Pre-send checks
Kula checks every campaign, flow email and transactional template for mistakes that hurt delivery or look careless: an empty first name, a broken link, an email Gmail cuts in half. The checks are fixed rules, run by Kula. Nobody reads your emails.
Where you see them
- Checks panel next to the editor of a campaign, a flow email or a template. It runs when you save, and Check again runs it on demand.
- Before a campaign leaves: if something was found, Kula lists it with Fix first and Send anyway.
- Ask the assistant to fix hands the findings to the assistant, which corrects the draft and tells you what it left.
Warnings never stop you
Every finding is a warning: you can always send. One exception: a link that Google flags as dangerous (malware, phishing). A campaign, flow or template with such a link can't be scheduled, activated or published until the link goes. A scheduled campaign is checked again when it leaves.
What is checked
Variables
| Finding | Why it matters |
|---|---|
| Missing data | The email uses {{ contact.first_name }} without a default, and at least 1% of the recipients have no first name: they read "Hi ,". Add a default: {{ contact.first_name | default: "there" }} |
| Unknown variable | No contact of the space has this attribute, often a typo (frist_name). data.* only exists in transactional emails |
| Invalid variable | {{ ... }} that isn't a valid variable is sent as written |
An email without variables, or whose variables all have a default, raises nothing here.
Content
| Finding | Why it matters |
|---|---|
| Too heavy for Gmail | Over about 100 KB once sent, Gmail cuts the email and hides the rest, unsubscribe link included |
| Mostly images | Little text and some images: spam filters distrust it, and readers who block images see nothing |
| Missing alternative text | Shown instead of the image when images are blocked |
Subject in capitals, !!! or $$$ | Spam filters and readers distrust it |
| Long subject | Inboxes cut subjects after about 60 characters |
Links
| Finding | Why it matters |
|---|---|
| Broken link | The page answers an error (404, 410, 5xx) or the domain doesn't exist |
| Link shortener | bit.ly and the like are shared by spammers, so filters distrust them |
| Misleading link | The text shows one address and the link goes to another: a phishing pattern |
| Link to an IP address | Instead of a domain: a spam pattern |
| Insecure link | http:// instead of https:// |
| Dangerous link | Flagged by Google (Web Risk) as malware or phishing. Blocks sending |
Kula checks up to 30 links per email. A site that refuses robots, or doesn't answer in time, is never reported as broken: the panel says how many links couldn't be checked.