# Playbook — Lead → Customer The full lifecycle for turning a lead into a live, paying, bookable client. CRM lives at `onboard.mivanchenko.de/crm`. Booking is self-hosted (Easy!Appointments), embedded on the client's own site. ## 1. Lead exists The lead is in the CRM **Leads** tab, status `new` — from outreach (see `outreach.md`) or an inbound form submission. ## 2. Reach out & qualify Contact them (DM / call / walk-in). In the CRM, ✎-edit the lead's status: `new` → `contacted` → `qualified` (interested) — or `lost` (dead). ## 3. Close the deal On a short call, confirm scope (site + online booking), agree the **setup fee + monthly** (Tier-A pricing in `tier-a-google.md`), and note their services + opening hours. ## 4. Onboard → creates the customer (automated) Click **📝 Onboarding-Formular** in the CRM header (or go to `onboard.mivanchenko.de`). Fill: business name, owner, email, phone, niche, tier, **domain = `.mivanchenko.de`**, billing cycle, monthly fee → Submit. This automatically: - creates the **Client** (`C-xxxx`, status `onboarding`) + **Project** in the CRM, - provisions their **Easy!Appointments booking** (service + provider, mapped to their `C-id`), - stores their **booking embed URL** in the client's `stack_notes`. Then ✎-edit the original **Lead → `won`**. ## 5. Build & ship their site 1. Copy the **embed URL** from the new client's `stack_notes` in the CRM. 2. Clone a template/preview (`templates/landing/…`), rebrand it (name, colours, services, hours, photos), and wire the booking section to the client's EA. 3. Ship the isolated stack: ```bash cd deploy/clients ./new-client.sh .mivanchenko.de ``` → scp to the homelab → add the printed Caddy block + reload → `docker compose up -d`. Live at `https://.mivanchenko.de` (wildcard DNS + auto-TLS). ## 6. Tune their booking In the EA backend (admin login — see `.secrets/easyappointments.txt`), set the provider's real **services** (duration / price) and **working hours / timezone**. Optionally hand the studio their **provider login** so they manage their own calendar. ## 7. Hand over & go live - Give them either their **EA provider login** (self-hosted calendar view) or the **iCal feed** `…/crm/api/bookings.ics?client_id=C-xxxx&token=…` to subscribe in Apple / Google Calendar. - A customer booking now flows: their site → EA → CRM `bookings` → your Telegram. - Set the **Client → `active`**. ## 8. Ongoing Bookings auto-land in the CRM (source of truth); renewal reminders fire; bill monthly. Update status to `churned` if they leave (then `docker compose down` their stack to offboard).