Agent Templates
Support triage agent

Support ticket triage AI that classifies Zendesk tickets and routes them

Fetches new Zendesk tickets, classifies them by type and urgency, searches the Notion knowledge base for an answer, and routes what it cannot resolve to Slack. Every call runs on the support agent's own delegated OAuth.

Support triage agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Triage today's new Zendesk tickets
J
Fetching new Zendesk tickets
Fetch new tickets
zendesk_search_tickets
Classify LLM + fallback
classifier.classify
Search Notion KB
notion_database_query
Triage run: 8 tickets
Routed to #support-bugs
"P1 bug: Auth error on SSO login — 500 on /callback"
Slack posted, Zendesk tagged + internal note added
Result
8 tickets: 3 bugs, 2 billing, 2 how-to (KB matched), 1 P0 escalated
Every ticket tagged, prioritized, and noted in Zendesk
Message Claude...
Trusted by teams shipping agents to production
Support triage agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Triage today's new Zendesk tickets
J
Fetching new Zendesk tickets
Fetch new tickets
zendesk_search_tickets
Classify LLM + fallback
classifier.classify
Search Notion KB
notion_database_query
Triage run: 8 tickets
Routed to #support-bugs
"P1 bug: Auth error on SSO login — 500 on /callback"
Slack posted, Zendesk tagged + internal note added
Result
8 tickets: 3 bugs, 2 billing, 2 how-to (KB matched), 1 P0 escalated
Every ticket tagged, prioritized, and noted in Zendesk
Message Claude...

How the agent fetches Zendesk tickets, classifies them, searches Notion KB, and routes to Slack 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. Zendesk, Slack, and Notion tokens all refresh automatically.

01
Authorize, then orchestrate
connectors.py
Each connector wrapper checks its connected account at startup via get_or_create_connected_account. If Zendesk, Slack, or Notion is not ACTIVE, the agent surfaces a re-authorization link instead of failing silently. Scalekit refreshes tokens across all three connectors.
connectors.py
class Connector:
    def __init__(self, actions, connector_name, identifier):
        self.actions = actions
        self.connector_name = connector_name
        self.identifier = identifier

    def check_auth(self) -> bool:
        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}")
            return False
        return True
02
Fetch new Zendesk tickets
connectors.py
03
Classify via LLM or rule-based fallback
classifier.py
04
Search the Notion knowledge base
connectors.py
05
Route to Slack and update Zendesk
triage_engine.py

Agents that triage Zendesk tickets, without the auth plumbing

Three things you'd otherwise build: Zendesk OAuth for ticket access, Notion token storage for KB search, Slack identity for routing. All must be live when the ticket lands. 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 (Zendesk, Slack, Notion) and use the Scalekit MCP server to validate tool calls instead of hand-written API logic.

Poll Zendesk for new and open tickets. Classify each by category and severity with an LLM (fall back to keyword rules if the API is unavailable). Search the Notion knowledge base for matching articles when the category calls for it. Post a formatted triage message to the category's Slack channel, then update the Zendesk ticket with tags, priority, and an internal note. Track processed tickets in a file-backed state store so restarts never re-triage.

Read-only steps (Zendesk fetch, Notion search) run without asking; ask before using write tools (Slack post, Zendesk update). Exit 0 on success, 1 on error, 2 if no new tickets.
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.

SUPPORT
Support triage agent
Classify new Zendesk tickets, search the Notion knowledge base for an answer, and route what it cannot resolve to Slack.
SUPPORT
Support ticket automation (Google ADK)
Fetch, annotate, and archive Zendesk tickets with Notion context, digesting anything it cannot answer to Slack.
SUPPORT
Freshdesk CSAT follow-up agent
Spot resolved Freshdesk tickets, email the CSAT survey from Gmail, and write the score back onto the ticket.
OPS
Email-to-calendar scheduling agent
Read scheduling intent out of Gmail threads, resolve mutual free time, and create the Google Calendar event.
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
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.

Build your own
multi-connector agent

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