What's New

Changelog

Everything shipped, newest first. Built in public, moving fast.

Nav route 404s fixed — marketing pages now served correctly
express.static with { index: false } doesn't map /why-pregamewhy-pregame.html. Added routes/marketing.js with explicit GET handlers for all nav-linked marketing pages — why-pregame, book-demo, docs, how-it-works, pre-call-intelligence, partners, privacy, terms, changelog, success — mounted before static middleware in server.js.
Calendly reconnect flow — auth guard and expired token handling
Auth guard missing on /status and /disconnect handlers in routes/calendly-oauth.js (req.user was undefined). Expired token now correctly returns { connected: false, expired: true } and clears stale DB tokens, enabling the frontend reconnect UI to trigger.
Outlook Calendar OAuth wired + Token Health + Error Logging + Health Endpoints
Four infrastructure pieces shipped. (1) Outlook OAuthroutes/outlook-oauth.js was fully implemented but never mounted in server.js (404 on /api/calendar/outlook/connect). Added mounts at /api/calendar/outlook and /oauth/outlook. (2) OAuth Token Health — proactive refresh every 15min, Slack revocation alerts, monitors Salesforce/HubSpot/Calendly/Cal.com/Close/Pipedrive. (3) Structured integration error logging — error classification + Slack spike alerts when >10 errors in 1 hour for same integration+customer. Instrumented in Salesforce, HubSpot, Calendly, and Slack delivery paths. (4) Health check endpoints — GET /health (aggregate) and per-integration endpoints (/health/salesforce, /health/hubspot, etc.) with latency, last successful call, and error message. No auth required.
Cal.com integration + Calendly OAuth 2.0 upgrade + Close CRM OAuth 2.0
Cal.com integration fully shipped: OAuth 2.0 via routes/cal-com-oauth.js, webhook-triggered auto-briefs (booking_created → brief → email), HMAC-SHA256 X-Cal-Signature validation, public/integrations-cal-com.html. Calendly OAuth 2.0 upgraded with corrected scopes, webhook subscription auto-registration on connect, and organization_uri stored from token response. Close CRM OAuth 2.0 wired with frontend connect UI in integrations-close.html. Fixed generateBriefFromMeeting ReferenceError at startup (lazy wrapper needed since the function is defined ~2241 lines into server.js).
GTM copy sweep + /partners "integrations as distribution" pitch
Completed a full site audit: replaced all "briefs" language with "readiness signals" / "pre-call readiness intelligence" across 9 marketing pages (homepage, how-it-works, 6 integration pages, 3 compare pages). The /partners page now leads with the core partner pitch — "Your users book meetings. Pregame prepares them." — and anchors the integrations-as-distribution model with the full flow (CRM → Pregame → Prepared rep), integration ecosystem chips, and the intelligence moat section explaining how volume makes Pregame smarter.
Phase 2 Readiness Score — Salesforce push-back and T-15min Slack alerts
The 0–100 readiness score is now written back to Salesforce as Pregame_Readiness_Score__c on linked Opportunities. A pre-call scheduler fires every 5 minutes and sends a Slack Block Kit DM to the rep at T-15 minutes with the full score breakdown — including engagement signals, CRM risk flags, and the prospect's content consumption history. The score badge in the brief view now shows "{score}/100 — {label}" format (e.g. "🟢 85/100 — High").
Phase 1 Pre-Call Engagement Signals
New intelligence layer tracks token-level prospect engagement — section views, time on page, content consumption, and return visits. Proprietary readiness scoring (0–100) is computed from engagement signals and surfaced via Slack and CRM updates. New engagement_tokens and prospect_engagement tables; db/prospect-engagement.js and routes/engagement.js handle token CRUD and event logging. Brief view includes a live Prospect Readiness card.
3 SEO compare pages live + OAuth state store refactored
Three new compare pages targeting high-intent search traffic: /compare/pregame-vs-gong, /compare/pregame-vs-otter, /compare/pregame-vs-clari. OAuth state management refactored from in-memory Map to DB-backed pending_oauth_states table — survives app restarts and scales correctly for Salesforce, HubSpot, and Pipedrive flows.
HubSpot OAuth fully verified — ready for Marketplace submission
All HubSpot OAuth routes tested end-to-end. All three flows (initiate, callback, disconnect, status) confirmed working. App registered and approved for HubSpot Marketplace submission.
Salesforce Connected App — code complete, admin verification pending
OAuth 2.0 Web Server Flow implemented in routes/salesforce-oauth.js. AppExchange install entrypoint live at /auth/salesforce/install. Code is complete; final verification requires admin check in Salesforce Setup → App Manager.
Slack credentials live + DMARC verified + demo video
Slack OAuth environment variables deployed to Render — credentials now live in production. DMARC record verified and email deliverability confirmed for all outbound mail from hello@pregame.io. Demo video walkthrough of the core Pregame flow published.
Logo icon in header nav
Finalized icon.svg (teal chevron, 28px, 250 bytes) added to the desktop and mobile header navigation. Consistent brand mark across all surfaces.
Pregame Score
Every brief now gets a 0–100 Meeting Readiness Score across six weighted dimensions — prospect depth, company research, CRM history, stakeholder mapping, competitive context, and timing signals. Seven binary risk flags surface gaps so reps know exactly what to fix before a call. Managers see team score averages, trends, and per-rep leaderboards.
Manager Analytics Dashboard
A dedicated analytics view for sales leaders. See which reps are walking into meetings prepared and which aren't — with 7/30/90-day score trends, a sortable rep leaderboard, readiness rate bars, and the top risk flags surfacing across your team. No configuration required; it reads from your existing brief and score data.
Slack Delivery
Briefs delivered automatically to your configured Slack channel before every call — no app switching, no manual lookups. Connect once via OAuth and every brief (including the Pregame Score and risk flags) lands where your team already lives.
10 Live Integrations
Apollo, Instantly, Calendly, Google Calendar, Outlook, HubSpot, Salesforce, Close CRM, Pipedrive, and Slack — all live. Booking a meeting in any of these triggers an automatic brief. CRM data enriches the readiness score. Calendar detection fires prep 45–90 minutes before every external call.
Outreach v2
A refreshed outbound system with smarter sequence generation and better prospect context. Personalization draws from the same research engine that powers meeting briefs — so outreach and prep share the same intelligence layer.