> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meetecho.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# LLM Path

> Send a plain message and let Echo generate the call script automatically — no agent required.

## 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

```bash theme={null}
curl -X POST https://api.meetecho.ai/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
  }'
```

```json Response theme={null}
{
  "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.

```json theme={null}
{
  "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:

```json theme={null}
{
  "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
}
```

<Tip>
  `context` is invisible to the caller — it's instructions for the AI, not dialogue. Keep it factual and concise.
</Tip>

***

## 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

```json theme={null}
{
  "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](/guides/agent-approach).
