Agent Templates
Support Ticket Automation Agent

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

Wire up three real services with Google ADK and Gemini, and ship a working support automation agent in minutes. Clone the sample, swap in your credentials, and go from zero to automated triage in a single afternoon.

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
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.
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
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.

Build your own
multi-connector agent

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