Skip to main content

Knowledge > Runbooks > Customer Ops > Church Support Escalation

Handle a Church Support Request

Triage and resolve an inbound support request from a church admin. Covers email, chat, and escalation paths.

Prerequisites

  • Supabase access
  • Stripe CLI
  • Gmail access (john@churchwiseai.com via MCP or web)
  • vercel logs access for serverless error investigation

Triage Steps

1. Identify the church and property

Determine which product they are using:

  • ChurchWiseAI (voice agent or chatbot) → they manage at churchwiseai.com/admin
  • PewSearch (Premium Page / church listing) → they manage at pewsearch.com/admin
  • IllustrateTheWord (sermon illustrations) → Supabase Auth, account at illustratetheword.com

Get the church's email or name, then look them up:

SELECT c.id, c.name, c.email, c.slug, pc.plan, pc.tier, pc.stripe_subscription_id
FROM churches c
LEFT JOIN premium_churches pc ON pc.church_id = c.id
WHERE c.email ILIKE '%[church-email-domain]%'
OR c.name ILIKE '%[church-name]%'
LIMIT 5;

2. Check subscription status

stripe customers list --email "[church-email]"
stripe subscriptions list --customer cus_xxxxxxxxxxxx

Verify their plan is active and matches what they think they have.

3. Diagnose the specific issue

"Can't log in / can't access admin"

  • Check church_admin_sessions for a valid, non-expired session token
  • Check that their token is correct in the URL: churchwiseai.com/admin/[token]
  • If expired, generate a new magic link (see onboard-new-church.md manual fallback)

"Voice agent isn't answering / sounds wrong"

  • Check voice_call_logs for recent call entries:
    SELECT id, status, duration_seconds, created_at, error_message
    FROM voice_call_logs
    WHERE church_id = '[church-uuid]'
    ORDER BY created_at DESC LIMIT 10;
  • Check church_voice_agents for their config (phone number, active status)
  • If calls aren't being logged at all, the Twilio forwarding may be misconfigured
  • See voice-ops/ runbooks for deeper investigation

"Chatbot isn't working / wrong answers"

  • Check organization_settings for their chatbot config
  • Check unified_rag_content for their knowledge base entries
  • Test the chatbot widget directly to reproduce the issue

"Email not received (magic link, welcome email)"

  • Check Resend dashboard for send status to their email
  • Check spam folder suggestion
  • Verify their email address is correct in churches table
  • If Resend failed, resend manually

"Wrong charge / billing question"

  • Pull their Stripe invoice history:
    stripe invoices list --customer cus_xxxxxxxxxxxx --limit 5
  • Compare against their expected plan from C:\dev\PRICING.md

"Feature not available / missing feature"

  • Verify their plan in premium_churches matches what they purchased
  • Cross-reference against plan features in knowledge/data/features.yaml
  • If plan is wrong, investigate webhook (may need manual correction)

4. Resolve or escalate

Resolve directly if the issue is:

  • Login/access issue → generate new magic link
  • Billing confusion → explain the charge from Stripe data
  • Simple config issue → update organization_settings or church_voice_agents

Escalate to founder if the issue is:

  • Refund request (see refund.md after confirmation)
  • Data dispute or claim dispute
  • Service outage affecting multiple churches
  • Legal or compliance concern

5. Respond to the church

Draft and send response from john@churchwiseai.com. Include:

  • Acknowledgment of their specific issue
  • What was found and fixed (if resolved)
  • Next steps (if escalated)
  • Contact for follow-up

Common Quick Fixes

IssueFix
Can't access adminRegenerate session token in church_admin_sessions
Wrong plan shownUpdate premium_churches.plan after confirming with founder
Voice agent silentCheck church_voice_agents.is_active = true and Twilio forwarding
Chatbot off-brandUpdate organization_settings.system_prompt
No welcome emailResend via Resend API or trigger magic link API manually

See Also