Playbooks · 5 min read

When Misspelling Is Normal: Triggers for Learner Inboxes

The PostEngage teamEngineering and support ·

Most advice about keyword triggers quietly assumes the person typing knows how to spell the word you are watching for. For a language-learning audience that assumption is not slightly wrong, it is backwards. Errors are not the exception in your comments. They are the middle of the distribution.

That is not a problem with your students. It is a property of your inbox, and it has a specific effect on a specific mechanism, which is what this post is about. If you want the business version — pricing, placement, what to capture — that is the coaching post. This one is the machinery.

The structural fact everything follows from

Matching happens before generation. Always, and with no exceptions.

A comment arrives, the matcher compares it against your keyword list, and only if something matches does anything else happen — the checks, the reply, the model. The model is good at reading messy text. It never sees the message unless a literal string matched first.

An AI that could easily have understood "wat is the fees for begginer" is not consulted, because a string comparison already said no.

So the intelligence in this system is in your keyword list, not downstream of it. Time spent there is the highest-leverage hour in the whole setup.

What the matcher forgives

Three classes of error cost you nothing, and it is worth knowing them so you stop planning around them.

Capitalisation. FEES, Fees and fees are one string.

Punctuation around a word. fees?, fees!!! and fees all match a keyword of fees. Trailing emoji and stray invisible characters are stripped too.

Missing accents. This is the big one for European languages, because dropping accents is the single most common thing a learner does on a phone keyboard. Accents are folded away before comparison, so a keyword of debutant matches débutant, espanol matches español, and fur matches für. You do not need both spellings. You need one.

The exception worth knowing: characters that are not an accented form of another letter do not fold. straße and strasse are two different strings, so if you teach German, both go in the list.

What it does not forgive

Whole words only. A keyword of fee does not match fees. It is not a prefix search. Every ending you receive is its own entry.

Internal misspellings. beginner does not match begginer, beginer, or bigginer.

Apostrophes inside a word. An apostrophe is a boundary, so dont and don't are different strings. For learner audiences that drop apostrophes constantly, both go in.

None of this is fixable by being cleverer about one keyword. It is fixed by having more of them.

The builder with a long any-of keyword list of spelling variants, and the preview panel replaying real comments against it.
The preview replays comments you have already received. It is the only honest way to find out which spellings your keyword list is currently walking past.

Harvest the misspellings, do not imagine them

The instinct is to sit down and brainstorm every way a word could be misspelled. This produces a long list of errors nobody makes and misses the two everybody does.

Read your own comments instead. Fifty is enough. Write down every variant that actually appeared. What you will find is that misspellings are not random — a given learner population makes the same handful of errors, shaped by their first language, and those handful are what you list.

Then paste the list into the builder and watch the preview replay your real comments against it. A variant you invented and never receive costs nothing. A variant you receive and did not list costs you the enquiry.

Choose trigger words learners get right

This is the technique that beats all the others, and it is one decision rather than an ongoing chore.

Some words are reliably typed correctly by beginners: short, high-frequency, phonetically plain. class, fee, time, book, join, price, level, start. Other words are the exact words learners cannot yet spell: pronunciation, vocabulary, conjugation, grammar, certificate, intermediate.

Both sets appear in enquiries. Only the first set belongs in a trigger.

Numbers and level codes are even better, because students copy them rather than spell them. a1, b2, n5, n4, ielts, 7.5 are typed correctly almost every time, and they carry more information than any adjective. Somebody who types n5 has told you their level without being asked.

The negatives fail the same way

Negative keywords are literal strings too, and they are checked with the same rules. A negative of not interested will not stop a reply to not intrested.

That is fine for tidiness and not fine for anything that matters. Do not lean on a negative keyword as your safety mechanism for something you must never reply to. Scope the automation to specific posts instead, so the thing you must not answer never reaches it in the first place.

When a reply does get written

Once something matches, the message the model sees is the raw one, errors and all. Two things follow.

The review queue holding generated replies that came back with low confidence, waiting for a person to approve or edit.
Messy input tends to produce less confident output. Holding those for review is cheaper than sending a confident answer to a question you misread.

First, ambiguity goes up. A short, misspelled message carries very little context, and a confident reply to a half-understood question is worse than no reply. Low-confidence replies going to a review queue rather than straight out is the setting that matters most for this audience.

Second: do not have your automation correct anybody's spelling. It reads as a teacher grading a stranger who was trying to buy something. Answer the question in plain, short sentences and leave the correction for the class they are paying for.

If your audience writes in more than one script rather than just imperfect spelling, the localization post is the one that covers that properly.

One email when we publish.

No drip sequence, no “quick question” follow-up. Unsubscribe is one click and we honour it immediately.

Try it on your own posts

Free forever. Three minutes to set up.

Start free