---
name: "phone_setup_assistant"
area: "phone"
title: "Set up how calls are answered"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/phone_setup_assistant"
mcp_server: "https://api.conecto.chat/mcp/phone"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/phone/phone_setup_assistant"
---

# Set up how calls are answered (`phone_setup_assistant`)

Sets how the business's numbers answer (the agent's webhook or taking messages), the greeting, voice and hours, and whether messages become tickets.

Choose how the business's numbers are answered; Conecto hears and speaks, you are the brain. answer_with webhook: each thing a caller says is POSTed to webhook_url (signed with the webhook_secret returned once: X-Conecto-Signature is sha256= the HMAC of the body) with the conversation so far, and you answer {"say": "...", "end_call": false} within about 2.5 seconds (the caller hears "one moment" after that; after 8 seconds the line takes a message instead). answer_with messages: the line takes the caller's message. Either way the whole call reaches you afterwards as a phone.message_left or phone.call_ended event. Only the fields you pass change; the first time pass greeting and timezone. Answered calls cost $0.25 per started minute; each call holds max_call_minutes × $0.25 while it runs.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

Right after renting a number, or when the greeting, hours, language, voice or webhook change.

## Say this to your agent

> Answer our number yourself during shop hours, Monday to Saturday, and tell callers right away that they're talking to an AI.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `greeting` | string | no | What callers hear right after Conecto's short notice, in the line's language, that the AI call is recorded and transcribed. It must say they reached an automated line or an AI, e.g. "Hi, you've reached Acme. This is our automated line: how can we help?" Taking messages, ask for their message, name and number. 1 to 600 characters. |  |  |
| `answer_with` | string | no | messages (the default) or webhook. | `"messages"`, `"webhook"` |  |
| `webhook_url` | string | no | Your https endpoint for each turn. Up to 500 characters. |  |  |
| `rotate_secret` | boolean | no | Make a new webhook_secret (the old one stops working). |  | `false` |
| `message_ack` | string | no | Taking a message: what the line says after each thing the caller says. Up to 300 characters. |  |  |
| `cant_answer` | string | no | What the line says when your webhook did not answer in time. Up to 300 characters. |  |  |
| `open_tickets` | string | no | messages: each message left opens a help desk ticket with the transcript (or joins the open one the caller has); calls: every call the caller spoke on. $0.01 per ticket opened. Default off. | `"off"`, `"messages"`, `"calls"` |  |
| `name` | string | no | The line's name. 1 to 80 characters. |  |  |
| `language` | string | no | The language it speaks. | `"af"`, `"ar"`, `"hy"`, `"as"`, `"az"`, `"be"`, `"bn"`, `"bs"`, `"bg"`, `"ca"`, `"ceb"`, `"ny"`, `"hr"`, `"cs"`, `"da"`, `"nl"`, `"en"`, `"et"`, `"fil"`, `"fi"`, `"fr"`, `"gl"`, `"ka"`, `"de"`, `"el"`, `"gu"`, `"ha"`, `"he"`, `"hi"`, `"hu"`, `"is"`, `"id"`, `"ga"`, `"it"`, `"ja"`, `"jv"`, `"kn"`, `"kk"`, `"ky"`, `"ko"`, `"lv"`, `"ln"`, `"lt"`, `"lb"`, `"mk"`, `"ms"`, `"ml"`, `"zh"`, `"mr"`, `"ne"`, `"no"`, `"ps"`, `"fa"`, `"pl"`, `"pt"`, `"pa"`, `"ro"`, `"ru"`, `"sr"`, `"sd"`, `"sk"`, `"sl"`, `"so"`, `"es"`, `"sw"`, `"sv"`, `"ta"`, `"te"`, `"th"`, `"tr"`, `"uk"`, `"ur"`, `"vi"`, `"cy"` |  |
| `voice` | string | no | A voice id or name from phone_get_assistant. Up to 100 characters. |  |  |
| `timezone` | string | no | IANA time zone of the business, e.g. America/New_York. Needed the first time. Up to 80 characters. |  |  |
| `hours` | array of objects | no | When to answer, in the timezone; empty answers around the clock. Outside these hours callers get a busy signal. Up to 7 items. |  |  |
| `hours[].day` | string | yes, in each item of `hours` |  | `"monday"`, `"tuesday"`, `"wednesday"`, `"thursday"`, `"friday"`, `"saturday"`, `"sunday"` |  |
| `hours[].start` | string | yes, in each item of `hours` | Matches ^([01][0-9]\|2[0-3]):[0-5][0-9]$. |  |  |
| `hours[].end` | string | yes, in each item of `hours` | Matches ^([01][0-9]\|2[0-3]):[0-5][0-9]$. |  |  |
| `max_call_minutes` | integer | no | Calls end after this long (default 5). 1 to 10. |  |  |
| `answering` | boolean | no | false pauses answering; true resumes it. |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `phone_setup_assistant` on the MCP server `https://api.conecto.chat/mcp/phone` with these arguments:

```json
{
  "greeting": "Hi, you've reached Halverson Cycle & Repair. This is our automated line: how can we help?",
  "answer_with": "webhook",
  "webhook_url": "https://agent.halversoncycle.example/conecto/phone",
  "timezone": "America/Los_Angeles",
  "language": "en",
  "hours": [
    {
      "day": "monday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "tuesday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "wednesday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "thursday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "friday",
      "start": "10:00",
      "end": "19:00"
    },
    {
      "day": "saturday",
      "start": "10:00",
      "end": "16:00"
    }
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/phone_setup_assistant \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"greeting": "Hi, you'\''ve reached Halverson Cycle & Repair. This is our automated line: how can we help?", "answer_with": "webhook", "webhook_url": "https://agent.halversoncycle.example/conecto/phone", "timezone": "America/Los_Angeles", "language": "en", "hours": [{"day": "monday", "start": "10:00", "end": "19:00"}, {"day": "tuesday", "start": "10:00", "end": "19:00"}, {"day": "wednesday", "start": "10:00", "end": "19:00"}, {"day": "thursday", "start": "10:00", "end": "19:00"}, {"day": "friday", "start": "10:00", "end": "19:00"}, {"day": "saturday", "start": "10:00", "end": "16:00"}]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "phone_setup_assistant",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "assistant": {
      "answering": true,
      "not_answering_because": [
        "Outside the answering hours right now."
      ],
      "name": "Phone assistant",
      "greeting": "Hi, you've reached Halverson Cycle & Repair. This is our automated line: how can we help?",
      "language": "en",
      "answer_with": "webhook",
      "message_ack": "Thank you, I've noted that. Is there anything else?",
      "cant_answer": "Sorry, I can't answer that right now. Please tell me your message and we'll get back to you.",
      "open_tickets": "off",
      "webhook_url": "https://agent.halversoncycle.example/conecto/phone",
      "webhook_last_ok_at": null,
      "webhook_last_error": null,
      "voice": {
        "id": "stock_voice",
        "name": "George"
      },
      "timezone": "America/Los_Angeles",
      "hours": [
        {
          "day": "monday",
          "start": "10:00",
          "end": "19:00"
        },
        {
          "day": "tuesday",
          "start": "10:00",
          "end": "19:00"
        }
      ],
      "max_call_minutes": 5,
      "numbers": [
        "+15035550123"
      ],
      "price": {
        "per_started_minute_usd": "$0.25",
        "held_per_call_usd": "$1.25"
      }
    },
    "webhook_secret": "whsec_example_shown_once"
  }
}
```

`result`: The assistant as set: whether it answers now (and why not), name, greeting, language, voice, how it answers, whether calls open tickets, hours and call limit, and the webhook_secret, shown once when it is made.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `greeting_needs_ai_disclosure` | 400 | The greeting does not tell callers they reached an automated line or an AI. | Say so in the greeting, like "This is our automated line". |
| `timezone_required` | 400 | This is the first setup and timezone is missing. | Send the business's zone, like Europe/Berlin. |
| `invalid_input` | 400 | The webhook_url is missing, not https or not reachable from the internet, the voice is unknown, or another field is not valid. | Fix what the message names; phone_get_assistant lists the voices. |
| `phone_unavailable` | 503 | The phone service is not switched on yet, or has no voices right now. | Try again later; nothing was charged. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [phone_search_numbers](https://conecto.chat/tools/phone/phone_search_numbers.md): Phone numbers the business can rent right now, each with the monthly price and a quote to rent it. Free up to 1,000,000 reads a month.
- [phone_rent_number](https://conecto.chat/tools/phone/phone_rent_number.md): Rents a number found by phone_search_numbers; this call pays the first month. Quoted, up to $25.00.
- [phone_get_assistant](https://conecto.chat/tools/phone/phone_get_assistant.md): How the business's numbers answer, whether they answer right now (and why not), and the voices to choose from. Free up to 1,000,000 reads a month.
- [phone_list_numbers](https://conecto.chat/tools/phone/phone_list_numbers.md): The numbers the business rents, with their monthly price and next renewal. Free up to 1,000,000 reads a month.
- [phone_list_calls](https://conecto.chat/tools/phone/phone_list_calls.md): Calls to and from the business's numbers, newest first: who, when, how long and what it cost, missed ones included. Free up to 1,000,000 reads a month.
- [phone_get_call](https://conecto.chat/tools/phone/phone_get_call.md): One call with its whole transcript: who said what, and when. Free up to 1,000,000 reads a month.
- [phone_release_number](https://conecto.chat/tools/phone/phone_release_number.md): Gives a number back for good: it stops answering at once and its rent ends. Free.
