Operator copy (you). Not for customers.
| Version | 1.0 · 2026-07-22 |
| Offer | Unleashed Services |
| Public sales page | https://unleashedservice.online/bookmore/ |
| Private call closer | https://unleashedservice.online/bookmore/close/ |
| This manual (web) | https://unleashedservice.online/bookmore/onboard/ |
| Also | http://84.247.163.211:8080/bookmore/onboard/ |
A mechanic is fully onboarded when all of this is true:
Until 1–9 are checked, do not say “you’re live.”
Sell it as one system. Behind the scenes it’s four tools:
| Layer customer feels | Real tool | URL / access | Your job at onboard |
|---|---|---|---|
| Booking / quote form | Mobile Mechanic | http://84.247.163.211:3099/ · also /mobilemechanic/ on proxy | Brand copy, services, admin key handoff |
| Job history / pipeline | Twenty CRM | http://84.247.163.211:3100 | Create THEIR workspace contact rules OR your central CRM of clients + job notes |
| Open jobs to bid | BidForIt | http://unleashedservice.online | Create provider account |
| Shop ops / appts (optional) | RV Shop Tools | http://84.247.163.211:3105/admin | Only if they want internal shop board |
| Sales / your ops | BookMore pages | /bookmore/ + /close/ | Never give closer to client |
Mobile Mechanic is currently a shared EASY booking + admin quotes DB (SQLite leads.db) with admin header key.
Default admin pass env: ADMIN_PASS (compose default pattern johnsmobile — change per client or rotate after each handoff).
Do not promise full multi-tenant white-label SaaS isolation until you actually provision separate instances.
Do promise: branded booking flow, job capture, pipeline discipline, bid access, follow-up process, launch support.
Until true multi-tenant:
| Client type | How you deliver booking |
|---|---|
| Pilot clients (first 3) | Shared Mobile Mechanic OK if volume low; tag every lead with mechanic name in Notes; separate admin pass rotated |
| Serious clients | Spin dedicated Mobile Mechanic container/port OR dedicated subdomain folder + DB path |
| Bid board | Always separate BidForIt login per mechanic |
| Your oversight | Twenty CRM = your master “clients + AR + Onboarding stage” |
If a paying client needs clean isolation day-one: clone Mobile Mechanic container → new port → new data/ volume → new admin pass → nginx path/subdomain.
| Plan | Price | When to push |
|---|---|---|
| Door A — Monthly | $149/mo + $499 setup | Wants easy out |
| Door B — Annual | $149/mo annual equivalent · setup WAIVED | Feels the leak, best value |
Guarantees you may say:
Guarantees you must NOT say:
No build until:
Send this exact checklist text:
To launch Unleashed this week I need:
1) Business / brand name (what customers should see)
2) Your name + best cell (SMS)
3) Public phone customers can call/text
4) Email for login invites
5) Service area (cities / radius)
6) Services list (and price or “Call for quote”)
7) Services you WON’T do
8) Working days / hours + emergency? (Y/N)
9) Logo file (optional) + brand colors if any
10) Preferred start day for go-live
Reply in one text or plan shot of a written list.
/root/clients/<slug>/
intake.md
services.md
brand/
screenshots/
credentials.md # chmod 600
timeline.md
intake.md template:
# <Business Name>
Status: PAID / PENDING
Door: A / B
Start: YYYY-MM-DD
Owner:
Phone:
Email:
Area:
Hours:
Won't do:
Notes from sales call:
Pain score:
Avg job $:
credentials.md template:
# CREDENTIALS — <Business> — DO NOT COMMIT / DO NOT TEXT FULL SET IN GROUP CHATS
Booking URL:
Admin URL / method:
Admin pass:
BidForIt email:
BidForIt temp pass:
Twenty record:
Stripe/Venmo ref:
Launch call:
| When | What | Owner |
|---|---|---|
| Hour 0 | Closed-won · pay · intake started | You |
| Hour 0–2 | Client folder · CRM deal · calendar launch | You |
| Day 0–1 | Build booking + accounts | You |
| Day 1–2 | Internal QA (fake lead) | You |
| Day 2–3 | Launch walkthrough (their phone) | Both |
| Day 3 | They share link in wild | Them |
| Day 7 | Checkup call (15 min) | Both |
| Day 30 | Results review / expand / cancel check-in | Both |
Rule: Prefer live in < 7 days. Speed builds trust more than perfect logos.
URL: http://84.247.163.211:3100
Create Company + Person:
OnboardingPipeline stages you should use:
Lead → Setup Call → Won → Building → Launched → Active → At-risk → Churned
Every client always lives in Twenty. This is how you don’t drop handoffs.
URLs
x-admin-key: <ADMIN_PASS>Code/data
/opt/mobile-mechanic/opt/mobile-mechanic/data/leads.dbADMIN_PASSEdit client-facing strings in the frontend build (title currently “Lakes Region Mobile Mechanic” — replace with their business name before handoff).
Minimum brand changes before launch walkthrough:
# Example ops (adjust if your workflow differs)
cd /opt/mobile-mechanic
docker compose ps
docker compose restart
# after frontend edits: rebuild image or copy new dist into the served path
For a new serious client, set a unique admin pass:
cd /opt/mobile-mechanic
# set in .env or compose environment
# ADMIN_PASS='<long unique phrase>'
docker compose up -d --force-recreate
Put pass only in credentials.md (mode 600).
When client #2+ would mix leads:
/opt/mobile-mechanic-<slug>/3111:3099)./data volumeADMIN_PASS/m/<slug>/ or subdomain laterURL: http://unleashedservice.online
credentials.mdIf BidForIt API is down (:4000), fix API/PM2/docker before promising bid board on launch call.
# health hints
curl -s http://127.0.0.1:4000/api/health || curl -s http://127.0.0.1:4000/api/ | head
docker ps | grep bidforit
# backend lives at /opt/bidforit/backend — start via its process manager/compose if stopped
URL: http://84.247.163.211:3105/admin
Use only if they want a simple internal job board beyond booking leads.
Otherwise skip — less surface area = faster launch.
You may not have full Telnyx automation wired per client yet. Onboard the behavior:
Give them 4 copy-paste SMS templates (section 9).
If/when Telnyx number exists per client, add number to intake + credentials.
| Test | Pass criteria |
|---|---|
| Submit fake booking as customer | Record appears |
| Admin can open/list lead | Status editable / visible |
| Lead contains phone + service + location | No blank critical fields |
| BidForIt login works on phone | Dashboard loads |
| Booking URL opens on mobile data (not just your Wi‑Fi) | <3s usable |
| Their business name shows | No “Lakes Region” leak if not their brand |
| You can explain cancel / support path | <30 seconds |
Fake lead naming convention:
TEST LEAD — DELETE — <slug> — <date>
Delete after QA.
“Today isn’t a sales call. We make sure you can take a real job from your phone before we hang up. If something’s clunky, we fix it live.”
Contacted (or equivalent) Before day 3 ends they must:
“You’re live when you send that link without me. I’m on text if something breaks. We do a 15-minute checkup in 7 days — I’ll send the time.”
Calendar the checkup before hangup.
Send a short, clean message — not a novel:
You're live on Unleashed ✅
BOOKING (customer link):
<URL>
HOW YOU SEE JOBS:
<admin steps or URL>
ADMIN ACCESS:
(explain once — don't paste passwords in the same SMS as the URL if you can avoid it; use a follow-up or call)
BID BOARD:
unleashedservice.online
Login: <email>
Temp pass: <one-time> → change after login
SUPPORT:
Text me <your number>. Normal hours: <your hours>.
Emergency downtime: I'll prioritize paid live clients.
CHECKUP:
<day/time>
Cancel anytime on monthly. Annual terms as agreed.
Then send passwords via second message or voice. Never post creds in Facebook.
| Do | Don’t |
|---|---|
| “Book here so I don’t miss you under a car” | Post the link 12×/day in every group |
| Ask happy customers for a review + rebook link | Argue with tire-kickers for 45 minutes |
| Price firmly after diagnosis | Free “just looking” teardowns with no commitment |
Hey {name}, it's {you} — got your request for {service}. I can do {window options}.
Easiest is to lock it here: {booking_link}
Or reply with address + preferred time.
Under a vehicle RN — I don't want to miss you. Grab a slot here and I'll confirm: {booking_link}
Hey {name} — still want help with {service}? I can hold {day/time} if you want it.
Book: {booking_link} · or reply NO and I'll close it out.
All set on the {service}. If anything feels off in the next few days, text me.
If you want oil/brakes/inspections on a reminder, say YES and I'll note it.
Thanks for the work — {you}.
Hey {name}, it's {you}. Making booking easier this year — if the {vehicle} needs anything, here's my link: {booking_link}
If zero usage: this is a behavior problem. Reinstall homework. Do not build more features yet.
| Channel | SLA |
|---|---|
| Text/SMS | Same day during your posted hours |
| Downtime (booking broken) | Priority same day |
| “Can you add 40 custom features” | Paid change request / backlog |
| Refund setup | Only if you failed to launch as promised |
Out of scope unless re-quoted: fleet apps, multi-tech dispatch, QuickBooks deep sync, custom native iOS apps, doing their Facebook ads for free.
Each month for Active clients:
Churn risk signals:
Save with a 10-min call + reinstall sharing plan — or let Door A cancel cleanly.
Use when shared DB is no longer acceptable.
# 1) Copy
cp -a /opt/mobile-mechanic /opt/mobile-mechanic-NAME
cd /opt/mobile-mechanic-NAME
rm -rf data/* # fresh DB
# 2) Edit docker-compose.yml host port, e.g. "3111:3099"
# 3) Set ADMIN_PASS to unique value in environment
# 4) Brand the client UI (title/services)
# 5) Build & start
docker compose up -d --build
# 6) Test
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3111/
# 7) Add nginx location in /opt/game-proxy/nginx.conf
# location /m/NAME/ { proxy_pass http://127.0.0.1:3111/; ... }
# 8) docker restart game-proxy
# 9) Document URL + pass in /root/clients/NAME/credentials.md
| Problem | First move |
|---|---|
| Booking 502 / down | docker ps · docker logs mobile-mechanic --tail 80 · restart compose |
| Admin 401 | Confirm ADMIN_PASS env matches what you issued |
| Leads missing | Check correct instance/port · check data/leads.db path |
| BidForIt login fail | API health on :4000 · DB/redis containers |
| Client angry day 1 | Screen-share fix · over-communicate · offer short checkup same day |
| You over-promised isolation | Spin dedicated instance within 48h — that’s the fix, not an argument |
Client: _________________ Door: A / B Date won: ________
Got everything I need — building your Unleashed setup now.
I'll text when QA is done and send the launch walkthrough time.
Target live window: <DAY>.
You're live ✅
Customer booking link: <URL>
Showed-you-how on our call — use that link everywhere.
Bid board: unleashedservice.online (login emailed/texted separately)
Checkup: <DAY/TIME>
Text me if a real customer hits a wall on the form.
| Day | Ops block (45–90 min) |
|---|---|
| Mon | New builds + QA |
| Tue | Launch walkthroughs |
| Wed | Outreach for new sales (15 msgs) — feed the funnel |
| Thu | Checkups + at-risk thumps |
| Fri | Invoicing · notes · small fixes · update Twenty stages |
| Daily | Slack/SMS fire drill if booking down |
Sales without onboard ops creates refunds.
Onboard ops without sales creates a charity. Do both.
Be polite. Refund setup only if you already took setup and can’t/won’t deliver.
| Thing | Path / URL |
|---|---|
| Sales landing | /opt/game-proxy/www/bidforit/bookmore/index.html |
| Call closer | /opt/game-proxy/www/bidforit/bookmore/close/ |
| This manual (md) | /root/sales-assets/unleashed-mechanic-onboarding-manual.md |
| This manual (web) | /opt/game-proxy/www/bidforit/bookmore/onboard/ |
| Copy pack | /root/sales-assets/bookmore-copy-pack-v2.md |
| One-sheet closer | /root/sales-assets/unleashed-closer-one-sheet.md |
| Mobile Mechanic | /opt/mobile-mechanic · :3099 |
| BidForIt API | /opt/bidforit/backend · :4000 |
| BidForIt static | /opt/game-proxy/www/bidforit · :80 host unleashedservice.online |
| Twenty | /opt/twenty · :3100 |
| RV Shop Tools | /opt/rv-shop-tools · :3105 |
| Nginx proxy | /opt/game-proxy/nginx.conf |
| Client folders | /root/clients/<slug>/ (create as you sell) |
End of manual. Update this file when you add real multi-tenant provisioning or Telnyx per-client numbers.