Revenue and sales operations teams
CRM revenue workspace with Salesforce, HubSpot, Gmail, and Slack
Unify pipeline visibility across Salesforce and HubSpot, draft follow-ups in Gmail, and alert revenue teams in Slack without forcing a single CRM.
Outcome: A cross-CRM deal brief with stage changes, stalled opportunities, and draft follow-up actions
Integrations in this workflow
The problem
Revenue teams often run deals in both Salesforce and HubSpot while follow-ups live in Gmail and escalations happen in Slack. Copy-pasting pipeline context between systems slows reviews and hides stalled deals.
Example prompt
Using the business gateway, build today's revenue brief. List Salesforce opportunities that moved stage in the last 7 days, search HubSpot deals closing this month, and flag any account names that appear in both systems with conflicting stages. Draft a Gmail follow-up for the top stalled deal and post a summary to #revenue in Slack — do not send email or Slack messages until I approve.
Gateway tool bundle
Use namespaced tools on the business gateway (company workspace) or private gateway (personal workspace):
Salesforce (read-first)
salesforce__query_records— opportunities, accounts, and contacts via SOQLsalesforce__search_records— SOSL search across CRM objectssalesforce__get_record— single record details by Id
HubSpot (read-first)
hubspot__search_deals→hubspot__get_dealfor pipeline stageshubspot__search_contacts→hubspot__get_contactfor owners and stakeholdershubspot__search_companies→hubspot__get_companyfor account contexthubspot__list_associations— link deals to contacts and companies
Gmail
gmail__list_messages→gmail__get_messagefor recent threads on an accountgmail__send_message— compose follow-ups only after explicit approval
Slack
slack__list_channels→slack__send_channel_messagefor revenue alerts
Start with list-services-tool or describe-service-tool to confirm which CRMs are connected.
Token scope recommendations
Business gateway (recommended for revenue teams)
- Scope API tokens to
mcp:business-gatewayso agents discover only integrations your company allowlist permits. - Add per-integration scopes when you need tighter control, for example
mcp:salesforce,mcp:hubspot,mcp:gmail, andmcp:slackwithout granting*full access. - Bind tokens to a company environment (production vs staging) when deals must not leak across sandboxes.
Private gateway (individual sellers)
- Use
mcp:private-gatewayfor a personal CRM + comms stack. - Omit write-capable integrations from the token unless the agent must draft or send on your behalf.
Least-privilege example
{
"abilities": [
"mcp:business-gateway"
]
}
For read-only pipeline reviews, instruct agents to call only search-*, query_records, get-*, and list-* tools. Keep create-*, update-*, send_message, and send_channel_message out of automated playbooks until a human approves each action.
Company integrations checklist
- Enable CRMs in company settings — add Salesforce and HubSpot to the company integration allowlist before members connect.
- Connect both CRMs — teams running dual CRM should connect Salesforce and HubSpot in the company workspace, not only personal accounts.
- Approve Gmail and Slack — ensure OAuth scopes cover the mailboxes and channels revenue ops needs.
- Issue a business-gateway token — scope to
mcp:business-gatewayor explicitmcp:{type}abilities; avoid empty selection that defaults to full access. - Verify with a read-only prompt — run the example prompt above and confirm audit logs attribute calls to the correct company environment.
Governance
- Dual-CRM guardrails: treat Salesforce and HubSpot as complementary read sources. Do not auto-sync or overwrite records across systems without a human-defined mapping.
- Write tools off by default:
salesforce__create_record,salesforce__update_record, HubSpotcreate-*/update-*tools,gmail__send_message, andslack__send_channel_messageshould run only after explicit approval in the agent prompt. - Slack channel access: restrict OAuth to approved revenue channels during connect — agents should not post to private channels you did not allowlist.
- CRM data sensitivity: pipeline and contact data may include PII; paste redacted summaries into public Slack threads and review Audit logs before sharing externally.
Connect via private gateway
Activate the integrations above, create an API token scoped to mcp:private-gateway, then add this config to your MCP client.
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"stackgate-private-gateway": {
"url": "https://stackgate.ai/mcp/private",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}