Intern
What you actually do
Day one: name how watch state gets to GHL. If the answer is 'it doesn't', that is the only project. Write the real deadline (hours). Do not write seven objection emails until two watch states exist.
Library / training brands / VSL follow-up
The event is the product. The week after is the business.
Read it once, then stop negotiating with it. VSL follow-up for workshop companies is a wiring job: watch state → deadline → objections → sales context. 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.
Workshop companies do not have a VSL follow-up problem because they lack GoHighLevel. They have it because the video sells. The inbox is silent after.
Wire these objects first: VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity.
Then these edges, in order: Play / % watched → custom field watch_state on the contact (or webhook from the player) · Watch state high → close-path workflow; deadline field is a real date, not copy · Objection emails → tagged by objection; still one pipeline · Sales → contact shows watch_state and last timestamp before the call
Done looks like a test you can repeat: Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool.
Start here: Attendee vs no-show. One offer. CRM notes the session.
Workshop companies already have GoHighLevel. The leak is not a missing feature. The video sells. The inbox is silent after. 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: VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity. Then connect these edges, in order: Play / % watched → custom field watch_state on the contact (or webhook from the player) · Watch state high → close-path workflow; deadline field is a real date, not copy · Objection emails → tagged by objection; still one pipeline · Sales → contact shows watch_state and last timestamp before the call. 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. Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool. How you know it worked on the board: Watch → path is split (or the video is theatre). If that number is a vibe, do not add traffic.
What to do this week, and only this week: Attendee vs no-show. One offer. CRM notes the session. An intern can run the objects page and one test conversion. A CEO should protect that from a second priority.
Intern
Day one: name how watch state gets to GHL. If the answer is 'it doesn't', that is the only project. Write the real deadline (hours). Do not write seven objection emails until two watch states exist.
Operator
You already feel the video sells. the inbox is silent after. The event is the product. The week after is the business. Protect one sequence for 90 days. The four moves are watch state → deadline → objections → sales context. The edges are Play / % watched → custom field watch_state on the contact (or webhook from the player) then Watch state high → close-path workflow; deadline field is a real date, not copy. Same-day follow-up beats a recap on Friday. The room is already in another meeting.
CEO
This is a money leak, not a preference about tools. The video sells. Until watch → path is a number you will defend, buying more traffic or more seats makes the leak more expensive. Refuse a second database: Play / % watched → custom field watch_state on the contact (or webhook from the player).
Before
Tuesday. Someone among workshop companies. The event is the product. The week after is the business. 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. Same-day follow-up beats a recap on Friday. The room is already in another meeting. Play / % watched → custom field watch_state on the contact (or webhook from the player) The next move is written. That is the difference between a login and a system.
Keep it this plain. A person in workshop companies already paid for GoHighLevel. The event is the product. The week after is the business. 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. Watch state changes the path. Prove write-in: Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool. This week is one move: Attendee vs no-show. One offer. CRM notes the session. If that feels too small, that is the point. Operators fail by starting at move four.
The leak
The video sells. The inbox is silent after. Follow-up does not know who watched. Deadline is fake. Sales gets a raw list.
The system
Watch state changes the path. Deadline is operationally true. Objections have emails. Sales sees who watched — and where they stopped if you have it.
If everyone gets the same sequence after a VSL, you paid for a video, not a system. People who watched to the offer and people who bounced at minute two are different contacts. Route them.
A deadline that is always extended is a brand problem. Make it true or take it out. Sales should not discover on the call that the person never pressed play.
Same-day follow-up beats a recap on Friday. The room is already in another meeting.
The video sells. The inbox is silent when watch state never becomes a CRM object. You need a field or tag the player can write: started, 50%, completed — pick a bar you can trust. Without it, everyone gets the same follow-up and sales calls people who bounced at the intro. Deadline is real: a date field that changes the workflow. Fake scarcity on the page with no matching workflow end is a second database of distrust.
Objection emails are a branch, not a new funnel. They still sit on the same opportunity. Sales sees who watched — that is the point of the wire — so the call is not 'did you see the video?'. UTMs on the VSL page write at the same time as the contact. If the player lives on a domain that drops fields, fix the domain before you hire an editor.
Two databases: the video platform's analytics and GHL. If you only look at Wistia (or similar) and email 'the list', you are guessing. The intern simulates two watch states. They do not recut the VSL. If simulation is impossible because there is no event, you do not have VSL follow-up. You have a video and a hope.
VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity.
Play / % watched → custom field watch_state on the contact (or webhook from the player)
Watch state high → close-path workflow; deadline field is a real date, not copy
Objection emails → tagged by objection; still one pipeline
Sales → contact shows watch_state and last timestamp before the call
Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool.
Day one: name how watch state gets to GHL. If the answer is 'it doesn't', that is the only project. Write the real deadline (hours). Do not write seven objection emails until two watch states exist.
Changes the path. Not one blast.
Real, or omitted.
Emails that earn the call, not a countdown only.
Watched / not. On the contact.
On one line, for workshop companies: The video sells. The inbox is silent after. 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.
VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity.
Why: If objects aren't named, software invents a second database.
Done when: A stranger can list them.
Changes the path. Not one blast. Then wire: Play / % watched → custom field watch_state on the contact (or webhook from the player)
Why: Workshop companies cannot skip this edge. The video sells. If it is not true, GoHighLevel is already a second database.
Done when: Play / % watched → custom field watch_state on the contact (or webhook from the player) is true on a test.
Real, or omitted. Then wire: Watch state high → close-path workflow; deadline field is a real date, not copy
Why: Workshop companies skip this and the leak returns as a private language. Objection emails are a branch, not a new funnel. Spec tags, fields, and states have to be the same objects the next workflow will read.
Done when: Watch state high → close-path workflow; deadline field is a real date, not copy is true on a test.
Emails that earn the call, not a countdown only. Then wire: Objection emails → tagged by objection; still one pipeline
Why: Workshop companies feel this as the video sells. The inbox is silent after. Two databases: the video platform's analytics and GHL.
Done when: Objection emails → tagged by objection; still one pipeline is true on a test.
Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool.
Why: Calendar full + pipeline empty means two databases.
Done when: One test conversion, one contact, right stage/state.
Every Monday, look at Watch → path (Or the video is theatre), then deadline (Or remove it). 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.
Attendee vs no-show. One offer. CRM notes the session.
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.
VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity.
If objects aren't named, software invents a second database.
The event is the product. The week after is the business.
Changes the path. Not one blast. Then wire: Play / % watched → custom field watch_state on the contact (or webhook from the player)
Workshop companies cannot skip this edge. The video sells. If it is not true, GoHighLevel is already a second database.
On GoHighLevel, this means the data model matches how workshop companies actually work — not the snapshot demo. Edge: Watch state high → close-path workflow; deadline field is a real date, not copy
Real, or omitted. Then wire: Watch state high → close-path workflow; deadline field is a real date, not copy
Workshop companies skip this and the leak returns as a private language. Objection emails are a branch, not a new funnel. Spec tags, fields, and states have to be the same objects the next workflow will read.
Same-day follow-up beats a recap on Friday. The room is already in another meeting.
Emails that earn the call, not a countdown only. Then wire: Objection emails → tagged by objection; still one pipeline
Workshop companies feel this as the video sells. The inbox is silent after. Two databases: the video platform's analytics and GHL.
attendee vs no-show. One offer. CRM notes the session.
Because the login already exists. The video sells. The inbox is silent after. A new feature on a missing spec is a second database. Finish this edge first: Play / % watched → custom field watch_state on the contact (or webhook from the player).
Day one: name how watch state gets to GHL. If the answer is 'it doesn't', that is the only project. Write the real deadline (hours). Do not write seven objection emails until two watch states exist. 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. Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool. 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. Sales (Not a raw list) is how you stop the leak returning dressed as a new feature. The room is not the business. The week after is. Same-day notes, a no-show path that is not the attendee path, UTMs that survive, proof packaged for the person who paid. Reuse the calendar. Do not hero-mode every event.
More leads into a leak is a more expensive leak. Same-day follow-up beats a recap on Friday. The room is already in another meeting. Watch watch → path 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. Attendee vs no-show. One offer. CRM notes the session. 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
VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity.
Skip this
Building a workflow or flow before a writer lands on one contact.
Do this
Play / % watched → custom field watch_state on the contact (or webhook from the player)
Skip this
Calling it done because a screenshot looks busy.
Do this
Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool.
Skip this
Leaving “Sales context” to chance.
Do this
Watched / not. On the contact.
The usual miss
Calling GoHighLevel “set up” because someone logged in and imported a snapshot.
Do this instead
Changes the path. Not one blast. Then prove write-in: Watch 10% as one test contact and 90% as another (or simulate the events).
The usual miss
Building the workflow or flow before the writer (form, calendar, shop event) lands on one contact.
Do this instead
Connect Play / % watched → custom field watch_state on the contact (or webhook from the player) 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
Watch → path: Split. Or the video is theatre. 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.
Watch → path
Split
Or the video is theatre
Deadline
True
Or remove it
Sales
Sees watch
Not a raw list
This week
attendee vs no-show. One offer. CRM notes the session.
EU operators · EU hours. Consent and entities are real. They are not a substitute for exit rules.
Watch state changes the path
Deadline is real
Objections have emails
Sales sees who watched
Want the longer lesson, not the page for this niche? A CRM login is not a system ↗
Working notes
Webinar, workshop, and launch rails that survive the week after the event. Request the file. It arrives by email — not a public dump, not a drip of slogans.
Workshop companies do not have a VSL follow-up problem because they lack GoHighLevel. They have it because the video sells. The inbox is silent after. Wire these objects first: VSL page, watch-state field (or pixel event into GHL), GHL contact, deadline (real), objection emails, sales view of watched, workflow branches, opportunity. Then these edges, in order: Play / % watched → custom field watch_state on the contact (or webhook from the player) · Watch state high → close-path workflow; deadline field is a real date, not copy · Objection emails → tagged by objection; still one pipeline · Sales → contact shows watch_state and last timestamp before the call Done looks like a test you can repeat: Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool. Start here: Attendee vs no-show. One offer. CRM notes the session.
The video sells. The inbox is silent after. Follow-up does not know who watched. Deadline is fake. Sales gets a raw list. Same-day follow-up beats a recap on Friday. The room is already in another meeting.
Before: Tuesday. Someone among workshop companies. The event is the product. The week after is the business. 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. Same-day follow-up beats a recap on Friday. The room is already in another meeting. Play / % watched → custom field watch_state on the contact (or webhook from the player) 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: watch state → deadline → objections → sales context.
Watch → path: Split — Or the video is theatre. Then deadline (Or remove it). If those are folklore, do not add another GoHighLevel workflow.
attendee vs no-show. One offer. CRM notes the session.
Because the login already exists. The video sells. The inbox is silent after. A new feature on a missing spec is a second database. Finish this edge first: Play / % watched → custom field watch_state on the contact (or webhook from the player).
Day one: name how watch state gets to GHL. If the answer is 'it doesn't', that is the only project. Write the real deadline (hours). Do not write seven objection emails until two watch states exist. 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. Watch 10% as one test contact and 90% as another (or simulate the events). Confirm different emails. Set a deadline that actually expires a workflow path. Open the 90% contact as sales: watch state is visible without the video tool. 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 ↗Booked calls leak because the CRM never saw them.
Read ↗Broadcasts exist. A sequence that earns the next conversation does not.
Read ↗Everyone is busy. Nobody owns the next 90 days.
Read ↗Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.