Skip to main content

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

  1. "Claim this church" banner — top of listing page at /churches/[slug], blue banner "Is this your church? Claim it."
  2. Sticky bottom CTA — mobile-friendly bar as pastor scrolls.
  3. Site header link — "Claim Your Church" on any page.
  4. Outreach email — direct link pewsearch.com/claim/[slug]?ref=outreach_[campaign_id].
  5. Pricing page — "Claim Your Page" → /claim/[slug].

Click-through flow

Steps

  1. 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 preview premium_churches record.

  2. Arrive at claim page and select tierGenericClaimPage shows 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.

  3. Fill out claim formClaimForm: 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).

  4. Submit claim and create Stripe sessionClaimForm POSTs to /api/stripe/pre-checkout with { churchId, name, email, role, tier: 'pewsearch-premium' }. API: (1) creates premium_churches row (status: 'preview', plan: 'pewsearch-premium', admin_token: uuid()), (2) creates Stripe Checkout Session, (3) returns { url: checkout_url }. Client redirects.

  5. 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].

  6. 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.

  7. 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. AlreadyActivePage shows "This church has already been claimed. Contact support."

  • Webhook delay on activation success. Success page loads immediately (token from pre-checkout), but status may still be preview for 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."