44 documents
Sales & Playbooks⏱️4 min read

Tenant demo checklist — JSGlobtech as live tenant

Companion to `./demo-framework.md`. Use this when the goal is to show a prospect that **jsglobtech.com is the multi-tenant lead engine** and **JSGlobtech is tenant zero**.

Tenant demo checklist — JSGlobtech as live tenant

Companion to ./demo-framework.md. Use this when the goal is to show a prospect that jsglobtech.com is the multi-tenant lead engine and JSGlobtech is tenant zero.

Verified live probe on 2026-07-31: POST https://www.jsglobtech.com/api/leads/submit with client_id: "jsglobtech" returned ok: true and a jsg-… lead_id. Use www — apex redirects with 308.

Narrative for the room (30 seconds)

"This platform is multi-tenant. Each client gets an ID and their own CRM webhook. JSGlobtech itself runs as a tenant on the same system we're proposing for you — so when ChatGPT captures a lead for us, it lands in our Sheet tagged jsglobtech. For you, we'd add your ID and point it at your Sheet or WhatsApp/CRM."

Do not imply separate per-tenant MCP servers unless you are quoting custom Tier 3 work. Today: one MCP + client_id routing.

Settings required before the call

A. Production delivery (blocker if missing)

Setting Where Purpose
CRM_WEBHOOK_URL Vercel project env (Production) Default tenant webhook → your Google Apps Script → Sheet
Optional CLIENT_WEBHOOK_JSGLOBTECH Same Explicit map for client_id=jsglobtech (falls back to CRM_WEBHOOK_URL if unset)
Optional CLIENT_WEBHOOK_MAP Same JSON {"jsglobtech":"https://…","prospect_demo":"https://…"}

Local .env.local only helps local demos. Client calls need Production env. Variable names only in this repo — never commit values.

B. Google Sheet receiver

  1. Sheet + Apps Script from scripts/google-apps-script/ (includes client_id column).
  2. Deploy Web App: Execute as Me, access Anyone.
  3. After updating Code.gs, create a New version of the deployment.
  4. If old rows misalign after adding client_id, clear the Leads tab (or delete it) and send one test lead.

C. Agent host (pick one path and pre-connect)

Path Setup Demo prompt
ChatGPT Actions / Custom GPT Import https://www.jsglobtech.com/docs/openapi.json "Request a geo AI integration consult from JSGlobtech. My name is Demo Client, email demo@example.com, budget not sure yet."
MCP client (Cursor, Claude Desktop, etc.) Point at https://www.jsglobtech.com/api/mcp/sse Same intent; tool name request_dev_consultation
curl fallback (always works if agent UI fails) Terminal See command below

Pass client_id: "jsglobtech" (body or X-Client-ID header) so the Sheet column proves tenancy on screen.

D. Day-of rehearsal

  • Citation query rehearsed on ChatGPT / Perplexity (fallback screenshot ready)
  • Agent host connected and tool call tested once
  • Sheet open, filtered or sorted so new rows are obvious
  • Demo name convention: Demo Client — YYYY-MM-DD (delete after)
  • Confirm Production webhook: a probe lead appears in the Sheet (not only ok: true in JSON — local-log mode also returns 200)

curl proof (safe fallback mid-demo)

curl -sS -X POST https://www.jsglobtech.com/api/leads/submit \
  -H "Content-Type: application/json" \
  -H "X-Client-ID: jsglobtech" \
  -d '{
    "client_id": "jsglobtech",
    "client_name": "Demo Client — 2026-07-31",
    "client_email_or_phone": "demo@example.com",
    "project_type": "geo_ai_integration",
    "budget_range_usd": "Not sure yet",
    "requirements_notes": "Live client demo — delete this row"
  }'

Expect: "ok":true, "client_id":"jsglobtech", "lead_id":"jsg-…". Refresh the Sheet.

Showing "your business would be the next tenant"

After the JSGlobtech row lands:

  1. Explain: "Your leads would use client_id: your_brand and a webhook only you control."
  2. Optionally (if pre-provisioned): second curl with X-Client-ID: prospect_demo into a separate Sheet so they see isolation.
  3. Scope honestly: GEO files on their domain + MCP tools shaped to their actions (consult / booking / inventory) are engagement work — see ../strategy/target-markets.md and pricing ADR-0005.

Security honesty (if they ask)

Public multi-tenant routing is good for demos; for paying tenants harden first (../operations/production-security-audit.md): real API keys, Apps Script shared secret, MCP rate limits. Do not claim "enterprise multi-tenant SaaS" until those are closed.

  • ./demo-mvp-scope.md — required MVP scope for client pitches (citation + Sheet lead)
  • ../operations/product-launch-checklist.md — master GEO + launch + demo gate tracker
  • ../architecture/system-overview.md — product mental model
  • ./demo-framework.md — two-step GEO + MCP script
  • ../integrations/lead-capture.md — routing and env resolution
  • ../operations/client-engagement-sop.md — full sales loop