Built with LangGraph Multi-Agent Orchestration

Your AI tools are blind.
We connect the signals.

Agentforce only sees Salesforce. Breeze only sees HubSpot. Gong only hears calls. Customer City's AI agents work across your entire revenue stack — catching dying deals, fixing broken routing, and forecasting what's real.

47%
Forecast accuracy lift
$2.4M
At-risk revenue caught
89%
Less manual reporting
Your GTM Systems
Salesforce
HubSpot
Gong
Outreach
Snowflake
G2 Intent
Customer City AI Mesh — Processing
🎯 Deal Intel
⚡ Router
📊 Forecast
🔍 ICP
⚠️ Churn
Autonomous Decisions
🚨Deal #4281 — champion went dark, CFO non-engaged. 82% stall risk. → Alerted AE + manager2s ago
New lead — ICP 92/100, active intent 3wks. Routed → Sarah Chen (67% win rate, SaaS segment)just now
📊Q1 Forecast — commit $3.2M validated. $840K at risk from 3 deals with decaying engagement.5m ago
In Production AtDoorDash● Paid Pilot Complete
47%
Forecast improvement
3.2×
Faster pipeline reviews
$2.4M
At-risk revenue identified
The Problem

Your revenue stack has a blind spot problem

Every vendor AI only sees its own silo. Meanwhile, the signals that actually predict revenue are scattered across 10+ systems — invisible to all of them.

🚫
60%

of deals die to "no decision"

Not to a competitor. Buying committees of 8–13 people can't reach consensus — and your CRM can't even see it happening. The signals are in email, Gong, Slack, and calendar data.

🔇
84%

of reps missed quota in 2024

Not because they're bad sellers. Because their tools can't tell them which deals are real, which champions went silent, or which accounts are actually in-market.

💸
$150K+

spent on AI that doesn't talk

Agentforce charges $2/conversation but only sees Salesforce. Breeze only sees HubSpot. Copilot only sees Dynamics. You're paying 3 AI taxes for 3 partial views.

The reason your forecast was off by 15% isn't bad data — it's disconnected data. Your CRM doesn't know what Gong heard. Your lead router doesn't know what intent data shows. Every tool is optimizing its own silo while revenue leaks through the gaps.

— The cross-system intelligence gap that costs mid-market companies 10%+ of annual revenue (Demandbase 2025)

The Distinction

Not another chatbot sitting on your data

Copilot, Bedrock, and Azure AI can answer questions about your pipeline. Customer City agents make autonomous decisions across it — routing leads, scoring deals, catching churn before it happens.

💬

Generic AI on Your Data

Copilot · Bedrock · Azure AI Foundry
What it doesAnswers questions about your data. You ask, it responds. A natural language BI layer.
Pipeline Example"Show me pipeline by stage" → returns a table you could've pulled from a dashboard.
Cross-SystemRequires you to warehouse everything into one place first. Months of data engineering.
RevOps KnowledgeGeneric reasoning. Doesn't know that a silent champion + missing procurement = dying deal.
You → Copilot:"Show me deals closing this quarter"
→ Returns a list. You do the analysis.

Customer City Agents

Autonomous RevOps decision layer
What it doesMakes decisions with your data. Routes leads, scores deals, catches churn — without being asked.
Pipeline Example"Deal #4281 is dying — champion response time went from 2hrs to 3 days, CFO hasn't opened ROI doc, procurement is absent. 78% stall probability."
Cross-SystemConnects to Salesforce, HubSpot, Gong, Outreach, Snowflake natively via MCP. Live signals, no warehousing.
RevOps KnowledgeTrained on RevOps patterns. Knows what buying committee stalls look like, when intent decays, which routing patterns convert.
Agent → Your Team (proactively):"3 enterprise deals at risk this week. Deal #4281: champion went dark 6 days ago. Recommend executive sponsor outreach to CFO."
Can you build this with Copilot + Azure? You can build the infrastructure — but you'd spend 6–12 months encoding RevOps logic, building cross-system pipelines, and training models. That's a $500K+ internal project. Customer City gives you pre-built RevOps intelligence that surfaces through whatever UI your enterprise standardizes on.
RevOps AI Agents

Agents that see what your tools can't

Each agent is purpose-built for a specific RevOps job — and they share signals with each other across your entire stack. Not generic prompts. Real domain intelligence.

cc/router-v3

Intelligent Lead Router

Right rep, full context, in seconds

Enriches, scores, and routes every lead using signals from across your stack — ICP fit, intent data, rep win rates, territory rules, and real-time capacity. No more round-robin roulette.

ICP scoringIntent signalsRep win ratesTerritory logicCapacity balance
📊
cc/forecast-v3

Revenue Forecast Agent

Forecast what's real — not what reps hope

Predicts deal timing and probability using engagement signals, stakeholder activity, and historical patterns. Flags sandbagging, identifies slippage, and separates commit from wishful thinking.

Stage velocityDeal health scoreCommit confidenceSlippage riskPipeline coverage
Autonomous Decision-Making

Agents don't wait for you to ask. They connect signals across systems and act.

Every decision traces through multiple data sources in real-time. No human prompt needed. No single system could see this alone.

🎯 Deal Intelligence Agent — Live Trace

⚡ Auto-triggeredNo human asked. Agent detected pattern across 4 systems.
SalesforceDeal #4281 in Stage 4 for 18 days (avg is 9). 2× overdue.
GongChampion mentioned "need to loop in procurement" on last call — but no procurement contact has appeared.
Champion response time shifted from 2.1 hrs → 3.4 days. CFO hasn't opened ROI doc (sent 11 days ago).
CalendarNext meeting was rescheduled twice, now pushed 2 weeks out. Buying committee attendance dropped from 5 → 2.
AgentCross-system pattern match: silent champion + missing procurement + CFO non-engagement + meeting decay = 82% stall probability
⚡ Autonomous Action Taken

Flagged deal as at-risk in Salesforce. Sent Slack alert to AE + manager. Recommended: executive sponsor outreach to CFO within 48 hours.

No human asked for this. Agent detected the pattern, assessed probability, and acted — 14 days before the rep would have noticed.

⚡ Lead Router Agent — Live Trace

⚡ Auto-triggeredNew form submission detected. Agent evaluated 6 signals in 1.2 seconds.
HubSpotNew lead: VP Sales, Acme Corp, 500 employees, SaaS. Demo request form.
ZoomInfoEnriched: $45M ARR, Series C, 120% YoY growth. Tech stack includes Salesforce + Outreach.
G2 IntentAcme Corp researching "revenue operations platforms" for 3 weeks. Viewed 4 competitor pages.
SalesforceICP score: 92/100. Matches closed-won pattern: SaaS, 200-800 emp, $20-80M ARR, West Coast.
AgentRep matching: Sarah Chen — 67% win rate in SaaS segment, current capacity 4/8, territory match, dealt with Acme's competitor last quarter.
⚡ Autonomous Action Taken

Routed to Sarah Chen with full dossier in Salesforce. Pre-populated talk track based on competitor research pattern. Set SLA timer: first touch within 4 hours.

1.2 seconds. 6 data sources. Zero human involvement. The old process took 30+ minutes and picked the wrong rep half the time.
Architecture

One AI mesh. All your systems. Shared signals.

Customer City sits above your CRMs — not inside them. Your agents connect to every data source and share intelligence with each other automatically.

Your Systems
Salesforce
HubSpot
Gong
Outreach
Snowflake
↓   MCP Connectors   ·   Real-Time Sync   ↓
Customer City AI Mesh
Deal Intel
Lead Router
Forecaster
ICP Scorer
Churn Detector
↓   Shared Signals   ·   Cross-Agent Learning   ↓
Outcomes
Deals saved
Leads routed
Forecast accuracy
Churn prevented
Real Example

Same lead. Two completely different outcomes.

Alex Thompson, VP of Sales at Acme Corp (500 employees, SaaS) fills out a demo form.

Without Customer City
1Lead arrives in HubSpot
2Zapier fires: California → round-robin to next available SDR
3Goes to a mid-level SDR with no context
4Rep manually researches on LinkedIn — 20 minutes
5Checks 6sense separately — high intent signal (but routing didn't know)
6Checks ZoomInfo — another 10 min for basic firmographics
→ 30+ min research. Wrong rep. Generic treatment. Delayed follow-up.
With Customer City
1Lead detected instantly via webhook
2Enriched: SaaS vertical, 500 employees, $45M ARR
3Intent detected: researching competitors for 3 weeks
4ICP score: 92/100 — ideal customer profile match
5Routed: → Sarah Chen (67% win rate in SaaS segment)
6Delivered: Full dossier in CRM before first call
→ Right rep. Full context. First call in minutes. 3× higher conversion.
How We Compare

What changes when agents see everything

Vendor AI optimizes one system. Customer City agents connect signals across all of them — and act on what they find.

CapabilitySalesforce AgentforceHubSpot BreezeMicrosoft CopilotCustomer CityDetects · Decides · Acts
Autonomous decisions Answers questions Answers questions Answers questions Makes decisions autonomously
Cross-system intelligence Salesforce only HubSpot only Dynamics only All GTM systems unified
RevOps-specialized agents Generic LLM Generic LLM Generic LLM 16 domain-trained agents
Cross-agent signal sharing Siloed Siloed Siloed Shared intelligence mesh
Data securityYour data trains their modelsYour data trains their modelsAzure-only processing Zero-retention, VPC option
Model choice (BYOM) Einstein only HubSpot AI only Azure OpenAI only Any model + BYOM
Pricing transparency$2/conversation + markupPremium tier (bundled)$30/user/month Usage-based, 0% LLM markup
Data portability Vendor lock-in Vendor lock-in Vendor lock-in Full export anytime
Integrations

Connects to your entire revenue stack

SalesforceHubSpotDynamics 365GongOutreachSalesloftSnowflakeBigQuerySlackStripeZendeskIntercomMarketoCustom APIs

See what your tools are missing

In 30 minutes, we'll show you the signals hiding in your GTM stack — and the decisions your AI should be making automatically.

How It Works

Four Steps to AI-Powered RevOps

Stop wasting time on manual tasks. Connect your systems, find the gaps, deploy AI agents, and watch them work.

1

Connect Your CRMs

Your data is scattered across Salesforce, HubSpot, and a dozen other tools. Customer City connects them all with one click and creates a unified view of every customer.

The Pain You Know

A lead starts in HubSpot, then requests an enterprise demo. Your Salesforce rep has to manually dig through HubSpot to find their history. With Customer City, they see everything instantly.

Integrations
Salesforce
Connected
HubSpot
Connected
Dynamics 365
Connect
Custom API
Configure
Last sync: 2 seconds ago
12,847 records synced● Live
2

See What's Broken

You know revenue is leaking somewhere — you just don't know where. Customer City scans your data and tells you exactly what's costing you money.

The Pain You Know

Your leads wait 6 hours for a response. You didn't even know that was happening. Customer City finds it, shows you it's costing ~340 lost conversions per quarter.

Revenue Diagnostics
3 High-Impact Opportunities Found
Based on 18 months of CRM data
Critical
Lead Response Time: 6.2 hours avg
~340 lost conversions/quarter
High
38% of pipeline has no ICP score
Reps waste time on poor-fit accounts
Medium
12 accounts showing churn signals
$284K ARR at risk
3

Deploy Agents in Minutes

Building AI used to feel like a massive engineering project. Not anymore. Pick a pre-built agent, set your rules, and go live.

The Pain You Know

You've been told "AI could help" but every solution needs months of implementation. With Customer City, go live in one afternoon.

Agent Templates
🎯
Lead Router
Route leads by territory & fit
cc/lead-router-v2
Deploy →
📊
ICP Scorer
Score fit across signals
cc/icp-scorer-v1
Deploy →
💚
Health Monitor
Detect churn risk
cc/health-v2
● Active
4

Track Everything

Other AI tools are black boxes with surprise bills. Customer City shows you every action, every cost, every result — in real-time.

The Pain You Know

You deployed AI somewhere else and got a mystery invoice. With Customer City: 847 leads routed, 94% accuracy. Total cost: $1.69. No surprises.

Dashboard
Active Agents
12
Invocations (24h)
48,291
Cost MTD
$96.58
Invocations — Last 7 days

AI Agent Library

Domain-Specific RevOps Agents

Each agent runs on a fine-tuned model trained for its specific domain. Not generic prompts — purpose-built AI specialists trained on 100K+ real RevOps decisions.

Top of Funnel🎯

Attribution Engine

Multi-touch attribution across all marketing channels. Understands complex buyer journeys with touchpoint weighting.

cc/attribution-v2
94%Accuracy
+32%vs Last Touch
$0.002Per Call
Top of Funnel📊

ICP Intelligence

Scores ideal customer fit using firmographics, technographics, and historical win patterns. Trained on your closed-won deals.

cc/icp-scorer-v1
2.3xLift
+67%vs Rules
$0.002Per Call
Top of Funnel🔍

Lead Enrichment

Auto-enriches lead data from 20+ sources. Fills missing fields, validates emails, and adds firmographic context.

cc/enrichment-v2
87%Fill Rate
96%Accuracy
$0.003Per Call
Top of Funnel🔥

Intent Signals

Aggregates buying signals from G2, TrustRadius, job postings, and web activity. Detects accounts in-market before outbound.

cc/intent-v3
3.1xMeeting Rate
14 daysLead Time
$0.004Per Call
Mid Funnel

Lead Scoring

Predictive lead scoring that combines behavioral, demographic, and engagement signals. Updates in real-time as prospects engage.

cc/lead-score-v2
89%Accuracy
+45%vs MQL Rules
$0.001Per Call
Mid Funnel🎯

Lead Router

Intelligent routing based on territory, specialty, capacity, and fit. Round-robin with weighted assignment and real-time load balancing.

cc/lead-router-v2
94.2%Accuracy
+18%vs GPT-4
$0.001Per Call
Mid Funnel🚀

Pipeline Velocity

Monitors deal progression and identifies stuck opportunities. Recommends next best actions to accelerate movement.

cc/velocity-v1
-23%Cycle Time
+18%Win Rate
$0.002Per Call
Mid Funnel💰

Deal Scoring

Real-time deal health scoring based on engagement, stakeholder involvement, and competitive signals. Flags at-risk deals early.

cc/deal-score-v2
91%Accuracy
21 daysEarly Warning
$0.002Per Call
Bottom of Funnel📈

Forecasting

AI-powered revenue forecasting with deal-level probability analysis. Identifies sandbagging, slippage, and commit confidence.

cc/forecaster-v3
8.4%MAPE
+42%vs Linear
$0.003Per Call
Bottom of Funnel👤

Customer 360

Unified customer view across all touchpoints. Generates account summaries, relationship maps, and executive briefings.

cc/customer360-v2
85%Time Saved
96%Accuracy
$0.005Per Call
Retention❤️

Churn Prediction

Predicts churn risk 45+ days in advance. Combines usage patterns, support tickets, NPS, and payment signals into a health score.

cc/health-v2
0.89AUC
45 daysLead Time
$0.002Per Call
Retention📈

Expansion Intelligence

Identifies upsell and cross-sell opportunities based on usage patterns, feature adoption, and account growth signals.

cc/expansion-v1
2.1xNRR Lift
+34%Expansion Rate
$0.003Per Call
Sales Planning🗺️

Territory Management

Optimizes territory design based on market potential, rep capacity, and historical performance. Balances workload automatically.

cc/territory-v2
+15%Coverage
-28%Imbalance
$0.004Per Call
Sales Planning🎯

Quota Planning

Data-driven quota setting based on territory potential, rep ramp, seasonality, and historical attainment patterns.

cc/quota-v1
+22%Attainment
-45%Variance
$0.003Per Call
Sales Planning👥

Capacity Planning

Models hiring needs based on pipeline growth, rep productivity, and ramp curves. Forecasts headcount requirements by segment.

cc/capacity-v1
92%Accuracy
6 moHorizon
$0.004Per Call
Sales Planning💵

Sales Compensation

Calculates commissions, SPIFs, and accelerators in real-time. Models comp plan scenarios and predicts payout distributions.

cc/comp-v1
99.9%Accuracy
-85%Calc Time
$0.002Per Call

Integrations

Connect Your Entire Revenue Stack

Native connectors for the tools your team already uses. Set up in minutes, not weeks.

Salesforce
HubSpot
Dynamics 365
NetSuite
Snowflake
BigQuery
Databricks
Slack
Microsoft Teams
Gong
Outreach
Salesloft
Marketo
Pardot
Zendesk
Intercom
Stripe
Custom APIs

Don't see your integration? Our platform supports custom connectors via REST, GraphQL, and webhooks. If you can call an API, Customer City can connect to it.

Under the Hood

Customer City Architecture

A unified platform that sits on top of your existing infrastructure — connecting your CRMs, data sources, and AI models.

AI Models
Your Fine-Tuned ModelsCC Lead RouterCC ICP ScorerCC ForecasterClaude APIGPT-4 APILlamaMistral
MCP Protocol • Model Routing • Load Balancing
Customer City Platform
Unified Data LayerAgent RuntimeGovernance EngineUsage MeteringAudit Trail
Native Connectors • Real-Time Sync • Webhooks
Your Systems
SalesforceHubSpotDynamics 365NetSuiteSnowflakeBigQueryCustom APIsWebhooks
🎯

Intelligent Lead Routing

Route leads to the right rep instantly based on territory, capacity, expertise, and historical win rates.

  • Territory-aware assignment
  • Rep capacity optimization
  • Round-robin with intelligence
  • Real-time rebalancing
Powered bycc/router-v3
📊

ICP Scoring & Prioritization

Score accounts against your ideal customer profile using firmographic, technographic, and behavioral signals.

  • Multi-signal scoring
  • Dynamic ICP refinement
  • Segment-specific models
  • Conversion prediction
Powered bycc/icp-v2
📈

Revenue Forecasting

AI-powered forecasts that learn from deal progression patterns, not just rep gut feelings.

  • Stage velocity analysis
  • Deal risk scoring
  • Commit vs. best-case
  • Weekly trend detection
Powered bycc/forecast-v3
⚠️

Churn Prediction

Identify at-risk accounts before they churn using engagement, usage, and sentiment signals.

  • Early warning scores
  • Engagement decay detection
  • Health score tracking
  • Intervention triggers
Powered bycc/churn-v2
🔍

Pipeline Diagnostics

Automatically diagnose pipeline health issues and surface bottlenecks across your funnel.

  • Stage conversion analysis
  • Bottleneck detection
  • Coverage gap alerts
  • Velocity benchmarking
Powered bycc/diagnose-v1
📡

Intent Signal Processing

Aggregate and score buying intent signals from multiple data sources into actionable insights.

  • Multi-source aggregation
  • Signal strength scoring
  • Account surge detection
  • Topic clustering
Powered bycc/intent-v1

How It Works

One Mesh, All Your Use Cases

Deploy one platform. Enable the agents you need. They share signals automatically.

1

Connect Your Data

Link your CRMs, enrichment tools, and intent providers via MCP.

2

Enable Agents

Turn on the domain-specialized agents for your use cases.

3

Agents Learn

Fine-tuned models improve from your outcomes automatically.

4

Insights Flow

Signals are shared across agents for unified intelligence.

See These Agents in Action

30-minute demo tailored to your specific use cases. We'll show you exactly how each agent works with your data.

Simple Pricing Formula
Total = Platform Fee + Invocations + CC Models + Foundation Models (0% markup)

Foundation model costs (Claude, GPT, etc.) are passed through at exact API pricing. We don't mark them up.

🏢
Platform Fee
$0-999
per month
Depends on tier. Includes CRM connectors, governance, and audit trail.
Agent Invocations
$0.002
per invocation
Each time an agent processes a request. Includes routing, logging, metering.
🧠
CC Specialist Models
$0.001-0.005
per call
Lead Router, ICP Scorer, Forecaster, Health Predictor, etc.
🔗
Foundation Models
0%
markup
Claude, GPT-4, Llama, Mistral—passed through at exact API cost.

Plans

Choose Your Starting Point

All plans include full platform access. Upgrade anytime as your usage grows.

Getting Started
Starter
For teams exploring RevOps AI
$0/month
Includes:
  • 1 CRM connection
  • 50,000 free invocations/month
  • All CC specialist models
  • Basic usage dashboard
  • Community support
  • 7-day data retention
Enterprise Scale
Enterprise
For large organizations
$999/month + usage
Everything in Growth, plus:
  • Unlimited CRM connections
  • 200,000 free invocations/month
  • Volume discounts (up to 40% off)
  • Private cloud / on-prem option
  • Custom model fine-tuning
  • Dedicated CSM + SLA
  • Unlimited data retention
🧮

Estimate Your Monthly Cost

See exactly what you'd pay based on your usage. Adjust the inputs to match your expected volume.

Estimated Monthly Cost

$915

Agentforce equivalent (at $2/conversation):

~$100,000/mo

You save ~99%

Comparison

How We Compare to Platform AI

A side-by-side look at Customer City vs. vendor-locked AI solutions.

CapabilityAgentforceBreeze (HubSpot)Copilot (Microsoft)Customer City
Pricing Model$2/conversationPremium tier required$30/user/month✓ Usage-based, transparent
LLM Markup40-200x estimatedUnknown (bundled)~10x estimated✓ 0% — exact API cost
Model Choice✗ Locked to Einstein✗ Locked to HubSpot AI✗ Locked to Azure OpenAI✓ Any model + BYOM
Multi-CRM Support✗ Salesforce only✗ HubSpot only✗ Dynamics only✓ All CRMs unified
RevOps Specialists✗ Generic LLM✗ Generic LLM✗ Generic LLM✓ Fine-tuned for RevOps
Self-Host Option✗ SaaS only✗ SaaS only◐ Azure only✓ Any cloud / on-prem
Data Portability✗ Vendor lock-in✗ Vendor lock-in✗ Vendor lock-in✓ Full export anytime

Real Example: A company with 50,000 customer conversations/month pays Agentforce approximately $100,000/year. With Customer City, the same volume costs approximately $12,000/year—that's 88% savings, plus you get multi-CRM support and model choice.

FAQ

Common Pricing Questions

What counts as an "invocation"?
An invocation is any time an agent processes a request—whether that's routing a lead, scoring an opportunity, or generating a forecast.
How does BYOM pricing work?
When you bring your own models, you pay your own inference costs. We charge nothing extra—just the standard invocation fee for orchestration.
Can I switch plans anytime?
Yes. Upgrade instantly, downgrade at the end of your billing cycle. No long-term contracts required on Starter or Growth plans.
What's included in "free invocations"?
Each plan includes a monthly allocation at no extra cost. Starter gets 50K, Growth gets 100K, Enterprise gets 200K. Usage beyond that is $0.002/invocation.
Do you offer annual discounts?
Yes. Annual commitment on Growth or Enterprise plans includes a 20% discount on platform fees. Contact sales for details.
Is there a free trial?
The Starter plan is free forever with 50K invocations/month. For Growth and Enterprise, we offer a 14-day free trial with full access.

Ready to See Your Savings?

Let's walk through your specific usage and show you exactly what Customer City would cost compared to your current solution.

🚀

Quick Start

Get up and running in under 10 minutes. Connect your first CRM, deploy an agent, and see results immediately.

1
Install SDK
pip install customer-city or npm install @customer-city/sdk
2
Get API Key
Create an account and generate your API key from the dashboard
3
Connect CRM
Use OAuth to connect Salesforce, HubSpot, or Dynamics
4
Deploy Agent
Create and configure your first autonomous agent
quickstart.py
1from customer_city import Client
2
3# Initialize the client
4cc = Client(api_key="cc_live_...")
5
6# Connect your CRMs
7cc.connect("salesforce", credentials=sf_oauth_token)
8cc.connect("hubspot", credentials=hs_oauth_token)
9
10# Create a lead routing agent
11router = cc.agents.create(
12 type="lead_router",
13 model="cc/lead-router-v2",
14)

Guides

Documentation by Topic

Comprehensive guides for every aspect of the Customer City platform.

🔌
API Reference
v2.2

Complete API documentation with request/response examples, authentication guides, and error handling.

🧠
Model Catalog
6 Models

Detailed specs on each CC specialist model—accuracy benchmarks, pricing, latency, and optimal use cases.

🔧
BYOM Guide
Advanced

How to deploy your own fine-tuned models on Customer City. Supports OpenAI, Anthropic, and self-hosted endpoints.

🔗
MCP Server
Linux Foundation

Connect AI agents (Claude, GPT, Cursor) directly to your RevOps data via Model Context Protocol. Quick start, authentication, tools, resources, and prompts.

⚙️
CRM Connectors
Integrations

Setup guides for Salesforce, HubSpot, Dynamics 365, and NetSuite. OAuth flows, field mapping, and sync configuration.

🛡️
Security & Compliance
SOC 2

SOC 2 Type II, GDPR, and HIPAA compliance documentation. Enterprise security architecture and data handling policies.

SDKs

Official Client Libraries

Production-ready SDKs with full TypeScript/Python type hints, automatic retries, and comprehensive error handling.

🐍
Python
pip install customer-city
📦
Node.js / TypeScript
npm install @customer-city/sdk
🌐
REST API
https://api.customercity.ai/v2

Resources

Additional Resources

📋
Changelog
Latest releases, new features, and improvements
📝
Engineering Blog
Technical deep dives and best practices
🎓
Tutorials
Step-by-step guides for common use cases
💬
Community Discord
Connect with other Customer City developers
🎥
Video Tutorials
Walkthrough videos for visual learners
📊
Status Page
System status and uptime monitoring

Need Help Getting Started?

Our solutions engineers are available to help you integrate Customer City into your stack. Book a technical session.

API Reference v2.2

Full-Funnel RevOps API

19 REST API modules covering the entire revenue funnel—plus an MCP Server for direct AI agent connectivity. Multi-CRM native. BYOM supported.

MCP Server
REST API Base URL
https://api.customercity.com/v2
MCP Server Endpoint
https://mcp.customercity.com/v1
🔌
MCP-Native Architecture
Connect AI agents (Claude, GPT, custom) directly to your RevOps data via the Model Context Protocol—the open standard created by Anthropic and adopted by OpenAI, Google, and Microsoft. Now governed by the Linux Foundation's Agentic AI Foundation.
View MCP Docs →
🔺 Top of Funnel

📊 Attribution Engine

Multi-touch attribution models to understand which channels, campaigns, and touchpoints drive revenue.

Pain Point: B2B buyers complete 57-70% of their research before contacting sales. The average buying group is now 22 people—making multi-touch attribution essential.Source: WWB, LinkedIn 2025

POST/attribution/analyzeAnalyze touchpoint attribution
Response
{ "model": "w_shaped", "total_revenue": 85000, "touchpoints": [...] }
GET/attribution/modelsList attribution models

Returns available attribution models: first_touch, last_touch, linear, u_shaped, w_shaped, custom.

GET/attribution/channelsGet channel performance

Channel-level attribution data with revenue contribution percentages.

POST/attribution/custom-modelCreate custom attribution model

Define custom weight distributions across touchpoints.

🔺 Top of Funnel

🎯 ICP Intelligence

AI-powered Ideal Customer Profile detection and scoring.

Pain Point: High-quality leads increase conversion rates by up to 70%. Misaligned ICPs waste resources and slow profit growth.Source: Industry Research

POST/icp/scoreScore account against ICP
Response
{ "icp_score": 87, "tier": "A" }
GET/icp/profileGet ICP profile definition

Returns the current ICP model with firmographic and technographic criteria.

POST/icp/analyze-portfolioAnalyze account portfolio against ICP

Batch-score your entire account base against the ICP model.

🔺 Top of Funnel

🔍 Lead Enrichment

Real-time firmographic, technographic, and demographic enrichment.

Pain Point: Poor data quality costs organizations an average of $12.9 million annually. B2B contact data decays 22-70% per year.Source: Gartner

POST/enrichment/leadEnrich lead/contact
Response
{ "person": { "title": "VP of Revenue Operations" }, "company": {...} }
POST/enrichment/companyEnrich company data

Returns firmographic, technographic, and financial data for a company.

POST/enrichment/bulkBulk enrich leads

Enrich up to 1,000 leads in a single request. Returns async job ID.

🔺 Top of Funnel

📡 Intent Signals

Capture first-party and third-party buying signals.

Pain Point: Buyers complete 57-70% of research before contacting sales. Intent data helps you engage before competitors.Source: WWB

GET/intent/signals/{account_id}Get intent signals for account
Response
{ "intent_score": 78, "trending_topics": ["revenue operations", "sales forecasting"] }
POST/intent/trackTrack intent event

Record a first-party intent signal (page view, content download, etc.).

🔶 Mid Funnel

🎰 Lead Scoring

AI-powered lead scoring combining fit, engagement, and intent signals.

POST/scoring/leadScore a lead
Response
{ "score": 82, "grade": "A", "recommended_action": "route_to_ae" }
GET/scoring/modelGet scoring model config

Returns the current lead scoring model with weight distribution.

POST/scoring/batchBatch score leads

Score up to 500 leads in a single batch request.

🔶 Mid Funnel

🚦 Lead Router

Intelligent lead routing based on territory, capacity, round-robin, or skill-based assignment.

POST/routing/assignRoute lead to rep

Route with SLA tracking and assignment reasoning.

GET/routing/rulesGet routing rules

Returns active routing rules and priority order.

PUT/routing/rulesUpdate routing rules

Update routing configuration with new rules and priorities.

🔶 Mid Funnel

⏱️ Pipeline Velocity

Track and optimize how deals move through your pipeline.

GET/pipeline/velocityGet pipeline velocity metrics

Stage-by-stage velocity with bottleneck identification.

GET/pipeline/stagesGet pipeline stage breakdown

Detailed stage metrics including conversion rates and average time in stage.

🔶 Mid Funnel

🎲 Deal Scoring

AI deal health scores with risk signals and win probability.

GET/deals/{opportunity_id}/scoreGet deal score

Returns deal score, win probability, and next-best-action.

GET/deals/{deal_id}/signalsGet deal risk signals

Risk signals, engagement gaps, and competitive alerts for a deal.

🔻 Bottom Funnel

📈 Forecasting

AI-powered revenue forecasting with waterfall analysis and scenario modeling.

GET/forecasting/predictGet AI forecast
Response
{ "ai_forecast": 3150000, "confidence_interval": [2850000, 3450000] }
GET/forecasting/pipelineGet pipeline-based forecast

Weighted pipeline forecast with category breakdowns.

🔻 Bottom Funnel

👤 Customer 360

Unified customer profile aggregating CRM, product usage, and engagement data.

GET/customers/{customer_id}/360Get unified customer view

Complete customer context with health score and activities.

GET/customer360/timelineGet customer activity timeline

Chronological activity feed across all connected systems.

🔄 Retention

⚠️ Churn Prediction

AI-powered churn risk scoring with early warning signals.

GET/churn/{customer_id}Get churn risk assessment
Response
{ "churn_risk": 0.23, "risk_level": "medium", "risk_signals": [...] }
GET/churn/signalsGet churn signal definitions

List of all tracked churn signals and their weight in the model.

🔄 Retention

📈 Expansion Intelligence

Identify upsell and cross-sell opportunities from usage patterns.

GET/expansion/{customer_id}Get expansion opportunities
Response
{ "expansion_score": 84, "expansion_potential": 45000, "opportunities": [...] }
POST/expansion/scoreScore expansion potential

Score expansion potential based on product usage and fit.

📊 Sales Planning New

🗺️ Territory Management

Design, balance, and optimize sales territories using data-driven insights. Geo-spatial mapping, account scoring, and dynamic territory assignment.

Pain Point: Only 25% of B2B sales reps hit quota in 2024—down from the traditional 70% benchmark. Poorly structured territories lead to uneven workloads and rep attrition.Source: SPOTIO 2025

GET/territoriesList all territories
Response
{
  "territories": [{
    "id": "terr_west_enterprise",
    "name": "West - Enterprise",
    "owner": { "name": "Sarah Chen" },
    "metrics": { "total_accounts": 234, "balance_score": 0.82 }
  }]
}
POST/territories/designDesign optimized territories

AI-powered territory design with balance optimization.

📊 Sales Planning New

🎯 Quota Planning

Set fair, achievable quotas aligned to market potential. Top-down and bottom-up planning with scenario modeling.

Pain Point: 91% of organizations missed quota expectations in 2024. 87% set quotas without a systematic method. Average seller hit only 74% of quota.Source: QuotaPath, CaptivateIQ 2025

POST/quotas/planGenerate quota plan
Response
{
  "plan_id": "quota_fy2026",
  "company_target": 12000000,
  "total_quota_assigned": 14400000,
  "attainment_forecast": { "projected_attainment": 0.78 }
}
GET/quotas/attainmentGet quota attainment report

Quota attainment by rep, team, and segment with trend analysis.

📊 Sales Planning New

👥 Capacity Planning

Determine optimal sales headcount to hit revenue targets. Factor in ramp time, attrition, and productivity.

Pain Point: Sales reps spend only 28% of their time actually selling. 68% say note-taking and admin tasks consume the most time. Only 11% feel confident during customer calls.Source: Salesroom 2024

POST/capacity/modelBuild capacity model
Response
{
  "model_id": "cap_2026_enterprise",
  "capacity_gap": 2640000,
  "hiring_plan": { "total_hires_needed": 6 }
}
GET/capacity/scenariosGet capacity scenarios

Compare hiring scenarios with revenue impact projections.

📊 Sales Planning New

💰 Sales Compensation

Design, calculate, and manage incentive compensation plans. Commission calculations, accelerators, SPIFs, and MBO tracking.

Pain Point: Only 50% of companies provide reps with real-time visibility into their compensation and performance. Without dashboards, reps only find out they missed quota at quarter-end.Source: CaptivateIQ 2025

POST/compensation/calculateCalculate commissions
Response
{
  "rep_id": "usr_sarah_chen",
  "earnings": { "base_commission": 12500, "total_variable": 19250 },
  "attainment": { "quota": 100000, "achieved": 125000, "pct": 1.25 }
}
GET/compensation/plansGet compensation plans

List all active compensation plans with structure and accelerator tiers.

⚙️ Operations

🧹 Data Quality

Automated data hygiene: duplicate detection, normalization, and decay monitoring.

POST/data-quality/dedupeFind and merge duplicates

AI-powered duplicate detection with fuzzy matching.

GET/data-quality/scoreGet data quality score

Overall data quality score with field-level completeness metrics.

POST/data-quality/scanRun data quality scan

Full scan of your CRM data with issue detection and remediation suggestions.

⚙️ Operations

🔗 Integrations

Manage CRM, marketing automation, and data warehouse connections.

GET/integrationsList connected integrations

View all connected systems with sync status.

POST/integrations/connectConnect new integration

Initiate OAuth or API key connection to a new system.

GET/integrations/sync-statusGet sync status

Real-time sync status with last sync time and record counts.

⚙️ Operations

🤖 AI Agents

Deploy specialized AI agents: deal analyzer, forecast narrator, pipeline coach.

POST/agents/{agent_id}/invokeInvoke an AI agent

Invoke specialized agents like "deal-analyzer" or "forecast-narrator".

POST/agents/createCreate a new agent

Create and configure a custom AI agent with specific capabilities.

GET/agents/{id}/statusGet agent status

Current agent status, recent invocations, and performance metrics.

🔌 MCP Server MCP

Model Context Protocol Integration

Customer City provides a native MCP server following the Model Context Protocol specification. Connect AI agents (Claude, GPT, custom agents) directly to your RevOps data using standardized JSON-RPC 2.0 messaging.

Why MCP: MCP eliminates the "M x N integration problem"—instead of building custom connectors for each AI tool x each data source, implement once and interoperate with any MCP-compatible client. Created by Anthropic in November 2024, now governed by the Linux Foundation's Agentic AI Foundation (AAIF) with support from OpenAI, Google, Microsoft, AWS, and Block.Source: MCP Spec 2025-11-25

REST API vs MCP Server: When to Use Each

REST API (api.customercity.com/v2)
  • Your engineering team writes integration code
  • Traditional HTTP requests (GET/POST/PUT/DELETE)
  • Webhooks, Zapier, custom apps
  • Full control over implementation
MCP Server (mcp.customercity.com/v1)
  • AI agents connect with minimal integration code
  • JSON-RPC 2.0 with tool/resource/prompt primitives
  • Claude Desktop, GPT, Cursor, VS Code, custom agents
  • AI discovers capabilities automatically via protocol

MCP Architecture

┌─────────────────┐                        ┌─────────────────┐
│  AI Application │                        │  Customer City  │
│  (Claude, GPT,  │◄──── JSON-RPC 2.0 ────▶│   MCP Server    │
│  Cursor, etc.)  │      (stdio/HTTP+SSE)  │                 │
│                 │                        │  Exposes:       │
│  Embeds MCP     │                        │  • Tools        │
│  Client SDK     │                        │  • Resources    │
└─────────────────┘                        │  • Prompts      │
                                           └────────┬────────┘
                                                    │
                                                    ▼
                                           ┌─────────────────┐
                                           │  Your CRM Data  │
                                           │  • Salesforce   │
                                           │  • HubSpot      │
                                           │  • Pipeline     │
                                           │  • Forecasts    │
                                           └─────────────────┘
MCP Server Endpoint
https://mcp.customercity.com/v1
Protocol Version: 2025-11-25 - Transport: HTTP+SSE, Streamable HTTP, or stdio
🔌 MCP Server

🚀 Quick Start

Get connected in minutes. Choose your integration method based on your use case.

CFGClaude Desktop / CursorLocal stdio configuration

Add to your Claude Desktop or Cursor MCP configuration file:

claude_desktop_config.json
{
  "mcpServers": {
    "customercity": {
      "command": "npx",
      "args": ["-y", "@customercity/mcp-server"],
      "env": {
        "CUSTOMER_CITY_API_KEY": "your-api-key",
        "CUSTOMER_CITY_ORG_ID": "your-org-id"
      }
    }
  }
}

Config locations: macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Windows: %APPDATA%\Claude\claude_desktop_config.json

CFGHTTP+SSE (Production)Remote server connection

For production deployments, connect via HTTP with Server-Sent Events:

Initialize Connection
// 1. First, get an OAuth token (see Authentication section)

// 2. Initialize MCP session
POST https://mcp.customercity.com/v1
Authorization: Bearer {oauth_access_token}
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-11-25",
    "capabilities": {},
    "clientInfo": {
      "name": "your-agent-name",
      "version": "1.0.0"
    }
  }
}
SDKOfficial SDKsClient libraries for all languages

Use the official MCP SDKs (97M+ monthly downloads):

Installation
# Python
pip install mcp

# TypeScript/Node.js
npm install @modelcontextprotocol/sdk

# C# / .NET
dotnet add package ModelContextProtocol

Full SDK documentation: modelcontextprotocol.io

🔌 MCP Server

🔐 Authentication

MCP servers are OAuth 2.1 Resource Servers per the June 2025 spec update. Customer City MCP supports both API key (for local/stdio) and OAuth 2.0 (for production HTTP) authentication.

AUTHAPI Key (stdio)For local agents & development

For Claude Desktop, Cursor, and local development, use environment variables:

CUSTOMER_CITY_API_KEY req
string
Your API key from the Customer City dashboard
CUSTOMER_CITY_ORG_ID req
string
Your organization ID

API keys inherit the permissions of the user who created them. Create scoped keys in Settings → API Keys.

AUTHOAuth 2.0 (HTTP)For production deployments

For production HTTP+SSE connections, use OAuth 2.0 with PKCE:

OAuth Configuration
// OAuth Endpoints
Authorization Server:   https://auth.customercity.com
Authorization Endpoint: https://auth.customercity.com/oauth/authorize
Token Endpoint:         https://auth.customercity.com/oauth/token

// Resource Indicator (RFC 8707)
Resource: https://mcp.customercity.com/v1

// Available Scopes
revops:read      // Read pipeline, forecast, accounts
revops:write     // Modify data via tools
revops:admin     // Territory & quota management
Token Request Example
POST https://auth.customercity.com/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code={authorization_code}
&redirect_uri={your_redirect_uri}
&client_id={your_client_id}
&code_verifier={pkce_code_verifier}
&resource=https://mcp.customercity.com/v1
ERRError HandlingCommon auth errors and solutions
Error Responses
// Invalid or expired token
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32001,
    "message": "Unauthorized: Invalid or expired access token"
  }
}

// Insufficient scope
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32002,
    "message": "Forbidden: Scope 'revops:write' required for this tool"
  }
}
🔌 MCP Server

🛠️ MCP Tools

Tools allow AI models to execute actions. Each tool is a function the AI can invoke to query data or perform operations on your behalf.

TOOLget_pipeline_summaryGet pipeline summary for a period
period req
string
"Q1_2026", "current_quarter", "this_month"
segment
string
"enterprise", "mid_market", "smb"
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_pipeline_summary",
    "arguments": { "period": "Q1_2026" }
  }
}
Success Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{
      "type": "text",
      "text": "Pipeline Summary for Q1_2026:\\n- Total: $3.2M\\n- Deals: 47\\n- Weighted: $1.8M"
    }]
  }
}
TOOLanalyze_deal_riskAnalyze risk factors for a deal

Returns AI-generated risk assessment with signals and next-best-actions.

TOOLget_forecastGet AI-generated revenue forecast

Returns forecast with confidence intervals and waterfall analysis.

TOOLsearch_accountsSemantic search across accounts

Natural language search: "Find enterprise fintech accounts showing buying intent"

TOOLcalculate_commissionCalculate rep commission

Real-time commission calculation with accelerators and SPIFs.

🔌 MCP Server

📦 MCP Resources

Resources expose read-only data that AI models can access for context. Unlike tools (which execute actions), resources provide data the AI can reference.

RSRCrevops://pipeline/currentCurrent quarter pipeline
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "resources/read",
  "params": { "uri": "revops://pipeline/current" }
}
RSRCrevops://forecast/{period}Forecast data for a period

Forecast snapshots, historical accuracy, category breakdowns.

RSRCrevops://territoriesTerritory definitions

Territory structure, ownership, and balance metrics.

RSRCrevops://accounts/{id}Account data and history

Full account context including opportunities, contacts, activities.

🔌 MCP Server

💬 MCP Prompts

Pre-built prompt templates for common RevOps workflows. Users can invoke these as slash commands or quick actions in their AI client.

PRMTweekly_forecast_reviewGenerate forecast review
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "prompts/get",
  "params": {
    "name": "weekly_forecast_review",
    "arguments": { "include_risks": true }
  }
}
PRMTdeal_strategyGenerate deal strategy

Next steps, stakeholder mapping, competitive positioning.

PRMTqbr_prepPrepare QBR talking points

Executive summary, wins/losses, next quarter outlook.

🔌 MCP Server

⚡ Rate Limits & Best Practices

Understand limits and optimize your MCP integration for production workloads.

LIMITRate LimitsRequest limits by plan tier
Starter
100
requests/minute
Professional
500
requests/minute
Enterprise
Custom
Contact sales
Rate Limit Response Headers
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1706140800
Rate Limit Exceeded Error
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32029,
    "message": "Rate limit exceeded. Retry after 12 seconds.",
    "data": { "retry_after": 12 }
  }
}
TIPBest PracticesOptimize your integration

1. Use Resources for context, Tools for actions
Resources are cached and don't count toward rate limits. Load context via resources, then use tools sparingly for actions.

2. Implement exponential backoff
On rate limit errors, wait retry_after seconds, then retry with exponential backoff (2s, 4s, 8s...).

3. Batch when possible
Use search_accounts with filters instead of individual get_account calls.

4. Cache tool results client-side
Pipeline summaries and forecasts don't change frequently. Cache results for 5-15 minutes.

🔌 MCP Server

🤔 REST API vs MCP: When to Use Each

Choose the right integration approach for your use case.

// Decision Tree
Is an AI agent involved in your workflow?
├─ YES → Does the agent need to discover tools dynamically?
├─ YESUse MCP
└─ NO → Use REST API (more deterministic)
└─ NOUse REST API
Use REST API for:
  • Webhooks & event-driven integrations
  • Zapier / Make / n8n workflows
  • Custom dashboards & reports
  • Batch data processing
  • Deterministic, auditable pipelines
Use MCP for:
  • AI assistants (Claude, GPT, Copilot)
  • Conversational analytics
  • Dynamic tool discovery & chaining
  • IDE integrations (Cursor, VS Code)
  • Natural language data queries

Need Help Getting Started?

Our solutions engineers are available to help you integrate Customer City into your stack. Book a technical session.

Send Us a Message

Fill out the form below and we'll get back to you within 24 hours.

📧

Email

hello@customercity.ai

General inquiries

💼

Sales

sales@customercity.ai

Enterprise pricing & demos

🛠️

Support

support@customercity.ai

Technical assistance

🤝

Partnerships

partners@customercity.ai

SI & technology partnerships

Support

How Can We Help?

Choose the support channel that best fits your needs.

📚

Documentation

Browse our comprehensive guides, API reference, and tutorials.

View Docs →
💬

Community

Join our Discord to connect with other Customer City users and engineers.

Join Discord →
🎫

Support Tickets

Growth and Enterprise customers can submit tickets for priority support.

Open Ticket →
Headquarters

Seattle, Washington

Customer City, Inc.
701 5th Avenue, Suite 4200
Seattle, WA 98104
United States

Business Hours:
Monday – Friday: 9:00 AM – 6:00 PM PT

📍 Interactive map would go here

FAQ

Frequently Asked Questions

How quickly will I hear back?
We respond to all inquiries within 24 hours during business days. Demo requests typically receive same-day responses.
Do you offer phone support?
Phone support is available for Enterprise customers. Growth plan customers have access to Slack-based support with 8-hour response times.
Can I schedule a technical deep-dive?
Absolutely. Request a demo and mention you'd like a technical session—we'll pair you with a solutions engineer.
Do you have partners in my region?
We have SI and consulting partners across North America, Europe, and APAC. Contact our partnerships team for regional referrals.

About

We built RevOps systems at scale.
Then we saw what was missing.

Customer City is an AI engineering company building autonomous RevOps agents that work across your entire revenue stack — not locked inside one vendor's ecosystem.

Seattle, WAFounded 2024Seed Stage
Why We Exist

The gap nobody was filling

Between us, we've spent 35+ years building enterprise systems — data platforms at AWS, revenue infrastructure at DoorDash, CRM implementations for companies scaling from $50M to IPO. We've seen the inside of more RevOps stacks than we can count.

And we kept seeing the same thing: every AI vendor was building walls, not bridges. Salesforce shipped Agentforce — but it only sees Salesforce. HubSpot shipped Breeze — it only sees HubSpot. Microsoft shipped Copilot — it only sees Dynamics. Each one optimizing its own silo while revenue leaked through the gaps between systems.

The reason your forecast was off by 15% isn't bad data. It's disconnected data. Your CRM doesn't know what Gong heard. Your lead router doesn't know what intent data shows. Your deal intelligence can't see calendar signals. Every tool optimizing its own silo — nobody watching the whole picture.

Meanwhile, RevOps teams are drowning. 60% of qualified deals die to "no decision" — not because the product was wrong, but because buying committees of 8–13 people can't reach consensus and nobody's tracking the signals that say so. 84% of reps missed quota in 2024, not from lack of effort, but because their tools are blind to what's actually happening across the deal cycle.

We started Customer City to build what should have existed already: an AI intelligence layer that sits above your CRM vendors — not inside them. Agents that connect to Salesforce and HubSpot and Gong and Outreach and Snowflake — and recognize patterns no single system can see. Not a chatbot that answers questions about your pipeline. Autonomous agents that detect dying deals, route leads with full cross-system context, and forecast what's real based on actual engagement signals.

We charge honestly — 0% markup on foundation models, usage-based pricing, no lock-in. But that's not why we exist. We exist because every revenue team deserves agents that can see their entire revenue stack, and no vendor was going to build that for them.

What We Believe

Principles, not slogans

🔗

Cross-system by default

Revenue doesn't live in one tool. Neither should intelligence. Every agent we build connects to your entire GTM stack — CRMs, SEPs, call tools, data warehouses, intent providers.

Agents decide, not just report

We don't build dashboards or chatbots. Our agents detect patterns across systems, assess probability, and take action — flagging dying deals, routing leads, adjusting forecasts — without being asked.

🔍

Transparent everything

0% LLM markup. Usage-based pricing. Full data portability. Every agent decision shows its reasoning trace — which systems it pulled from, what patterns it detected, why it acted.

🏗️

Engineers, not resellers

We're not a consulting firm wrapping generic models in a UI. We build fine-tuned RevOps agents, domain-specialized models, and a multi-agent mesh architecture on LangGraph. The engineering is the product.

🔓

You own your AI

BYOM support. Private cloud or on-prem deployment. Full export anytime. We built the platform so you can leave — which is why you won't want to.

🤝

Complementary, not competitive

We don't replace your CRM or your BI tools. Customer City is the intelligence layer underneath — surfacing insights through Slack, Teams, Copilot, or your own apps. We make your existing stack smarter.

Leadership

The team building it

Jay Prasad
Founder & CTO
LinkedIn →

Product and engineering leader with 15+ years building data platforms, AI systems, and enterprise-scale applications. Architect of Customer City's AI Agent Mesh — the multi-agent system where specialized RevOps models share signals in real-time across your entire GTM stack.

🧠AI Agent Mesh architecture — designed the multi-agent system where domain-specialized models (Lead Router, Deal Intel, Forecaster) operate as an interconnected mesh, sharing cross-system signals
🎯RevOps-trained models — built specialized models trained on 100K+ RevOps decisions. Purpose-built AI that outperforms generic LLMs on scoring, routing, and forecasting tasks
🚀Scale experience — from logistics AI at DoorDash to cloud infrastructure at AWS to enterprise CRM at Adobe. Built systems handling millions of decisions per day
Experience
DoorDashAWSAdobe
Certifications
AWS Solutions ArchitectAWS ML EngineerSalesforce System Architect+ 15 more Salesforce certs
Chetan Bhatnagar
Co-Founder
LinkedIn →

Strategic technology executive with 20+ years leading enterprise-wide digital transformation. Deep expertise in ERP, CRM, and BI platforms — with a track record of guiding high-growth companies through IPO readiness and M&A integration. Brings the enterprise operational lens to Customer City's platform strategy.

🔄Enterprise transformation — 20+ years leading platform-wide transformations across ERP (SAP S/4HANA), CRM (Salesforce, Dynamics), and BI (Snowflake, Tableau)
📈IPO & M&A playbooks — led IPO readiness initiatives and M&A integration for high-growth companies scaling from $50M+ to public markets
🎯Practical AI adoption — focused on data readiness and measurable business outcomes, not hype. Knows what it takes to get enterprise AI from proof-of-concept to production
Experience
ServiceTitanSageIntel
Expertise
Salesforce Agentforce & Data CloudSAP S/4HANASnowflake & Tableau

See the AI Agent Mesh in action

30-minute architecture walkthrough. We'll connect to your systems, show you the cross-system blind spots, and let the agents speak for themselves.

Foundations

Color System

All colors are defined as CSS custom properties on :root. Use variable names, never raw hex values.

Backgrounds

--bg-void#0a0a0bPage background, deepest layer
--bg-canvas#111113Section alternates, dark sections
--bg-surface#18181bCards, elevated containers
--bg-elevated#27272aChips, badges, secondary containers

Text

--text-primary#fafafaHeadings, primary content
--text-secondary#a1a1aaBody text, descriptions
--text-muted#71717aLabels, placeholders, metadata

Accent & Semantic

--accent-primary#fbbf24Primary CTA, highlights, brand
--accent-secondary#22d3eeLinks, doc tags, SDK accents
--accent-success#4ade80Positive values, checkmarks, savings
--accent-warning#fb923cWarnings, required markers, gradient end

Borders

--border-subtle#27272aCard borders, dividers
--border-default#3f3f46Input borders, hover states
--border-accentrgba(251,191,36,0.3)Featured cards, accent borders

Foundations

Typography

Two font families: Plus Jakarta Sans for UI and JetBrains Mono for code, data, and technical labels.

Font Families

Plus Jakarta Sans --font-sans
The quick brown fox jumps
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
Regular 400Medium 500Semibold 600Bold 700ExtraBold 800
JetBrains Mono --font-mono
$2,400 → 47% → 0.002
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
Regular 400Medium 500Semibold 600Bold 700

Type Scale

Hero Title

Own Your RevOps AI.

clamp(2.5rem, 5vw, 4rem) / 800 / -0.03em / 1.1
Page Title

Transparent Pricing

clamp(2.5rem, 5vw, 3.5rem) / 800 / -0.03em / 1.1
Section Title

Section Heading

clamp(1.75rem, 3vw, 2.25rem) / 700 / -0.02em / 1.15
Card Title

Card Heading

1.15rem / 700
Body

Body text for paragraphs and descriptions. Line height 1.7 for readability.

1rem / 400 / 1.7 line-height
Eyebrow

Section Eyebrow

0.8rem / mono / uppercase / 0.15em tracking
Metric Value47%3rem / mono / 700 / accent-primary

Components

Buttons

Two main button variants. Primary for main actions, Secondary for alternative actions. Both support hover lift + glow effects.

Button Specs

  • Padding: 0.85rem 1.5rem
  • Font: 0.95rem / 600 / font-sans
  • Border-radius: 8px
  • Transition: all 0.2s
  • Primary hover: translateY(-2px), box-shadow 8px 24px
  • Secondary hover: border → accent, bg → amber 5%

Components

Cards

Card patterns used across the site. All cards share the same base: bg-surface, border-subtle, radius 16px.

Standard Card

🎯

Card Title

Standard card with icon, title, and description. Used for features and problem statements.

💸

Large Card with Chips

Larger card variant with chip tags for detailed information.

Example: $2/callBetter: $0.01
📊

Use Case Card

With feature list and metric footer. Hover lifts -4px with cyan border.

  • Feature item one
  • Feature item two
94%Accuracy
-67%Response time

Docs Card

🔌
API Reference
v2.4.0

Complete API documentation with examples and error handling.

🐍
Python SDK
pip install customer-city

Components

Chips, Badges & Tags

Small inline components for metadata, status indicators, and categorization.

Chips (hover for effect)

Default: Yellow/AmberPositive: Green

Badges

Paid Pilot CompleteLimited SpotsMost PopularHeadquarters

Tags

Revenue IntelligenceData EngineeringAgentic AI

Tech Badges

SalesforceHubSpotSnowflake

Doc Links

Chip Specs

  • Background: rgba(251,191,36, 0.08)
  • Border: var(--border-accent)
  • Font: 0.75rem / mono / 500
  • Hover: bg 20%, glow, translateY(-1px)
  • Positive variant: green color scheme

Badge Specs

  • success: bg accent-success, dark text
  • cyan: bg accent-secondary (partner)
  • amber: bg accent-primary (office/popular)
  • Radius: 100px (pill) or 6px (tag)

Components

Form Elements

Consistent form styling across all input types. Focus state uses amber border with subtle glow ring.

Form Specs

  • Background: var(--bg-canvas)
  • Border: 1px solid var(--border-default)
  • Border-radius: 10px
  • Padding: 0.9rem 1.15rem
  • Focus: border accent-primary, box-shadow 3px rgba(251,191,36,0.1)
  • Placeholder: var(--text-muted)

Components

Callouts & Quotes

Emphasized content blocks for important information, quotes, and highlighted copy.

Callout

Bold label: This is a callout block. Used for important context, examples, or disclaimers. Left border is 3px accent-primary.

Quote Block

"This is a testimonial quote. Italic, slightly larger font. Used in case studies and customer stories."

Name / Title, Company

CTA Box

Call to Action Heading

Supporting text for the CTA section. Gradient background with subtle border. Centered layout.

Layout

Layout & Spacing

Grid system, spacing conventions, and responsive breakpoints.

Container

  • Max-width: 1200px
  • Padding: 0 2rem
  • Margin: 0 auto

Sections

  • Default padding: 4-5rem 0
  • Section-dark: bg-canvas
  • Section-header mb: 2-3rem
  • Page-header pt: calc(72px + 5rem)

Breakpoints

  • Mobile: <500px (1 col)
  • Tablet: <800px (2 col)
  • Desktop: <900px (nav collapse)
  • Wide: >900px (full layout)

Border Radius

  • Buttons: 8px
  • Inputs: 10px
  • Cards: 16px
  • Feature cards: 20px
  • Pills/badges: 100px

Shadows & Glow

  • Shadow-glow: 0 0 60px rgba(251,191,36,0.15)
  • Button hover: 0 8px 24px rgba(251,191,36,0.25)
  • Card hover: 0 12px 40px rgba(0,0,0,0.3)
  • Nav CTA: 0 4px 12px rgba(251,191,36,0.3)

Transitions

  • Default: all 0.2s ease
  • Cards: all 0.3s ease
  • Hover lift: translateY(-2px to -4px)
  • Chip hover: translateY(-1px)

Visual

Background & Visual Effects

The site uses a fixed grid pattern overlay and gradient treatments for emphasis.

Grid Pattern

  • Type: Fixed position, CSS linear-gradient
  • Size: 60px × 60px grid
  • Color: rgba(251,191,36, 0.02)
  • Applied: body::before pseudo-element
  • Z-index: 0 (behind content)

Gradient Treatments

  • Brand gradient: 135deg, accent-primary → accent-warning
  • Feature card: 135deg, amber 5% → transparent
  • Partner CTA: 135deg, amber 5% → cyan 3%
  • CTA box: 135deg, amber 3% → transparent

Nav Bar

  • Background: rgba(10,10,11, 0.9)
  • Backdrop-filter: blur(20px)
  • Height: 72px
  • Position: fixed, z-index 1000
  • Border-bottom: 1px border-subtle

Components

Code Blocks

Syntax-highlighted code windows with macOS-style title bar. Colors match the overall dark theme.

example.py
1# Syntax color reference
2from customer_city import Client
3client = Client(api_key="cc_live_...")
4result = client.agents.create(type="router")

Syntax Highlighting Colors

Keywords#f472b6
Strings#22d3ee
Functions#c084fc
Variables#fbbf24
Types#4ade80
Comments#71717a

Brand

Brand Assets

Logo usage, favicon, and brand identity elements.

Logo (Light / Dark BG)
Customer City Logo Light
Logo (Dark / Light BG)
Customer City Logo Dark
Favicon
Favicon