franchise systemsSMS systems

SMS and 10DLCYou write texts into a number that cannot legally deliver them

You built missed-call text-back on a number that is not registered. Carriers filter you. You call it 'SMS doesn't work for our audience.' It is not the audience.

00

The short version

Intern through CEO

Read it once, then stop negotiating with it. SMS and 10DLC for franchise systems is a wiring job: register → opt-in → stop → delivery. Objects, then edges, then one test conversion. You do not need a new tool to start. You need the first writer to land on one contact this week.

  1. 01

    Franchise systems do not have a SMS and 10DLC problem because they lack SMS systems. They have it because you write texts into a number that cannot legally deliver them.

  2. 02

    Wire these objects first: Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types.

  3. 03

    Then these edges, in order: Brand + campaign registered → numbers attached; unregistered send is not 'we text' · Opt-in → stored on the contact with source (form, keyword, checkout) · STOP → halt; help/YES as you registered; logs exist · Delivery → you can name delivered vs failed, not only 'sent'

  4. 04

    Done looks like a test you can repeat: Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak.

  5. 05

    Start here: Brand and campaign are registered

In even plainer words

Franchise systems already have SMS systems. The leak is not a missing feature. You write texts into a number that cannot legally deliver them. Software did not cause it. A missing write-in did: the person exists in one tool and not in the pipeline.

Here is how you actually wire it. Name the objects: Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types. Then connect these edges, in order: Brand + campaign registered → numbers attached; unregistered send is not 'we text' · Opt-in → stored on the contact with source (form, keyword, checkout) · STOP → halt; help/YES as you registered; logs exist · Delivery → you can name delivered vs failed, not only 'sent'. If you skip an edge, the next one is decoration. If you add a SMS systems feature first, you usually skip an edge without noticing.

Prove it with a test, not a screenshot. Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak. How you know it worked on the board: Campaign is approved (before you scale texts). If that number is a vibe, do not add traffic.

What to do this week, and only this week: Brand and campaign are registered An intern can run the objects page and one test conversion. A CEO should protect that from a second priority.

Who

Same system. Three jobs.

Read your row

Intern

What you actually do

Day one: you write texts into a number that cannot legally deliver them — check 10DLC (or your country's equivalent). Opt-in field. STOP test. Do not write more copy. Registration and opt-in are the objects.

Operator

What you protect

You already feel you write texts into a number that cannot legally deliver them. You write texts into a number that cannot legally deliver them. Protect one sequence for 90 days. The four moves are register → opt-in → stop → delivery. The edges are Brand + campaign registered → numbers attached; unregistered send is not 'we text' then Opt-in → stored on the contact with source (form, keyword, checkout). Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text.

CEO

What you refuse to fund

This is a money leak, not a preference about tools. You built missed-call text-back on a number that is not registered. Until campaign is a number you will defend, buying more traffic or more seats makes the leak more expensive. Refuse a second database: Brand + campaign registered → numbers attached; unregistered send is not 'we text'.

Example

A Tuesday that looks familiar

Before / after

Before

Tuesday. Someone among franchise systems. You write texts into a number that cannot legally deliver them. SMS systems is open. A colleague asks where a person sits. The answer is a screenshot, a Slack thread, or “I think they’re interested.” The writer (form, calendar, shop, or phone) and the pipeline are two databases.

After

Same Tuesday, after write-in exists. Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text. Brand + campaign registered → numbers attached; unregistered send is not 'we text' The next move is written. That is the difference between a login and a system.

Worked example

Keep it this plain. A person in franchise systems already paid for SMS systems. You write texts into a number that cannot legally deliver them. They add a page, a form, a calendar. None of it writes into a spec. By Friday the calendar has ghosts and the pipeline still looks like the snapshot.

The fix is not a better template. Brand and campaign registered. Prove write-in: Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak. This week is one move: Brand and campaign are registered If that feels too small, that is the point. Operators fail by starting at move four.

01

Leak versus system

SMS systems

The leak

You built missed-call text-back on a number that is not registered. Carriers filter you. You call it 'SMS doesn't work for our audience.' It is not the audience.

The system

Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text.

How it actually works

10DLC is paperwork with teeth: brand, campaign use case, sample messages, opt-in screenshot. Do it before you scale volume. A clever workflow on an unregistered number is how you burn the domain of trust you do not have.

Store the opt-in source and date on the contact. Test STOP. Watch a live delivery, not a 'sent' count in GHL. Sent is not delivered. If you cannot see the difference, do not buy more traffic into SMS.

Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text.

You write texts into a number that cannot legally deliver them when brand and campaign are unregistered. Brand and campaign are registered; opt-in is stored on the contact; STOP works. You can name delivery, not just 'we text'. This is not paperwork theatre — carriers will silently fail you. Use-case must match what you registered (marketing vs two-factor); mixing is how you get blocked.

Wire every SMS workflow to the opt-in field. Importing a list of phones without opt-in is not a growth hack; it is how you burn the number. Forms that collect phone must say SMS consent if you will text marketing. Conversations still owns the thread. Delivery logs are reviewed when a campaign 'feels quiet' — quiet may be failed, not ignored.

Two databases: a Twilio side account and GHL SMS, or a location texting from a personal line. Pick the registered number. The intern verifies registration and STOP. They do not argue with marketing about emoji. If a franchise location wants their own number, that number needs its own registration path or it will fail independently. Document it.

Wire

How to connect it

Objects, then edges, then a test

Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types.

  1. 01

    Brand + campaign registered → numbers attached; unregistered send is not 'we text'

  2. 02

    Opt-in → stored on the contact with source (form, keyword, checkout)

  3. 03

    STOP → halt; help/YES as you registered; logs exist

  4. 04

    Delivery → you can name delivered vs failed, not only 'sent'

Prove write-in

Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak.

Day one: you write texts into a number that cannot legally deliver them — check 10DLC (or your country's equivalent). Opt-in field. STOP test. Do not write more copy. Registration and opt-in are the objects.

02

The spine

Scan first
01

Register

Brand + campaign approved before volume.

02

Opt-in

Source and date on the contact. Screenshot in the campaign file.

03

STOP

A real STOP test. Confirmed on the contact.

04

Delivery

Watch delivered, not sent. One number you will defend.

Steps

Do this in order

Why, then done when
  1. 01

    Write the leak in one sentence

    On one line, for franchise systems: You write texts into a number that cannot legally deliver them. Add who gets hurt (calendar, cash, inbox, or reputation). If two people write different sentences, you do not agree yet — stop and agree.

    Why: Teams skip this and jump into settings. Then every person is fixing a different problem with the same login.

    Done when: One sentence. Shared. No adjectives required.

  2. 02

    Name the objects

    Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types.

    Why: If objects aren't named, software invents a second database.

    Done when: A stranger can list them.

  3. 03

    Register

    Brand + campaign approved before volume. Then wire: Brand + campaign registered → numbers attached; unregistered send is not 'we text'

    Why: Franchise systems cannot skip this edge. You write texts into a number that cannot legally deliver them when brand and campaign are unregistered. If it is not true, SMS systems is already a second database.

    Done when: Brand + campaign registered → numbers attached; unregistered send is not 'we text' is true on a test.

  4. 04

    Opt-in

    Source and date on the contact. Screenshot in the campaign file. Then wire: Opt-in → stored on the contact with source (form, keyword, checkout)

    Why: Franchise systems skip this and the leak returns as a private language. Wire every SMS workflow to the opt-in field. Spec tags, fields, and states have to be the same objects the next workflow will read.

    Done when: Opt-in → stored on the contact with source (form, keyword, checkout) is true on a test.

  5. 05

    STOP

    A real STOP test. Confirmed on the contact. Then wire: STOP → halt; help/YES as you registered; logs exist

    Why: Franchise systems feel this as You write texts into a number that cannot legally deliver them. Two databases: a Twilio side account and GHL SMS, or a location texting from a personal line.

    Done when: STOP → halt; help/YES as you registered; logs exist is true on a test.

  6. 06

    Prove write-in

    Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak.

    Why: Calendar full + pipeline empty means two databases.

    Done when: One test conversion, one contact, right stage/state.

  7. 07

    Put a number on the wall

    Every Monday, look at Campaign (Before you scale texts), then opt-in field (Or you will not survive an audit). Write one action or write “hold.” A dashboard with no action is theatre.

    Why: What gets reviewed gets run. What only lives in a tool gets ignored the week someone is busy.

    Done when: Three numbers. One owner. Fifteen minutes. Actions attach.

  8. 08

    Finish one move this week

    Brand and campaign are registered

    Why: Operators fail by starting at move four. Interns fail by making a 40-item checklist. CEOs fail by adding a second priority. One proven write-in beats an elegant plan.

    Done when: The move is true, or you can name the blocker in one sentence.

Walkthrough

The four moves, expanded

Same spine. More words.
01

Name the objects

Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types.

If objects aren't named, software invents a second database.

You write texts into a number that cannot legally deliver them.

02

Register

Brand + campaign approved before volume. Then wire: Brand + campaign registered → numbers attached; unregistered send is not 'we text'

Franchise systems cannot skip this edge. You write texts into a number that cannot legally deliver them when brand and campaign are unregistered. If it is not true, SMS systems is already a second database.

On SMS systems, this means the data model matches how franchise systems actually work — not the snapshot demo. Edge: Opt-in → stored on the contact with source (form, keyword, checkout)

03

Opt-in

Source and date on the contact. Screenshot in the campaign file. Then wire: Opt-in → stored on the contact with source (form, keyword, checkout)

Franchise systems skip this and the leak returns as a private language. Wire every SMS workflow to the opt-in field. Spec tags, fields, and states have to be the same objects the next workflow will read.

Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text.

04

STOP

A real STOP test. Confirmed on the contact. Then wire: STOP → halt; help/YES as you registered; logs exist

Franchise systems feel this as You write texts into a number that cannot legally deliver them. Two databases: a Twilio side account and GHL SMS, or a location texting from a personal line.

Brand and campaign are registered

Why

Questions people actually ask

Pushback is normal

Why not just buy another SMS systems feature?

Because the login already exists. You built missed-call text-back on a number that is not registered. Carriers filter you. A new feature on a missing spec is a second database. Finish this edge first: Brand + campaign registered → numbers attached; unregistered send is not 'we text'.

Why start with objects instead of a workflow?

Day one: you write texts into a number that cannot legally deliver them — check 10DLC (or your country's equivalent). Opt-in field. STOP test. Do not write more copy. Registration and opt-in are the objects. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.

What does “wired” actually mean?

A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.

Why write it down if the team already knows?

If it is only in someone's head, a new hire needs a story, reporting cannot be defended, and automations fire on folklore. Writing is how two people mean the same object on Monday.

Why does this keep coming back after we 'set it up'?

Because setup was a project, not a review. STOP (Tested this week) is how you stop the leak returning dressed as a new feature. Start with how you actually sell, not with how the snapshot was demoed. Name stages as jobs, not moods. Separate source, offer, and status. If a new hire cannot explain a contact in thirty seconds, you do not have an operating system — you have a database with anxiety on top.

Why should franchise systems care about this versus more leads?

More leads into a leak is a more expensive leak. Brand and campaign registered. Opt-in stored on the contact. STOP works. You can name delivery rate. Then — and only then — you write the clever first text. Watch campaign before you buy traffic. If that number is folklore, acquisition is a vanity spend.

What if we do not have time?

Then you only have time for the objects page and one test conversion. Brand and campaign are registered That is the intern version of strategy. Protect it from a second priority for seven days.

03

Skip this / do this

Same four moves

Skip this

Leaving objects unnamed because SMS systems is “set up”.

Do this

Brand registration, campaign registration, opt-in field on contact, STOP handling, delivery logs, sending number, GHL SMS, use-case campaign types.

Skip this

Building a workflow or flow before a writer lands on one contact.

Do this

Brand + campaign registered → numbers attached; unregistered send is not 'we text'

Skip this

Calling it done because a screenshot looks busy.

Do this

Confirm registration status. Send a test to a real handset. Confirm delivery. Send STOP; confirm halt and the field updates. If you cannot name the campaign type you registered, you are guessing. Unregistered throughput dying is the leak.

Skip this

Leaving “Delivery” to chance.

Do this

Watch delivered, not sent. One number you will defend.

Misses

How this usually goes wrong

Then the fix

The usual miss

Calling SMS systems “set up” because someone logged in and imported a snapshot.

Do this instead

Brand + campaign approved before volume. Then prove write-in: Confirm registration status.

The usual miss

Building the workflow or flow before the writer (form, calendar, shop event) lands on one contact.

Do this instead

Connect Brand + campaign registered → numbers attached; unregistered send is not 'we text' first. Automations on a missing writer invent a second database.

The usual miss

Adding a page, form, flow, or campaign every time last week hurt.

Do this instead

Name which edge is missing. Fix that edge. Hurt is usually a skipped write-in, not a missing asset.

The usual miss

Reporting that nobody will defend in a meeting — screenshots, vanity opens, 'interested' counts.

Do this instead

Campaign: Approved. Before you scale texts. If you cannot say it out loud, it is not a scoreboard.

The usual miss

Hiring or retaining an agency to invent the spec while also running the calendar.

Do this instead

Hands on a known sequence are useful. Hands inside a missing spec pick the louder job (the calendar) and the leak stays.

04

What to watch

A scoreboard

Campaign

Approved

Before you scale texts

Opt-in field

Present

Or you will not survive an audit

STOP

Works

Tested this week

This week

Brand and campaign are registered

01

Brand and campaign are registered

02

Opt-in is stored on the contact

03

STOP works

04

You can name delivery, not just 'we text'

Want the longer lesson, not the page for this niche? SMS has to be two-way

Working notes

GHL Engine Checklist

The minimum CRM, pipeline, and nurture spec before you add more pages. Request the file. It arrives by email — not a public dump, not a drip of slogans.

Request the notes ↗
Wire

This job is a connection, not a geo page

Hub only

SMS and 10DLC does not split by niche and city. The wiring is the same: objects, edges, one test conversion. Read a connect map if two tools are already in the stack, or a vertical essay if the language needs to change.

Wire

Calendly only counts when GoHighLevel sees the booking

A full calendar and an empty pipeline is two databases.

Read ↗
Wire

ScoreApp is a door. GoHighLevel is the follow-up.

A high score in a CSV is not a qualified opportunity.

Read ↗
Wire

A form is a writer, not a lead vault

If the thank-you does not change the contact, the page was a brochure.

Read ↗
coaching franchises

Coaching franchises inherit a brand and whatever HQ forgot to lock

Locations will edit sacred pipelines unless permissions and a change log exist.

Read ↗
dental groups and DSOs

Dental groups wire recare as a machine, not a card box at each front desk

New patient, recare, and unscheduled treatment are three journeys. One 'we miss you' is not a DSO.

Read ↗
home services franchises

Home services franchises wire speed-to-lead as the product HQ can actually lock

Call volume is national. Booking is local. Drift is how you pay for ads twice.

Read ↗
Next

If the leak is expensive, talk.

Email and WhatsApp stay open. A call is for installing the system.