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_executionsaudit 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.