Every step, in order, with the exact commands and links. Tick things off as you go — progress is saved in this browser, per coach.
Fill these in and every command and URL below fills itself in with the right values. Nothing is sent anywhere; this all happens in your browser.
The two long poles are the Instagram export and the shadow week, and only one of them is optional. Pick a path and a go-live date and this works backwards from it.
Before anything is built. The export is the long pole — Instagram can take up to 48 hours to produce it, so ask for it on the first call.
Settings → Accounts Centre → Your information and permissions → Download your information. Format: HTML. Date range: all time. Messages only is enough and downloads far faster than everything.
Just names, one per line. This is what stops the agent pitching a coaching package to somebody who already pays them every month — which is the single most embarrassing thing it could do.
When do they want consults? When must nothing be booked? How do they handle "how much is it"? Do they want to be asked before anything sends? Which of their clients would they never want pitched?
1. Consult windows -> booking_windows (e.g. Tue and Thu, 1-4pm) 2. Blackouts -> blackout_dates (shows, holidays, peak week) 3. Price question -> price_policy halt | script_then_halt | script_then_disqualify 4. Quiet hours -> quiet_start_hour / quiet_end_hour 5. Existing clients -> client_names_file
One command does the parsing, classifying, mining, profile and seeding. The two things it cannot do are ManyChat and the coach's own Google click.
Parses the export, separates real leads from friends and clients, mines their voice, writes the profile and seeds the database. Stops on the first failure rather than seeding a half-built coach.
…
The generated script_text is a placeholder telling you to
copy Nick's and adapt it. Leave the [[ASK_CALL]] and
[[OFFER_TIMES: ...]] tokens exactly as they are — they are what stop
the model inventing times off a calendar it cannot see.
…
One click for the coach. Their refresh token is encrypted before it is stored. Today the consent screen is Internal, so only @thenickl.com accounts can connect — which means no coach but Nick can book a call. This is the one thing that has to change before a second coach exists, and the booking is the product, so it is not optional.
It is a button, not a queue. Do not confuse the two.
Internal → External, published to production. Takes a minute and works immediately. The coach sees a "Google hasn't verified this app" screen and clicks through Advanced. Unverified production apps are capped at 100 users, which is not a constraint we will feel this year.
Verification is the separate, weeks-long thing, and all it buys is removing that warning screen. Worth starting now; nothing waits on it. The calendar scopes are sensitive, not restricted, so there is no CASA security audit.
Do not leave it in Testing publishing status to avoid the warning screen. Testing expires every refresh token after seven days, so a coach's calendar silently stops working the following week and it looks like our bug.
…
Six steps: trigger → Smart Delay 2 min → reply block → Smart Delay 8h → follow-up block → Smart Delay 12h → follow-up block. All delays send within 08:00–23:00. Dynamic Block, not External Request — Response Mapping is greyed out on a Dynamic Block by design, and that is correct.
…
The two mistakes that cost an evening each.
The request body must be the Full Contact Data chip on its own. Hand typing JSON around it turns fragments into variable chips and produces invalid JSON that only fails at send time, with no useful error.
Rung two is 12 hours, not 24. Instagram will not deliver outside a 24-hour window from the lead's own last message, so a politer 24-hour wait means the message silently never arrives.
The part that earns their trust, and the part worth charging for. Nothing reaches a real person during this phase.
They reply to simulated leads across twelve scenarios. Anything in
(parentheses) is read as a correction rather than a reply. Forty
replies is roughly where the voice stops sounding generic — that is measured, not
a guess; Nick's forty visibly changed it.
On this path there is no export, so these forty replies are the entire voice pack. Until they are folded in the agent has nothing to speak with and every thread halts. Do not let the coach leave the first session without finishing them.
Still worth doing even with a mined pack. An export is always thin exactly where it matters — Nick's 616 real messages contained ten price moments — and practice mode is the only place to get more of them.
…
Practice replies do nothing until this runs — they sit in a table nobody reads. Run it after every training session.
…
The agent runs on their real DMs and sends nothing. Every reply is stored and posted to Discord. They read a week of what it would have said before it says anything to a real person. Do not shorten this because the replay looked good.
Go through the drafts. Anything they would not have sent becomes a correction, and corrections go straight into the prompt. This is also where you find out whether the triage gate has their inbox right.
Thirty seconds to turn on, thirty seconds to turn off.
A webhook for briefs and halts, and their numeric Discord user id so the pings actually notify them. A username will not work — Discord resolves mentions by id only, and a username posts as plain text that notifies nobody.
In Discord, send: \@theirusername The raw form that appears — <@1035195883010129970> — is the id.
Change send_mode to live in the profile and
reseed. Do it deliberately, with them on the phone, not at the end of a long night.
…
This is the conversation that makes them comfortable, so do not skip
it. Reply in Instagram yourself — pauses automations for that person, up to a
day. Pause in ManyChat — one click, until unpaused. Tag them
AI Off — durable, and pings them whenever a tagged person messages.
Not the first week — the first three. Almost everything that goes wrong goes wrong immediately: a triage miss, a phrasing that is not theirs, a booking window that was wrong on the call.
What is honestly not automated yet, and why.
The ManyChat flow. Their API does not expose flow building, so it is twenty minutes of clicking per coach. This is the first thing to templatise — ManyChat supports shareable flow templates, which would cut it to a few minutes.
The script text. How a coach sells is genuinely theirs, and a generated one would sound like everyone else. Worth keeping human.
The Google click. Has to be the coach, by design — it is their calendar.