Agent Templates
Deal room sync

Deal room sync agents that act on-behalf-of your AEs

Pulls opportunity context from Salesforce, captures key decisions from Slack, and syncs a running summary to the deal room doc in Google Drive -- only when the deal actually changed.

Deal room sync
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Sync the Lightrun deal room
J
Pulling opportunity context
Stage, amount, next step
salesforce_soql_execute
Deal discussion
slackmcp_slack_search_public_and_private
Deal room comment
googledrive_create_comment
Deal sync - Lightrun - Team Expansion (40 seats)
Negotiation/Review - closes 2026-08-15
Next step: security review call with IT
5 Slack excerpts captured from deal channels
Synced
Timestamped comment posted to the deal room doc
Unchanged deals never re-post the same summary
Message Claude...
Trusted by teams shipping agents to production
Deal room sync
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Sync the Lightrun deal room
J
Pulling opportunity context
Stage, amount, next step
salesforce_soql_execute
Deal discussion
slackmcp_slack_search_public_and_private
Deal room comment
googledrive_create_comment
Deal sync - Lightrun - Team Expansion (40 seats)
Negotiation/Review - closes 2026-08-15
Next step: security review call with IT
5 Slack excerpts captured from deal channels
Synced
Timestamped comment posted to the deal room doc
Unchanged deals never re-post the same summary
Message Claude...

How agent builders go from zero to user-authorized in five steps

A real working agent you can deploy

This repo uses an AE_EMAIL env var (with per-connector *_USER identities) to simulate one Account Executive. In production, pass each AE's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.

01
Authorize Salesforce, Slack, and Google Drive
run_flow.py
Verify each AE's three connections are ACTIVE before syncing. Locally the identity comes from .env; in production, pass your AE's real user ID as identifier and surface auth links from your app.
run_flow.py
logger.info("Step 0: Checking connector auth")
for connector_name, identifier in cfg.get_connector_users().items():
    conn = Connector(actions, connector_name, identifier)
    conn.check_auth()

# connectors.py -- check_auth()
resp = self.actions.get_or_create_connected_account(
    connection_name=self.connector_name,
    identifier=self.identifier,
)
if resp.connected_account.status != "ACTIVE":
    link = self.actions.get_authorization_link(
        connection_name=self.connector_name,
        identifier=self.identifier,
    ).link
    logger.warning(f"Authorize here: {link}")
02
Fetch opportunity context via SOQL
connectors.py
03
Capture key decisions from Slack
connectors.py
04
Skip unchanged deals with a content fingerprint
state.py
05
Sync a comment to the deal room doc
connectors.py

Agents that do real work, without the auth plumbing

Three things you'd otherwise build: OAuth, token storage, refresh. Handled.

1
Install
claude plugin marketplace add scalekit-inc/claude-code-authstack && claude plugin install agent-auth@scalekit-auth-stack
terminal
curl -fsSL https://raw.githubusercontent.com/scalekit-inc/codex-authstack/main/install.sh | bash
terminal
copilot plugin marketplace add scalekit-inc/github-copilot-authstack
copilot plugin install agent-auth@scalekit-auth-stack
terminal
curl -fsSL https://raw.githubusercontent.com/scalekit-inc/cursor-authstack/main/install.sh | bash
terminal
npx skills add scalekit-inc/skills --skill integrating-agent-auth
2
Clone github.com/scalekit-developers/workflow-agents-demos/tree/main/deal-room-sync-agent and adapt it for my sales stack.

I am building for: my sales org (or: a revenue product)   ← edit this line
Connectors my users need: Salesforce, Slack MCP, Google Drive   ← edit this line
Trigger: daily cron or POLLING_MODE=true. Deliver: a running summary comment on each opportunity's Google Drive deal room doc.

Steps:
1. Create Scalekit AgentKit connections for salesforce, slackmcp, googledrive -- copy the exact (auto-suffixed) connection names from the dashboard into .env.
2. Map identifier to each AE's real user ID (not a shared sales bot). Per-connector *_USER overrides exist if identities differ per service.
3. If I swap a connector, mirror an existing class in connectors.py: execute_tool(tool_name, identifier, connection_name, tool_input) → read result.data (MCP envelopes unwrap automatically).
4. Keep the fingerprint gate in state.py: only write a new Drive comment when stage, amount, close date, next step, or the Slack excerpts actually changed.
5. Target the opportunity with OPPORTUNITY_ID (exact) or OPPORTUNITY_NAME (substring match), and the doc with DEAL_ROOM_DOC_ID or find-or-create via DEAL_ROOM_DOC_NAME.
6. Run python run_flow.py for one opportunity, then describe how to deploy for many AEs.
Why choose Scalekit

Delegated identity. Not service accounts.

Credentials never touch agent code or LLM context. The agent acts as the user, not as a shared bot.
Delegated OAuth - Agent reads your calendar, your inbox — scoped to the authorizing identity, not org-wide.
Credentials outside agent runtime  -  Tokens never touch agent code or LLM context. Both failure modes covered.
Token lifecycle automatic  -  Refresh, expiry, rotation across all connectors. One SDK call. Zero management code.
200+ prebuilt connectors  -  Google, Slack, HubSpot, GitHub, Jira, Notion, Salesforce — same auth pattern everywhere.
Try other Agent Templates

Prebuilt agents you can ship today

Each one runs on delegated identity, scoped per user.

SALES
Sales call prep agent
Pull Granola notes and Attio contact history to draft a pre-call brief before every sales meeting. Zero rep input.
SALES
Deal intelligence agent
Combine Gong, Attio, and Slack signals to surface deal risks and next-best actions. Updated after every call.
SALES
Outbound prospecting agent
Build targeted prospect lists with Apollo, enrich with firmographic data, and draft personalised outreach. Runs on a schedule.
GTM
Salesforce customer insights agent
Surface Salesforce account activity, NPS signals, and renewal flags into Slack threads for the account team.
GTM
HubSpot to Slack updates agent
Watch HubSpot deal stage changes and post structured updates to the right Slack channel. Reps stop checking the CRM all day.
GTM
CRM AI agent
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.

Build your own
multi-connector agent

Add connectors. Change the LLM. Same delegated auth pattern.