Use Case · sales-assistant

How to build a sales AI assistant.

Every SDR repeats the same five minutes per lead: open the CRM, read the activity history, skim the company site, draft a personalized opener, pull up calendar slots. That sequence is a tool-using agent loop in disguise. The hard part is wiring the CRM, the inbox, the calendar, and the enrichment fetcher into one loop the model can actually run.

Sales tooling is a swamp of bespoke SDKs.

Salesforce’s API model is not HubSpot’s. Gmail’s draft schema is not Outlook’s. Calendar invites have their own RFC. Lead enrichment is six vendors with six pricing models. The minute you try to assemble all this into a single agent loop, you’ve hired a contractor for a quarter.

The teams that ship working SDR copilots short-circuit this: they pick a tool gateway that already speaks every shape, expose those tools through MCP, and spend their actual time on prompt design, deliverability, and the handoff UX. That’s where most of the lift is anyway.

wmcp.sh is that gateway. CRM OpenAPI specs, Google Workspace, public web enrichment — one /api/v1/tools call returns MCP-shaped methods your Claude or GPT loop can invoke. wmcp.sh is not affiliated with Salesforce, HubSpot, or Google.

Qualify → draft → schedule.

1. Lead trigger. A new lead lands in your CRM. A webhook drops the lead ID into a queue. Each lead gets its own bounded agent run with a fixed turn budget.

2. Tool gateway (wmcp.sh). The agent materializes tools for your CRM (Salesforce or HubSpot via /integration/openapi), Gmail and Calendar via /integration/google, and a generic webpage fetcher for company-site enrichment.

3. Reasoning loop. The model fetches CRM activity, scrapes the lead’s company page, drafts a personalized email into the rep’s Gmail drafts folder, and proposes two calendar slots from the rep’s freebusy window.

4. Human approval. The rep opens drafts, edits if needed, clicks send, and accepts a proposed slot. The agent never sends or commits to a meeting on its own.

What wmcp.sh provides.

CapabilityVendorHow wmcp.sh wires it
Read & update CRM recordsSalesforce / HubSpot✅ Vendor OpenAPI spec via /integration/openapi
Create email draftsGmail/integration/googledrafts.create scoped only
Propose calendar slotsGoogle Calendar/integration/googlefreebusy.query + events.insert
Enrich a company URLAny public URL✅ Generic /api/v1/tools?url=... extraction
Log the loop to CRMCRM activity API✅ Same OpenAPI adapter, scoped to activity.create
Approval / audit UIYour dashboard✅ Included on /managed

From new lead to draft + slot.

Minimal Python sketch using the Anthropic Messages API. The agent receives a lead ID and the rep’s email, and ends by leaving a draft in Gmail plus two proposed calendar slots.

import os, httpx
from anthropic import Anthropic

client = Anthropic()
WMCP = "https://wmcp.sh"

def tools_for(url):
    return httpx.get(f"{WMCP}/api/v1/tools", params={"url": url}).json()["tools"]

tools = (
    tools_for("https://acme.my.salesforce.com/services/data/v60.0")
    + tools_for("https://gmail.googleapis.com")
    + tools_for("https://www.googleapis.com/calendar/v3")
    + tools_for("about:fetch")
)

lead_id, rep = os.environ["LEAD_ID"], os.environ["REP_EMAIL"]

msg = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=2048,
    tools=tools,
    messages=[{"role": "user",
        "content": f"Lead {lead_id}. Read CRM activity, scrape the company site, draft a "
                   f"personalized opener into {rep}'s Gmail drafts, and propose two 30-min slots "
                   "from their next-week freebusy. Never send. Never auto-confirm."}],
)

print(msg.content)

Glue code vs MCP gateway.

Per-vendor SDK build:

  • Salesforce, HubSpot, Gmail, Calendar — four SDKs minimum
  • OAuth refresh handling rolled by hand for each
  • Tool schemas drift when vendors update APIs
  • Switching CRMs means rewriting the agent

wmcp.sh tool gateway:

  • OpenAPI spec → MCP tools, one call
  • Scope draft/send and read/write separately
  • Edge-cached tool listings, sub-50ms
  • Swap CRMs by swapping the spec URL

Common questions.

What does an AI sales assistant actually do?
Reads CRM history, enriches from the company site, drafts an opener, proposes calendar slots — all before the human SDR opens the record.
Which CRM systems are supported?
Anything with OpenAPI: Salesforce, HubSpot, Pipedrive, Close, Attio.
How does it draft without sending?
Scope the Gmail tool to drafts.create only. The rep clicks send.
Can it really book meetings?
Yes — propose via freebusy, insert on human confirmation. Most teams gate this behind a single click.
How is this different from CRM-native AI?
Built-in AI lives in one product. A custom MCP agent reads across CRM, inbox, calendar, and the open web in one loop and is portable across CRMs.
Need this built for you?

Hosted SDR copilot, CRM-wired in days.

Custom CRM + email + calendar adapter + hosted MCP at mcp.yourbrand.com + verified badge. Starter $499 one-time · Managed Retainer $999/mo · Enterprise $4,999+/mo.

See /managed → Submit (free)