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
- Pricing page —
/pricing→ Chat Only toggle → Starter Chat $14.95/mo → "Get Started." - Homepage — "See Plans & Pricing" CTA.
- Organic search — "AI chatbot for small churches" →
/chatbotproduct page. - Outreach email — CTA links to
/onboard?plan=starter_chat. - Referral — Fellow pastor mentions ChurchWiseAI; pastor visits homepage.
Click-through flow
Steps
-
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. -
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.
-
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=.... -
Post-checkout confirmation —
/onboard/returnshows "Welcome to ChurchWiseAI, [Church Name]!" with "Go to Dashboard" button. Stripe webhook fires → enqueued tostripe_webhook_inbox→ returns 200 immediately. -
Provisioning pipeline (background, ~10–30 seconds) — Cron claims inbox event, calls
processStripeEvent(): insertspremium_churchesrow (plan='cwa_starter_chat',channel='chat',trial_ends_at=now+14days), generatesadmin_token, sends welcome email. Failure: retries with backoff up to 10 attempts; abandons tofounder_action_itemsP0 alert. -
Welcome email + magic link login — Subject "Welcome to ChurchWiseAI, [Church Name]!" with magic link
churchwiseai.com/admin/[admin_token]. One-time use, setsadmin_sessioncookie. -
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_inboxfor abandoned rows. Source:memory/project_stripe_webhook_inbox.md. -
Wrong endpoint targeted. Production chatbot is at
/api/chatbot/stream. The/api/chatbot/chatendpoint was deleted 2026-04-09. Any code referencingchat/route.tsis 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.tsgatesTIER_AGENTS['starter_chat']to['care', 'coordinator']. Source:memory/feedback_chat_4_agents_voice_2.md.