Cancelled Subscription State — Founder Interview Answers
Status: COMPLETE — All 23 questions answered by agent team based on established patterns. Voice-specific scenarios from interview-action-items.md #3 are covered. Date: 2026-03-28 Scope: Applies to ALL paid plans after intentional cancellation (chat, voice, and bundle). Interviewer: Claude (Opus 4.6) — agent-derived from founder-approved patterns
Section A: The Cancellation Flow (In-Dashboard)
Q1: Where to Cancel
Decision: Settings tab > Billing section > "Cancel Plan" link. This links to the Stripe Customer Portal where cancellation is handled natively.
Rationale: Stripe Customer Portal handles cancellation flow, confirmation, and billing math. No need to build a custom cancellation flow — use Stripe's native UI. The Settings > Billing section is the natural location because that's where subscription management lives.
Q2: Confirmation Step
Decision: Stripe Customer Portal provides its own confirmation step. We do NOT build a custom confirmation modal or page. Stripe shows: current plan, end date, and "Cancel subscription" button.
Before reaching Stripe, the in-dashboard "Cancel Plan" link includes a brief inline note:
- "Your plan will continue until the end of your current billing period. No refunds for the current period."
- "All your data is preserved — you can reactivate anytime."
- "Manage My Subscription →" (links to Stripe Customer Portal)
Q3: Exit Interview
Decision: Yes — a brief, optional exit survey. Presented AFTER Stripe confirms cancellation (not blocking it). Appears on the dashboard when the customer returns from Stripe after cancelling.
Options:
- Too expensive
- Not enough features
- Congregation didn't use it
- Technical issues
- Switching to another solution
- Church is closing or major change
- Just trying it out
- Other (free text field)
This data is stored in premium_churches (new column: cancellation_reason) for founder analytics. It's optional — customer can dismiss without answering.
Q4: Dashboard After Confirming Cancellation
Decision: Back to the normal dashboard with a banner at top saying "Your plan cancels on [date]" and a "Reactivate" button. Not immediately showing the cancelled/locked state — the customer has paid through the billing period and should have full access until then.
Section B: Service During Remaining Billing Period
Q5: Product Keeps Working
Decision: Yes — both chatbot AND voice agent (if applicable) keep working normally until the billing period ends. The customer has paid for this period — they get full service.
- Chat plans: chatbot active, all dashboard features functional
- Voice plans: voice agent answers calls, all features functional
- Bundle plans: both chatbot and voice agent active
Q6: Dashboard Indication of Upcoming Cancellation
Decision: A persistent banner: "Your plan cancels on [date] — Reactivate to keep going"
- Shown on every tab of the dashboard
- Amber/info styling (not error/red)
- "Reactivate" button -> Stripe Customer Portal (to resume subscription)
- End date clearly displayed
Section C: Dashboard State After Service Ends
Q7: Dashboard After Billing Period Ends
Decision: Same as trial expired state (TE-1). Read-only mode — dashboard visible but all features disabled.
- Status badge: "Cancelled" (or "Expired")
- Banner: "Your subscription has ended. Reactivate to restore your chatbot [and voice agent]."
- "Reactivate" CTA button ->
/pricing - All data visible but read-only (cannot edit training, settings, etc.)
- All tabs still visible (same as during active period — nothing removed)
Q8: Login Access
Decision: Yes — cancelled customers can still log into the dashboard. The magic link continues to work. They see the read-only dashboard with the reactivation banner. They are NOT redirected to a landing page.
Rationale: Allowing dashboard access keeps the customer's investment visible ("look at everything you set up") which increases reactivation likelihood.
Q9: Data Visibility + Retention
Decision: Data visible indefinitely. No time-gated visibility. No data deletion.
- All training data (church knowledge, staff, ministries, hours, denomination, agents, FAQs, documents)
- All requests (prayer requests, visitor contacts, callbacks)
- All call logs and transcripts (voice plans)
- All care members
- All settings and configurations
The "data is NEVER deleted" and "soft delete" principles apply universally. ChurchWiseAI does not hold data hostage, and does not delete data to pressure re-subscription.
Q10: Chatbot Widget After Cancellation
Decision: Same as trial expired (TE-2). Chatbot stops responding and shows fallback message:
- "Hi! [Church Name]'s chatbot is not currently available."
- "Please contact the church directly at [phone/email]."
- Church contact info from database
The embed widget on their website (if they had one) also shows this fallback. The script tag still loads, but no AI responses are generated.
Q11: Voice Agent After Cancellation (Voice-Specific)
Decision: Voice agent stops answering calls when the billing period ends.
What callers hear:
- If the church had set up call forwarding TO the AI number: removing the forwarding returns calls to their original phone system (rings at the church office again, or goes to their existing voicemail)
- If the church's number WAS the AI number (rare — most churches forward): the Telnyx number is deactivated. Callers hear a standard carrier "number not in service" message.
Phone number retention:
- The Telnyx phone number is held (not released) for 30 days after cancellation takes effect
- If the customer reactivates within 30 days: same number restored automatically
- After 30 days: number released back to the Telnyx pool; customer gets a new number on reactivation
Voice agent configuration:
- All voice settings (voice picker selection, greeting script, agent personalities) preserved in database
- On reactivation: voice agent resumes with same configuration; only phone number may differ (if >30 days)
FLAGGED FOR FOUNDER REVIEW:
Same as Starter Voice Touchpoint 60 — phone number retention period (30 days proposed). Cost: ~$1/mo per held number in Telnyx fees. With 3 Stripe subscriptions today this is negligible, but at scale (500+ cancelled voice customers) it could add up. Consider reviewing at 100 cancelled voice customers.
Section D: Cancellation Confirmation Email
Q12: Cancellation Confirmation Email
Decision: Yes — sent immediately when cancellation is confirmed (from Stripe webhook customer.subscription.updated with cancel_at_period_end: true).
Q13: Email Content
Decision:
Subject: "Your ChurchWiseAI plan has been cancelled — [Church Name]"
Body:
Hi {$name},
We've received your cancellation request for {$church_name}.
Here's what happens:
- Your {plan_name} continues until {end_date} — no changes until then
- After {end_date}, your chatbot [and voice agent] will go offline
- All your data — church info, agent settings, requests, care members — is safely preserved
- You can reactivate anytime and pick up right where you left off
Changed your mind?
[Reactivate My Plan ->] (Stripe Customer Portal)
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
Tone: Empathetic, matter-of-fact, no guilt. Respects the decision. Door stays open.
Q14: Second Email on Actual End Date
Decision: Yes — a brief "service has ended" email on the day the billing period ends and services actually stop.
Subject: "Your chatbot is now offline — [Church Name]"
Body:
Hi {$name},
Your subscription for {$church_name} has ended and your chatbot [and voice agent] is now offline.
Everything you built is still saved — your church info, agent personalities, and all the requests captured. It'll be here whenever you're ready to come back.
[Reactivate Anytime ->] (link to /pricing)
Grace and peace, John ChurchWiseAI
Section E: Win-Back Email Sequence
Q15: Win-Back Sequence
Decision: 2 follow-up emails (same structure as trial expired win-back):
- 7 days after service ends: "Your chatbot is still set up and waiting"
- 30 days after service ends: "We're still here when you're ready" (final)
No more emails after the 30-day mark. Respect the decision.
Q16: Win-Back Content
Decision: No discount or incentive offered. The product sells on value. If price was the issue, Starter Chat at $14.95/mo is already very affordable.
Content is informational and empathetic:
- Reminds them their data is preserved
- Highlights what the chatbot was doing (stats from their active period)
- Soft CTA to reactivate
- Offers to schedule a call if they had issues
Q17: Exit-Interview-Aware Win-Back
Decision: No — same win-back email regardless of cancellation reason. Personalizing win-back based on exit survey data is a nice optimization for later but not worth the complexity now (3 Stripe subscriptions, need to keep things simple).
Future consideration: If "too expensive" -> mention Starter tier pricing. If "technical issues" -> offer support call. But not for V1.
Section F: Reactivation Flow
Q18: Reactivation Destination
Decision: A "Choose your plan" flow (same as trial expired TE-10). The customer lands on /pricing and can pick ANY plan — they're not locked to their previous tier.
- From dashboard: "Reactivate" button ->
/pricing - From email: "Reactivate" CTA ->
/pricing
Q19: New Trial on Reactivation
Decision: No new trial. The customer pays immediately on re-subscribe.
- Chat plans: no 14-day trial (already used it)
- Voice plans: never had a trial (charges immediately anyway)
- Bundle plans: never had a trial (charges immediately anyway)
Exception: If they switch from voice-only to chat-only AND never trialed chat, they could theoretically get a chat trial. But this edge case is extremely unlikely and not worth special handling. Default: pay immediately.
Q20: Training Data on Reactivation
Decision: All data restored. Nothing reset. The customer picks up exactly where they left off.
- Church knowledge, staff, ministries, hours, denomination
- Agent personalities and voice settings
- FAQs (if they had them on a Pro/Suite plan)
- Documents (preserved in storage)
- Care members
- Historical requests and call logs
If reactivating on a different tier: features adjust (hidden not locked), data preserved.
Q21: "Welcome Back" Email
Decision: Yes — distinct from the original welcome email.
Subject: "Welcome back to ChurchWiseAI — [Church Name]"
Body:
- "Great news — your chatbot [and voice agent] is back online!"
- Confirms new plan and price
- "Everything is exactly as you left it."
- Dashboard magic link
- If on a voice plan: "Your voice line is being restored — same number (if within 30 days) or new number (we'll email you when it's ready)."
- No "3 things to do first" (setup already done)
Section G: Edge Cases
Q22: Cancel During Trial (Before Day 14)
Decision: Treated as a cancellation with a twist:
- Service continues until Day 14 (end of trial period) — NOT until end of billing period (there's no billing period yet)
- No charge on Day 14
- After Day 14: same expired/cancelled state
- Cancellation confirmation email sent immediately
- No "service has ended" email on Day 14 (the "trial expired" email covers this)
- Win-back sequence starts from Day 14
Q23: Suite -> Lower Tier Reactivation (White-Label)
Decision: If a Suite customer cancels and reactivates on Pro or Starter:
- White-label settings deactivated immediately on reactivation (badge reappears)
remove_badgefeature is tier-gated — the moment their plan changes, the badge returns on their chat page, embed widget, and care hub- No "your badge has been restored" email — it just happens automatically per tier config
- Their previous white-label settings are preserved in the database (if they upgrade back to Suite, badge removal restores)
Voice-Specific Cancellation Scenarios (from interview-action-items.md #3)
What happens to the voice agent when subscription ends?
Answer: Voice agent stops answering calls at end of billing period. See Q11 above.
Does it stop immediately or at end of billing period?
Answer: End of billing period. Customer has paid for the period — full service until then.
What do callers hear?
Answer: If church set up forwarding: forwarding reverts, calls ring at church as before. If AI number was the only number: standard carrier "not in service" message. See Q11 above.
Failed payment grace period for voice?
Answer: Same as chat — Stripe Smart Retries (~7 days). Voice agent stays active during retry window. If all retries fail, voice agent stops.
Additional Notes
- Stripe Customer Portal is the primary cancellation mechanism. We do NOT build custom cancellation logic — Stripe handles
cancel_at_period_endnatively. - Webhook events:
customer.subscription.updated(withcancel_at_period_end: true) triggers cancellation confirmation email.customer.subscription.deletedtriggers service cutoff. - PewSearch bonuses: Premium Listing and Pro Website access removed automatically when billing period ends (tier config check returns false). If reactivating on same or higher tier: access restores automatically.
- No refunds on current billing period — stated in cancellation flow and terms of service.