Skip to main content

Pastor buys Starter Chat

Persona

A solo or bi-vocational pastor at a 50–200 member church. Loses sleep over unanswered voicemails and visitor emails. At $14.95/month the barrier is low enough to try without a lengthy approval process. Wants to capture prayer requests and visitor info automatically. Not a developer — comfortable with online payments and copy-paste.

Entry points

  1. Pricing page/pricing → Chat Only toggle → Starter Chat $14.95/mo → "Get Started."
  2. Homepage — "See Plans & Pricing" CTA.
  3. Organic search — "AI chatbot for small churches" → /chatbot product page.
  4. Outreach email — CTA links to /onboard?plan=starter_chat.
  5. Referral — Fellow pastor mentions ChurchWiseAI; pastor visits homepage.

Click-through flow

Steps

  1. Lands on pricing page — Channel toggle shows Chat pre-selected. Starter Chat at $14.95/mo. Pastor clicks "Get Started." URL updates to /onboard?plan=starter_chat.

  2. Fill onboard form — Plan pre-filled. Fields: Church Name, Pastor Name, Email, Phone (optional), Denomination. Copy: "Start your 14-day free trial — no card required yet." Pastor submits; redirected to Stripe Checkout.

  3. Stripe Checkout — Product line "ChurchWiseAI Starter Chat — 14-day free trial then $14.95/mo." Stripe creates subscription with trial_period_days: 14. On success, redirects to /onboard/return?session_id=....

  4. Post-checkout confirmation/onboard/return shows "Welcome to ChurchWiseAI, [Church Name]!" with "Go to Dashboard" button. Stripe webhook fires → enqueued to stripe_webhook_inbox → returns 200 immediately.

  5. Provisioning pipeline (background, ~10–30 seconds) — Cron claims inbox event, calls processStripeEvent(): inserts premium_churches row (plan='cwa_starter_chat', channel='chat', trial_ends_at=now+14days), generates admin_token, sends welcome email. Failure: retries with backoff up to 10 attempts; abandons to founder_action_items P0 alert.

  6. Welcome email + magic link login — Subject "Welcome to ChurchWiseAI, [Church Name]!" with magic link churchwiseai.com/admin/[admin_token]. One-time use, sets admin_session cookie.

  7. Dashboard and embed setup — Dashboard loads. Website tab shows <script src="...churchwiseai-widget.js"...> embed snippet with Copy button. Pastor pastes snippet into their church website footer. Chatbot bubble appears within seconds.

Acceptance spec

Canonical: knowledge/acceptance/starter-chat.md

Starter Chat specifics:

  • 14-day free trial, no charge until Day 15
  • 200 LLM responses/month
  • 2 agents: Care + Coordinator only
  • No FAQ management, no document upload, no analytics, no simulator
  • Embed widget available; "Powered by ChurchWiseAI" badge always visible

Success criteria

  • Welcome email within 2 minutes of checkout.
  • Magic link opens dashboard without additional login.
  • Dashboard shows "Trial Active — ends [date]."
  • Website tab displays working embed snippet.
  • First chatbot response streams word-by-word (SSE via Vercel AI SDK 6).

Known failure modes

  • Trial charge on Day 1. Stripe subscription missing trial_period_days: 14. Verify in checkout code. Source: memory/feedback_stripe_trial_bug.md.

  • Webhook never fires or abandoned. Check stripe_webhook_inbox for abandoned rows. Source: memory/project_stripe_webhook_inbox.md.

  • Wrong endpoint targeted. Production chatbot is at /api/chatbot/stream. The /api/chatbot/chat endpoint was deleted 2026-04-09. Any code referencing chat/route.ts is legacy. Source: memory/feedback_chatbot_stream_is_production.md.

  • Admin token URL collision. Token must use crypto.randomUUID() or equivalent to prevent two pastors sharing a dashboard.

  • Chatbot uses 4 agents instead of 2. Starter Chat is limited to Care + Coordinator. Verify tier-config.ts gates TIER_AGENTS['starter_chat'] to ['care', 'coordinator']. Source: memory/feedback_chat_4_agents_voice_2.md.