Overview
The LLM path is the fastest way to send a voice notification. You provide a message string and Echo generates a contextual call script on the fly using your business context (business_name, business_summary, industry) and the message you provide.
No agent definition required. No variables. Just a customer ID and a message.
Sending an LLM-path Notification
curl -X POST https://api.meetecho.ai/api/v1/notifications \
-H "x-api-key: echo_..." \
-H "Content-Type: application/json" \
-d '{
"customer_id": "8cc6199f-9466-46f2-9db7-936f3c2c1c0b",
"message": "Your premium trial expires in 24 hours. Log in to upgrade and keep your access.",
"collect_feedback": true,
"max_duration_seconds": 120
}'
{
"notification": {
"id": "13eea9cc-...",
"status": "in_progress",
"message": "Your premium trial expires in 24 hours...",
"collect_feedback": true,
"max_duration_seconds": 120,
"target_phone_e164": "+14155552671"
},
"call": {
"callId": "call-abc123",
"status": "queued"
}
}
Request Fields
| Field | Type | Required | Description |
|---|
customer_id | UUID | Yes | The customer to call. Must belong to your project. |
message | string | Yes | The core notification content. Fills {{message}} in the generated script. |
context | string | No | Additional per-call context. Fills {{context}} in the generated script. |
collect_feedback | boolean | No | If true, the AI asks the caller to confirm, cancel, or reschedule at the end of the call. Default: false. |
max_duration_seconds | integer | No | Maximum call duration. Range: 30–600. Default: 180. |
Using collect_feedback
When collect_feedback: true, the generated call script includes a feedback prompt at the end of the conversation. The AI will ask the caller to take an action — confirm, cancel, reschedule, or similar — depending on the message content.
{
"customer_id": "...",
"message": "Your appointment with Dr. Patel tomorrow at 10 AM is confirmed.",
"collect_feedback": true
}
The caller’s response is captured in the webhook payload under call_result.
Using context
The context field is for runtime nuance you don’t want hardcoded into the message. Use it to pass background information that shapes how the AI conducts the conversation:
{
"customer_id": "...",
"message": "Your subscription payment failed.",
"context": "Customer has been with us for 3 years. Their card expired last month. Be empathetic.",
"collect_feedback": true
}
context is invisible to the caller — it’s instructions for the AI, not dialogue. Keep it factual and concise.
Controlling Call Duration
Use max_duration_seconds to cap how long the call can run. This is useful for:
- Cost control — billing is per minute, so shorter limits reduce exposure
- User experience — preventing runaway conversations on simple notifications
- Compliance — some use cases require call length limits
{
"customer_id": "...",
"message": "Your order has shipped. Expected delivery: Friday.",
"max_duration_seconds": 45
}
The call ends automatically once the limit is reached, regardless of conversation state.
What Echo Generates
When you use the LLM path, Echo combines:
- Your
business_name, business_summary, and industry from signup
- The customer’s
first_name and last_name
- Your
message and optional context
…into a contextual call script that the AI uses to conduct the conversation. The script is generated fresh for each call — you won’t see it directly, but it reflects your business identity.
LLM Path vs Agent Path
| LLM path | Agent path |
|---|
| Setup | None | Create an agent first |
| Prompt control | Echo generates it | You write it |
| Tone consistency | Variable | Fully consistent |
| Custom variables | Not available | Full {{variable}} system |
| Structured output | No (call_result is null) | Yes, via output_schema |
collect_feedback | Supported | Not applicable |
max_duration_seconds | Supported | Not applicable |
| Best for | Quick one-off alerts | Templates, surveys, brand voice |
For full control over the conversation, structured output extraction, and consistent brand voice across thousands of calls, use the Agent approach.