Intern
What you actually do
Day one: texts go out, nobody owns the replies — assign the inbox by hour. Test STOP. Do not write ten templates. One journey, one template, one owner. Thread lives on the contact or it did not happen.
Library / agencies and services / Two-way SMS
Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought.
Read it once, then stop negotiating with it. Two-way SMS for photography studios is a wiring job: owner → keywords → templates → thread. 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.
Photography studios do not have a Two-way SMS problem because they lack GoHighLevel. They have it because texts go out. Nobody owns the replies.
Wire these objects first: Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US.
Then these edges, in order: Outbound SMS from workflow → thread appears on the contact in Conversations · Inbound reply → owner of the hour; pipeline move if the template expected a keyword · STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field · Templates → named by journey; random typing from a personal phone is not a template
Done looks like a test you can repeat: Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner.
Start here: Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
Photography studios already have GoHighLevel. The leak is not a missing feature. Texts go out. Nobody owns the replies. 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: Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US. Then connect these edges, in order: Outbound SMS from workflow → thread appears on the contact in Conversations · Inbound reply → owner of the hour; pipeline move if the template expected a keyword · STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field · Templates → named by journey; random typing from a personal phone is not a template. If you skip an edge, the next one is decoration. If you add a GoHighLevel feature first, you usually skip an edge without noticing.
Prove it with a test, not a screenshot. Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner. How you know it worked on the board: Inbox is owned (or you are a bot). If that number is a vibe, do not add traffic.
What to do this week, and only this week: Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery. An intern can run the objects page and one test conversion. A CEO should protect that from a second priority.
Intern
Day one: texts go out, nobody owns the replies — assign the inbox by hour. Test STOP. Do not write ten templates. One journey, one template, one owner. Thread lives on the contact or it did not happen.
Operator
You already feel texts go out. nobody owns the replies. Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought. Protect one sequence for 90 days. The four moves are owner → keywords → templates → thread. The edges are Outbound SMS from workflow → thread appears on the contact in Conversations then Inbound reply → owner of the hour; pipeline move if the template expected a keyword. Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday.
CEO
This is a money leak, not a preference about tools. Texts go out. Until inbox is a number you will defend, buying more traffic or more seats makes the leak more expensive. Refuse a second database: Outbound SMS from workflow → thread appears on the contact in Conversations.
Before
Tuesday. Someone among photography studios. Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought. GoHighLevel 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. Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday. Outbound SMS from workflow → thread appears on the contact in Conversations The next move is written. That is the difference between a login and a system.
Keep it this plain. A person in photography studios already paid for GoHighLevel. Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought. 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. An inbox owner exists. Prove write-in: Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner. This week is one move: Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery. If that feels too small, that is the point. Operators fail by starting at move four.
The leak
Texts go out. Replies sit. STOP is ignored or YES is ignored. The thread is not on the contact. After hours, the missed-call SMS is a dead letter until 9am.
The system
An inbox owner exists. STOP and YES are handled. Templates match the journey. Quiet hours are real. The thread lives in the CRM so the next human does not start from zero.
Name the owner. A reply that nobody sees is how you look like a bot. Handle STOP for the channel and YES for the booking. Then match templates to jobs: miss, recare, reminder — not one generic blast.
Quiet hours still exist. Two-way does not mean 3am chatter. Log the thread on the contact. Automate the script; keep a human for everything else.
Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday.
Texts go out. Nobody owns the replies. Two-way SMS is an inbox object with a shift owner, templates that match journeys, STOP and YES handled, and the thread on the contact. A workflow that cannot show its SMS on the contact is a blast, not a conversation. Keywords that should move stages must be mapped. Free-text replies need a human, fast, or you trained people that SMS is a void.
Wire 10DLC/registration if you are in a regime that requires it — delivery is part of two-way, not a separate hobby. Opt-in stored on the contact. After-hours auto-reply tells the truth. Templates are short. Do not send two workflows SMS at once without a cap. Conversations should be the only SMS inbox; forwarding to email-only is how threads die.
Two databases: iMessage on a front-desk phone and GHL. Pick GHL. The intern staffs a one-hour watch and processes replies. They do not invent slang. If franchise locations share a number, routing must still land on the right contact and location. Shared numbers without location fields are a privacy and ops mess.
Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US.
Outbound SMS from workflow → thread appears on the contact in Conversations
Inbound reply → owner of the hour; pipeline move if the template expected a keyword
STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field
Templates → named by journey; random typing from a personal phone is not a template
Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner.
Day one: texts go out, nobody owns the replies — assign the inbox by hour. Test STOP. Do not write ten templates. One journey, one template, one owner. Thread lives on the contact or it did not happen.
A person or rotation. Replies become tasks if untouched.
STOP and YES tested. Both do something true.
Mapped to journeys. One job each.
Lives on the contact. Quiet hours written.
On one line, for photography studios: Texts go out. Nobody owns the replies. 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.
Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US.
Why: If objects aren't named, software invents a second database.
Done when: A stranger can list them.
A person or rotation. Replies become tasks if untouched. Then wire: Outbound SMS from workflow → thread appears on the contact in Conversations
Why: Photography studios cannot skip this edge. Texts go out. If it is not true, GoHighLevel is already a second database.
Done when: Outbound SMS from workflow → thread appears on the contact in Conversations is true on a test.
STOP and YES tested. Both do something true. Then wire: Inbound reply → owner of the hour; pipeline move if the template expected a keyword
Why: Photography studios skip this and the leak returns as a private language. Wire 10DLC/registration if you are in a regime that requires it — delivery is part of two-way, not a separate hobby. Spec tags, fields, and states have to be the same objects the next workflow will read.
Done when: Inbound reply → owner of the hour; pipeline move if the template expected a keyword is true on a test.
Mapped to journeys. One job each. Then wire: STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field
Why: Photography studios feel this as Texts go out. Nobody owns the replies. Two databases: iMessage on a front-desk phone and GHL.
Done when: STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field is true on a test.
Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner.
Why: Calendar full + pipeline empty means two databases.
Done when: One test conversion, one contact, right stage/state.
Every Monday, look at Inbox (Or you are a bot), then stop / yes (Compliance plus booking). 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.
Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
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.
Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US.
If objects aren't named, software invents a second database.
Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought.
A person or rotation. Replies become tasks if untouched. Then wire: Outbound SMS from workflow → thread appears on the contact in Conversations
Photography studios cannot skip this edge. Texts go out. If it is not true, GoHighLevel is already a second database.
On GoHighLevel, this means the data model matches how photography studios actually work — not the snapshot demo. Edge: Inbound reply → owner of the hour; pipeline move if the template expected a keyword
STOP and YES tested. Both do something true. Then wire: Inbound reply → owner of the hour; pipeline move if the template expected a keyword
Photography studios skip this and the leak returns as a private language. Wire 10DLC/registration if you are in a regime that requires it — delivery is part of two-way, not a separate hobby. Spec tags, fields, and states have to be the same objects the next workflow will read.
Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday.
Mapped to journeys. One job each. Then wire: STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field
Photography studios feel this as Texts go out. Nobody owns the replies. Two databases: iMessage on a front-desk phone and GHL.
inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
Because the login already exists. Texts go out. Replies sit. A new feature on a missing spec is a second database. Finish this edge first: Outbound SMS from workflow → thread appears on the contact in Conversations.
Day one: texts go out, nobody owns the replies — assign the inbox by hour. Test STOP. Do not write ten templates. One journey, one template, one owner. Thread lives on the contact or it did not happen. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.
A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.
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.
Because setup was a project, not a review. Log (Next human can see it) 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.
More leads into a leak is a more expensive leak. Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday. Watch inbox before you buy traffic. If that number is folklore, acquisition is a vanity spend.
Then you only have time for the objects page and one test conversion. Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery. That is the intern version of strategy. Protect it from a second priority for seven days.
Skip this
Leaving objects unnamed because GoHighLevel is “set up”.
Do this
Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US.
Skip this
Building a workflow or flow before a writer lands on one contact.
Do this
Outbound SMS from workflow → thread appears on the contact in Conversations
Skip this
Calling it done because a screenshot looks busy.
Do this
Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner.
Skip this
Leaving “Thread” to chance.
Do this
Lives on the contact. Quiet hours written.
The usual miss
Calling GoHighLevel “set up” because someone logged in and imported a snapshot.
Do this instead
A person or rotation. Replies become tasks if untouched. Then prove write-in: Send a test SMS from a workflow.
The usual miss
Building the workflow or flow before the writer (form, calendar, shop event) lands on one contact.
Do this instead
Connect Outbound SMS from workflow → thread appears on the contact in Conversations 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
Inbox: Owned. Or you are a bot. 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.
Inbox
Owned
Or you are a bot
STOP / YES
Handled
Compliance plus booking
Log
On contact
Next human can see it
This week
inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
UK operators · UK hours. The CRM is often inherited from an agency; the spec still has to be written here.
An inbox owner exists
STOP and YES are handled
Templates match the journey
The thread lives on the contact
Want the longer lesson, not the page for this niche? SMS has to be two-way ↗
Working notes
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.
Photography studios do not have a Two-way SMS problem because they lack GoHighLevel. They have it because texts go out. Nobody owns the replies. Wire these objects first: Conversations inbox, SMS templates, STOP/YES handling, inbox owner shift, thread on the contact, workflow that sends, 10DLC if US. Then these edges, in order: Outbound SMS from workflow → thread appears on the contact in Conversations · Inbound reply → owner of the hour; pipeline move if the template expected a keyword · STOP → operational halt on that channel; YES/START if you use it, stored as opt-in field · Templates → named by journey; random typing from a personal phone is not a template Done looks like a test you can repeat: Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner. Start here: Inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
Texts go out. Replies sit. STOP is ignored or YES is ignored. The thread is not on the contact. After hours, the missed-call SMS is a dead letter until 9am. Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday.
Before: Tuesday. Someone among photography studios. Inquiries are seasonal. Follow-up is a thread. Reviews are an afterthought. GoHighLevel 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. Wedding and family leads go cold in 24–48 hours. A template on Friday is how you lose Saturday. Outbound SMS from workflow → thread appears on the contact in Conversations The next move is written. That is the difference between a login and a system.
Leaving objects unnamed because GoHighLevel is “set up”. Building a workflow or flow before a writer lands on one contact. Do the four moves instead: owner → keywords → templates → thread.
Inbox: Owned — Or you are a bot. Then stop / yes (Compliance plus booking). If those are folklore, do not add another GoHighLevel workflow.
inquiry auto-reply with a next step. Reminder if they do not book. Review after delivery.
Because the login already exists. Texts go out. Replies sit. A new feature on a missing spec is a second database. Finish this edge first: Outbound SMS from workflow → thread appears on the contact in Conversations.
Day one: texts go out, nobody owns the replies — assign the inbox by hour. Test STOP. Do not write ten templates. One journey, one template, one owner. Thread lives on the contact or it did not happen. Workflows on unnamed objects fire on folklore. Name contact (or profile), stage or state, and the writer (form, calendar, metric) before any on-switch.
A test conversion creates or updates one person, on the right stage or state, with the fields the next sequence will read. Send a test SMS from a workflow. Reply. Confirm a human sees it in Conversations on the contact. Send STOP; confirm halt. If replies go to a cell phone with no GHL thread, fail. Name this hour's inbox owner. If you merge after the test, identity is wrong — fix that, do not add a dedupe automation.
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.
The CRM is open. The operating system is not.
Read ↗Stages are labels. Nobody knows what 'won' requires.
Read ↗Tags multiply. Insight does not.
Read ↗Booked calls leak because the CRM never saw them.
Read ↗Broadcasts exist. A sequence that earns the next conversation does not.
Read ↗Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.