← All Field Notes
GHL · Digital Marketing Agency · Sep 24, 2026

We Pasted A Working Example Into Our Course, And The Platform Deleted The Important Part

We Pasted A Working Example Into Our Course, And The Platform Deleted The Important Part

Key takeaways

Every automation we build gets an entry in a course that lives inside our CRM's membership area. It is organised into 13 chapters, and each entry says what the automation does, what triggers it and what can go wrong with it. We do not type those lessons into the course editor. We write them in files, and a script pushes the text into the course through the platform's interface.

That is the only way a course with that many entries stays accurate. It also means the course is only as good as what the platform actually keeps when we push to it.

A success that was 40 characters short

On September 6 we pushed an update. Every lesson answered success.

We do not stop at success anymore, for reasons that will be clear in a minute. After a push we pull every lesson back down and compare it to what we sent, character for character, with spacing tidied up so line breaks do not count.

Chapter 4 came back 40 characters shorter.

The difference was one example. Chapter 4 has a lesson about a trap in links that carry a contact's name. When you put the contact name merge field into a link, the name can get cut off at the first space, so a lead named Mary Ann arrives as Mary. The lesson showed the exact link that goes wrong, with the merge field sitting in it.

The platform stored the link with the merge field removed. The example now showed a link with an empty value on the end, which teaches nothing, in the one lesson whose whole job was that example.

Diagram comparing what was sent and what was stored: the lesson went out with a link carrying the contact name merge field, the platform's merge processor filled it in with nothing because a lesson has no contact, and the stored lesson came back 40 characters shorter with an empty value where the example was

Why it happened

Merge fields are the placeholders in double curly braces that a CRM fills in for each contact. Hi, then the first name. They are the reason one email template can greet a thousand people by name.

The platform runs every lesson through that same merge processor before saving it, probably so course owners can personalise lessons for each member. But a lesson being saved has no contact attached. So the processor looked at our example, found a merge field, filled it with the only value it had, which is nothing, and saved the result.

We could not escape our way out of it either. Escaping is what you do on the way out, so a special character is treated as text. The merge processor runs on the platform's side, after we have sent it, so any escaping we did was already gone by the time it ran.

It was the second rewrite that week

This is why we compare instead of trusting success. The day before, the same kind of pull had found 10 of 13 lessons coming back a few dozen characters short. Every difference was the platform turning escaped angle brackets back into real ones, 70 of them across four chapters.

That sounds harmless until you see what it does to a placeholder. Our lessons write things like an address with an ID in angle brackets on the end. Stored raw, a browser reads that ID as an unknown tag and hides it. The address in the lesson just stops halfway.

Two different rewrites, one save, both silent. One changes characters and one deletes content.

Diagram of the check that now runs after every push: pull every lesson back, compare to what was sent with spacing normalised, allow only the three known angle bracket and ampersand changes, and treat any other difference as a rewrite to explain

What we changed

Three things. The comparison runs after every single push, and it allows exactly the three character changes we already know about. Anything else is a rewrite we have not explained yet, and it gets looked at before we call the push done.

We stopped writing a literal merge field anywhere in a lesson. The lesson now describes it in words, a link carrying the contact name merge field, which a reader understands and the processor has nothing to grab.

And placeholders are written without angle brackets, so there is nothing for a browser to hide.

What this means for your business

Your tools rewrite what you paste into them more often than you would think. Paste from a word processor into a website builder and the quotes and spacing change. Put a merge field in an email and send it to a contact with no first name, and they get "Hi ," with a lonely comma. Type a special character into a text message and a whole message can get split in two.

None of these throw an error. The editor shows what you wrote. The customer sees what was kept.

Three things worth doing this week. Send your main email template to a test contact with no first name and read what arrives. Open one published page on your phone, not in the editor, and read it top to bottom. And if you train your team with written SOPs inside a course or a document tool, open the published version of one lesson and check that every example is still there.

For a GHL consultant Bay Area business running courses or email templates, the merge field test takes two minutes and catches the most embarrassing version of this.

Want this built for you

We build systems that check what was actually saved, not just what was sent. Start at optechsol.llc.

Want this working in your business?
Get my plan ← Back to all Field Notes