Agent Templates
Competitive intelligence briefing agent

Competitive intelligence agent that briefs reps from Gong calls

Scans Gong calls for competitor mentions, matches each one to its Notion battlecard, and DMs every affected rep a single Slack digest per cycle. Every call runs as the PMM who owns the briefing, never a shared bot.

Competitive intelligence briefing agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Which reps need a heads-up on recent Salesforce mentions?
P
Scanning Gong calls from the last 7 days
Competitor mentions found
gong_calls_get
Battlecard matched
notionmcp_notion-fetch
Digest DM sent
slackmcp_slack_send_message
Competitive briefing - Salesforce
3 calls flagged (last 7 days)
Salesforce mentioned by 2 reps, battlecard linked
One digest DM per rep, grouped by competitor
Delivered
Jane's digest: call clips, mention at 0:41, battlecard link
Already-briefed mentions skipped, no rep DMed twice
Message Claude...
Trusted by teams shipping agents to production
Competitive intelligence briefing agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Which reps need a heads-up on recent Salesforce mentions?
P
Scanning Gong calls from the last 7 days
Competitor mentions found
gong_calls_get
Battlecard matched
notionmcp_notion-fetch
Digest DM sent
slackmcp_slack_send_message
Competitive briefing - Salesforce
3 calls flagged (last 7 days)
Salesforce mentioned by 2 reps, battlecard linked
One digest DM per rep, grouped by competitor
Delivered
Jane's digest: call clips, mention at 0:41, battlecard link
Already-briefed mentions skipped, no rep DMed twice
Message Claude...

How agent builders go from zero to a rep briefing loop in six steps

A real working agent you can deploy

This repo keys every connected account on per-connector GONG_USER, NOTION_USER, and SLACK_USER identities, defaulting to one PMM's email. 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 Gong, Notion, and Slack as the PMM
connectors.py
Every connector is checked at startup with get_or_create_connected_account. Anything not ACTIVE prints the PMM's authorization link and the run continues, so an unauthorized Gong is reported clearly instead of crashing the cycle. No shared marketing bot account anywhere in the flow.
connectors.py
def check_auth(self) -> bool:
    resp = self.actions.get_or_create_connected_account(
        connection_name=self.connector_name,
        identifier=self.identifier,
    )
    status = resp.connected_account.status

    if status != "ACTIVE":
        logger.warning(f"{self.connector_name} ({self.identifier}) -- {status}")
        link = self.actions.get_authorization_link(
            connection_name=self.connector_name,
            identifier=self.identifier,
        ).link
        logger.warning(f"Authorize here: {link}")
        return False

    logger.info(f"[OK] {self.connector_name} ({self.identifier}) -- ACTIVE")
    return True
02
Fetch every call in the lookback window from Gong
run_flow.py
03
Detect competitor mentions, trackers first
aggregator.py
04
Resolve reps and group mentions into one digest each
aggregator.py
05
Look up each competitor's battlecard in Notion
connectors.py
06
DM each rep once, and never twice
run_flow.py

Agents that brief real reps, without the auth plumbing

Four things you'd otherwise build: Gong key storage, Notion OAuth, Slack tokens, 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/competitive-intelligence-briefing-agent and adapt it for my competitive intel stack.

I am building for: my product marketing team (or: a sales enablement product)   <- edit this line
Connectors my users need: Gong, Notion MCP, Slack MCP   <- edit this line
Trigger: cron each weekday morning, or POLLING_MODE=true for continuous runs. Deliver: one Slack digest DM per affected rep, per cycle.

Steps:
1. Create Scalekit AgentKit connections for gong, notionmcp, and slackmcp. Gong uses Basic Auth with an access key/secret from Gong admin settings; copy each exact connection name into GONG_CONNECTOR, NOTION_CONNECTOR, SLACK_CONNECTOR.
2. Set GONG_USER, NOTION_USER, and SLACK_USER to the PMM's real identity (not a shared marketing bot); they can differ per service if a different account authorizes each connector.
3. Set COMPETITOR_NAMES, LOOKBACK_DAYS, and NOTION_BATTLECARDS_PARENT_PAGE_ID to my battlecards parent page. Configure a Gong tracker per competitor; the transcript text-scan is only a fallback.
4. If I swap a connector, mirror connectors.py: execute_tool(tool_name, identifier, connection_name, tool_input), then unwrap the MCP envelope for MCP-variant connectors.
5. Keep the idempotency ledger: state.py keys every sent mention by (rep, call, competitor) so overlapping runs never re-DM a rep.
6. Run python run_flow.py once with a test competitor, then describe how to schedule it for the whole team.
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
Read tomorrow's calls from Google Calendar, mine Granola notes and Attio history, and deliver each rep a prep brief in Slack.
GTM
CRM AI agent
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.
SALES
Deal intelligence agent
Score Gong call risk with an LLM, cross-reference the Attio record, and DM each owner their at-risk deals in Slack.
SALES
Outbound prospecting agent
Search Apollo for ICP matches, rank them, draft personalised Gmail outreach, and log every send to Google Sheets.
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
Pull commits from GitHub and GitLab, track Jira issue movement, and post a per-engineer standup brief to Slack.

Build your own
multi-connector agent

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