Skip to main content

Starter Chat — Expected Output Spec

Status: COMPLETE -- All 62 touchpoints specified. Founder decisions applied. Ready for Playwright test generation. Tier: Starter | Channel: Chat | Price: $14.95/mo ($149.50/yr) | Trial: 14 days


User State Definition

FieldValue
Plancwa_starter_chat (or cwa_starter_chat_annual; legacy names starter_chat/starter_chat_annual still accepted)
Channelchat
Statuspreview (trial) then active (paid)
chatbot_enabledtrue
care_enabledtrue
VoiceNOT included -- Calls tab HIDDEN, no voice picker, no phone number
AgentsCare + Coordinator only (Discipleship + Stewardship HIDDEN)
Tools12 (Starter tier)
Monthly message limit200 LLM-generated responses
Max tokens per response450
Tool-use rounds3
FAQ managementNOT included (HIDDEN -- Pro+ feature)
Document uploadNOT included (HIDDEN -- Pro+ feature)
Analytics dashboardNOT included (HIDDEN -- Pro+ feature)
Embed widgetAvailable at all tiers (Founder Decision #5)
Widget customizationNOT included (HIDDEN -- Pro+ feature)
Training simulatorNOT included (HIDDEN -- Pro+ feature)
Local resources configNOT included (HIDDEN -- Pro+ feature)
Remove branding badgeNOT included (Suite only)
Pro WebsiteNOT included (separate $19.95/mo product)
Theological lensDenomination selector visible (full configuration at Pro+)

Tier Feature Access (from tier-config.ts)

Starter has access to: basic_chatbot, hosted_chat, premium_page

Starter does NOT have access to: faq_management, document_upload, analytics, widget_customization, theological_lens, training_simulator, local_resources, social_management, marketplace, custom_agents, unlimited_docs, api_access, advanced_analytics, remove_badge

Note: embed_widget is available at all tiers (Founder Decision #5).


A. Discovery Paths (Touchpoints 1--10)

How a prospective Starter Chat customer first encounters the product.

Touchpoint 1: Homepage

URL: https://churchwiseai.com/ Component: churchwiseai-web/src/app/page.tsx

Should See:

  • Hero: "No Visitor Left Behind. No Prayer Request Forgotten." with church photo background
  • Hero MUST have a visible pricing/signup CTA above the fold (currently missing — see improvement note)
  • Agent cards: Care Agent + Coordinator Agent ("Included in all plans")
  • Trust pillars, stats bar (39 tools, 17 traditions, 218K+ churches)
  • Theology showcase (17 traditions)
  • Video demo section
  • Ecosystem products (PewSearch, ITW, SermonWise)
  • Newsletter signup
  • FAQ section
  • Bottom CTA: "Chat from $14.95/mo" with "See Plans & Pricing" link
  • Navigation with links to /pricing, /chatbot, /voice, /demo

Should NOT See:

  • Nothing hidden — this is a public marketing page
  • No tier-specific content at this stage

CTA -> Destination:

  • "See Plans & Pricing" -> /pricing (currently below the fold only)
  • "Try a Live Demo" -> /demo
  • "Book a Strategy Call" -> /book

IMPROVEMENT REQUIRED:

  • No pricing CTA above the fold. A pastor who's ready to buy sees the hero and has no clear next step to pricing without scrolling through multiple sections. Hero needs a visible "See Plans" or "Get Started — from $14.95/mo" button.

Founder Decision: [x] Approved with required improvement (hero CTA above fold)


Touchpoint 2: Pricing Page

URL: https://churchwiseai.com/pricing Component: churchwiseai-web/src/app/pricing/page.tsx, PricingGrid.tsx

Should See:

  • Compact navy gradient hero (NOT the current oversized brown hero) with floating pricing card overlapping it — same design pattern as /terms and /contact pages but adapted for pricing
  • Channel toggle (Chat Only / Voice Only / Both) and billing toggle (Monthly / Annual) ABOVE THE FOLD
  • Pricing cards visible without scrolling — the current hero pushes them below the fold
  • All tiers displayed: Starter / Pro (highlighted, "Most Popular") / Suite
  • All channels: Chat / Voice / Both (bundle)
  • Starter Chat card showing $14.95/mo with annual toggle showing $149.50/yr (save $30)
  • Starter features listed: Prayer request capture, Visitor contact logging, Hosted care page, Service times & directions, Staff notifications, AI Starter Kit included
  • "12 tools to get started" tagline
  • "Best for 50--200 member churches wanting to capture visitors and prayer requests automatically"
  • "Get Started" button on Starter Chat card
  • Agent showcase section ("Meet Your Agents")
  • FAQ section (trial details, affordability, etc.)
  • "Need Help Choosing?" → consultation CTA

Should NOT See:

  • Voice-only pricing highlighted for this path (visible but not pre-selected)
  • Any indication that Starter is inferior — positioned as "Perfect for Churches Testing AI Care"
  • Oversized hero that pushes pricing cards below the fold

CTA -> Destination:

  • "Get Started" on Starter Chat -> /onboard?plan=starter_chat (or starter_chat_annual if annual toggled)
  • "Book a Free Consultation" -> /book

IMPROVEMENT REQUIRED:

  1. Hero is too large — pricing cards pushed below fold. The "Build Your Ministry Team" header takes up too much vertical space. Reduce to compact navy gradient hero (matching /terms, /contact design language).
  2. Adopt floating card overlap pattern. Use the elevated card design from /terms and /contact — navy gradient hero with the channel/billing toggles + pricing cards in a floating card that overlaps the hero. This brings all pricing content above the fold.
  3. Design consistency. Current pricing page uses brown/dark hero while other pages (terms, contact) use navy gradient. Align to navy.
  4. Default channel must be "Chat Only", not "Both". Currently useState<Channel>("both") in PricingGrid.tsx — pastor sees Starter at $54.95 instead of $14.95 on first load. Lowest-barrier option first (P8.4). Change default to "chat".

Founder Decision: [x] Approved with required improvements (compact hero + floating card + default to Chat Only)


Touchpoint 3: Chatbot Product Page (SEO landing only)

URL: https://churchwiseai.com/chatbot Component: churchwiseai-web/src/app/chatbot/page.tsx Discovery: SEO/organic search only — a pastor searching "AI chatbot for churches" may land here from Google. NOT reachable via primary click-through journey (buried in header dropdown and footer).

Should See:

  • Chatbot product hero with feature highlights
  • How it works section
  • Feature comparison across tiers (Starter / Pro / Suite)
  • Live demo or screenshot of chatbot in action
  • "Powered by ChurchWiseAI" badge mention
  • Pricing summary for chat plans
  • "Get Started" CTA

Should NOT See:

  • Voice agent pricing or features (separate product page at /voice)

CTA -> Destination:

  • "Get Started" -> /onboard?plan=starter_chat
  • "See All Plans" -> /pricing

Founder Decision: [x] Approved (SEO page only, not primary journey)


Touchpoint 4: Voice Agent Product Page (cross-sell path)

URL: https://churchwiseai.com/voice Component: churchwiseai-web/src/app/voice/page.tsx

Should See:

  • Voice Agent product page (marketing for voice plans)
  • Bundle pricing showing savings vs buying separately
  • Comparison showing Chat vs Voice vs Both
  • A path to discover Chat-only plans for churches not ready for voice

Should NOT See:

  • Nothing hidden -- public page

CTA -> Destination:

  • If user clicks Chat-only path -> /onboard?plan=starter_chat
  • Primary CTAs point to voice/bundle plans -> /onboard?plan=starter_voice or starter_both

Founder Decision: [x] Approved (irrelevant to Starter Chat journey)


Touchpoint 5: Blog Articles

URL: https://churchwiseai.com/blog and /blog/[slug] Component: churchwiseai-web/src/app/blog/page.tsx

Should See:

  • Blog articles about church AI, ministry technology, case studies
  • Contextual CTAs within articles linking to relevant product pages
  • Sidebar or inline "Try ChurchWiseAI" CTAs
  • Author attribution and church-relevant content

Should NOT See:

  • Nothing hidden -- public content marketing

CTA -> Destination:

  • Contextual CTAs -> /pricing or /onboard
  • "Learn More" -> product pages (/chatbot, /voice)

Founder Decision: [x] Approved (awareness/education, no direct Starter CTA needed)


Touchpoint 6: Denomination SEO Pages

URL: https://churchwiseai.com/ai-for/[denomination] Component: churchwiseai-web/src/app/ai-for/[denomination]/page.tsx

Should See:

  • Denomination-specific landing page (Baptist, Catholic, Methodist, Lutheran, etc.)
  • Tailored messaging for that tradition's needs
  • "AI tools built for [denomination] churches"
  • Same pricing information as main pages
  • Denomination-specific testimonials or use cases (when available)

Should NOT See:

  • Nothing hidden -- public SEO pages

CTA -> Destination:

  • "Get Started" -> /onboard?plan=starter_chat (or /pricing)

Founder Decision: [x] Approved (SEO landing pages, drive to pricing)


Touchpoint 7: PewSearch Admin Upsell

URL: https://pewsearch.com/admin/[token] (Upgrade/AI tab) Component: pewsearch/web/src/app/admin/[token]/ (various components)

Should See:

  • Within PewSearch admin dashboard, a section promoting ChurchWiseAI AI products
  • "Add AI to your church" or "Upgrade to ChurchWiseAI" messaging
  • Starter Chat highlighted as the entry point ($14.95/mo)
  • Feature preview of what the chatbot can do beyond the basic PewSearch auto-provision chatbot

Should NOT See:

  • Full ChurchWiseAI dashboard features inside PewSearch (these live on churchwiseai.com)

CTA -> Destination:

  • "Get ChurchWiseAI" -> https://churchwiseai.com/onboard?plan=starter_chat (external link)

Founder Decision: [x] Approved (PewSearch cross-sell, minor path)


Touchpoint 8: PewSearch Church Detail Page

URL: https://pewsearch.com/churches/[slug] Component: pewsearch/web/src/app/churches/[slug]/page.tsx

Should See:

  • Church listing page with basic chatbot (auto-provisioned, 1 tool)
  • If the church has no CWA subscription, the basic chatbot includes subtle upsell
  • "Powered by ChurchWiseAI" link on the basic chatbot widget
  • After a prayer request submission: CTA to explore ChurchWiseAI for advanced tools

Should NOT See:

  • Full Starter-tier chatbot features on PewSearch (those require a CWA subscription)

CTA -> Destination:

  • "Powered by ChurchWiseAI" badge -> https://churchwiseai.com/chatbot
  • Post-prayer-request upsell -> https://churchwiseai.com/pricing

Founder Decision: [x] Approved (no CWA CTAs on church detail pages currently)


Touchpoint 9: Direct /onboard URL

URL: https://churchwiseai.com/onboard or https://churchwiseai.com/onboard?plan=starter_chat Component: churchwiseai-web/src/app/onboard/page.tsx, OnboardForm.tsx

Should See:

  • Onboarding form (Step 1 of 3) -- this IS the pre-purchase entry point
  • If ?plan=starter_chat is in URL, the plan dropdown pre-selects Starter Chat
  • If no plan param, the user selects a plan in Step 3

Should NOT See:

  • Nothing hidden at this stage -- the form is universal for all plans

CTA -> Destination:

  • Form submission -> Step 2 (results) -> Step 3 (contact + plan) -> Stripe checkout

Founder Decision: [x] Approved (protective redirect to /pricing if no plan param)


URL: https://churchwiseai.com/onboard?plan=starter_chat&ref=[partner] Component: churchwiseai-web/src/app/onboard/components/OnboardForm.tsx

Should See:

  • Same onboard flow as Touchpoint 9
  • Plan pre-selected based on URL param
  • Referral source tracked (if ref param implemented)

Should NOT See:

  • Nothing different from standard onboard

CTA -> Destination:

  • Same flow as Touchpoint 9

B. Pre-Purchase Journey (Touchpoints 11--16)

The step-by-step flow from landing to paying customer.

Touchpoint 11: Landing / Entry Point

URL: https://churchwiseai.com/onboard?plan=starter_chat Component: churchwiseai-web/src/app/onboard/page.tsx

Should See:

  • Navy gradient hero with floating card (same pattern as /terms, /contact, and updated /pricing) — card overlaps the hero
  • "Founder Pricing — Limited Time" badge prominently in the hero/card area
  • "Let's Set Up Your Church" heading
  • 14-day free trial callout — clear messaging: "Start your 14-day free trial" or "Free for 14 days, then $14.95/mo. Cancel anytime."
  • 3-step progress indicator (Find Church → Confirm → Sign Up)
  • Plan pre-selected: "Starter Chat — $14.95/mo"
  • Church Name field, City (optional), State dropdown
  • "Search for My Church" button
  • Trust badges: SSL, Stripe, "No contract · Cancel anytime"
  • Clean, simple form — not overwhelming

Should NOT See:

  • PewSearch branding
  • Voice agent setup steps
  • Complex technical jargon
  • Ambiguity about whether credit card is required (it IS — set expectations: "Credit card required. You won't be charged for 14 days.")

CTA -> Destination:

  • "Search for My Church" -> queries PewSearch directory -> shows results (Step 2)

IMPROVEMENT REQUIRED:

  1. Add navy gradient hero with floating card — same design pattern being applied to /pricing. Highlights "Founder Pricing" and the page title.
  2. Add trial messaging — currently no mention of "14-day free trial" on the form. Pastor should see "Free for 14 days, then $14.95/mo. Cancel anytime." near the plan selector or at the top of the form.
  3. Set credit card expectation — "Credit card required at checkout. You won't be charged for 14 days." Prevents drop-off surprise at Stripe step.

Founder Decision: [x] Approved with required improvements (floating card hero + trial messaging)


Touchpoint 12: Onboard Step 1 -- Church Info

URL: https://churchwiseai.com/onboard?plan=starter_chat (step 1 of form) Component: churchwiseai-web/src/app/onboard/components/OnboardForm.tsx (step: 'search')

Current State (PROBLEMS):

  • Step label says "Find Church" — confusing. A pastor already HAS a church. They're not looking for one.
  • Button says "Search for My Church" — search WHERE? Customer doesn't know PewSearch exists. It's a mystery search.
  • Link says "Skip search — my church isn't listed" — listed on WHAT? Confusing and suspicious.
  • The entire step is designed around an INTERNAL goal (match to PewSearch directory) not a CUSTOMER goal (sign up for a chatbot).
  • This is a conversion blocker — customers expect "enter your church name" not "search our directory."

Should See (REDESIGN REQUIRED):

  • Step label: "Your Church" or "Church Details" (not "Find Church")
  • Simple fields: Church Name, City, State — presented as "Tell us about your church"
  • The PewSearch directory match should happen silently in the background after they enter their info, not as a visible search step
  • If a match is found, show it subtly: "We found your church in our directory — we'll set up your listing automatically"
  • If no match, no friction: just continue to next step
  • No "search" framing at all — the customer is ENTERING their info, not SEARCHING for something

Should NOT See:

  • "Find Church" as a step label
  • "Search for My Church" button
  • "Skip search — my church isn't listed" link
  • Any reference to PewSearch or a directory
  • Any implication that they need to find something before they can sign up

Also on this step — Plan Selector:

  • Plan dropdown shows ALL 8 plans (Starter/Pro/Suite × Chat/Voice/Both) — customer can change plans here
  • Monthly/Annual toggle with "save 17%" label
  • When toggled to annual: dropdown updates to show "Starter (Chat) — $149.50/yr (save $30)"
  • Annual math: $14.95 × 12 = $179.40, annual = $149.50, savings = $29.90 (displayed as $30)

CTA -> Destination:

  • "Continue" or "Next" -> proceeds to Step 2 (with silent PewSearch match in background)

IMPROVEMENT REQUIRED:

  1. Rename step from "Find Church" to "Your Church" or "Church Details"
  2. Remove search-first UX — replace with simple data entry (name, city, state) with silent directory matching
  3. Remove "Skip search" link — no search to skip if entry is the default
  4. Reframe from "find" to "tell us" — customer is providing info, not searching
  5. Verify annual toggle — confirm price updates correctly in dropdown when toggled (expected output: "$149.50/yr (save $30)")

Founder Decision: [x] Approved with required redesign (remove search-first UX, silent directory match)


Touchpoint 13: Post-Checkout Bonus Page

URL: N/A -- Starter gets no PewSearch bonus

Should See:

  • NOTHING related to PewSearch. Starter Chat gets no bonus.

Should NOT See:

  • "Bonus: Free Premium Listing!" section
  • Any PewSearch directory offer
  • Any prompt to claim or create a directory listing

Founder Decision: [x] Approved (no bonus for Starter tier)


Touchpoint 14: REDESIGNED — Single Step: "About You & Your Church"

URL: https://churchwiseai.com/onboard?plan=starter_chat Component: churchwiseai-web/src/app/onboard/components/OnboardForm.tsx (REDESIGN — collapse 3 steps into 1)

Should See (one single form):

Church section:

  • Church Name (required)
  • City (optional), State (dropdown, optional)

Contact section:

  • Your Name (required)
  • Email (required)
  • Phone (required)
  • Backup contact: Name, Email, Phone (all optional, collapsible section — "Add a backup contact (recommended)")
    • When expanded, show helper text: "Recommended — ensures someone else can access your account. You can add this later from your dashboard."

Plan section:

  • Plan dropdown pre-selected to starter_chat (customer CAN change plan here)
  • Monthly/Annual toggle (annual shows "$149.50/yr (save $30)")
  • 14-day free trial callout: "Free for 14 days, then $14.95/mo. Cancel anytime."

Expected outcome — Plan dropdown (MONTHLY selected):

Dropdown optionPrice shown
Starter (Chat)$14.95/mo
Starter (Voice)$49.95/mo + $49.95 setup
Starter (Voice + Chat)$54.95/mo + $49.95 setup
Pro (Chat)$34.95/mo
Pro (Voice)$99.95/mo + $49.95 setup
Pro (Voice + Chat)$119.95/mo + $49.95 setup
Suite (Chat)$59.95/mo
Suite (Voice + Chat)$139.95/mo + $49.95 setup

Expected outcome — Plan dropdown (ANNUAL selected):

Dropdown optionPrice shownIssue?
Starter (Chat)$149.50/yr (save $30)OK
Starter (Voice)$49.95/mo + $49.95 setupAnnual: $549/yr (setup waived)
Starter (Voice + Chat)$54.95/mo + $49.95 setupAnnual: $599/yr (setup waived)
Pro (Chat)$349.50/yr (save $70)OK
Pro (Voice)$99.95/mo + $49.95 setupAnnual: $1,099/yr (setup waived)
Pro (Voice + Chat)$119.95/mo + $49.95 setupAnnual: $1,299/yr (setup waived)
Suite (Chat)$599.50/yr (save $120)OK
Suite (Voice + Chat)$139.95/mo + $49.95 setupAnnual: $1,499/yr (setup waived)

IMPROVEMENT REQUIRED:

  • Hide the annual/monthly toggle entirely when a voice or bundle plan is selected. Toggle only visible for chat-only plans (starter_chat, pro_chat, suite_chat). Don't explain infrastructure to pastors — just hide what doesn't apply.
  • When customer switches from chat to voice/bundle plan: toggle disappears, price shows monthly only
  • When customer switches back to chat plan: toggle reappears
  • Trial callout should update dynamically: monthly shows "Free for 14 days, then $14.95/mo" / annual shows "Free for 14 days, then $149.50/yr"

Country (REQUIRED — new field):

  • Country dropdown (required) — US, Canada, then alphabetical list of all countries
  • Needed for: billing, legal compliance, opt-in default logic

Consent:

  • ☑ "I agree to the Terms of Service" (required, links to /terms)
  • ☑ / ☐ "Send me setup tips and product updates" — pre-checked for US + Canada (CAN-SPAM allows pre-checked with easy unsubscribe), unchecked for all other countries (GDPR requires explicit opt-in)

Security:

  • Turnstile captcha (invisible)

Submit:

  • "Continue to Checkout" button → creates premium_churches row → redirects to Stripe

Trust indicators below form:

  • SSL badge, Stripe badge, "No contract · Cancel anytime"

Should NOT See:

  • "Find Church" step or search-first UX
  • "Search for My Church" button
  • "Skip search — my church isn't listed"
  • Any reference to PewSearch or a church directory
  • Credit card fields (those are on Stripe checkout)
  • Multi-step progress indicator (it's now one step + checkout)

Background behavior (invisible to customer):

  • On form submit, API silently matches church name + city + state against PewSearch directory
  • If match found: links the premium_churches row to the existing church record
  • If no match: creates a new church record
  • Customer never sees this matching — it just happens

CTA -> Destination:

  • "Continue to Checkout" -> /api/onboard (creates record) -> /onboard/checkout?cid=[id]&tier=starter_chat

Founder Decision: [x] Approved (collapse 3 steps into 1 single form + silent directory match)


Touchpoint 15: Stripe Checkout

URL: https://churchwiseai.com/onboard/checkout?cid=[id]&tier=starter_chat Component: churchwiseai-web/src/app/onboard/checkout/page.tsx, CheckoutForm.tsx Screenshot: screenshots/starter-chat/b15-stripe-checkout.png

Should See:

  • Our header: "ChurchWiseAI" + "Secure Checkout" + "Back to onboarding" link
  • Plan summary card: "Setting up [Church Name]" with gold badge "Starter Chat Plan"
  • Stripe Embedded Checkout:
    • "14 days free" trial badge (auto-applied)
    • "Then $14.95 per month starting [date]" (or $149.50/yr for annual)
    • Product name: "ChurchWiseAI Starter Chat" (not "CWA Chat Starter")
    • Product description: accurate for the tier (2 agents, 12 tools, NO voice mention)
    • Currency: USD (default)
    • Email pre-filled from onboard form
    • Card fields, billing address
    • Promo code field
    • "Start trial" button (gold)
    • "Pay with Link" option (Stripe Link)

Should NOT See:

  • Voice agent line items or voice mentions on a chat-only plan
  • "CWA" abbreviation — use full "ChurchWiseAI" brand name
  • Setup fees (there are none)
  • Confusing tier comparison — just the one plan they selected

BUGS FOUND:

  1. Stripe product name is "CWA Chat Starter Annual" — should be "ChurchWiseAI Starter Chat (Annual)". Pastors don't know what "CWA" means.
  2. Stripe description says "voice + PW's" — WRONG for a chat-only plan. Starter Chat does NOT include voice. This description is misleading and must be corrected in Stripe product metadata.
  3. Browser back button = stuck spinner. If customer goes to Stripe checkout then hits browser Back, the onboard form is stuck in "Setting up your Account..." spinning state with no way to recover. No timeout, no cancel button, no reset. Form must detect this state and either redirect forward to checkout or reset the form.

IMPROVEMENT REQUIRED:

  1. Fix Stripe product names — all products should use "ChurchWiseAI [Tier] [Channel]" format, not "CWA" abbreviation
  2. Fix Stripe product descriptions — must accurately reflect the tier. Chat plans must NOT mention voice.
  3. Add "Change plan or billing" link on checkout page — below the plan summary card, a visible link that returns to the onboard form with all data preserved (via sessionStorage). Customer should never need to use browser Back.
  4. Fix browser back button (safety net) — detect post-submission state on form page load. If submission already happened, either restore form with data from sessionStorage or redirect forward to checkout. Never show a stuck spinner.
  5. Preserve form data across navigation — store church name, contact info, plan selection in sessionStorage before redirecting to checkout. Restore on return. Customer shouldn't have to re-enter everything.

CTA -> Destination:

  • "Start trial" -> Stripe processes payment -> redirects to /onboard/return?session_id=[id]
  • "Back to onboarding" -> should return to form with data preserved (currently restarts)

Founder Decision: [x] Approved with required bug fixes (Stripe metadata + back button spinner)


Touchpoint 16: Post-Checkout Confirmation

URL: https://churchwiseai.com/onboard/return?session_id=[id] Component: churchwiseai-web/src/app/onboard/return/page.tsx

Should See:

  • One of 3 states:
    • Success: Checkmark icon, "Welcome to ChurchWiseAI!" message, church name displayed
      • Direct "Go to Your Dashboard" button (don't make them wait for email — they're excited, keep the momentum)
      • Security note: "Your dashboard link is private and secure — it's unique to your church. Bookmark it or save the email we just sent for easy access anytime."
      • Email mention (secondary): "We've also sent this link to [email] — save that email so you always have it"
      • NO PewSearch bonus section -- Starter gets no bonus (see Touchpoint 13)
    • Incomplete: Amber warning, "Your payment wasn't completed", "Return to Onboarding" button
    • Not Found: Red error, "Session Not Found", "Try Again" button

Should NOT See:

  • "Check your email" as the ONLY next step (momentum killer)
  • Voice agent setup instructions
  • Complex technical next steps

CTA -> Destination:

  • Success: "Go to Your Dashboard" -> /admin/[token] (direct access, no email wait)
  • Incomplete: "Return to Onboarding" -> /onboard
  • Not Found: "Try Again" -> /onboard

IMPROVEMENT REQUIRED:

  1. Add direct dashboard link on success page — don't force customer to wait for email. They just signed up, keep the momentum going.
  2. Reframe email mention — "We've also sent a magic link to your email for easy future access" (secondary, not primary CTA)
  3. No PewSearch bonus — Starter gets no bonus. Do not add any bonus section here.

TESTING PLAN (scheduled for later today):

  • Full click-through journey with Stripe test cards
  • Screenshot all 3 states (success, decline, not found)
  • Test cards: 4242 4242 4242 4242 (success), 4000 0000 0000 9995 (decline)
  • Screenshots will be captured AFTER fixes are implemented

C. Email Journey (Touchpoints 17--24)

Every email the Starter Chat customer receives.

Touchpoint 17: Pre-Checkout Email — REMOVE

Trigger: Currently fires immediately after /api/onboard creates the premium_churches row (BEFORE Stripe checkout) Component: churchwiseai-web/src/app/api/onboard/route.ts (lines 239-243)

  • Currently sends sendPremiumWelcomeEmail() with full dashboard access link
  • Subject: "Your ChurchWiseAI dashboard is ready — [Church Name]"
  • Contains: Magic link to /auth/magic?t=[adminToken]
  • This is WRONG. No payment = no dashboard access. Period.

Should See:

  • NOTHING. No email should be sent before checkout is completed.
  • The only pre-checkout communication is what's on the onboard form itself.
  • If we want to handle cart abandonment: that's a separate lifecycle email triggered AFTER a delay (e.g., 24 hours with no checkout completion), NOT an immediate email with dashboard access.

Should NOT See:

  • Dashboard magic link before payment
  • "Your dashboard is ready" before they've paid
  • Any email at all at this stage

REQUIRED FIX:

  • Remove the sendPremiumWelcomeEmail() call from /api/onboard/route.ts
  • Welcome email with magic link should ONLY fire from the Stripe webhook after checkout.session.completed (Touchpoint 18)
  • Optional: Add a cart abandonment lifecycle email (24hr delay, no dashboard link, just "Complete your signup" CTA back to checkout)

Founder Decision: [x] REJECTED — Remove pre-checkout email entirely. No pay, no play.


Touchpoint 18: Post-Checkout Welcome Email (the ONLY welcome email)

Trigger: Stripe checkout.session.completed webhook → activateChurch() → sends welcome email via Resend Sender: Resend (ChurchWiseAI <hello@churchwiseai.com>) Component: churchwiseai-web/src/app/api/stripe/webhook/route.tschurchwiseai-web/src/lib/email.ts

Should See:

  • Subject: "Welcome to ChurchWiseAI — [Church Name]"
  • Body:
    • "You're all set! Your dashboard is live."
    • "Bookmark this email — the link below is your private access to your dashboard anytime."
    • "Open My Dashboard →" button (magic link to /admin/[token])
    • "Your private link is secure — only you and your team can access it."
    • "4 things to do in your first 5 minutes:"
      1. Add your service times and staff
      2. Set your denomination/theological tradition
      3. Customize your chatbot personality
      4. Share your chat page with your congregation
    • Plan confirmation: "You're on Starter Chat — $14.95/mo (first 14 days free)"
    • Support: "Questions? Reply to this email."
  • ChurchWiseAI branding (navy + gold, not PewSearch)

Should NOT See:

  • Voice agent setup steps or voice mentions (Starter Chat = chat only)
  • "Premium" in any copy — that's a PewSearch concept, not ChurchWiseAI
  • PewSearch references or directory mentions
  • Complex technical documentation
  • "Check your email for your link" framing — they already HAVE the link from the success page. This email is the BACKUP.

REQUIRED FIXES:

  1. Rename sendPremiumWelcomeEmail()sendWelcomeEmail() — "Premium" is PewSearch language, not CWA
  2. Make email tier-aware — Starter Chat email should NOT mention voice features. Function already receives plan info, just needs conditional content.
  3. Reframe as backup access — customer already got dashboard link on success page (Touchpoint 16). This email says "bookmark this for future access" not "here's how to get in."
  4. Add quick-start guide — "4 things to do in your first 5 minutes" (tier-appropriate, includes denomination step)
  5. PewSearch listing is NOT part of this email — Starter Chat gets no PewSearch bonus (see Touchpoint 13)

CTA -> Destination:

  • "Open My Dashboard →" -> https://churchwiseai.com/admin/[token]

Founder Decision: [x] Approved with required fixes (rename function, tier-aware content, backup framing)


Touchpoint 18B: Premium Listing Confirmation Email -- NOT APPLICABLE FOR STARTER

Starter Chat customers get no PewSearch bonus. This touchpoint does not apply.

There is no post-checkout listing bonus for Starter tier. No PewSearch listing confirmation email is sent. See Touchpoint 13.

Founder Decision: [x] N/A (no bonus for Starter tier)


Touchpoint 19: Stripe Receipt Email

Trigger: Stripe automatically sends after successful payment Sender: Stripe (on behalf of ChurchWiseAI LTD)

Should See:

  • Standard Stripe receipt
  • Amount: $14.95 (or $149.50 for annual)
  • "14-day free trial" note (first charge is 14 days later)
  • Business name: ChurchWiseAI LTD
  • "Manage subscription" link to Stripe Customer Portal

Should NOT See:

  • Nothing custom -- this is Stripe's standard receipt

CTA -> Destination:

  • "Manage subscription" -> Stripe Customer Portal

Founder Decision: [x] Approved (Stripe-managed, no custom control needed)


Touchpoint 20: Lifecycle Email -- Day 0 (Welcome + Starter Kit)

Trigger: Lifecycle Email System — Stripe webhook fires sendAndLog() immediately after checkout.session.completed, gated on marketing_opt_in Sender: Resend (ChurchWiseAI <hello@churchwiseai.com>) Component: churchwiseai-web/src/lib/lifecycle-emails.tswelcome_starter_chat + starter_kit_starter (immediate)

Current state: LIVE (deployed March 2026)

  • Welcome + Starter Kit emails fire from Stripe webhook via sendAndLog()
  • Dedup via UNIQUE(church_id, email_key) in lifecycle_emails_sent table
  • Marketing opt-in checkbox on onboard form gates MailerLite sync (email still fires regardless — it's transactional)

Should See:

  • "Welcome to ChurchWiseAI — let's get your chatbot set up!" subject
  • Brief overview of what their chatbot can do
  • Encouragement to complete initial setup
  • Dashboard link
  • Warm, pastoral tone — not corporate

Should NOT See:

  • Voice agent content (Starter Chat = chat only)
  • Upsell messaging (too early — they just signed up)
  • Broken template variables or empty fields

CTA -> Destination:

  • "Set Up Your Chatbot" -> https://churchwiseai.com/admin/[token]

Founder Decision: [x] Approved with required fixes (move to post-payment, add opt-in, fix content, resolve overlap)


Touchpoint 21: Lifecycle Email -- Day 2 (Setup Nudge)

Trigger: Lifecycle Email System daily cron, 2 days after activation. Skipped if has_hours (church already added service times). Sender: Resend (ChurchWiseAI <hello@churchwiseai.com>) Component: lifecycle-emails.tsday2_setup_starter

Email Copy:

Subject: Have you added your service times yet?

Body:

Hi {$name},

Quick question — have you added your service times and staff to your ChurchWiseAI dashboard yet?

When you do, your chatbot instantly knows how to answer visitors who ask "What time is your Sunday service?" or "Who's the pastor?" — no training required.

It takes about 3 minutes:

  1. Open your dashboard
  2. Go to Training > Church Knowledge
  3. Add your service times, staff names, and a short church description

That's it — your chatbot starts using this info immediately.

[Add My Church Info →] (link to dashboard Training tab)

If you've already done this — great! Tomorrow I'll show you how to customize your chatbot's personality to match your church's voice.

Grace and peace, John ChurchWiseAI


Should NOT See:

  • Voice agent content
  • Pro/Suite upsell
  • Technical jargon

CTA -> Destination:

  • "Add My Church Info →" -> https://churchwiseai.com/admin/[token]?tab=training

Founder Decision: [x] Approved (implemented in lifecycle-emails.ts)


Touchpoint 22: Lifecycle Email -- Day 7 (Activation Nudge)

Trigger: Lifecycle Email System daily cron, 7 days after activation. Skipped if has_conversations (church already has chatbot conversations). Sender: Resend (ChurchWiseAI <hello@churchwiseai.com>) Component: lifecycle-emails.tsday7_activation_starter

Email Copy:

Subject: Your chatbot is ready — share it with your congregation

Body:

Hi {$name},

You're halfway through your free trial, and your chatbot for {$church_name} is ready to start serving your congregation.

Here's your church's chat page — anyone with this link can talk to your AI:

https://churchwiseai.com/chat/{slug}

A few ideas for sharing it:

  • Sunday bulletin: "Have a question? Chat with us anytime at [link]"
  • Church website: Add the link to your contact or visit page
  • Social media: "We have a new way to connect — try our AI chat!"
  • Email signature: Add the link to your weekly newsletter

The more people use it, the more prayer requests, visitor contacts, and follow-up opportunities it captures for you automatically.

[View My Chat Page →] (link to chat page)

One week from now, your trial wraps up. I'll send you a heads-up before anything changes.

Grace and peace, John ChurchWiseAI


Should NOT See:

  • Hard upsell to Pro
  • Voice agent pitch
  • Pressure tactics

CTA -> Destination:

  • "View My Chat Page →" -> https://churchwiseai.com/chat/[slug]

Founder Decision: [x] Approved (implemented in lifecycle-emails.ts)


Touchpoint 23: Lifecycle Email -- Day 13 (Trial Warning)

Trigger: Lifecycle Email System daily cron, 13 days after activation (1 day before trial ends) Sender: Resend (ChurchWiseAI <hello@churchwiseai.com>) Component: lifecycle-emails.tsday13_trial_last_starter

Email Copy:

Subject: Your free trial ends in 2 days — here's what happens next

Body:

Hi {$name},

Just a heads-up — your 14-day free trial for {$church_name} ends on {trial_end_date}.

Here's what happens:

  • Your card on file will be charged $14.95 on {trial_end_date}
  • Your chatbot keeps running — no interruption
  • Everything you've set up (church info, agent settings, care page) stays exactly as it is

If you'd like to cancel, no hard feelings. You can manage your subscription anytime:

[Manage My Subscription →] (link to Stripe Customer Portal)

If you're staying (and I hope you are!) — you don't need to do anything. It renews automatically.

Either way, thank you for giving ChurchWiseAI a try. If your church ever needs AI care tools in the future, we'll be here.

Grace and peace, John ChurchWiseAI

P.S. Want more tools? Our Pro plan adds 35 ministry tools, FAQ management, analytics, and widget customization for your website — starting at $34.95/mo. [See Pro Features →] (link to /pricing)


Should NOT See:

  • Aggressive upsell as main focus (retention first, soft Pro mention in P.S. only)
  • Voice agent pitch
  • Guilt or pressure

CTA -> Destination:

  • "Manage My Subscription →" -> Stripe Customer Portal
  • "See Pro Features →" -> /pricing (soft upsell, P.S. only)

Founder Decision: [x] Approved (implemented in lifecycle-emails.ts)


Touchpoint 24: Notification Emails (Ongoing)

Trigger: Various -- prayer requests, visitor contacts, callback requests, care escalations Sender: Resend (hello@churchwiseai.com) Component: Voice agent notification system + chatbot notification hooks

Should See:

  • Prayer request notification: "[Church Name] -- New Prayer Request" with request summary, link to Requests tab
  • Visitor contact notification: "[Church Name] -- New Visitor Contact" with visitor info, link to Requests tab
  • Callback request notification: "[Church Name] -- Callback Requested" with caller info and reason, link to Requests tab
  • Care escalation notification: Alert when a conversation triggers pastoral care escalation
  • All emails branded with ChurchWiseAI
  • Quick-action link to the relevant admin tab

Should NOT See:

  • Voice call notifications (Starter Chat has no voice)
  • Call transcript summaries
  • Analytics digests (Pro+ feature)

CTA -> Destination:

  • "View Request" -> https://churchwiseai.com/admin/[token]?tab=requests
  • "View in Dashboard" -> https://churchwiseai.com/admin/[token]

Founder Decision: [x] Approved


D. First Login & Dashboard (Touchpoints 25--29)

What the customer sees on their first dashboard visit.

URL: https://churchwiseai.com/admin/[token] Component: churchwiseai-web/src/app/admin/[token]/page.tsx Screenshot: screenshots/starter-chat/d25-dashboard-overview.png

Should See:

  • Dashboard loads immediately (token-based auth, no login form)
  • Brief loading state while data fetches
  • Redirect to Overview tab by default
  • No intermediate login screen, no password prompt -- the token URL IS the authentication

Should NOT See:

  • Login form (magic link IS the auth)
  • Password setup prompt
  • Multi-factor auth (not implemented)
  • Any "create account" or "sign in" flow

CTA -> Destination:

  • Auto-loads -> Overview tab

Playwright Test Hints:

  • Navigate to /admin/[valid-token] and assert Overview tab content is visible within 5 seconds
  • Navigate to /admin/invalid-token and assert error/redirect behavior
  • Assert no login form elements (input[type="password"], "Sign In" button) are present

Founder Decision: [x] Approved


Touchpoint 26: Dashboard Header

URL: https://churchwiseai.com/admin/[token] Component: churchwiseai-web/src/app/admin/[token]/ (header area) Screenshot: screenshots/starter-chat/d26-dashboard-header.png

Should See:

  • "ChurchWiseAI" branding (NOT "PewSearch Admin")
  • Church name prominently displayed
  • "Starter Plan" badge (gold colored)
  • Status badge (active/trial/expired)
  • "View Chat Page" link -> opens /chat/[slug] in new tab
  • "View Care Page" link -> opens /care/[slug] in new tab (care_enabled=true for Starter)
  • User/role indicator if team members are configured

Should NOT See:

  • "Pro Plan" or "Suite Plan" badge
  • Voice agent status indicator
  • Phone number display
  • "View Calls" quick link
  • PewSearch branding anywhere in the header

CTA -> Destination:

  • "View Chat Page" -> https://churchwiseai.com/chat/[slug] (new tab)
  • "View Care Page" -> https://churchwiseai.com/care/[slug] (new tab)
  • Church name -> stays on dashboard

Playwright Test Hints:

  • Assert header contains church name text
  • Assert "Starter Plan" badge is visible with gold styling
  • Assert "View Chat Page" link is present and opens /chat/[slug] in new tab
  • Assert "View Care Page" link is present and opens /care/[slug] in new tab
  • Assert no "View Calls" or phone number elements exist
  • Assert no PewSearch branding text

Touchpoint 27: Dashboard Tab Navigation

URL: https://churchwiseai.com/admin/[token] Component: Admin dashboard tab bar (from ROLE_TABS in premium-shared.ts) Screenshot: screenshots/starter-chat/d27-tab-navigation.png

Should See:

  • Visible tabs (Starter Chat, admin role): Overview, Requests, Care, Training, Settings, Upgrade (renamed to Subscription in FA-082 Phase 6 — see acceptance/multi-item-self-serve.md for the new self-serve add/remove/resume flows)
  • 6 tabs total -- no more, no less
  • Tab icons and labels
  • Active tab highlighting

Should NOT See:

  • Calls tab -- HIDDEN entirely for chat-only plans (not empty state, not locked -- completely absent from the tab bar)
  • Social tab -- HIDDEN entirely (this is a ShareWiseAI marketing page, not a Starter Chat feature)
  • Analytics tab -- HIDDEN (Pro+ feature)
  • Any tab labeled "Voice" or "Phone"
  • Any grayed-out or locked tab indicators -- if a tab is not in the plan, it does not appear

CTA -> Destination:

  • Each tab -> loads that tab's content

Playwright Test Hints:

  • Assert exactly 6 tabs are visible: Overview, Requests, Care, Training, Settings, Upgrade
  • Assert NO tab with text "Calls" exists in the DOM (or is display: none)
  • Assert NO tab with text "Social" exists in the DOM (or is display: none)
  • Assert NO tab with text "Analytics" exists in the DOM (or is display: none)
  • Assert tab order matches the list above

Testing Note: Tab buttons may include live count badges (e.g., "Requests 41", "Care 3"). Selectors should match by role/name prefix or normalize by stripping trailing digits — do not assert exact text like getByText('Requests') if the badge count will cause a mismatch.

Founder Decision: [x] Approved (6 tabs only: Overview, Requests, Care, Training, Settings, Upgrade. Calls and Social HIDDEN, not locked.)


Touchpoint 28: Overview Tab (First View)

URL: https://churchwiseai.com/admin/[token]?tab=overview Component: Admin dashboard Overview section Screenshot: screenshots/starter-chat/d28-overview-first-view.png

Should See:

  • 5 stat cards: Total conversations, Prayer requests, Visitor contacts, Callbacks, Active care members (numbers may be 0 on first visit)
  • Ministry outcomes chart (may be empty initially)
  • Share links section: Links to chat page (/chat/[slug]) and care page (/care/[slug]) for sharing with congregation
  • Getting Started checklist (4 steps for chat-only -- auto-dismisses after 7 days or all steps complete):
    1. Complete church profile
    2. Set your denomination/theological tradition
    3. Train your chatbot
    4. Share your chat page
  • AI Agents section: Care Agent + Coordinator Agent only, both shown as active with brief descriptions
  • Optional "Did you know?" educational moments (subtle, non-intrusive -- e.g., "Did you know Pro unlocks 35 tools and analytics?")

Should NOT See:

  • Call volume stats or call-related metrics
  • Voice agent status card or "Add Voice Agent" upsell card
  • Phone number display
  • Getting started step for voice/phone setup
  • Analytics summary (Pro+ feature -- HIDDEN, not locked)
  • Discipleship Agent card (HIDDEN, not locked/grayed)
  • Stewardship Agent card (HIDDEN, not locked/grayed)
  • Any "Upgrade to Pro" buttons or "Upgrade to unlock" overlays
  • Any upsell buttons or CTAs (upsells belong ONLY on the Upgrade tab)
  • Embed widget upsell prompts (embed widget IS available at Starter -- just don't show it as an upsell)

CTA -> Destination:

  • Getting Started items -> link to relevant tab (Training, Settings)
  • Share links -> copy to clipboard or open in new tab
  • "Did you know?" text -> links to Upgrade tab (subtle, not a button)

Playwright Test Hints:

  • Assert 5 stat cards are visible with correct labels
  • Assert Getting Started checklist has exactly 4 items
  • Assert checklist auto-dismisses after 7 days (check localStorage or cookie for dismissal state)
  • Assert Care Agent and Coordinator Agent are shown
  • Assert NO element with text matching "Discipleship" or "Stewardship" is visible
  • Assert NO "Upgrade to Pro" or "Upgrade to unlock" buttons exist on the Overview tab
  • Assert NO "Add Voice" or voice-related upsell cards exist
  • Assert NO analytics section or chart labeled "Analytics" is visible

Founder Decision: [x] Approved (HIDDEN not locked for all Pro+ features; no upsell buttons; "Did you know?" educational moments only)


Touchpoint 29: Getting Started Checklist Detail

URL: https://churchwiseai.com/admin/[token]?tab=overview Component: Getting Started section within Overview Screenshot: screenshots/starter-chat/d29-getting-started.png

Should See:

  • 4-item checklist:
    1. Complete church profile -- link to Settings > Church Profile
    2. Set your denomination/theological tradition -- link to Training > Theology sub-tab
    3. Train your chatbot -- link to Training tab
    4. Share your chat page -- link/copy button for chat page URL
  • Checkmark indicators for completed steps
  • Progress bar or completion percentage
  • Auto-dismisses after all 4 steps complete OR after 7 days from first login (whichever comes first)

Should NOT See:

  • Any voice-related step (no voice on chat-only plans)
  • "Connect your phone system" or similar
  • Any voice or calls setup steps
  • Any "Upgrade" messaging within the checklist

CTA -> Destination:

  • Step 1 -> Settings tab (Church Profile sub-tab)
  • Step 2 -> Training > Theology sub-tab
  • Step 3 -> Training tab
  • Step 4 -> Copy /chat/[slug] URL or open in new tab

Playwright Test Hints:

  • Assert checklist contains exactly 4 items
  • Assert step 1 text matches "Complete church profile" (or similar)
  • Assert step 2 text contains "denomination" or "theological tradition" (or similar)
  • Assert step 3 text matches "Train your chatbot" (or similar)
  • Assert step 4 text matches "Share your chat page" (or similar)
  • Assert clicking step 1 navigates to Settings > Church Profile
  • Assert clicking step 2 navigates to Training > Theology sub-tab
  • Assert clicking step 3 navigates to Training tab
  • Assert step 4 provides a copy-to-clipboard action for the chat page URL
  • Assert no step text contains "voice", "phone", "call", or "upgrade" (case-insensitive)

Founder Decision: [x] Approved (4 steps; denomination added; auto-dismisses after 7 days or all complete)


E. Setup Journey (Touchpoints 30--42)

Every step to configure the Starter Chat product.

Design principle for this entire section: Locked features are COMPLETELY HIDDEN, not shown with gray overlays or "Upgrade to Pro" buttons. If a feature is not in the Starter plan, the customer never sees it. The Upgrade tab is the ONE place they discover higher tiers.

Touchpoint 30: Training Tab -- Overview

URL: https://churchwiseai.com/admin/[token]?tab=training Component: churchwiseai-web/src/app/admin/[token]/components/TrainingTab.tsx Screenshot: screenshots/starter-chat/e30-training-tab.png

Should See:

  • Visible sub-tabs within Training: Church Knowledge, This Week, Theology, Agents, Safety
  • 5 sub-tabs total -- no more, no less
  • Church Knowledge sub-tab selected by default
  • All visible sub-tabs are fully accessible (no locked states)

Should NOT See:

  • FAQs sub-tab -- HIDDEN entirely (Pro+ feature, per "hidden not locked" principle)
  • Staff Practice sub-tab -- HIDDEN entirely (Pro+ feature, training_simulator not in Starter feature set). Note: this tab was previously called "Simulator" and has been renamed to "Staff Practice" in the UI.
  • Training Progress sub-tab -- does NOT exist in the code (TRAINING_SUB_TABS in TrainingTab.tsx defines only: church-knowledge, this-week, faqs, theology, agents, safety, simulator/staff-practice)
  • Any grayed-out or locked sub-tab indicators
  • Any "Upgrade to Pro" messaging within the Training tab itself

CTA -> Destination:

  • Each visible sub-tab -> loads its full content

Playwright Test Hints:

  • Assert exactly 5 sub-tabs are visible: Church Knowledge, This Week, Theology, Agents, Safety
  • Assert NO sub-tab with text "FAQs" or "FAQ" exists (or is display: none)
  • Assert NO sub-tab with text "Simulator" OR "Staff Practice" exists (or is display: none) for Starter tier
  • Assert NO sub-tab with text "Training Progress" or "Progress" exists in the DOM
  • Assert no "Upgrade" buttons or locked overlays within the Training tab

Founder Decision: [x] Approved (FAQs and Simulator HIDDEN, not locked; Training Progress does not exist)


Touchpoint 31: Training -- Church Knowledge Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=training&sub=knowledge Component: Training tab Church Knowledge section Screenshot: screenshots/starter-chat/e31-church-knowledge.png

Should See:

  • All church knowledge sections editable:
    • Church info (name, description, mission statement)
    • What to expect (6 fields: worship style, dress code, communion, children, parking, accessibility)
    • Staff cards (name, title, photo URL, bio)
    • Ministry cards (name, description, schedule, contact)
    • Events (upcoming events list)
  • Save button for each section
  • "This information trains your chatbot" explanation

Should NOT See:

  • Document upload section (Pro+ feature -- HIDDEN)
  • FAQ import/export (Pro+ feature -- HIDDEN)
  • Any "Upgrade" messaging or locked sections

CTA -> Destination:

  • "Save" -> saves to organization_settings or relevant knowledge tables

Playwright Test Hints:

  • Assert church info fields are editable (not disabled/readonly)
  • Assert "What to expect" section has 6 configurable fields
  • Assert staff cards section is visible and editable
  • Assert ministry cards section is visible and editable
  • Assert events section is visible and editable
  • Assert save buttons are present and functional
  • Assert NO "document upload" or "upload" file input is visible
  • Assert NO "FAQ" import section is visible

Founder Decision: [x] Approved


Touchpoint 32: Training -- This Week Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=training&sub=this-week Component: Training tab This Week section Screenshot: screenshots/starter-chat/e32-this-week.png

Should See:

  • All "This Week" fields editable:
    • Sermon topic / series name
    • Theme verse / scripture reference
    • Weekly announcement (freeform text)
  • These fields update what the chatbot knows about current church activities
  • "Updated weekly" or similar guidance text
  • Save button

Should NOT See:

  • Nothing locked -- This Week is fully available at Starter
  • No "Upgrade" messaging

CTA -> Destination:

  • "Save" -> updates church knowledge for current week

Playwright Test Hints:

  • Assert sermon topic field is editable
  • Assert theme verse field is editable
  • Assert weekly announcement field is editable
  • Assert save button is present and functional

Founder Decision: [x] Approved


Touchpoint 33: Training -- FAQs Sub-Tab (HIDDEN)

URL: N/A -- sub-tab is not visible for Starter Chat Component: Training tab FAQs section (hidden via tier gating)

Should See:

  • NOTHING. The FAQs sub-tab is completely hidden from the Training tab navigation for Starter Chat customers.
  • The customer has no indication that FAQ management exists as a feature.

Should NOT See:

  • FAQs sub-tab in the Training navigation
  • Locked/grayed FAQ editor with "Upgrade to Pro" overlay
  • Any reference to FAQ management anywhere in the Starter dashboard
  • Blurred previews or "coming soon" messaging for FAQs

CTA -> Destination:

  • N/A -- nothing to click

Playwright Test Hints:

  • Assert NO sub-tab with text "FAQs" or "FAQ" exists in Training tab navigation
  • Assert navigating directly to ?tab=training&sub=faqs either redirects to Church Knowledge or shows nothing

Founder Decision: [x] Approved (HIDDEN entirely, not locked -- per "hidden not locked" principle)


Touchpoint 34: Training -- Theology Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=training&sub=theology Component: Training tab Theology section Screenshot: screenshots/starter-chat/e34-theology.png

Should See:

  • Denomination/tradition selector dropdown (visible and functional)
  • The selected denomination influences chatbot responses
  • Display of currently selected denomination
  • Save button

Should NOT See:

  • Nothing locked -- denomination selector is visible for all tiers
  • No "Upgrade" messaging on this sub-tab

CTA -> Destination:

  • Denomination selector -> updates organization_settings

Playwright Test Hints:

  • Assert denomination dropdown is visible and interactive
  • Assert selecting a denomination and saving persists the value
  • Assert no "Upgrade" elements are present on this sub-tab

Founder Decision: [x] Approved (denomination selector visible for all tiers)


Touchpoint 35: Training -- Agents Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=training&sub=agents Component: churchwiseai-web/src/components/admin/training/AgentOverviewCard.tsx Screenshot: screenshots/starter-chat/e35-agents.png

Should See:

  • Care Agent: Expandable card with personality editor:
    • Tone slider or selector
    • Formality level
    • Response length preference
    • Emoji usage toggle
    • Custom instructions text area
    • Suggested questions editor
    • Active status indicator
    • Description of Care Agent capabilities
  • Coordinator Agent: Expandable card with same personality editor fields as Care Agent, active status, description of Coordinator capabilities

Should NOT See:

  • Discipleship Agent -- HIDDEN entirely (not locked, not grayed, not present in the UI at all)
  • Stewardship Agent -- HIDDEN entirely (not locked, not grayed, not present in the UI at all)
  • Voice picker dropdown (select voice for TTS) -- HIDDEN (chat-only plan)
  • Voice greeting text editor -- HIDDEN (chat-only plan)
  • Voice settings (speed, pitch, etc.) -- HIDDEN (chat-only plan)
  • "Test Voice" button -- HIDDEN (chat-only plan)
  • Any "Upgrade to unlock" overlays or buttons
  • Any reference to agents beyond Care and Coordinator

CTA -> Destination:

  • Care Agent card -> expand/collapse personality editor
  • Coordinator Agent card -> expand/collapse personality editor
  • "Save" -> updates agent configuration in church_voice_agents

Playwright Test Hints:

  • Assert exactly 2 agent cards are visible (Care Agent, Coordinator Agent)
  • Assert NO element with text "Discipleship" is visible
  • Assert NO element with text "Stewardship" is visible
  • Assert NO element with text "Upgrade to unlock" is visible
  • Assert NO voice picker dropdown exists (select with voice options)
  • Assert NO voice greeting textarea exists
  • Assert NO "Test Voice" button exists
  • Assert Care Agent card is expandable and shows personality editor fields
  • Assert Coordinator Agent card is expandable and shows personality editor fields
  • Assert personality editor contains: tone, formality, response length, emoji usage, custom instructions, suggested questions

Founder Decision: [x] Approved (Care + Coordinator only; Discipleship and Stewardship HIDDEN not locked; all voice UI HIDDEN)


Touchpoint 36: Training -- Safety Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=training&sub=safety Component: Training tab Safety section Screenshot: screenshots/starter-chat/e36-safety.png

Should See:

  • All safety configuration visible and editable:
    • Crisis response message (customizable text for when users express crisis)
    • Notification setup (who gets alerted for safety events)
    • Moderation dashboard (review flagged conversations)
    • Content guardrails / escalation rules
  • Explanation of safety defaults
  • Save button

Should NOT See:

  • Nothing locked -- safety is fully available at all tiers
  • No "Upgrade" messaging

CTA -> Destination:

  • "Save" -> updates safety configuration

Playwright Test Hints:

  • Assert crisis message field is editable
  • Assert notification setup fields are present
  • Assert save button is functional
  • Assert no "Upgrade" elements are present

Founder Decision: [x] Approved


Touchpoint 37: Training -- Simulator Sub-Tab (HIDDEN)

URL: N/A -- sub-tab is not visible for Starter Chat Component: churchwiseai-web/src/components/admin/SimulatorPanel.tsx (hidden via tier gating)

Should See:

  • NOTHING. The Simulator sub-tab is completely hidden from the Training tab navigation for Starter Chat customers.
  • training_simulator feature key is NOT in Starter's feature set in tier-config.ts, confirming this is a Pro+ feature.

Should NOT See:

  • Simulator sub-tab in the Training navigation
  • Locked/grayed simulator with "Upgrade to Pro" overlay
  • Any reference to the simulator
  • Any "test your chatbot before going live" messaging that links to a locked feature

CTA -> Destination:

  • N/A -- nothing to click

Playwright Test Hints:

  • Assert NO sub-tab with text "Simulator" exists in Training tab navigation
  • Assert navigating directly to ?tab=training&sub=simulator either redirects or shows nothing

Founder Decision: [x] Approved (HIDDEN entirely -- Pro+ feature, per "hidden not locked" principle)


Touchpoint 38: Training Progress Sub-Tab -- DOES NOT EXIST

Note: There is NO "Training Progress" sub-tab in the code. TRAINING_SUB_TABS in TrainingTab.tsx defines exactly 7 sub-tabs: church-knowledge, this-week, faqs, theology, agents, safety, simulator. "Training Progress" is not one of them.

  • This touchpoint was incorrectly specified based on a design assumption.
  • The Getting Started checklist in the Overview tab (Touchpoint 29) fulfills the onboarding progress tracking purpose.
  • No Playwright test should assert a "Training Progress" sub-tab exists.

Founder Decision: [x] CORRECTED -- Training Progress sub-tab does not exist in the codebase


Touchpoint 39: Settings -- Church Profile Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=settings&sub=profile Component: Admin Settings Church Profile section Screenshot: screenshots/starter-chat/e39-church-profile.png

Should See:

  • Church information fields:
    • Church name
    • Church description
    • Hero photo URL (text field -- no photo setup wizard at Starter)
    • Vanity slug (for chat page URL customization)
  • Save button

Should NOT See:

  • Photo setup wizard (Pro feature -- HIDDEN)
  • Logo upload
  • Custom branding settings
  • Any "Upgrade" messaging

CTA -> Destination:

  • "Save" -> updates church profile in premium_churches / organization_settings

Playwright Test Hints:

  • Assert church name field is editable
  • Assert description field is editable
  • Assert hero photo URL field is present (text input, not file upload)
  • Assert vanity slug field is present
  • Assert save button is functional
  • Assert NO file upload input for photos exists
  • Assert NO "photo wizard" or multi-step photo setup is visible

Founder Decision: [x] Approved (no photo setup wizard for Starter; hero photo URL field is a simple text input)


Touchpoint 40: Settings -- Hours Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=settings&sub=hours Component: Admin Settings Hours section Screenshot: screenshots/starter-chat/e40-hours.png

Should See:

  • Day-by-day service time editor (Sunday through Saturday or similar)
  • Each day has add/edit/remove time slots
  • Service type labels (worship, Sunday school, evening service, etc.)
  • Save button

Should NOT See:

  • Nothing locked -- hours are available at all tiers
  • No "Upgrade" messaging

CTA -> Destination:

  • "Save" -> updates hours in organization_settings

Playwright Test Hints:

  • Assert day-by-day editor is visible with at least Sunday listed
  • Assert time slot fields are editable
  • Assert save button is functional

Founder Decision: [x] Approved


Touchpoint 41: Settings -- Notifications Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=settings&sub=notifications Component: Admin Settings Notifications section Screenshot: screenshots/starter-chat/e41-notifications.png

Should See:

  • Email notification preferences:
    • Prayer request notifications (on/off)
    • Visitor contact notifications (on/off)
    • Callback request notifications (on/off)
    • Care escalation notifications (on/off)
  • Notification email address(es)
  • Phone notification preferences (SMS alerts -- if implemented)
  • Save button

Should NOT See:

  • Voice call notification settings (HIDDEN -- no voice agent)
  • Analytics report email settings (HIDDEN -- Pro+ feature)
  • Weekly digest settings (HIDDEN -- Pro+ feature)
  • Any "Upgrade" messaging

CTA -> Destination:

  • "Save" -> updates notification preferences

Playwright Test Hints:

  • Assert email notification toggles are present and functional
  • Assert notification email field is editable
  • Assert NO "voice call" or "call notification" toggles exist
  • Assert NO "analytics report" or "weekly digest" toggles exist
  • Assert save button is functional

Founder Decision: [x] Approved


Touchpoint 42: Settings -- Integrations Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=settings&sub=integrations Component: Admin Settings Integrations section Screenshot: screenshots/starter-chat/e42-integrations.png

Should See:

  • Integration configuration fields:
    • Cal.com scheduling link
    • Planning Center connection
    • Giving URL (online giving link for the church)
  • All integrations visible and configurable at all tiers (no tier gates on integrations)
  • Save button

Should NOT See:

  • No tier-gated integrations
  • No "Upgrade" messaging
  • No locked integration cards

CTA -> Destination:

  • "Save" -> updates integration settings

Playwright Test Hints:

  • Assert Cal.com field is editable
  • Assert Planning Center field is present
  • Assert giving URL field is editable
  • Assert save button is functional
  • Assert no "Upgrade" elements present

Founder Decision: [x] Approved (no tier gates on integrations -- all visible for Starter)


Touchpoint 42B: Settings -- Team Management Sub-Tab

URL: https://churchwiseai.com/admin/[token]?tab=settings&sub=team Component: Admin Settings Team section Screenshot: screenshots/starter-chat/e42b-team.png

Should See:

  • Team member list (initially just the admin)
  • "Add Team Member" button (visible only for admin role)
  • Role assignment dropdown (9 roles: admin, office_admin, prayer_team, care_team, treasurer, volunteer_coordinator, worship_leader, spiritual_leader, care_leader)
  • Each member shows: name, email, role, last active
  • Remove/edit member actions
  • Share link generation for team members

Should NOT See:

  • Nothing locked -- team management is available at all tiers
  • Role-based tab access is handled automatically by ROLE_TABS
  • No "Upgrade" messaging

CTA -> Destination:

  • "Add Team Member" -> add member form
  • Member row -> edit member details
  • Share link -> generates unique access link for the team member

Playwright Test Hints:

  • Assert team member list is visible
  • Assert "Add Team Member" button is present (for admin role)
  • Assert role dropdown contains 9 roles
  • Assert member rows show name, email, role
  • Assert remove/edit actions are available

Founder Decision: [x] Approved


F. Public-Facing Pages (Touchpoints 43--48)

What the church's visitors and congregation see.

Touchpoint 43: Public Chat Page

URL: https://churchwiseai.com/chat/[slug] Component: churchwiseai-web/src/app/chat/[slug]/page.tsx, ChatInterface.tsx Screenshot: screenshots/starter-chat/f43-chat-page.png

Should See:

  • Full-screen chat interface with church name and location displayed
  • Welcome message from the chatbot (customized per church or default greeting)
  • Message input field at the bottom
  • Chat bubbles for conversation history
  • 4 suggested questions displayed initially (e.g., "What are your service times?", "How can I submit a prayer request?", etc.)
  • "Powered by ChurchWiseAI" badge (visible, NOT removable at Starter -- removable only at Suite tier)
  • Church's denomination/tradition influences the chatbot tone
  • 12 tools available to the chatbot (prayer request, visitor contact, callback, service times, directions, staff info, ministries, etc.)
  • Mobile-responsive layout (works on phone, tablet, desktop)

Should NOT See:

  • "Powered by ChurchWiseAI" badge removal option or settings
  • Admin controls or edit buttons
  • Analytics tracking UI visible to visitors
  • Voice call button or "Call us" option
  • Embed widget code on the public chat page itself (embed code is in the admin dashboard, not the public page)

CTA -> Destination:

  • "Powered by ChurchWiseAI" badge -> https://churchwiseai.com (marketing site, new tab)
  • Suggested questions -> pre-fill the chat input
  • Chat actions (prayer request, visitor contact, etc.) -> handled within the chat interface via tool calls

Playwright Test Hints:

  • Assert church name is displayed in the header
  • Assert welcome message is visible
  • Assert 4 suggested question buttons are visible
  • Assert message input field is present and functional
  • Assert "Powered by ChurchWiseAI" badge is visible and links to churchwiseai.com
  • Assert NO voice/call button exists
  • Assert layout is responsive (test at 375px, 768px, 1024px widths)
  • Assert sending a message receives a chatbot response

Founder Decision: [x] Approved


Touchpoint 44: Public Care Hub Page

URL: https://churchwiseai.com/care/[slug] Component: churchwiseai-web/src/app/care/[slug]/page.tsx Screenshot: screenshots/starter-chat/f44-care-hub.png

Should See:

  • Care hub landing page for the church
  • Agent cards showing available care agents:
    • Care Agent: accessible, with "Chat Now" button and description
    • Coordinator Agent: accessible, with "Chat Now" button and description
  • Church name and branding
  • Description of care services available
  • Subscribe option (link to /care/[slug]/subscribe)
  • Church info section (address, service times, contact)
  • "Powered by ChurchWiseAI" badge

Should NOT See:

  • Discipleship Agent card (HIDDEN -- not shown at all for Starter tier)
  • Stewardship Agent card (HIDDEN -- not shown at all for Starter tier)
  • Voice call option or phone number
  • Admin controls or edit buttons
  • Any "locked" or "coming soon" agent placeholders

CTA -> Destination:

  • "Chat Now" on Care Agent -> /care/[slug]/care (agent-specific chat)
  • "Chat Now" on Coordinator -> /care/[slug]/coordinator (agent-specific chat)
  • Subscribe link -> /care/[slug]/subscribe
  • "Powered by ChurchWiseAI" badge -> https://churchwiseai.com

Playwright Test Hints:

  • Assert exactly 2 agent cards are visible (Care Agent, Coordinator)
  • Assert NO "Discipleship" or "Stewardship" text is visible on the page
  • Assert "Chat Now" buttons are present and clickable on both agent cards
  • Assert subscribe link/button is present
  • Assert church name is displayed
  • Assert "Powered by ChurchWiseAI" badge is visible

Founder Decision: [x] Approved


Touchpoint 45: Care Subscribe Page

URL: https://churchwiseai.com/care/[slug]/subscribe Component: churchwiseai-web/src/app/care/[slug]/subscribe/page.tsx Screenshot: screenshots/starter-chat/f45-care-subscribe.png

Should See:

  • Congregation member self-signup form:
    • Email address (required)
    • Name (optional or required)
    • Phone (optional)
  • Topic opt-in checkboxes (prayer chains, announcements, grief support, etc.)
  • "Subscribe" button
  • Church name and branding
  • Confirmation message after successful signup
  • Note: Broadcasting is currently DISABLED (see features.yaml) but subscribe/member management is available at Starter

Should NOT See:

  • Admin broadcast controls (those are in the admin Care tab)
  • Nothing indicating this is a paid feature (it's free for congregation members)
  • No pricing or payment information

CTA -> Destination:

  • "Subscribe" -> adds member to congregation_care_members -> shows confirmation

Playwright Test Hints:

  • Assert email field is present and required
  • Assert subscribe button is present
  • Assert submitting a valid email shows confirmation
  • Assert church name is displayed in the header
  • Assert no admin controls are visible

Founder Decision: [x] Approved


Touchpoint 46: Agent-Specific Chat Pages

URL: https://churchwiseai.com/care/[slug]/[agent] (e.g., /care/[slug]/care, /care/[slug]/coordinator) Component: churchwiseai-web/src/app/care/[slug]/[agent]/page.tsx Screenshot: screenshots/starter-chat/f46-agent-chat.png

Should See:

  • Chat interface pre-routed to the specific agent (Care or Coordinator)
  • Agent persona greeting (customized per agent personality settings)
  • Full chat functionality with that agent's personality and capabilities
  • "Powered by ChurchWiseAI" badge
  • Church name in the header

Should NOT See:

  • Discipleship agent chat -- navigating to /care/[slug]/discipleship should redirect to care hub or show "not available"
  • Stewardship agent chat -- navigating to /care/[slug]/stewardship should redirect to care hub or show "not available"
  • Voice call option
  • Admin controls

CTA -> Destination:

  • Chat interactions -> within the chat interface
  • "Powered by ChurchWiseAI" badge -> https://churchwiseai.com
  • Back/home link -> /care/[slug] (care hub)

Playwright Test Hints:

  • Assert /care/[slug]/care loads a functional chat with Care Agent greeting
  • Assert /care/[slug]/coordinator loads a functional chat with Coordinator greeting
  • Assert /care/[slug]/discipleship either redirects to /care/[slug] or shows an appropriate "not available" message
  • Assert /care/[slug]/stewardship either redirects to /care/[slug] or shows an appropriate "not available" message
  • Assert "Powered by ChurchWiseAI" badge is visible

Founder Decision: [x] Approved


Touchpoint 47: Embed Widget (AVAILABLE at all tiers)

URL: Within dashboard -- embed code generator Component: tier-config.ts (Founder Decision #5: embed widget available at all tiers)

Should See:

  • Embed code generator available -- Starter customers can embed the chatbot on their website
  • JS snippet for embedding the chatbot widget
  • "Copy embed code" button
  • Basic widget configuration (size, position)
  • "Powered by ChurchWiseAI" badge on the embedded widget (not removable at Starter -- Suite only)

Should NOT See:

  • Color customization / widget color picker (Pro+ feature -- HIDDEN)
  • Custom welcome message configuration for widget (Pro+ feature -- HIDDEN)
  • Badge removal toggle (Suite only -- HIDDEN)
  • Any "Upgrade to unlock" overlay on the embed section

CTA -> Destination:

  • "Copy Embed Code" -> copies JS snippet to clipboard

Playwright Test Hints:

  • Assert embed code section is visible in dashboard
  • Assert "Copy embed code" button (or similar) is present
  • Assert <code> or snippet area with embed script is visible
  • Assert NO color picker or widget color customization is visible
  • Assert NO badge removal toggle is visible

Founder Decision: [x] UPDATED -- Embed widget available at all tiers (Decision #5). Previous spec incorrectly marked this as Pro+ only.


Touchpoint 48: Pro Website (NOT AVAILABLE)

URL: N/A -- Pro Website is a separate $19.95/mo PewSearch product Component: N/A

Should See:

  • NOTHING -- Pro Website is not part of any CWA chat tier
  • No reference to "your Pro Website" in the Starter Chat dashboard

Should NOT See:

  • Pro Website settings
  • "View your website" link
  • Template/theme selector
  • Any Pro Website upsell within the dashboard (the customer discovers this on the Upgrade tab if mentioned)

CTA -> Destination:

  • N/A

Playwright Test Hints:

  • Assert NO element with text "Pro Website" or "View your website" exists in the dashboard (excluding Upgrade tab)

Founder Decision: [x] Approved


G. Ongoing Dashboard Use (Touchpoints 49--54)

Daily-use dashboard features after initial setup.

Design principle for this entire section: The Starter Chat dashboard shows ONLY features included in the plan. No locked tabs, no grayed-out sections, no "Upgrade to Pro" buttons scattered around. The Upgrade tab is the single, intentional place where the customer discovers what higher tiers offer.

Touchpoint 49: Calls Tab (HIDDEN)

URL: N/A -- tab is not visible for Starter Chat Component: Admin tab bar (gated by plan channel)

Should See:

  • NOTHING. The Calls tab is completely removed from the tab bar for chat-only plans.
  • There is no empty state, no upsell, no "Add Voice" prompt.
  • The customer's tab bar shows exactly 6 tabs: Overview, Requests, Care, Training, Settings, Upgrade.

Should NOT See:

  • Calls tab in the tab bar (not even grayed out)
  • Call logs, transcripts, or voice agent settings
  • "No Voice Agent" empty state message
  • "Add Voice" upsell CTA
  • Any voice-related navigation element

CTA -> Destination:

  • N/A -- tab does not exist. Voice features are discoverable only via the Upgrade tab.

Playwright Test Hints:

  • Assert NO tab with text "Calls" exists in the tab bar
  • Assert navigating to ?tab=calls either redirects to Overview or shows no content
  • Assert tab bar contains exactly 6 tabs

Founder Decision: [x] Approved (HIDDEN entirely -- remove from tab bar for chat-only plans. No empty state upsell.)


Touchpoint 50: Requests Tab

URL: https://churchwiseai.com/admin/[token]?tab=requests Component: Admin Requests tab (RequestManager) Screenshot: screenshots/starter-chat/g50-requests-tab.png

Should See:

  • 4 sub-tabs: Prayer Requests, Visitor Contacts, Callbacks, Safety
  • Each request type in its own section or filterable list
  • Each request shows: date/time, name (if provided), content/reason, status (new/reviewed/resolved)
  • Ability to mark requests as reviewed/resolved (status toggle)
  • Expandable rows for full request details
  • Pagination for long lists
  • Status filters (all, new, reviewed, resolved)
  • Filter by date range
  • Safety sub-tab (admin/office_admin only): shows ModerationDashboard — violations from moderation_violations + active blocks from user_restrictions. Red badge on Requests tab when violations exist.
  • Callbacks sub-tab: SAFETY FLAG entries are excluded (they appear in Safety sub-tab only)

Should NOT See:

  • Voice call transcripts (no voice agent for chat-only plan)
  • Analytics overlay on requests (HIDDEN -- Pro+ feature)
  • Any "Upgrade" messaging within the Requests tab

CTA -> Destination:

  • Individual request row -> expand to show full details
  • Status toggle -> updates request status in database
  • Pagination controls -> next/previous page

Playwright Test Hints:

  • Assert Requests tab loads and shows 4 sub-tabs: Prayer, Visitors, Callbacks, Safety
  • Assert status filter dropdown is present with options: all, new, reviewed, resolved
  • Assert request rows are expandable (click to show detail)
  • Assert Safety sub-tab is visible for admin role only (not prayer_team, care_team, etc.)
  • Assert status toggle buttons/dropdowns are functional
  • Assert pagination controls appear when list exceeds page size
  • Assert NO "analytics" or "Upgrade" elements within the tab

Founder Decision: [x] Approved


Touchpoint 51: Care Tab

URL: https://churchwiseai.com/admin/[token]?tab=care Component: Admin Care tab Screenshot: screenshots/starter-chat/g51-care-tab.png

Should See:

  • Toggle to enable/disable care messaging for the church
  • Share care page link -- copyable URL for /care/[slug]
  • QR code -- printable QR code that links to the care subscribe page (for bulletins, lobby displays)
  • Broadcast messages section -- visible for composing messages to care subscribers (disabled system-wide pending infrastructure -- see features.yaml)
  • Member list -- congregation care members (subscribers from /care/[slug]/subscribe)
    • Member details: name, email, phone, topics opted-in, date joined
    • Member management: edit, remove

Should NOT See:

  • Analytics on care engagement (HIDDEN -- Pro+ feature)
  • Any "Upgrade" messaging within the Care tab
  • Voice-related care features

CTA -> Destination:

  • Share link -> copy to clipboard
  • QR code -> download/print
  • "Add Member" -> manual add form
  • Member row -> edit/view member details
  • Broadcast (when re-enabled) -> compose and send (if available at Starter; otherwise HIDDEN)

Playwright Test Hints:

  • Assert care toggle is present and functional
  • Assert share link for care page is visible and copyable
  • Assert QR code is generated and visible
  • Assert member list section is present
  • Assert NO "analytics" elements within the Care tab
  • Assert NO "Upgrade" buttons within the Care tab

Founder Decision: [x] Approved


Touchpoint 52: Social Tab (HIDDEN)

URL: N/A -- tab is not visible for Starter Chat Component: Admin tab bar (gated by plan)

Should See:

  • NOTHING. The Social tab is completely removed from the tab bar for Starter Chat customers.
  • Social media management is a ShareWiseAI product/feature and does not belong in the Starter Chat dashboard.

Should NOT See:

  • Social tab in the tab bar
  • Social media management section
  • Connected platform accounts
  • Post creation/scheduling interface
  • Any "Coming Soon" or locked social features
  • Any "Upgrade" messaging for social features

CTA -> Destination:

  • N/A -- tab does not exist.

Playwright Test Hints:

  • Assert NO tab with text "Social" exists in the tab bar
  • Assert navigating to ?tab=social either redirects to Overview or shows no content

Founder Decision: [x] Approved (HIDDEN entirely -- ShareWiseAI marketing page does not belong in Starter Chat dashboard)


Touchpoint 53: Upgrade Tab (renamed to Subscription tab in FA-082 Phase 6)

FA-082 Phase 6 note: The Upgrade tab has been renamed to Subscription and expanded to support self-serve add/remove/resume product flows. The tab formerly surfaced only upsell comparison cards; it now also shows the customer's current subscription state and lets them manage individual products. See acceptance/multi-item-self-serve.md for the full new spec.

URL: https://churchwiseai.com/admin/[token]?tab=upgrade Component: Admin Upgrade tab Screenshot: screenshots/starter-chat/g53-upgrade-tab.png

Should See:

  • Current plan display: "Starter Chat -- $14.95/mo" with status badge (trial/active/past_due)
  • Tier comparison cards: Side-by-side cards for Starter (current), Pro (highlighted, "Most Popular"), Suite
  • Feature comparison table showing what each tier includes:
    • Number of tools (12 / 35 / 39)
    • Number of agents (2 / 4 / 4 + custom)
    • Monthly messages (200 / 1,000 / 5,000)
    • FAQ management (-- / 50 FAQs / unlimited)
    • Analytics dashboard (-- / included / included)
    • Embed widget (included / included / included) -- available at all tiers (Founder Decision #5)
    • Document upload (-- / included / included)
    • Training simulator (-- / included / included)
    • Remove branding badge (-- / -- / included)
    • Widget customization (-- / -- / included)
  • Clear pricing for each upgrade:
    • Pro Chat: $34.95/mo (or $349.50/yr -- save $70)
    • Suite Chat: $59.95/mo (or $599.50/yr -- save $120)
    • Voice add-on: Starter Voice $49.95/mo, Starter Bundle $54.95/mo (and higher tiers)
  • "Upgrade to Pro" primary CTA (prominent button)
  • "Upgrade to Suite" secondary CTA
  • "Add Voice" section showing voice/bundle plan pricing and savings

Should NOT See:

  • Downgrade option (already on Starter -- lowest tier)
  • Confusing technical details or jargon
  • Aggressive or pushy upsell language -- tone should be educational and value-focused

CTA -> Destination:

  • "Upgrade to Pro" -> Stripe checkout or subscription upgrade flow
  • "Upgrade to Suite" -> Stripe checkout or subscription upgrade flow
  • "Add Voice" -> voice plan checkout or bundle upgrade flow
  • "Compare Features" -> scrolls to feature comparison table (if applicable)

Playwright Test Hints:

  • Assert current plan "Starter Chat" is displayed with correct price
  • Assert Pro card is highlighted as "Most Popular"
  • Assert feature comparison table has correct values for all three tiers
  • Assert "Upgrade to Pro" button is present and clickable
  • Assert "Upgrade to Suite" button is present and clickable
  • Assert voice/bundle pricing section is present
  • Assert NO downgrade option exists
  • Assert prices match PRICING.md source of truth

Founder Decision: [x] Approved (this is the ONE place for upsell -- all upgrade discovery happens here)


Touchpoint 54: Analytics (HIDDEN -- NOT AVAILABLE)

URL: N/A -- no analytics tab, no analytics section anywhere in the Starter dashboard Component: tier-config.ts gates analytics feature

Should See:

  • NOTHING. Analytics is a Pro+ feature, completely hidden per the "hidden not locked" principle.
  • No analytics tab in the tab bar
  • No analytics section on the Overview tab
  • No analytics overlay on any dashboard content
  • No "Upgrade to see analytics" messaging anywhere (except the Upgrade tab's feature comparison)

Should NOT See:

  • Analytics tab in the tab bar
  • Conversation volume charts
  • Sentiment analysis
  • Topic breakdown
  • CSV/PDF export buttons
  • Weekly email digest settings
  • Any locked/grayed analytics preview
  • Any "Upgrade to Pro for analytics" buttons

CTA -> Destination:

  • N/A -- analytics is discoverable only via the Upgrade tab's feature comparison table.

Playwright Test Hints:

  • Assert NO tab with text "Analytics" exists in the tab bar
  • Assert NO section with heading "Analytics" exists on the Overview tab
  • Assert NO chart/graph elements labeled "analytics" exist anywhere in the dashboard (excluding Upgrade tab)

Founder Decision: [x] Approved (HIDDEN entirely -- no analytics anywhere in Starter dashboard except listed on Upgrade tab comparison)


H. Lifecycle Events (Touchpoints 55--62)

State changes throughout the subscription lifecycle.

Design principle for this section: Lifecycle events are communicated clearly but never punitively. Limits are enforced gracefully. Data is NEVER deleted. The "hidden not locked" principle applies to the downgrade scenario -- features revert to hidden, not locked.

Touchpoint 55: Monthly Message Limit (200 messages)

Trigger: Church's chatbot approaches or hits 200 LLM-generated responses in the billing month Component: churchwiseai-web/src/app/api/chatbot/stream/route.ts (limit enforcement) Screenshot: screenshots/starter-chat/h55-message-limit.png

Phase 1: Approaching Limit (at ~180 messages / 90%)

Dashboard should show:

  • Warning banner or notification: "Your chatbot has used 180 of 200 messages this month"
  • Subtle educational note: "Did you know? Pro plan includes 1,000 messages per month."
  • Link to Upgrade tab (not a button -- subtle text link)

Staff should receive:

  • Email notification: "[Church Name] -- Chatbot approaching monthly message limit (180/200)"
  • Dashboard notification (if notification system exists)

Phase 2: Limit Reached (at 200 messages)

Visitor-facing (public chat page) should show:

  • Chatbot returns a friendly, non-technical message:
    • "Thank you for reaching out! [Church Name]'s AI assistant has reached its monthly conversation limit."
    • "You can reach the church directly at [phone] or [email], or try again after [next billing date]."
    • Church contact information displayed prominently
  • The chat interface remains visible but new LLM-generated responses stop

Dashboard should show:

  • Status indicator: "Monthly message limit reached (200/200)"
  • Next reset date: "Resets on [next billing date]"
  • Subtle "Did you know?" note: "Pro plan includes 1,000 messages per month" with link to Upgrade tab

Staff should receive:

  • Email notification: "[Church Name] -- Monthly chatbot message limit reached"
  • Clear explanation of when it resets

Should NOT See:

  • Chatbot continuing to generate LLM responses beyond 200
  • Error messages, stack traces, or technical jargon to visitors
  • Aggressive "UPGRADE NOW" messaging (use subtle "Did you know?" educational moments)
  • Any "Upgrade to Pro" buttons on the dashboard limit banner (link to Upgrade tab instead)
  • Complete removal of the chat interface (it stays visible, just can't generate new responses)

CTA -> Destination:

  • Staff notification email: "View your dashboard" -> /admin/[token]?tab=upgrade (Upgrade tab)
  • Dashboard "Did you know?" text -> link to Upgrade tab
  • Visitor message: church phone/email for direct contact

Playwright Test Hints:

  • Assert chatbot returns limitReached: true (or equivalent) after 200 messages in a billing cycle
  • Assert visitor-facing limit message includes church contact information
  • Assert visitor-facing message does NOT contain technical terms ("LLM", "API", "rate limit")
  • Assert dashboard shows message count indicator
  • Assert staff notification email is triggered at limit

Founder Decision: [x] Approved (warning at ~90%, limit reached at 200, subtle educational upsell only)


Touchpoint 56: Trial Period Active (Days 1--14)

Trigger: Between signup and first billing (14-day trial period) Component: Dashboard header and status indicators Screenshot: screenshots/starter-chat/h56-trial-active.png

Should See:

  • "Trial" status badge in dashboard header (visually distinct from "Active" -- e.g., different color)
  • Trial days remaining indicator: "12 days left in trial" or similar countdown
  • Full access to all Starter Chat features during trial -- no restrictions, no reduced functionality
  • Dashboard functions exactly like a paid Starter account
  • Stripe Customer Portal (accessible via Settings or header) shows upcoming first charge date

Should NOT See:

  • Reduced functionality during trial (trial = full Starter access)
  • Urgent "pay now" messaging or countdown timers with alarm styling
  • Upsell pressure during the trial period (let them experience the product)
  • Any features beyond Starter tier (trial is for the Starter plan, not a Pro preview)

CTA -> Destination:

  • Trial badge -> informational tooltip showing trial end date and first charge amount ($14.95)
  • "Manage Subscription" (if accessible) -> Stripe Customer Portal

Playwright Test Hints:

  • Assert "Trial" badge is visible in the header (not "Active")
  • Assert days remaining is displayed and decrements correctly
  • Assert all Starter features are fully functional during trial
  • Assert no "Pay Now" or urgency-styled CTAs exist
  • Assert chatbot is fully operational on public pages during trial

Founder Decision: [x] Approved


Touchpoint 57: Trial Expiring (Day 12 -- dashboard + email)

Trigger: 12 days after signup (2 days before trial ends) Component: Dashboard banner + Lifecycle Email Day 13 (see Touchpoint 23) Screenshot: screenshots/starter-chat/h57-trial-expiring.png

Dashboard Should Show:

  • Amber/warning banner at top of dashboard: "Your free trial ends in 2 days -- your card will be charged $14.95 on [date]"
  • Link to manage subscription: "Manage Subscription" -> Stripe Customer Portal
  • Banner is informational, not aggressive -- the customer chose this, just reminding them

Email (Lifecycle Email Day 13 -- same as Touchpoint 23):

  • Subject: "Your free trial ends in 2 days -- here's what happens next"
  • Content: see Touchpoint 23 for full copy
  • Key elements: first charge date, amount, cancel option, soft Pro mention in P.S.

Should NOT See:

  • Aggressive tactics, countdown timers with red styling, or fear-based messaging
  • "Last chance!" or "Don't lose your data!" framing
  • Any suggestion that data will be deleted if they don't pay (it won't -- see Touchpoint 58)

CTA -> Destination:

  • Dashboard banner: "Manage Subscription" -> Stripe Customer Portal
  • Email: "Manage My Subscription" -> Stripe Customer Portal
  • Email P.S.: "See Pro Features" -> /pricing (soft upsell)

Playwright Test Hints:

  • Assert warning banner appears in dashboard when trial has 2 or fewer days remaining
  • Assert banner contains the first charge amount ($14.95) and date
  • Assert banner links to Stripe Customer Portal (or subscription management)
  • Assert banner styling is amber/warning (not red/error)

Founder Decision: [x] Approved


Touchpoint 58: Trial Expired / Subscription Lapsed

Trigger: Trial period ends without valid payment method, or subscription lapses after failed payments Component: Dashboard behavior + chatbot behavior Screenshot: screenshots/starter-chat/h58-trial-expired.png

Dashboard Should Show:

  • Status badge changes to "Expired" (amber/red styling)
  • Prominent banner at top: "Your subscription has expired. Reactivate to restore your chatbot."
  • "Reactivate" CTA button -- prominently displayed (this IS an appropriate upsell moment)
  • All data preserved and visible (requests, training, settings) -- read-only mode
    • Customer can VIEW all their requests, training data, care members, settings
    • Customer CANNOT edit training, send messages, or change settings
  • Dashboard is accessible -- they are NOT locked out of viewing their data

Public Pages (Chatbot) Should Show:

  • Chat page (/chat/[slug]): "This church's chatbot is currently offline. Contact the church directly at [phone/email]."
  • Care hub (/care/[slug]): Limited state -- may show church info but agent chat is unavailable
  • Care subscribe (/care/[slug]/subscribe): Still functional (congregation members can still subscribe -- this is valuable data for re-engagement)

Should NOT See:

  • Full functional dashboard (can view but not edit)
  • Working chatbot generating LLM responses on public pages
  • Data deletion or "your data will be deleted in X days" threats (data is preserved indefinitely)
  • Complete removal of the dashboard (they can still log in and see their data)
  • Punitive or guilt-trip messaging

CTA -> Destination:

  • "Reactivate" button on dashboard -> Stripe checkout or Customer Portal to restart subscription
  • Banner "Reactivate" link -> same

Playwright Test Hints:

  • Assert dashboard loads but shows "Expired" status badge
  • Assert prominent reactivation banner is visible
  • Assert training/settings fields are read-only (disabled inputs)
  • Assert requests are still viewable
  • Assert public chat page shows offline message with church contact info
  • Assert NO LLM responses are generated for expired subscriptions
  • Assert care subscribe page still accepts submissions

Founder Decision: [x] Approved


Touchpoint 59: Payment Failed

Trigger: Stripe payment attempt fails (card declined, expired, insufficient funds, etc.) Component: Stripe webhook (invoice.payment_failed) + dashboard state + email notifications Screenshot: screenshots/starter-chat/h59-payment-failed.png

Should See:

  • Stripe automatic retry: Stripe retries failed payments 3 times over ~7 days (Smart Retries)
  • Email from Stripe: "Your payment for ChurchWiseAI failed" with link to update payment method
  • Dashboard: Warning banner with past_due status:
    • "Payment failed -- please update your payment method to keep your chatbot active"
    • "Update Payment Method" button -> Stripe Customer Portal
  • Grace period: Chatbot stays fully active during Stripe's retry window (~7 days)
    • No feature degradation during grace period
    • All dashboard features remain functional

Should NOT See:

  • Immediate chatbot shutdown on first failed payment (grace period applies)
  • Accusatory or threatening language ("your account is delinquent")
  • Data deletion threats

CTA -> Destination:

  • Dashboard banner: "Update Payment Method" -> Stripe Customer Portal
  • Stripe email: "Update your payment method" -> Stripe Customer Portal

Playwright Test Hints:

  • Assert dashboard shows past_due status badge (distinct from "Active" and "Expired")
  • Assert warning banner is visible with "Payment failed" messaging
  • Assert "Update Payment Method" link/button is present
  • Assert chatbot remains functional on public pages during grace period
  • Assert all dashboard features remain accessible during grace period

Founder Decision: [x] Approved


Touchpoint 60: Cancellation

Trigger: Customer cancels via Stripe Customer Portal or requests cancellation Component: Stripe webhook (customer.subscription.updated with cancel_at_period_end: true, then customer.subscription.deleted) + dashboard state Screenshot: screenshots/starter-chat/h60-cancellation.png

Should See:

  • Stripe confirmation email: Standard Stripe cancellation confirmation
  • Dashboard immediately after cancellation:
    • Status badge changes to "Cancelled" (or "Cancelling" if end-of-period)
    • Banner: "Your subscription has been cancelled. Your chatbot will remain active until [end of billing period date]."
    • All features remain fully functional until end of billing period
    • "Reactivate" CTA visible (they can change their mind)
  • After billing period ends: Same behavior as Touchpoint 58 (expired state)
    • Chatbot goes offline
    • Dashboard becomes read-only
    • Data preserved indefinitely
  • Data: All data preserved indefinitely -- requests, training, settings, care members, everything

Should NOT See:

  • Immediate chatbot shutdown (chatbot runs until end of current billing period)
  • Data deletion or data loss of any kind
  • Guilt-trip messaging ("Are you sure? Your congregation needs you!")
  • Exit surveys that block cancellation (Stripe handles cancellation directly)

CTA -> Destination:

  • "Reactivate" button on dashboard -> Stripe Customer Portal to resume subscription
  • Win-back email (Lifecycle Email System, automatic): "We miss you" sent 3 days after cancellation, follow-ups at days 14 and 30

Playwright Test Hints:

  • Assert dashboard shows "Cancelled" status badge after cancellation
  • Assert banner displays end-of-billing-period date
  • Assert all features remain functional until that date
  • Assert "Reactivate" button is visible and links to Stripe Customer Portal
  • Assert after billing period ends, dashboard enters read-only mode (Touchpoint 58 behavior)
  • Assert public chatbot stays active until billing period ends

Founder Decision: [x] Approved


Touchpoint 61: Upgrade (Starter -> Pro or Suite)

Trigger: Customer clicks "Upgrade to Pro" or "Upgrade to Suite" from Upgrade tab Component: Upgrade flow (Stripe subscription update or new Stripe checkout session) Screenshot: screenshots/starter-chat/h61-upgrade.png

Should See:

  • Immediate feature unlock -- no waiting, no re-setup, no downtime:
    • New tabs appear: previously hidden tabs become visible (e.g., if Social tab is Pro+)
    • FAQs sub-tab appears in Training navigation
    • Simulator sub-tab appears in Training navigation
    • Discipleship Agent card appears in Training > Agents
    • Stewardship Agent card appears in Training > Agents
    • Analytics section becomes visible (as new tab or Overview section)
    • Embed widget section becomes accessible
    • Document upload becomes available
    • Widget customization unlocked (if Pro+)
    • Monthly message limit increases (200 -> 1,000 at Pro, 5,000 at Suite)
    • Tool count increases (12 -> 35 at Pro, 39 at Suite)
    • Max tokens per response increases (450 -> 600 at Pro, 900 at Suite)
  • Plan badge updates from "Starter" to "Pro" or "Suite" in the header
  • Prorated billing: Stripe handles proration automatically (customer pays the difference for the rest of the current billing period)
  • Confirmation email with new plan details and summary of unlocked features

Should NOT See:

  • Need to re-enter church information or re-do training
  • Loss of existing data, requests, training, or care members
  • Downtime, "processing" delay, or "please wait while we upgrade your account"
  • Need to log out and back in

CTA -> Destination:

  • Upgrade confirmation -> dashboard refreshes automatically with new features visible
  • Confirmation email: "Open Your Dashboard" -> /admin/[token]

Playwright Test Hints:

  • Assert that after upgrade, plan badge changes to "Pro" or "Suite"
  • Assert previously hidden tabs/sections are now visible (FAQs, Simulator, additional agents, analytics)
  • Assert Discipleship and Stewardship agent cards appear in Training > Agents
  • Assert message limit reflects new tier (check API response headers or dashboard display)
  • Assert all existing data (requests, training, care members) is preserved
  • Assert dashboard loads without requiring re-authentication

Founder Decision: [x] Approved


Touchpoint 62: Downgrade (from Pro/Suite -> Starter)

Trigger: Customer downgrades from a higher tier to Starter Chat via Stripe Customer Portal Component: Stripe subscription update + dashboard state change Screenshot: screenshots/starter-chat/h62-downgrade.png

Should See:

  • Features HIDDEN (not locked, not deleted -- following the "hidden not locked" principle):
    • FAQs sub-tab disappears from Training navigation (FAQ data preserved in database)
    • Simulator sub-tab disappears from Training navigation
    • Discipleship Agent card disappears from Training > Agents (agent config preserved)
    • Stewardship Agent card disappears from Training > Agents (agent config preserved)
    • Analytics section disappears (analytics data preserved in database)
    • Embed widget stops rendering on customer's website (widget code remains, just non-functional)
    • Document management section disappears (documents preserved in storage)
    • Widget customization section disappears
    • Calls tab disappears if downgrading from voice/bundle to chat-only
    • Social tab remains hidden (was already hidden for Starter)
  • Plan badge reverts to "Starter" with gold coloring
  • Monthly message limit drops to 200
  • Tool count drops to 12
  • "Your data is preserved" -- informational message on the Upgrade tab: "All your data from your previous plan is safely stored. Upgrade anytime to restore full access."
  • Downgrade takes effect at end of current billing period (full access until then)

Should NOT See:

  • Data deletion of any kind (FAQs, documents, analytics history, agent configs all preserved in database)
  • Immediate feature removal mid-billing-period (full access until period ends)
  • Punitive messaging or guilt trips
  • Locked/grayed features with "Upgrade to Pro" overlays (features are HIDDEN per the principle)
  • Any visible trace of features they used to have (clean, simple Starter dashboard)

CTA -> Destination:

  • Upgrade tab shows "Upgrade" CTAs to restore previous tier
  • Upgrade tab mentions: "Your Pro data is preserved -- upgrade to restore access"

Playwright Test Hints:

  • Assert plan badge shows "Starter" after downgrade takes effect
  • Assert tab bar shows exactly 6 tabs (Overview, Requests, Care, Training, Settings, Upgrade)
  • Assert Training sub-tabs show exactly 6 items (no FAQs, no Simulator)
  • Assert Training > Agents shows exactly 2 agents (Care, Coordinator -- no Discipleship, Stewardship)
  • Assert NO analytics section is visible
  • Assert Upgrade tab mentions preserved data
  • Assert existing requests/training data is still accessible through the remaining features
  • Assert public chatbot still works but with Starter-tier limits (200 messages, 12 tools)

Founder Decision: [x] Approved (features HIDDEN not locked on downgrade; all data preserved; clean Starter dashboard)


Summary Table: Feature Visibility Matrix

Principle: HIDDEN means the element does not exist in the UI at all -- no tab, no sub-tab, no card, no grayed overlay. The Upgrade tab is the single discovery point for higher-tier features.

FeatureStarter ChatWhere VisibleVisibility State
Dashboard Tabs (6 total)
OverviewYESTab barFull access
CallsHIDDENNot in tab barRemoved entirely for chat-only plans
RequestsYESTab barFull access (prayer, visitor, callback)
CareYESTab barSubscribe/manage, broadcast disabled
TrainingYESTab barSome sub-tabs hidden (see below)
SocialHIDDENNot in tab barRemoved entirely (ShareWiseAI product)
SettingsYESTab barFull access
UpgradeYESTab barShows tier comparison + upgrade options
AnalyticsHIDDENNot in tab barPro+ feature, not shown anywhere
Training Sub-Tabs (6 total)
Church KnowledgeYESTraining tabFull access
This WeekYESTraining tabFull access
FAQsHIDDENNot in Training tabPro+ feature, sub-tab removed
TheologyYESTraining tabDenomination selector visible
AgentsYESTraining tabCare + Coordinator only (Discipleship + Stewardship HIDDEN)
SafetyYESTraining tabFull access
SimulatorHIDDENNot in Training tabPro+ feature, sub-tab removed
Training ProgressDOES NOT EXISTN/ANo "Training Progress" sub-tab in code (TRAINING_SUB_TABS has 7 entries, none named progress)
Chatbot Features
Hosted chat pageYES/chat/[slug]Full access, 4 suggested questions
Care hub pageYES/care/[slug]2 agents (Care + Coordinator)
Embed widgetAVAILABLEDashboardAvailable at all tiers (Founder Decision #5); basic embed only, no color customization
Widget customizationHIDDENNot in dashboardPro+ feature, no references shown
FAQ managementHIDDENNot in TrainingPro+ feature, sub-tab removed
Document uploadHIDDENNot in dashboardPro+ feature, no references shown
Analytics dashboardHIDDENNot in dashboardPro+ feature, no tab/section shown
Remove branding badgeNON/ASuite only, not surfaced
Tool count12Chatbot runtimeEnforced by TOOL_CATALOG
Monthly messages200Chatbot runtimeWarning at ~90%, limit at 200
Agent personas2Care + CoordinatorDiscipleship + Stewardship HIDDEN
Theological lensYESTraining > TheologyDenomination selector visible
Voice Features (all HIDDEN)
Voice agentHIDDENNot in dashboardNot included in chat plan
Calls tabHIDDENNot in tab barRemoved entirely
Phone numberHIDDENNot in dashboardNot provisioned, not shown
Voice pickerHIDDENNot in AgentsNot shown for chat-only plans
Voice greetingHIDDENNot in AgentsNot shown for chat-only plans
Voice settingsHIDDENNot in AgentsNot shown for chat-only plans
Settings
Church ProfileYESSettings tabChurch name, description, hero URL, vanity slug
HoursYESSettings tabDay-by-day service time editor
NotificationsYESSettings tabEmail + phone (no voice notifications)
Team ManagementYESSettings tabFull access (9 roles)
IntegrationsYESSettings tabCal.com, Planning Center, giving URL (no tier gate)
Public Pages
Chat pageYES/chat/[slug]"Powered by ChurchWiseAI" badge (not removable)
Care hubYES/care/[slug]2 agents only (Care + Coordinator)
Care subscribeYES/care/[slug]/subscribeFull access
Agent chat pages2 of 4/care/[slug]/[agent]Care + Coordinator only; Discipleship + Stewardship redirect
Embed widgetAVAILABLEDashboardAvailable at all tiers (Founder Decision #5); basic embed only, no color customization
Pro WebsiteHIDDENN/ASeparate product, no references in dashboard
Lifecycle
14-day trialYESAuto-applied at checkoutFull Starter access during trial
Annual billingYES$149.50/yr (save $30)Available for chat plans
Promo codesYESStripe checkoutSupported
Monthly limit200 msgsChatbot runtimeWarning at ~90%, friendly limit message
Grace periodYESStripe retry (~7 days)Chatbot active during payment retry
Data preservationYESAlwaysData NEVER deleted, even after cancellation

Resolved Questions (Founder Decisions -- 2026-03-26)

All 8 open questions from the initial research have been resolved by founder decisions:

  1. Simulator access at Starter: RESOLVED -- HIDDEN. training_simulator is a Pro+ feature. Sub-tab removed from Training navigation entirely. (Touchpoint 37)

  2. Social tab at Starter: RESOLVED -- HIDDEN entirely. It's a ShareWiseAI marketing page and doesn't belong in the Starter Chat dashboard. (Touchpoint 52)

  3. Theology sub-tab: RESOLVED -- Denomination selector is VISIBLE for all tiers. Starter gets the full selector. (Touchpoint 34)

  4. Photo upload in Church Profile: RESOLVED -- No photo setup wizard at Starter. Hero photo URL is a simple text field. Full photo wizard is a Pro feature. (Touchpoint 39)

  5. Care tab broadcasting: PARTIALLY RESOLVED -- Currently disabled system-wide. UI is visible at Starter. Follow-up decision needed when broadcasting is re-enabled: does Starter get sending capability or is it Pro+ only? (Touchpoint 51)

  6. Integrations in Settings: RESOLVED -- All integrations visible at all tiers (Cal.com, Planning Center, giving URL). No tier gates on integrations. This is intentional. (Touchpoint 42)

  7. Calls tab visibility: RESOLVED -- HIDDEN entirely for chat-only plans. No empty state, no upsell. Completely absent from the tab bar. (Touchpoint 49)

  8. Local resources config: RESOLVED -- local_resources is a Pro+ feature. HIDDEN per the "hidden not locked" principle. Not surfaced anywhere in Starter dashboard. (User State Definition)


Revision History

DateAuthorChange
2026-03-26Agent (research compilation)Initial DRAFT -- compiled from 3 research agents. Sections A, B, C touchpoints populated.
2026-03-26Founder interviewTouchpoints A-C fully reviewed. Major decisions: onboard form collapsed to 1 step, PewSearch moved to post-checkout bonus, pre-checkout email bug found and fixed, Calls/Social tabs hidden, locked features hidden not locked, "Did you know?" upsell principle established. See decisions/starter-chat-interview-log.md for full reasoning.
2026-03-26Agent (spec-completer)Touchpoints D-H added based on code research
2026-03-26Agent (founder decisions)Sections D--H completed with all founder decisions applied. All 62 touchpoints now specified. All 8 open questions resolved. Applied "hidden not locked" principle throughout. Added Playwright test hints to all D--H touchpoints. Updated Summary Table. Marked all touchpoints [x] Approved.