pb
Phoebe Blamey — Business Coaching Platform
🌱

Client Portal

Access your program workbook, session notes, action plan and resources.

90-Day Builder Million Dollar Conspiracy Sprint Happy Hour
Coach

Welcome back, Phoebe 👋

Your day at a glance

Clients

All your coaching clients across every program

👥 Clients Tools
PB

Client Name

🔒 Coach only — intake answers, summary, and research brief in one place
Jump to →
Pull the latest Zoom transcript (or paste session notes), then click ✦ Extract action items. Claude reads what was said, lists what each side committed to, and lets you add them as tasks on any program in one tap.
📜 Past summaries · 0
✦ Calendly data ready — run AI research
✏️ Edit raw markdown
📚 Brief history & improvements
🔒 Coach only — your private notes
✅ Client facing — visible in the client workbook
⚡ Build the 90-day plan
Uses everything Claude has on this client — intake answers, research brief, session history, wins, weekly check-ins, plus today's session below. After you click Generate plan, Claude will ask a few clarifying questions tailored to this client before drafting.
🎬 Optional: pull the Zoom transcript If you've had a Zoom session, pull the transcript automatically (or paste session notes below instead).
— or paste session notes / Zoom transcript here —
Click any task or section title to edit it directly
📋 Plan templates · click to apply to this client
🔒 Coach only — sprint tracking & notes
🔒 Coach only — shared notes appear in client portal
💰 Client value tracker — revenue vs time invested
🏆 Win tracker — log results, generate impact statements
✅ Client visible — tasks appear in client's portal
📤 Sends directly to client — email or SMS
Templates support {firstName} and {clientName} placeholders — auto-replaced when loaded.
Sent messages are automatically logged as coach notes and appear in your Gmail Sent folder. Email is live; SMS requires Twilio setup — see Settings.
📝 Coach Notes (private + client-visible)
✅ Client facing — workbook exercises visible to client
✅ Client facing — session summary shared with client
🔒 Coach only — profile, preferences, and account-level actions for this client

Research Brief

Generate a pre-session research brief from client information

Client details

Program Builder

Build a custom program from session notes, OR import an existing program block (Coaching, MDC, Audit, Happy Hour) and edit. The output saves as a plan template you can apply to any client.

MDC Cohort

Cohort details · sessions · members · AI insights · community feed

Revenue Dashboard

Your business at a glance — revenue, pipeline, and AI insights

Task Sheet

Everything your clients need — tasks, check-ins, and follow-ups in one view

💛 Resources library

Your resource library — blogs, podcasts, courses, tools. Share anything with any client in one click.

All Tasks

Tasks across all clients and programs — sorted by due date

Settings & Setup build v11765

Configure integrations and test your automations

View →
🚦

Communications killswitch

Pause every outbound client email + SMS in one click. Digests, session reminders, welcome emails, broadcasts — all paused. Internal alerts to your own inbox (clients flagging blocked tasks, deletion requests) keep flowing.

📚 My program types

Built-in programs (90-Day, MDC, Audit, Happy Hour, etc.) plus your own custom types. Custom types appear in the "Add program" dropdown for every client. Each gets its own tab with a fillable sections panel.

📧 Email templates

Edit the wording of every email the platform sends. Use placeholders like {firstName}, {clientName}, {hubUrl}, {accessCode}, {sessionTime}, {zoomUrl} — they're replaced per-client at send time.

📦 Products to recommend

Add courses, books, or services here. They appear on a client's "What's next?" card during the last 4 weeks of their current program — alongside Phoebe's AI-suggested next program.

💬 NPS surveys

Auto-fires three short surveys per paid program: 24 hours after the first session, halfway through, and at the end. Score-based follow-ups land where they should — 9–10 invited to leave a LinkedIn review, 7–8 prompted to book a quick call, ≤6 emails you directly with their answer.


Configure

🎬 Zoom templates

Pre-loaded Phoebe-branded templates. Each one creates a real meeting template in your Zoom account — captions on, cloud recording auto, agenda in your voice, waiting-room rules per session type. Once made, every Zoom-create button in the hub picks the right template automatically.

One-time setup per template. After creating, the template lives in your Zoom Templates library — edit it there to add virtual backgrounds, polls, registration questions, etc.

🎖 Custom badges

Make your own. Pick an emoji, name it, choose how it animates when it unlocks. Award them to clients from their detail page.

+ New custom badge

🔌 Calendly webhook

When a client books any of your Calendly programs — 90-Day Business Builder, Accelerator, Broker, Happy Hour, Audit, MDC sessions, Ad Hoc, Discovery, podcast or partner chats — a client file is auto-created with all intake answers and the right workbook attached. One webhook handles them all. Add this URL in Calendly → Integrations → Webhooks → invitee.created:

https://hub.phoebeblamey.com.au/api/calendly-webhook

🎬 Zoom setup

✓ Live

Server-to-Server OAuth + webhook signing are wired. Cloud recording + audio transcripts auto-pull when each meeting finishes processing.

Setup notes (for reference) →
  1. Zoom Settings → Recording → enable Cloud recording + Audio transcript
  2. marketplace.zoom.us → Server-to-Server OAuth app → grab account/client/secret IDs
  3. Set Netlify env vars: ZOOM_ACCOUNT_ID · ZOOM_CLIENT_ID · ZOOM_CLIENT_SECRET · ZOOM_VERIFICATION_TOKEN
  4. Webhook subscription on /api/zoom-webhook for recording.completed events

📼 Zoom recordings — last 30 days

Recordings that match a client's name in the topic show as ✓ Matched. Anything else can be assigned manually below — pulls the transcript and saves it to that client.

💾 Backup all data — download a full snapshot

Belt-and-braces insurance. Downloads a single JSON file with EVERYTHING: every client, every program, every session note, plan, win, task, check-in, badge, plus your cohorts, plan templates, and activity log. Re-import isn't built yet, but if anything ever goes sideways with the server, this file is enough to rebuild from. Recommend running before each major sync or change.

🔄 Run full sync — Calendly + Zoom + dedupe

One-click: pulls every Calendly booking from the past year, every Zoom recording from the past year, creates client records for any that don't exist yet, attaches recordings to existing clients where it can, then merges any duplicates by email.

Use Dry run first to see what would change. Real run takes 1-3 minutes depending on volume.

📥 Import real clients from Calendly (legacy seed)

The original named-list importer for the 7 founding clients. The "Run full sync" above is the better tool now — keep this only if you need to force-recreate one of those specific records.

Will import: Anna-Louise MacAllister, Louise Syphers, Yvette Polley, Frances Pratt, Kari Marsden, Christine Lukich, Julie Judge

⚡ Test — Simulate a Calendly booking

Creates a test client file as if they had just booked through Calendly.

💰 Your hourly rate (for profitability tracking)

Used to calculate the cost of your time per client. Default: $297 AUD/hr

$ AUD / hr

📧 Client notification emails

Master switch for all client-facing automatic emails — welcome on signup, session reminders, etc.

Currently OFF by default while building. Turn on once you're ready for clients to actually receive emails. You can also disable per-client from each client's Edit page.

🔔 What I want to be notified about

Tick what you want to see in your Pulse panel + your daily digest. Granular control — only the things that matter to your day.


📨 How I want to receive them

🔑 Coach PIN

Your login PIN to access this dashboard. Default is Happy_529. PINs are case-sensitive. If you change the PIN here, you'll also need to update COACH_ADMIN_PIN in Netlify env vars (or your API calls will 401) — ask Claude Code if you need help with that.

📱 My phone number (shown to clients)

Optional — when set, a "Call or text Phoebe" link appears in the client Help drawer with this number. Leave blank to hide it.

📧 Gmail (outbound email)

Checking…

Outbound emails from the platform send via the Gmail API as phoebe@phoebeblamey.com.au. Used for welcome emails, session reminders, AI-summary deliveries, broadcast.

Env vars required: GOOGLE_CLIENT_ID · GOOGLE_CLIENT_SECRET · GOOGLE_REFRESH_TOKEN · GOOGLE_SENDER_EMAIL.

🎬 Zoom (meetings + recordings + transcripts)

Checking…

Auto-creates Phoebe-branded meetings, pulls recordings + transcripts via webhook, AI-summarises into review queue.

Env vars: ZOOM_ACCOUNT_ID · ZOOM_CLIENT_ID · ZOOM_CLIENT_SECRET · ZOOM_VERIFICATION_TOKEN.

📅 Calendly (auto-create clients on booking)

Checking…

When a Calendly booking lands, the webhook auto-creates the client + their first program + runs a background AI research brief.

Env var: CALENDLY_API_TOKEN.

🔐 Webhook signing Checking…

When signing is on, every Calendly event is HMAC-verified before the hub processes it — no one can fake a booking. Booking on Calendly stays exactly the same for clients — this is server-side only.

💳 Stripe Standard (course/upsell payments)

Checking…

When live, the "Phoebe's picks for you" card on a client's program-recommendation card becomes one-click checkout. Each product link can become a real Stripe payment link instead of an external URL.

Setup steps for Phoebe →
  1. Create / sign in to a Stripe account at stripe.com (Standard, not Connect — your own account)
  2. Stripe Dashboard → Developers → API keys → copy Secret key + Publishable key
  3. Add to Netlify env vars: STRIPE_SECRET_KEY · STRIPE_PUBLISHABLE_KEY
  4. (Optional) Set up a webhook endpoint in Stripe pointing at /api/stripe-webhook — secret env var STRIPE_WEBHOOK_SECRET
  5. Redeploy. The "Connect Stripe" pill will flip to "Live ✓".

Env vars: STRIPE_SECRET_KEY · STRIPE_PUBLISHABLE_KEY · STRIPE_WEBHOOK_SECRET (optional).

💬 WhatsApp Business (cohort groups + messaging)

Checking…

When live, Phoebe can create per-cohort WhatsApp groups, send meeting invites + reminders, and broadcast win celebrations from inside the platform.

Setup steps for Phoebe →
  1. Create a Meta Business account at business.facebook.com
  2. Set up the WhatsApp Business API — Meta Business Suite → WhatsApp → Get Started. Approval can take 1-3 days.
  3. Verify a phone number for messaging.
  4. From the WhatsApp Manager: copy your Phone Number ID + a Permanent Access Token (System User).
  5. Add to Netlify env vars: WHATSAPP_PHONE_NUMBER_ID · WHATSAPP_ACCESS_TOKEN · WHATSAPP_VERIFY_TOKEN (any random string for the webhook handshake).
  6. Redeploy. The status pill flips to "Live ✓".

Env vars: WHATSAPP_PHONE_NUMBER_ID · WHATSAPP_ACCESS_TOKEN · WHATSAPP_VERIFY_TOKEN.

💬 Twilio SMS (text reminders)

Checking…

When live, the "Send a text" option appears in the Message tab + automated session reminders go out as SMS. ~$0.01 per text.

Get your Account SID + Auth Token at twilio.com → Console.
Env vars: TWILIO_ACCOUNT_SID · TWILIO_AUTH_TOKEN · TWILIO_FROM_NUMBER.

✦ Anthropic AI (Claude — research, summaries, recommendations)

Checking…

Powers every AI feature: research brief, deep dive, session summaries, why suggestions, program recommendations, Knowledge Bank.

Env var: ANTHROPIC_API_KEY. Get one at console.anthropic.com.

📅 Calendar (Google / Apple / Outlook)

Already covered

The hub doesn't talk to your Google Calendar directly — it doesn't need to. Calendly already writes Calendly bookings into your calendar (configured at calendly.com → Integrations → Calendar). For one-off events the hub generates, you get a portable .ics file you can drop into any calendar app — Google, Apple, Outlook, all of them.

Why not full Google Calendar API? →
  1. You'd end up with two writers (Calendly + the hub) fighting over the same events.
  2. It would need a second OAuth token with calendar scope on top of the existing Gmail one.
  3. The .ics path works in every calendar app — universal, no lock-in.
  4. If you ever need direct API writes (e.g. auto-creating an availability hold), it's a small add-on — env vars: GOOGLE_CALENDAR_ID + reusing the existing Gmail OAuth refresh token with calendar scope appended.

🧹 Data hygiene — find and clean up junk records

Walks every client record looking for: demo personas left over from the build, test bookings from "Simulate booking", duplicate clients by email variant, and Zoom-sync orphan placeholders. Nothing gets deleted without a confirm.

📥 Plan importer — load client plans from JSON

Paste a plan file (like peabe-plan-import.json) below. Preview shows exactly what will happen — new clients created, or plans merged onto existing clients matched by email or name — and nothing is saved until you click Import. Pillars, measures and monthly actions land in each client's Plan tab; week counts and start dates drive their progress arc. Copy blank template gives you the exact shape, pre-filled with your five Accelerator clients.

🎯 Default intake questions

These are the questions every new client starts with — plus extra questions added when they sign up for a specific program. Edit the wording, delete what you don't want, or add new questions. Existing clients keep what they already have; the next sync adds anything new.

🔄 GitHub auto-deploy (never lose work)

Connect your Netlify site to a GitHub repo for automatic deploys. Every time a new version is built, push to GitHub → Netlify deploys automatically. No more zip uploads.

Netlify → Site settings → Build & deploy → Link to Git repository

➕ Manually add client to any program

My Hub
My Hub

Your Hub

You're good at what you do. Let's make your money reflect it.

💛
+ Add my why
Unsaved changes
🎉 New booking received!