Simple Agent
Docsactions

Agent Actions

Configure launch-ready actions: lead capture, human escalation, and Cal.com booking.

Actions are tasks the agent can execute during a conversation. The launch contract is intentionally narrow: it only includes actions that are wired in the dashboard, filtered by the chat runtime, persisted, and covered by tests.

Available today

Simple Agent currently exposes three runtime actions:

Action What it does Current limit
Lead Capture Collects contact fields or renders an inline form Optional webhook forwarding is not sold as a custom API action
Human Escalation Marks the conversation as escalated and opens/reopens an Inbox ticket External notification is best-effort
Cal.com Booking Shows a validated Cal.com booking button Cal.com link only, no calendar OAuth

Shopify, Stripe payment links, custom API/webhooks, Zapier, HubSpot, Salesforce, Zendesk, and Slack runtime actions are roadmap items. Do not treat them as available product features yet.

Lead Capture

Use Lead Capture when the visitor asks for pricing, a quote, a proposal, a demo, or a follow-up from the team.

Configuration:

{
  "type": "lead_capture",
  "name": "Capture contact",
  "intentTriggers": ["pricing", "quote", "demo", "contact"],
  "config": {
    "fields": [
      { "name": "email", "label": "Email", "type": "email", "required": true },
      { "name": "name", "label": "Name", "type": "text", "required": false }
    ],
    "successMessage": "Thanks. We will follow up soon."
  }
}

When email or name is captured, the conversation stores those fields and the action execution is recorded.

Human Escalation

Use Human Escalation when the user asks for a person, the answer needs human review, or confidence is too low for a useful automated answer.

Configuration:

{
  "type": "escalate_human",
  "name": "Human review",
  "intentTriggers": ["human", "support", "agent", "help"],
  "config": {
    "notifyVia": "email",
    "destination": "support@example.com",
    "escalationMessage": "A human teammate will review this conversation."
  }
}

What is persisted:

  • conversations.escalated_at
  • a real Inbox ticket, opened or reused
  • an action_executions audit record

If the external notification fails, the Inbox ticket and escalation timestamp remain the source of truth.

Cal.com Booking

Use Cal.com Booking when the visitor asks to schedule a meeting.

Configuration:

{
  "type": "calcom",
  "name": "Book a demo",
  "intentTriggers": ["schedule", "book", "meeting", "appointment"],
  "config": {
    "calcomUrl": "https://cal.com/your-user/demo",
    "buttonLabel": "Book a demo"
  }
}

Only cal.com and app.cal.com URLs are accepted.

API routes

Method Path Scope
GET /api/agents/:id/actions List agent actions
POST /api/agents/:id/actions Create one of the three launch action types
PATCH /api/agents/:id/actions/:actionId Update config or enabled state
DELETE /api/agents/:id/actions/:actionId Delete an action
POST /api/agents/:id/actions/:actionId/execute Execute an action manually

All routes require tenant isolation.