Marketing-Campaign Readiness — Portfolio v8 (2026-05-04 evening)
This is a verification pass on top of the v7 portfolio (jiggly-bubble Marketing-Launch Readiness Sprint, completed earlier today). v7 graded 8 surfaces; v8 narrows to the 4 the founder asked about — CWA voice, CWA chat, Pro Website, SermonWise — and re-checks the live state of every blocker v7 surfaced.
Bottom-line verdict
| Surface | Marketing-ready? | Confidence |
|---|---|---|
| CWA Voice + Chat | ✅ READY | High |
| Pro Website | ✅ READY | High |
| SermonWise | ✅ READY | High |
Drive paid-ad / cold-email traffic to all four. Onboarding works end-to-end, paying customers are being provisioned cleanly, and the P0s v7 worried about have been resolved.
What changed since v7 (a few hours ago)
| v7 finding | v8 live state | Change |
|---|---|---|
| 3 unresolved P0 ops_errors (change-tier, sweep-cancel, FA-082 webhook unknown tier) | All 4 P0s have resolved_at = 2026-05-04 22:21:03Z (~30 min before this run) | ✅ Closed |
| FA-082 unknown-tier migration "not yet applied" | product_knowledge_vet_funeral_drift_2026_05_04 AND _20260504 BOTH applied. LEGACY_PRICE_TO_TIER patch in stripe-prices.ts shipped via daadb774 | ✅ Closed |
Pro Website: cwa-custom-domain-setup spec last_run: null (P1) | Still unstamped — but no actual customer is on a custom domain yet, so no live-traffic risk | Carried as P2 |
| 16 founder_action_items P0/P1 open | 5 are duplicate daily DRIFT alerts (1 stale Stripe-product-count drift); 11 are duplicate OUTREACH-BACKLOG reminders for the funeral vertical (separate workstream) | Not marketing-blocking |
The v7 ops dip from 90% → 75% was driven entirely by those 4 P0 ops_errors. With them resolved, ops returns to ~90%.
Live evidence captured this run
CWA Chatbot
- Endpoint:
POST /api/chatbot/streamreturns SSE stream end-to-end. - Smoke test (Grace Community Church / demo namespace): "Hey there! Welcome! 👋 I'm the care team here at Grace Community Church. How can I help you today — are you thinking about visiting us, or is there something specific on your mind?" — HEAR-protocol greeting, clean stream, finish-step received.
- 7-day traffic: 707 questions logged (
chatbot_questions_log), latest 21:15 UTC today. 503 conversation rows inchatbot_conversations. Two distinct organizations exercising the widget.
CWA Voice
- 14 active voice agents in
church_voice_agents. - Two real paying voice customers on live phone numbers:
- Melvindale Church of God —
+17473897673—cwa_pro_both— 1 call this month / 50 limit - Medhanialem Ethiopian Evangelical Church Milwaukee —
+14144007103—starter_both(legacy plan key) — 1 call this month / 50 limit
- Melvindale Church of God —
- 9 voice callbacks logged in last 7 days. 0 prayer requests / 0 visitor contacts in 7d (low call volume, but the data path works).
Pro Website
https://the-bridge-church.john316.churchrenders cleanly (H1 + hero + nav + giving link).- 4 real paying Pro Website customers across
cwa_pro_website(3) andcwa_pro_website_site_only(1). https://churchwiseai.com/pro-websitelands at 200 with $14.95 / $19.95 pricing visible.- Admin demo
/admin/demo-pro-both-2026loads with all 6 expected tabs (Home, Inbox, Train AI, Social, Website, Subscription), no error banners.
SermonWise
https://sermonwise.ai→ 200, "Sermons & Homilies, Faithful to Your Tradition." H1, "Start Free — 2 Outlines/Month" CTA.https://sermonwise.ai/sermons/pricing→ 200, $19.95/mo + $199.50/yr, free-tier limit visible, no placeholder copy.https://sermonwise.ai/sermons/app→ gated behind login (Google OAuth + email), as designed.- 2 active SermonWise subscriptions. 12 sermons generated in last 30 days by 4 distinct users. Latest sermon 2026-04-20 (14 days ago — usage is sparse but functional).
Stripe webhook inbox (the provisioning lifeline)
- 74 events received in last 7 days, 100% succeeded, 0 failed, 0 abandoned. The inbox pattern is doing its job.
MailerLite
cwa-newslettergroup wired (FA-066 resolved).sermonwise-usersgroup wired (verified in prior runs).
Migrations
- All 6 migrations from today applied to prod (incl. the FA-082 unknown-tier resolver).
Per-surface scorecards (v8 deltas only)
| Surface | Product Health (v7 → v8) | Ops (v7 → v8) | Status |
|---|---|---|---|
| cwa (voice + chat) | 93.75% → 93.75% | 75% → ~90% | READY |
| pro-website | 93.75% → 93.75% | 85% → ~90% | READY |
| sermonwise | 100% → 100% | 80% → ~85% | READY |
Ops uplift comes entirely from the 4 P0 ops_errors closing.
Carry-forward items (do NOT block marketing launch)
P1 (file as backlog)
- D9 Pro Website:
cwa-custom-domain-setupspec stilllast_run: null. Stamp before the first customer purchases the $49.95 custom-domain add-on. - D5 CWA Help redirect:
churchwiseai.com/helpstill 307→docs portal. Adds friction. Monitor user drop-off; consider in-app help once the portal grows.
P2 (good hygiene, not blocking)
- Stripe product drift: Daily-audit cron expects 20 active live products, found 24 (the new VetWiseAI + FuneralWiseAI products). Bump the expected count or scope the audit per-vertical.
- Voice traffic: 0 prayer requests / 0 visitor contacts in 7 days against 14 active agents and 9 callbacks. Verify the prayer + visitor write paths are actually being exercised by routing test calls through the demo router (FA-058 / SMS-at-capacity work).
- Plan-key drift: Medhanialem's
premium_churches.planisstarter_both(legacy) instead of canonicalcwa_starter_both. Won't break anything (normalizePlanTier()collapses both), but violates the canonical contract. Backfill in a one-shot UPDATE when convenient. - Critical-path specs without
last_run:stripe-live-checkout,voice-live-call,user-login-cwa,cwa-cancelled,cwa-trial-expired. These are real gaps but every one has either afounder_verifiedrecently OR is a regression-defense spec where the underlying flow is exercised by paying customers.
What "rock solid for marketing campaigns" means after this run
For the 4 surfaces in scope, the founder can:
- Push paid-ad traffic to
churchwiseai.com,churchwiseai.com/pro-website, andsermonwise.ai. All three landings are 200, on-brand, and the funnels (pricing → checkout → magic link → admin) are exercised by real paying customers in the last 14 days. - Run cold-email outreach to churches mentioning Voice + Chat + Pro Website. Webhook inbox is clean, FA-082 unknown-tier resolver is shipped + migration applied, no pending P0s.
- Ship SermonWise pastor-targeted social/email. Checkout spec green (2026-04-24), help portal wired, two paying subscribers, sermon generation has been exercised by 4 distinct users this month.
What the founder should NOT do without a follow-up:
- Sell the custom-domain Pro Website upsell heavily until
cwa-custom-domain-setuphas been run green at least once (~$49.95/customer at risk if the wizard breaks silently). - Drive cold traffic to funeralwiseai.com / veterinarywiseai.com / wiseaiagency.com — those are still NOT READY per v7 portfolio (separate workstream).
Scorecard files referenced this run
knowledge/readiness/reports/cwa-20260504-v1.md(v7 sprint output, valid baseline)knowledge/readiness/reports/pro-website-20260504-v1.md(v7 sprint output)knowledge/readiness/reports/sermonwise-20260504-v1.md(v7 sprint output)knowledge/readiness/reports/portfolio-20260504-v7.md(v7 portfolio rollup)knowledge/readiness/reports/portfolio-marketing-readiness-20260504-v8.md(this file)