Agent Templates
Deal Intelligence Agent

Deal intelligence agents that score risk on-behalf-of your users

Connect three 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.

Deal Intelligence Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Morning risk briefing for open pipeline
J
Fetching yesterday's Gong calls
Fetch Gong call transcripts
gong_list_calls
Cross-reference Attio deals
attio_search_deal
Post risk brief to Slack
slack_send_message
Deal risk brief: June 15
Highest risk deal
"Globex Corp, $120k, Risk: 0.82"
Competitor mentioned 3×, champion went silent
Result
5 calls analyzed, 2 deals flagged HIGH risk
Brief posted to #deal-desk
Message Claude...
Trusted by teams shipping agents to production
Deal Intelligence Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Morning risk briefing for open pipeline
J
Fetching yesterday's Gong calls
Fetch Gong call transcripts
gong_list_calls
Cross-reference Attio deals
attio_search_deal
Post risk brief to Slack
slack_send_message
Deal risk brief: June 15
Highest risk deal
"Globex Corp, $120k, Risk: 0.82"
Competitor mentioned 3×, champion went silent
Result
5 calls analyzed, 2 deals flagged HIGH risk
Brief posted to #deal-desk
Message Claude...

How the agent analyzes calls and scores deal risk in five steps

A real working agent you can deploy

This repo uses a single SCALEKIT_USER_ID env var to simulate one user. In production, pass each user'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, then orchestrate
main.py
Every connection is authorized once via a one-time link. Scalekit refreshes tokens automatically before each daily cron run. main.py verifies all three connectors are ACTIVE at startup: a connector that has lost authorization surfaces a new link rather than letting the brief fail silently.
main.py
tools = client.actions.langchain.get_tools(
    identifier="user@example.com",
    connection_names=["gong", "attio", "slack"],
)
02
Fetch yesterday's Gong call transcripts
fetch_gong.py
03
Analyze transcripts for risk signals
analyze_calls.py
04
Cross-reference Attio deal context
match_attio.py
05
Post ranked brief to Slack
post_slack.py
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.

Agents that monitor deal health, without the auth plumbing

Three things you'd otherwise build: Gong OAuth, Attio token storage, Slack credentials. All must refresh before the daily cron fires. Handled.

OAuth flow per connector
One SDK call returns a delegated token for any connector. Google, HubSpot, Slack, same pattern across all 200+ connectors
tools = client.actions.langchain.get_tools(
    identifier=user_id,
    connection_names=["gong", "attio", "slack"],
)
agent = create_tool_calling_agent(llm, tools, prompt)
Secure token vault  
Scalekit stores OAuth credentials outside agent code and outside LLM context. Both are separate failure modes. Both covered
client = ScalekitClient(
    env_url=os.environ["SCALEKIT_ENV_URL"],
    client_id=os.environ["SCALEKIT_CLIENT_ID"],
    client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],
)
# Credentials never in agent code or LLM context
Token refresh logic
Token lifecycle handled automatically — expiry, rotation, re-auth — across every connector. Agent runs in 6 months. Same call works
# Day 1 or day 180 — same call works
tools = client.actions.langchain.get_tools(
    identifier=user_id,
    connection_names=["gong", "attio", "slack"],
)
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.
GTM
CRM AI agent
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.
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.
SUPPORT
Freshdesk CSAT follow-up agent
Google ADK agent that watches low CSAT scores in Freshdesk and drafts personalised follow-ups for support leads.
ENGINEERING
Engineering standup agent
Aggregate GitHub and GitLab activity, link to Jira, and post a daily standup digest to Slack. No async updates.
Customize the sample

Clone it and own it with connectors you choose

Don't sweat the integration. Point a coding agent at the repo. It clones, swaps in your connectors, and adds new steps for you.

1
Install a coding agent
terminal

claude "Set up a deal intelligence agent using Gong, Attio, and Slack via Scalekit"

terminal

codex "Set up a deal intelligence agent using Gong, Attio, and Slack via Scalekit"

terminal

gh copilot suggest "Set up a deal intelligence agent using Gong, Attio, and Slack via Scalekit"

terminal

Open Cursor Composer (Cmd+Shift+I) Paste the prompt from the Prompt tab

terminal

npx skills add scalekit-inc/skills --skill setup-scalekit

2
Give it this prompt

Clone github.com/scalekit-inc/python-connect-demos/langchain. Set connection_names = ["gong", "attio", "slack"]. Build a daily cron agent: fetch Gong call transcripts from the past 24 hours, score each for risk signals (objections, competitor mentions, champion silence), match to Attio deals by attendee email, post a ranked risk brief to Slack. Scalekit refreshes tokens before each cron run. Set SCALEKIT_ENV_URL, SCALEKIT_CLIENT_ID, SCALEKIT_CLIENT_SECRET in .env.

Build your own
multi-connector agent

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