What is an Agent?
An Agent is a reusable voice persona you define once at the business level and trigger for any customer at notification time. Agents give you full control over:- The AI’s personality, tone, and scope
- The conversation flow via a system prompt
- Structured data extracted from the call via
output_schema - Dynamic content injected per-call via
{{variable}}placeholders
agent_id in any notification request.
Creating an Agent
Fields
| Field | Required | Description |
|---|---|---|
name | Yes | A label for your own reference. Not read aloud. |
system_prompt | Yes | The full instruction set for the AI. Supports {{variable}} placeholders. |
output_schema | No | JSON Schema for structured data extraction after the call. |
Triggering a Notification with an Agent
Once your agent is created, pass itsid as agent_id along with a customer_id and any custom variables:
recipient_first_name is a built-in variable — Echo resolves it automatically from the customer record. You don’t need to pass it in variables.What happens behind the scenes
Auth + resolution
Echo validates your API key and resolves your project, business, customer, and agent.
Variable map construction
Echo builds a variable map: built-in variables (business name, recipient name, etc.) are populated first, then your
variables map is merged in. Caller-provided values override built-ins if they share the same key.Structured Output with output_schema
output_schema is a JSON Schema object. Echo uses it to extract structured data from the call transcript after the conversation ends.
notification.call_result and included in the outbound webhook payload:
output_schema is defined, call_result will be null in both the notification record and the webhook payload.
Managing Agents
List all active agents
Get a specific agent
Update an agent (partial)
Only the fields you send are changed. Omitted fields are left unchanged.Disable an agent
Soft delete — sets status to"disabled". Disabled agents cannot be used in new notifications.
Agent vs LLM Path
| Agent path | LLM path | |
|---|---|---|
| Setup | Define agent once, reuse | No setup |
| Prompt | You write it | Echo generates it |
| Variables | Full {{variable}} system | Built-ins only |
| Structured output | Yes, via output_schema | No |
| Best for | Consistent brand voice, templates, surveys | One-off notifications |