Pastor claims listing and activates Premium
Persona
A pastor at a 40–250 member church who discovers their listing on PewSearch has outdated info — wrong hours, no staff photos, generic description. They want a professional listing that their congregation can find easily and that represents the church well. First time claiming on PewSearch.
Entry points
- "Claim this church" banner — top of listing page at
/churches/[slug], blue banner "Is this your church? Claim it." - Sticky bottom CTA — mobile-friendly bar as pastor scrolls.
- Site header link — "Claim Your Church" on any page.
- Outreach email — direct link
pewsearch.com/claim/[slug]?ref=outreach_[campaign_id]. - Pricing page — "Claim Your Page" →
/claim/[slug].
Click-through flow
Steps
-
Land on church listing and initiate claim — "Is this your church? Claim it" banner + sticky bar at scroll. Click navigates to
/claim/[slug]. Server-side checks for existing active or previewpremium_churchesrecord. -
Arrive at claim page and select tier —
GenericClaimPageshows two options side-by-side: Premium ($9.95/mo) — custom photos, staff, verified badge, premium placement; Pro Website ($19.95/mo) — everything in Premium plus cinematic website, custom domain, logo. Pastor reviews and clicks their tier. -
Fill out claim form —
ClaimForm: Name (required), Email (required), Role (dropdown: Pastor, Associate Pastor, Office Administrator, Volunteer, Other). Submit labeled "Activate Premium Page." No credit card fields — Stripe handles payment. Form validates client-side (name + email required). -
Submit claim and create Stripe session —
ClaimFormPOSTs to/api/stripe/pre-checkoutwith{ churchId, name, email, role, tier: 'pewsearch-premium' }. API: (1) createspremium_churchesrow (status: 'preview',plan: 'pewsearch-premium',admin_token: uuid()), (2) creates Stripe Checkout Session, (3) returns{ url: checkout_url }. Client redirects. -
Stripe hosted checkout — Product "PewSearch Premium – $9.95/month." No free trial. No annual option. On success, redirects to
/claim/[slug]?activated=true&token=[admin_token]. -
Activation success page — PartyPopper icon, "You're all set!", next steps (add photos, staff bios, service hours). "Set Up Your Listing" button. Note: "Check your email for a magic link." Webhook fires asynchronously; cron updates
status: 'active'and sends welcome email within ~60 seconds. Success page uses token from URL (created pre-checkout) for immediate dashboard access. -
Welcome email and admin dashboard — Email: "Welcome to PewSearch Premium – [Church Name]" with magic link to
pewsearch.com/admin/[admin_token]. Dashboard shows tabs: Overview, Requests, Training, Settings, Status. Training tab has sections for Church Info, Hours, Staff, Ministries, What to Expect, and a "Completeness Donut" showing profile progress.
Acceptance spec
Canonical: knowledge/acceptance/pewsearch-premium.md (Touchpoints 4–16).
Success criteria
- Claim form accepts name and email without errors.
- Stripe checkout is clear (no confusing merchant names).
- Payment completes within a few seconds; success page appears.
- Welcome email arrives within a few minutes.
- Admin dashboard accessible immediately after clicking magic link.
- Verified badge appears on
pewsearch.com/churches/[slug]within seconds of saving.
Known failure modes
-
Already-claimed church. No self-service ownership transfer.
AlreadyActivePageshows "This church has already been claimed. Contact support." -
Webhook delay on activation success. Success page loads immediately (token from pre-checkout), but
statusmay still bepreviewfor up to 60 seconds. Full activation confirms subscription; welcome email may be delayed slightly. -
Duplicate claim attempts. Form disables submit button during submission (loading state) to prevent double-submissions creating duplicate Stripe sessions.
-
Photo upload size limit. Form should check file size client-side before upload and show: "Photo must be under 10MB."