Agent Templates
Performance review collector

Performance review automation that collects feedback into Notion

Collects review feedback from Airtable and Google Forms scoped to each manager's direct reports, writes per-employee summaries to Notion, and DMs the manager a Slack digest.

Performance review collector
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Summarize Q2 performance feedback for my team
J
Collecting review feedback
Structured ratings
airtable_list_records
Free-text feedback
googleforms_list_responses
Summary pages
notionmcp_notion-create-pages
Digest - Q2 2026 - 3 direct reports
Notion pages written (3)
Alex Kim -- 4.5/5 avg across 6 responses
Manager DM'd in Slack with links to each page
Handled for you
Reports with zero feedback skipped, not blocked
Re-runs upsert pages, never duplicate them
Message Claude...
Trusted by teams shipping agents to production
Performance review collector
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Summarize Q2 performance feedback for my team
J
Collecting review feedback
Structured ratings
airtable_list_records
Free-text feedback
googleforms_list_responses
Summary pages
notionmcp_notion-create-pages
Digest - Q2 2026 - 3 direct reports
Notion pages written (3)
Alex Kim -- 4.5/5 avg across 6 responses
Manager DM'd in Slack with links to each page
Handled for you
Reports with zero feedback skipped, not blocked
Re-runs upsert pages, never duplicate them
Message Claude...

How the agent collects Airtable and Forms feedback into Notion summaries in six steps

A real working agent you can deploy

This repo scopes one review cycle to a single MANAGER_EMAIL with per-connector *_USER identities from .env. In production, pass each manager's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.

01
Authorize Airtable, Google Forms, Notion, and Slack
run_flow.py
Verify each user's four connections are ACTIVE before touching review data. Locally the identity comes from .env; in production, pass your manager's real user ID as identifier and surface auth links from your app.
run_flow.py
logger.info("Step 0: Checking connector auth")
for connector_name, identifier in cfg.get_connector_users().items():
    conn = Connector(actions, connector_name, identifier)
    conn.check_auth()

# connectors.py -- check_auth()
resp = self.actions.get_or_create_connected_account(
    connection_name=self.connector_name,
    identifier=self.identifier,
)
if resp.connected_account.status != "ACTIVE":
    link = self.actions.get_authorization_link(
        connection_name=self.connector_name,
        identifier=self.identifier,
    ).link
    logger.warning(f"Authorize here: {link}")
02
Auto-provision the Airtable review table
provisioning.py
03
Fetch review responses from Airtable and Google Forms
connectors.py
04
Aggregate and summarize feedback per employee
summarizer.py
05
Write per-employee summaries to Notion
connectors.py
06
DM the manager a Slack digest
run_flow.py

Agents that collect review feedback, without the auth plumbing

Four things you'd otherwise build: Airtable auth, Google Forms access, Notion OAuth, Slack 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/performance-review-collector-agent and adapt it for my review cycle.

I am building for: my People Ops team (or: an HR product)   ← edit this line
Connectors my users need: Airtable, Google Forms, Notion MCP, Slack   ← edit this line
Trigger: weekly cron or POLLING_MODE=true. Deliver: per-employee Notion summaries + a Slack DM digest to each manager.

Steps:
1. Create Scalekit AgentKit connections for airtable, googleforms, notionmcp, slackmcp -- copy the exact (auto-suffixed) connection names from the dashboard into .env.
2. Map identifier to each manager's real user ID (not a shared HR bot). Per-connector *_USER overrides exist if identities differ per service.
3. If I swap a connector, mirror an existing class in connectors.py: execute_tool(tool_name, identifier, tool_input) → read result.data (MCP envelopes unwrap automatically).
4. Keep Step 0.5 provisioning: ensure_airtable_table auto-creates the review table; the Google Form's questions stay manual (the GOOGLEFORMS connector has no add-question tool).
5. Resolve direct reports from the Airtable Manager Email column, with DIRECT_REPORTS as fallback.
6. Run python run_flow.py for one manager, then describe how to deploy for many.
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
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.
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.