Skip to main content

WiseAI Agency Hub — Expected Output Spec (DRAFT)

Stage 1 agent research draft. Every touchpoint is pre-populated from code + production (visited 2026-05-20). The founder confirms or corrects in a Stage-2 interview before this moves to COMPLETE. Do not treat any expected output here as canonical until the founder signs off.


What WiseAI Agency Is (scope note for agents)

WiseAI Agency (wiseaiagency.com) is the meta-brand parent hub — not a product with a checkout or dashboard. It is the tech + trust brand that ties the vertical family together. It hosts:

  • A home page (brand hub, verticals directory teaser, prompt-pack teaser)
  • A verticals directory page (/verticals)
  • A technology page (/technology)
  • An about / founder page (/about)
  • A contact form (/contact) for custom-engagement inquiries
  • A hub-level pricing overview (/pricing) — display-only; checkout happens on each vertical's own site
  • A demo Playground (/playground)
  • Local-SEO city landing pages (/ingersoll, /london-ontario, /woodstock, /tillsonburg)
  • An AI prompt-pack aggregator (/skills)
  • Legal/trust pages (/privacy, /terms, /security)

Infrastructure: wiseaiagency.com is a hostname rewrite in Next.js middleware (src/middleware.ts) to churchwiseai-web/src/app/wiseaiagency/. No separate deployment. Decision: knowledge/decisions/2026-05-04-wiseaiagency-rewrite.md.


N/A Categories (with rationale)

The standard 62-touchpoint methodology (Categories A–H) is designed for tier-gated products with checkout, onboarding, dashboards, and lifecycle billing events. WiseAI Agency has none of these. The following categories are explicitly N/A:

CategoryStatusReason
B. Pre-Purchase Journey (onboard form, Stripe checkout, success page)N/ANo checkout on wiseaiagency.com. Actual purchases happen on vertical sites (churchwiseai.com, funeralwiseai.com, etc.). The hub's only "conversion" is submitting the contact form or booking a call.
C. Email Journey (welcome email, receipt, Day 0/2/7/13 lifecycle)N/A — partiallyThere is no post-signup email sequence. The only email the hub sends is a notification to hello@wiseaiagency.com when a contact form is submitted. No MailerLite drip from this domain.
D. First Login & Dashboard DiscoveryN/ANo login, no dashboard. wiseaiagency.com is fully public.
E. Setup JourneyN/ANo product to set up. No admin interface.
F. Public-Facing Product Pages (chat/care/embed/pro-website)N/ANo AI product hosted on this domain. Products live on vertical sites.
G. Ongoing Dashboard Use (calls, requests, care, social, upgrade tabs)N/ANo dashboard exists on this domain.
H. Lifecycle Events (usage limits, trial expiry, payment failure, cancellation)N/ANo billing, no subscription, no lifecycle on this domain.

Applicable Touchpoints

The following touchpoints ARE applicable and are documented below.

Category A — Discovery Paths

A1. Direct navigation to wiseaiagency.com

Entry point: Direct URL / bookmark / social link Landing URL: https://wiseaiagency.com Screenshot: screenshots/wiseaiagency/home-hero.png (pending production capture)

Should See:

  • Nav: "What we build" / "Verticals" / "Technology" / "Pricing" / "Playground" / "About" / "Contact" + "Talk to us" CTA button
  • Hero H1: "AI agents for service businesses."
  • Hero eyebrow: "One platform. Many industries."
  • Sub-copy: describes one codebase configured per industry; churches today, funeral homes next
  • Two primary CTAs in hero: "Try the playground" → /wiseaiagency/playground and "See our verticals" → #verticals
  • Verticals section showing 3 live brands (ChurchWiseAI gold, FuneralWiseAI amber, VetWiseAI green) + "8 more verticals" roadmap card
  • Dial demo CTA block (conditional on NEXT_PUBLIC_DEMO_NUMBER + findDemoCodeByBrand('playground-wiseaiagency')) — shows phone number + code
  • "What we build" section: 2 product cards (Voice Agent, Chatbot) linking to playground
  • Prompt packs section (dark hero): "12 free AI prompts for the verticals we serve." — two pack links
  • Founder story block (variant="agency")
  • Contact section: "Building in a vertical we haven't shipped yet?" — cal.com booking link + hello@wiseaiagency.com email link

Should NOT See:

  • Stripe checkout
  • Any admin dashboard link
  • Any church-specific content (prayer requests, care agents, etc.)
  • PewSearch references (hub-level positioning only)
  • Any reference to specific Stripe price IDs

Links:

  • "Try the playground" → /wiseaiagency/playground
  • "See our verticals" → #verticals (anchor)
  • "Visit site" (ChurchWiseAI) → https://churchwiseai.com (new tab)
  • "Visit site" (FuneralWiseAI) → https://funeralwiseai.com (new tab)
  • "Visit site" (VetWiseAI) → https://veterinarywiseai.com (new tab)
  • "Ask about your vertical" → /wiseaiagency/contact
  • Pastor AI Prompt Pack → https://churchwiseai.com/skills
  • Funeral Director Prompt Pack → /funeralwiseai/skills
  • "See both packs side-by-side" → /wiseaiagency/skills
  • "Book a 30-min call" → https://cal.com/john-moelker/wiseaiagency-demo
  • "Email hello@wiseaiagency.com" → mailto:hello@wiseaiagency.com

Open question for founder interview:

  • Is the hero copy ("AI agents for service businesses") finalized, or is a pain-led variant planned?
  • Should the dial demo section always show (even on mobile), or should it be hidden on mobile?

A2. Google search → wiseaiagency.com (organic)

Entry point: SERP organic result Expected meta title: "AI Agents for Service Businesses - WiseAI Agency" Expected meta description: "We build AI agents for service businesses. Pastor-founded. One technology platform, customized per industry. Churches, funeral homes, and more." Canonical: https://wiseaiagency.com

Should See:

  • Title and description indexed correctly
  • Canonical tag present in <head>

A3. Google search → local city page (e.g., "AI agency Ingersoll Ontario")

Entry point: SERP organic result for city-specific query Landing URL: https://wiseaiagency.com/ingersoll (or london-ontario, woodstock, tillsonburg)

Should See:

  • Meta title: "AI Agents for [City] Businesses — WiseAI Agency"
  • JSON-LD LocalBusiness schema with areaServed including the city and nearby areas
  • Hero H1: "AI agents for [City] service businesses."
  • City-specific stats widget: number of churches, funeral homes, vet clinics
  • Three vertical cards (ChurchWiseAI, FuneralWiseAI, VetWiseAI) with descriptions
  • "Why local matters" section: time zone, CASL compliance, ongoing support
  • City-specific pain points (data from cities.ts)
  • Testimonials slot: placeholder card ("We are actively onboarding [City]-area businesses")
  • Contact CTA: "Book a 30-minute call" → cal.com + "Send a message instead" → /wiseaiagency/contact

Should NOT See:

  • Testimonial quotes that don't exist yet (no fabricated social proof)
  • Pricing figures (city pages don't show pricing)

Open question for founder interview:

  • The JSON-LD schema includes telephone: '+1-226-XXX-XXXX' — this is a placeholder. Does a real WiseAI Agency phone number exist? If not, should the telephone field be removed to avoid serving fake structured data to Google?
  • Is the Ingersoll stat "10+ Churches / 2–3 Funeral homes / 3–4 Vet clinics" accurate and acceptable for public display?

Entry point: Nav "Verticals" item or external link Landing URL: https://wiseaiagency.com/verticals

Should See:

  • H1: "One engine. Many industries."
  • Active verticals (status: Active badge, green bg): ChurchWiseAI, FuneralWiseAI, VetWiseAI, SermonWise AI, PewSearch
  • Roadmap verticals (Coming soon badge, grey bg): DoctorWiseAI
  • Each active vertical shows: name, domain, description, "Visit site →" link (opens new tab)
  • FuneralWiseAI description includes: "$745 setup + $199/mo"
  • Bottom CTA: "Get in touch" → /wiseaiagency/contact

Should NOT See:

  • SermonWise listed as "coming soon" (it IS active)
  • PewSearch listed as "coming soon" (it IS active)

Open question for founder interview:

  • Should SermonWise and PewSearch be listed on the Agency verticals page? They are not WiseAI-branded agency products in the same sense as Church/Funeral/Vet. Confirm intent.

Entry point: Nav "Pricing" item or external link Landing URL: https://wiseaiagency.com/pricing

Should See:

  • H1: "Simple pricing across our verticals."
  • Subheading: "Each vertical sets its own pricing on its own site — this is the cross-vertical summary."
  • USD/CAD currency toggle (defaults by geo-IP)
  • Three vertical cards: ChurchWiseAI, FuneralWiseAI, VetWiseAI with price ranges
  • "ChurchWiseAI extras" section: Pro Website ($14.95/mo), SermonWise AI ($19.95/mo), PewSearch Premium (founder to confirm — see drift section)
  • Footnote: "Display currency is for comparison. Each vertical's checkout currently bills in USD; CAD billing is being rolled out..."
  • "Custom builds" section → /wiseaiagency/contact
  • Final CTA: "Open the playground" → /wiseaiagency/playground

CTAs:

  • "See full ChurchWiseAI pricing" → https://churchwiseai.com/pricing (new tab)
  • "See full FuneralWiseAI pricing" → /funeralwiseai/pricing (same tab — note: resolves via hostname rewrite, effectively https://funeralwiseai.com/pricing)
  • "See full VetWiseAI pricing" → https://veterinarywiseai.com/pricing (new tab)
  • PewSearch Premium "Learn more" → https://pewsearch.com/pricing (new tab)

Open question for founder interview:

  • PewSearch Premium listed at $9.95/mo on the page — see "Drift found during research" section. Confirm correct price.

Entry point: Nav "Playground" item or hero CTA Landing URL: https://wiseaiagency.com/playground

Should See:

  • H1: "Pick a product. Pick an industry. See it work."
  • Disclaimer badge: "Every agent here is fictional — for demo purposes only."
  • Step 1: Pick a product — Chatbot or Voice Agent
  • Step 2: Pick an industry — grid of verticals (6 live, 4 coming soon per code)
  • After selection: chatbot inline (BrandSalesChatbot) OR voice dial CTA
  • Conversion CTAs after demo: per-vertical based on status (book demo / waitlist / visit site)

Should NOT See:

  • Real church/customer data in the demo agents
  • Any "log in" or "sign up" prompts during the playground flow

Open question for founder interview:

  • Which specific industries are available as live chatbot demos right now? The playground wizard code references multiple verticals. Founder to confirm which are fully trained vs placeholder.

Entry point: Home page prompt-packs section link or direct URL Landing URL: https://wiseaiagency.com/skills

Should See:

  • H1: "[N] AI prompts for service businesses that respect their craft." (where N = total count, currently 12)
  • "Works in" strip: ChatGPT, Claude.ai, Gemini, Grok, Perplexity, Copilot
  • Two pack cards: Pastor Pack (7 prompts, church gold accent) and Funeral Director Pack (5 prompts, copper accent)
  • "Open the Pastor Pack" → https://churchwiseai.com/skills (new tab)
  • "Open the Funeral Director Pack" → /funeralwiseai/skills (same-origin rewrite → funeralwiseai.com)
  • AI Bridge Principle section: "The AI is a bridge to humans. Never a replacement."
  • Bottom CTA: "See what we build" → /wiseaiagency/ and "Try the playground" → /wiseaiagency/playground
  • MIT license notice

Should NOT See:

  • Email gate on /wiseaiagency/skills itself (email gate lives on individual pack pages, not the aggregator)
  • Individual prompt content (this is an index/directory page)

A8. Cal.com booking page (not on wiseaiagency.com, but exit point)

Entry point: Multiple "Book a 30-min call" CTAs across the hub Destination: https://cal.com/john-moelker/wiseaiagency-demo

Should See:

  • Cal.com hosted booking page (not a wiseaiagency.com page)

Open question for founder interview:

  • Is this Cal.com link active and configured with the right calendar? It appears in 4+ places across the hub.

Category C — Email Journey (partially applicable)

C1. Contact form submission → founder notification email

State: Visitor submits /wiseaiagency/contact with valid payload + CASL consent API: POST /api/wiseaiagency/contact

Should See (founder inbox at hello@wiseaiagency.com):

  • Email from: WiseAI Agency <hello@wiseaiagency.com>
  • Reply-to: the visitor's email address
  • Subject: New agency inquiry — [Business Name] ([City])
  • Body contains: Name, Email (linked), Business name, Business URL (if provided), Industry type, City, CASL consent confirmation, message body

Should NOT See:

  • Email going to support@churchwiseai.com (the generic CWA contact goes there; this one is wiseaiagency-specific)
  • Form submission succeeding without CASL checkbox checked

Conditional:

  • If CASL consent is false: API returns 400 "Consent is required" — form shows error message with fallback mailto:hello@wiseaiagency.com link
  • If Resend fails: API soft-fails (does not expose error to visitor); DB write still attempted
  • If AGENCY_INBOUND_CAMPAIGN_ID campaign row missing in outreach_contacts: DB insert soft-fails, email notification still fires; a warning is logged but visitor sees the success state

Success state (visitor sees after submit):

  • Check icon + "Message received."
  • Body: "John will respond within one business day. Short conversations, honest answers."
  • Form fields are replaced by the success card

Error state (visitor sees if API fails):

  • Red alert box: "Something went wrong. [errorMessage] Email us directly →" (links to mailto:hello@wiseaiagency.com)

Category A (continued) — Contact Form Journey

A9. /wiseaiagency/contact — full form experience

Should See:

  • H1: "Building in a vertical we haven't shipped yet?"
  • Left panel: context copy, hello@wiseaiagency.com email link, redirect block for already-launched verticals (FuneralWiseAI + ChurchWiseAI demo links)
  • Right panel (form): Name* / Email* / Business name* / Business website (optional) / Type of business* (dropdown: Church / Funeral home / Veterinary clinic / Healthcare / Other service business / Investor or partner inquiry) / City* / "What are you working on?"* / CASL consent checkbox* / "Send message" button
  • When "Other service business" selected: helper text "Describe your business type in the message below."
  • CASL consent text includes: hello@wiseaiagency.com unsubscribe link and "Ingersoll, ON, Canada"

Should NOT See:

  • Phone number field (not in this form — this is a custom-engagement form, not the church onboarding form)
  • Any "church name" field (this is vertical-agnostic)
  • ChurchWiseAI branding (uses WiseAI Agency brand tokens)

Rate limiting: 5 submissions per minute per IP. On limit: standard 429 response.


A10. /wiseaiagency/privacy

Should See: Privacy policy scoped to wiseaiagency.com (data collected on the hub). Defers to vertical brand sites for product data.

A11. /wiseaiagency/terms

Should See: Terms covering visitor use, custom engagements, demo bookings. States vertical product terms are governed by brand sites.

A12. /wiseaiagency/security

Should See: Security and AI safety practices — infrastructure, encryption, tenant isolation, HEAR/crisis protocol, subprocessors, incident response.

A13. /wiseaiagency/technology

Should See: Technology page describing LiveKit voice, multi-agent orchestration, HEAR protocol, per-vertical training approach.


Drift Found During Research

As per methodology rules: drifts are DOCUMENTED here, not fixed. A remediation agent addresses them separately.

DRIFT-1: PewSearch Premium price on wiseaiagency.com/pricing — $9.95/mo vs canonical $4.95/mo

Location: churchwiseai-web/src/app/wiseaiagency/pricing/PricingOverviewClient.tsx line 123 Code value: monthly: 9.95 Canonical price: PRICING.md → "Premium Church Page (USD) $4.95/mo" Production display (CAD): Shows ~$12.95 CAD which converts correctly from $9.95 USD, but $9.95 USD is itself wrong Severity: Medium — this is a display-only pricing overview page (no checkout); the actual checkout on pewsearch.com would charge the correct price. But it misstates the product price to prospects browsing the hub. Action: A remediation agent should update monthly: 9.95monthly: 4.95 in PricingOverviewClient.tsx and verify the note field is accurate.

DRIFT-2: JSON-LD LocalBusiness schema uses placeholder phone number

Location: churchwiseai-web/src/app/wiseaiagency/[city]/page.tsx line 88 Code value: telephone: '+1-226-XXX-XXXX' Issue: This placeholder will be served in structured data to Google. A fake phone number in JSON-LD LocalBusiness schema can cause Google Business Profile issues. Severity: Low-Medium — Google may ignore or flag structured data with a non-dialable number. Action: Either supply the real WiseAI Agency phone number (if one exists) or remove the telephone field from the schema entirely until a real number is assigned.

DRIFT-3: FuneralWiseAI setup price — VERIFIED CORRECT at $745

Confirmed: PricingOverviewClient.tsx line 78 shows usd: 745 for FuneralWiseAI setup. The 2026-05-19 audit fix (from $999 → $745) is correctly applied. No action needed.

DRIFT-4: Home page stat widget shows "2 Live vertical brands" — outdated

Location: churchwiseai-web/src/app/wiseaiagency/page.tsx line 218 (visual stat card) Code value: ['2', 'Live vertical brands'] Current reality: The verticals page lists 5 active brands (ChurchWiseAI, FuneralWiseAI, VetWiseAI, SermonWise AI, PewSearch). Even limiting to commercially launched WiseAI-branded verticals, there are 3 (Church, Funeral, Vet). Severity: Low — minor accuracy issue on a stat card; doesn't affect purchase decisions. Open question: What count is the founder's intent? "3 commercial verticals" (Church/Funeral/Vet)? "5 active WiseAI brands"? Should this stat be removed or updated?


User State Definition

WiseAI Agency has no authenticated user states. All visitors are unauthenticated. The two meaningful visitor states are:

StateDescriptionPrimary goal
Curious prospectService business owner exploring the hubUnderstand what WiseAI Agency is → reach playground or contact form
Custom engagement leadBusiness in an unlaunched vertical seeking a custom buildReach the contact form → submit inquiry → receive response

Open Questions for Stage-2 Founder Interview

  1. Contact form → campaign row: The DB insert at POST /api/wiseaiagency/contact depends on a campaign row with ID a9000000-0000-0000-0000-000000000001 existing in outreach_campaigns. Does this row exist? If not, every form submission silently soft-fails the DB write (email still sends). Has the founder confirmed receipt of test form submissions?

  2. hello@wiseaiagency.com email routing: The contact API sends to hello@wiseaiagency.com. Is this inbox monitored? Where does it route (forwarding rule, shared inbox, etc.)?

  3. PewSearch Premium price ($9.95 vs $4.95): Confirm canonical price. If $4.95 is correct, approve remediation.

  4. LocalBusiness JSON-LD phone: Does WiseAI Agency have a real phone number for the schema, or should the telephone field be removed?

  5. Home page "2 Live vertical brands" stat: Confirm correct count — 2, 3, or 5?

  6. Verticals directory scope: Should SermonWise AI and PewSearch appear in the wiseaiagency.com/verticals page? They are not WiseAI-branded vertical products in the same category as Church/Funeral/Vet.

  7. Cal.com booking link: Is https://cal.com/john-moelker/wiseaiagency-demo active and configured?

  8. Playground industries: Which playground verticals are fully trained (real demo quality) vs placeholder? The page says "6 industries live, 4 more coming" — confirm which 6.

  9. Dial demo section: The home page conditionally shows a dial-in CTA if NEXT_PUBLIC_DEMO_NUMBER is set and a demo code for playground-wiseaiagency exists. Is this configured in production? (Production showed a phone number (414) 310-7631 — confirm this is intentional and the demo code is valid.)

  10. City pages — real stats: Are the per-city stats (e.g., Ingersoll: 10+ churches, 2-3 funeral homes, 3-4 vet clinics) manually curated in cities.ts or pulled from a data source? Confirm they are accurate enough for public display.

  11. SermonWise AI pricing on hub pricing page: Shows $19.95/mo with "Free tier available — 2 sermons per month." Confirm this is current pricing (not stale from pre-SermonWise-pricing change).


Agents Reading This Spec

Before modifying any WiseAI Agency page or the contact API:

  1. Cross-reference the drift section — existing issues are known and tracked.
  2. The contact form API (/api/wiseaiagency/contact) has a FOUNDER GATE dependency on the agency-inbound campaign row. Do not assume DB writes succeed without verifying that row exists.
  3. Never modify /api/contact/route.ts thinking it handles WiseAI Agency contact — that route handles churchwiseai.com/contact (sends to support@churchwiseai.com). The agency form uses /api/wiseaiagency/contact/route.ts (sends to hello@wiseaiagency.com).
  4. The /wiseaiagency/pricing page is display-only — do not add Stripe checkout logic here.
  5. City pages are statically generated. Adding a new city requires updating cities.ts + running generateStaticParams at build time.