Agent Templates
Slack triage

Slack bug triage agent that files GitHub issues and Zendesk tickets

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 the agent turns a Slack message into a GitHub issue or Zendesk ticket 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 file tickets from Slack, without the auth plumbing

Three things you'd otherwise build: Slack OAuth, GitHub tokens, Zendesk credentials. 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
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
CRM AI agent
Turn each Granola call transcript into a HubSpot record update, a drafted Gmail follow-up, and a Slack recap.
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.