Agent Templates
Slack triage

Slack triage agents that act on-behalf-of your engineers

Polls Slack for new messages, classifies bugs and support requests with a LangGraph router, files GitHub issues or Zendesk tickets, and confirms in the thread.

Slack triage
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
bug: Login button not working on mobile
J
Classifying the report
New channel messages
slack_fetch_conversation_history
Issue filed
github_issue_create
Thread confirmation
slack_send_message
GitHub Issue #42 - Login button not working
Routed: bug keyword -> GitHub
Filed in demo-user/demo-repo as the reporting user
Confirmation with the issue link posted in-thread
Guardrails
Bot replies, edits, and thread noise filtered out
Rate limits retried with exponential backoff
Message Claude...
Trusted by teams shipping agents to production
Slack triage
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
bug: Login button not working on mobile
J
Classifying the report
New channel messages
slack_fetch_conversation_history
Issue filed
github_issue_create
Thread confirmation
slack_send_message
GitHub Issue #42 - Login button not working
Routed: bug keyword -> GitHub
Filed in demo-user/demo-repo as the reporting user
Confirmation with the issue link posted in-thread
Guardrails
Bot replies, edits, and thread noise filtered out
Rate limits retried with exponential backoff
Message Claude...

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

A real working agent you can deploy

This repo maps Slack user IDs to Scalekit identifiers in user_mapping.json, so every issue and ticket is created as the person who reported it. In production, feed that mapping from your own user system, and send a magic link whenever someone's connector status is not ACTIVE.

01
Authorize Slack, GitHub, and Zendesk
sk_connectors.py
Connection status is checked per user via list_connected_accounts; anyone not yet authorized gets a Scalekit magic link to complete OAuth themselves. Tokens live in the vault, never in code.
sk_connectors.py
response = self.client.actions.list_connected_accounts(
    identifier=user_identifier,
)
for connection in response.connected_accounts:
    if connection.provider.upper() == service.upper():
        if connection.status.upper() == "ACTIVE":
            return connection

# Not authorized yet? Send the user a magic link
link = self.client.actions.connected_accounts \
    .get_magic_link_for_connected_account(
        connector=connector_name,
        identifier=user_identifier,
    ).link
02
Map Slack users to Scalekit identifiers
sk_connectors.py
03
Poll Slack for new messages
main_polling.py
04
Filter noise and classify with a LangGraph router
routing.py
05
Create the GitHub issue or Zendesk ticket
actions.py
06
Confirm in the Slack thread
actions.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/slack-triage-agent and adapt it for my engineering stack.

I am building for: my engineering org (or: a dev-tools product)   ← edit this line
Connectors my users need: Slack, GitHub, Zendesk (optional)   ← edit this line
Trigger: continuous polling (30s default). Deliver: GitHub issues or Zendesk tickets from triaged Slack messages, with an in-thread confirmation.

Steps:
1. Create Scalekit AgentKit connections for slack and github (plus zendesk if support routing is needed) -- copy the exact connection names from the dashboard into SCALEKIT_SLACK_CONNECTION / SCALEKIT_GITHUB_CONNECTION / SCALEKIT_ZENDESK_CONNECTION.
2. Map each Slack user ID to their Scalekit identifier in user_mapping.json (not a shared bot) -- in production, feed this from our user system.
3. If I swap a destination, mirror actions.py: execute_action_with_retry(identifier, tool, connection_name, parameters) → read result data; retries and backoff come free.
4. Keep the LangGraph router in routing.py (analyze → execute → confirm); tune GITHUB_KEYWORDS / ZENDESK_KEYWORDS in settings.py, or set OPENAI_API_KEY for LLM-based routing.
5. Point ALLOWED_CHANNELS at the channels to monitor and GITHUB_REPO_OWNER/GITHUB_REPO_NAME at the target repo.
6. Run python main_polling.py, post "bug: ..." in the channel to test, then describe how to deploy 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.

SUPPORT
Support triage agent
Read Zendesk tickets, fetch runbooks from Notion, and route to the right Slack channel with a drafted response.
SUPPORT
Support ticket automation (Google ADK)
Google ADK agent that classifies Zendesk tickets, pulls Notion context, and posts to Slack. End-to-end ticket handoff.
SUPPORT
Freshdesk CSAT follow-up agent
Google ADK agent that watches low CSAT scores in Freshdesk and drafts personalised follow-ups for support leads.
OPS
Email-to-calendar scheduling agent
Parse scheduling intent from Gmail threads and create Google Calendar events with the right attendees and timezone.
GTM
CRM AI agent
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.
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.

Build your own
multi-connector agent

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