Agent Templates
Sales Call Prep Agent

Sales call prep agents that act on-behalf-of your users

Connect four real services, delegate OAuth to your users, and ship a working agent in minutes. Clone the sample, swap in your tools, and go from zero to multi-connector in a single afternoon.

Sales Call Prep Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Prep me for my 2pm call with Datadog
J
Checking Google Calendar for upcoming meetings
Fetch upcoming meetings
googlecalendar_list_events
Pull prior Granola notes
granolamcp_query_granola_meetings
Look up Attio deal
attio_search_records
Brief: Alex Chen at Datadog
Attio deal
"$45k Enterprise — Stage: Proposal"
2 prior calls in Granola, brief DM'd to Slack
Result
1 external meeting in next 30 minutes
Brief DM'd 15 minutes before call start
Message Claude...
Trusted by teams shipping agents to production
Sales Call Prep Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Prep me for my 2pm call with Datadog
J
Checking Google Calendar for upcoming meetings
Fetch upcoming meetings
googlecalendar_list_events
Pull prior Granola notes
granolamcp_query_granola_meetings
Look up Attio deal
attio_search_records
Brief: Alex Chen at Datadog
Attio deal
"$45k Enterprise — Stage: Proposal"
2 prior calls in Granola, brief DM'd to Slack
Result
1 external meeting in next 30 minutes
Brief DM'd 15 minutes before call start
Message Claude...

How the agent assembles per-rep context and delivers a brief in five steps

A real working agent you can deploy

This repo uses a single AE_EMAIL env var to identify the authenticated rep. In production, pass each rep's real identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.

01
Authorize, then orchestrate
run_flow.py
Every connection is authorized once via a one-time link. Scalekit refreshes tokens for you across all four connectors. ensure_authorized() calls get_or_create_connected_account for each service at startup; if any connector is not ACTIVE it prints a magic link and exits. Set POLLING_MODE=true to run continuously every POLL_INTERVAL_MINUTES.
run_flow.py
connect = ScalekitClient(
    env_url=SCALEKIT_ENV_URL,
    client_id=SCALEKIT_CLIENT_ID,
    client_secret=SCALEKIT_CLIENT_SECRET,
)

def ensure_authorized(connector):
    account = connect.actions.get_or_create_connected_account(
        connection_name=connector,
        identifier=CONNECTOR_USERS[connector],
    )
    if account.status != "ACTIVE":
        link = connect.actions.get_authorization_link(
            connection_name=connector,
            identifier=CONNECTOR_USERS[connector],
        )
        print(f"Authorize {connector}:\n{link}")
        sys.exit(1)

for connector in ["googlecalendar", "granolamcp", "attio", "slack"]:
    ensure_authorized(connector)
02
Poll calendar for upcoming meetings
run_flow.py
03
Fetch prior Granola notes
run_flow.py
04
Look up Attio deal context
run_flow.py
05
Synthesize brief and DM the rep
run_flow.py

Agents that prep every call, without the auth plumbing

Four things you'd otherwise build: Calendar OAuth, Granola MCP tokens, Attio credentials, Slack auth. Handled.

1
Install
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
2
You have the Scalekit authstack plugin installed (AgentKit + SaaSKit skills and MCP auth). Before coding, auto-load the AgentKit skills relevant to connectors (Google Calendar, Granola MCP, Attio, Slack) and use the Scalekit MCP server to validate tool calls instead of hand-written API logic.

Poll Google Calendar for upcoming external meetings. For each, query Granola for prior call notes with the attendees and look up the matching Attio deal via the appropriate AgentKit connector tools. Synthesize a five-section prep brief and DM it to the rep in Slack fifteen minutes before the call. Ask before using write tools (sending the Slack DM); read-only steps (calendar, Granola, Attio) run without asking.
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.

GTM
CRM AI agent
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.
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
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.
ENGINEERING
Engineering standup agent
Aggregate GitHub and GitLab activity, link to Jira, and post a daily standup digest to Slack. No async updates.
OPS
Email-to-calendar scheduling agent
Parse scheduling intent from Gmail threads and create Google Calendar events with the right attendees and timezone.

Build your own
multi-connector agent

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