Agent Templates
Support ticket automation agent

Support automation agents that resolve tickets on-behalf-of your users

Fetches new Zendesk tickets, drafts a reply from Notion knowledge base articles, digests what it cannot answer to Slack, and archives the rest, acting as the support agent rather than a shared API key.

Support ticket automation agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Triage today's new Zendesk tickets
J
Fetching new tickets from Zendesk
Fetch new tickets
fetch_new_tickets
Generate Gemini reply
annotate_tickets_with_replies
Post Slack digest
post_slack_digest
Support run: 18 tickets
Gemini reply generated
"SAML SSO setup error — suggested reply generated"
Digest posted to Slack, solved tickets archived
Result
18 tickets annotated with suggested replies
Solved tickets archived to Notion — digest posted
Message Claude...
Trusted by teams shipping agents to production
Support ticket automation agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Triage today's new Zendesk tickets
J
Fetching new tickets from Zendesk
Fetch new tickets
fetch_new_tickets
Generate Gemini reply
annotate_tickets_with_replies
Post Slack digest
post_slack_digest
Support run: 18 tickets
Gemini reply generated
"SAML SSO setup error — suggested reply generated"
Digest posted to Slack, solved tickets archived
Result
18 tickets annotated with suggested replies
Solved tickets archived to Notion — digest posted
Message Claude...

How the Google ADK agent fetches, annotates, digests, and archives support tickets in five steps

A real working agent you can deploy

This agent uses ZENDESK_API_TOKEN, SLACK_BOT_TOKEN, and NOTION_API_KEY for direct API access. The Google ADK LlmAgent orchestrates four Python tool functions in sequence using Gemini (gemini-2.0-flash by default). State is persisted in state/ticket_thread_map.json to avoid duplicate notifications.

01
Wire up the Google ADK orchestrator
agent.py
LlmAgent from Google ADK takes four Python functions as tools and a structured instruction prompt that specifies the exact call order. The model is configurable via GOOGLE_ADK_MODEL (defaults to gemini-2.0-flash). Ticket state is loaded from state/ticket_thread_map.json at startup.
agent.py
orchestrator = LlmAgent(
    model=os.getenv(
        "GOOGLE_ADK_MODEL", "gemini-2.0-flash"
    ),
    name="zendesk_slack_notion_orchestrator",
    instruction=(
        "Steps you must perform in order:\n"
        "1) Call fetch_new_tickets.\n"
        "2) If tickets exist, call "
        "annotate_tickets_with_replies.\n"
        "3) Call post_slack_digest.\n"
        "4) Call update_notion_kb."
    ),
    tools=[
        fetch_new_tickets,
        annotate_tickets_with_replies,
        post_slack_digest,
        update_notion_kb,
    ],
)
02
Fetch new Zendesk tickets
agent.py
03
Annotate tickets with Gemini replies
agent.py
04
Post Slack Block Kit digest
agent.py
05
Archive solved tickets to Notion KB
agent.py

Agents that resolve support tickets, without the auth plumbing

Three things you'd otherwise build: Zendesk API auth, Slack bot token management, Notion workspace credentials. Works with Google ADK and Gemini out of the box. 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, Notion, Slack) and use the Scalekit MCP server to validate tool calls instead of hand-written API logic.

Fetch new Zendesk tickets, generate a suggested reply per ticket with an LLM, post a Slack digest of open tickets, and archive solved tickets to Notion — all via the appropriate AgentKit connector tools (idempotent — skip already-notified tickets). Ask before using write tools (posting to Slack, writing to Notion); fetching tickets and drafting replies run without asking.
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.
ENGINEERING
Slack workflow agent (LangGraph)
LangGraph agent that drives multi-step Slack workflows: triggers, approvals, and follow-up actions per user identity.
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.