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.
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.
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,
],
)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.
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.
Each one runs on delegated identity, scoped per user.