PPact
Voice MCP

Voice MCP

Call your Pact CRM on a phone number and get spoken answers — a signature-validated Twilio webhook routes each utterance through a turn-based voice agent into curated CRM intents.

Voice MCP lets a caller phone your workspace and talk to your CRM out loud. Ask about a deal, log a note, book a meeting, or get a pipeline read — and hear the answer back in a synthesized voice.

How a call works

A caller dials the tenant's provisioned Twilio number. Twilio posts to Pact's /v1/voice-mcp/incoming webhook, and Pact validates the Twilio request signature before processing anything. From there, the call runs over one of two transports:

  • Turn-based (default) — Pact answers with Twilio's turn-based speech gathering (<Gather input="speech">): it plays a prompt, listens for the caller's next utterance using Twilio's native speech-to-text, and routes that utterance through an in-process voice agent. Each turn repeats the cycle. Everything below is written from this transport's point of view unless noted otherwise.
  • Streaming (ConversationRelay, flag-gated) — where enabled for a tenant, the call instead runs over a persistent streaming websocket rather than the turn-by-turn cycle. This transport has different latency and interruption (barge-in) characteristics, and — as of today — a different recording/consent posture; see Recording consent.
code
Caller dials number
  → Twilio posts to /v1/voice-mcp/incoming  (signature validated)
  → Pact answers, gathers speech for one turn (or opens the streaming socket)
  → Voice agent routes the utterance to a CRM intent
  → Pact speaks the reply, gathers the next turn

What the agent understands

The phone agent recognizes a curated set of about a dozen CRM intents plus introspection — not Pact's full MCP tool catalog. Covered intents include:

  • Querying deals, accounts, and contacts
  • Pipeline health
  • Logging a note on the call or on a specific record
  • Sending a follow-up SMS or email
  • Booking a meeting
  • Transferring the call

When an utterance doesn't match a specific intent, the agent falls back to ask_workspace, a catch-all that answers open questions against your workspace. It also answers meta questions about itself — what it can do, recent history, who handles what, and knowledge-base lookups.

Explore Voice MCP