Перейти к содержанию

Разработчикам

Подключите Руководителя аппарата и его команду к своим инструментам и ИИ-приложениям.

Работайте с командой прямо в Claude, ChatGPT и собственных программах. Через MCP, REST API и подписанные вебхуки ИИ-приложение или ваш код может находить звонки, контакты и задачи, следить за работой ваших Агентов и, с вашего разрешения, поручить Агенту позвонить.

Инструкции по подключению

Подключение за пару минут

Приложения со входом через аккаунт подключаются к вашему аккаунту AgentWaves. Остальные используют API-ключ, который вы создаете в AgentWaves. В обоих случаях приложение действует от вашего имени и в рамках вашей роли. Шаги приведены на английском: в них пункты меню названы так, как они выглядят в самих приложениях.

ClaudeВход
  1. In Claude (web, desktop or mobile), open Settings, then Connectors, and choose Add custom connector. Team and Enterprise: an admin adds it under Organization settings, Connectors.
  2. Name it AgentWaves and paste the connector URL. Leave the advanced OAuth fields empty.
  3. Click Add, then Connect. The AgentWaves sign-in opens: pick the workspace and what Claude may do, then Allow.
  4. In a new chat, turn on AgentWaves in the tools menu and ask: Where am I with AgentWaves?
Инструкция самого приложения
ChatGPTВход
  1. In ChatGPT, open Settings, then Apps and Connectors, then Advanced settings, and turn on Developer mode (Plus, Pro, Business and Enterprise plans).
  2. Choose Create, name it AgentWaves, paste the connector URL and keep OAuth as the authentication.
  3. Save, then Connect: approve the AgentWaves sign-in with the workspace and access you want.
  4. In a chat, choose AgentWaves from the tools and ask what you need.
Инструкция самого приложения
Claude CodeВход
  1. Run this in your terminal:
  2. Then type /mcp in Claude Code and choose AgentWaves to sign in. To use an API key instead, add --header "Authorization: Bearer YOUR_AGENTWAVES_KEY".
claude mcp add --transport http agentwaves https://agentwaves.net/mcp
Инструкция самого приложения
CursorAPI-ключ
  1. In AgentWaves, open Developers and create an API key.
  2. Open Cursor Settings, then MCP, then Add new MCP server (or edit ~/.cursor/mcp.json) and add:
{
  "mcpServers": {
    "agentwaves": {
      "url": "https://agentwaves.net/mcp",
      "headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
    }
  }
}
VS Code (Copilot)API-ключ
  1. In AgentWaves, open Developers and create an API key.
  2. Add this to .vscode/mcp.json in your project (or your user MCP settings), then start the server from the MCP list:
{
  "servers": {
    "agentwaves": {
      "type": "http",
      "url": "https://agentwaves.net/mcp",
      "headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
    }
  }
}
WindsurfAPI-ключ
  1. In AgentWaves, open Developers and create an API key.
  2. Edit ~/.codeium/windsurf/mcp_config.json and add:
{
  "mcpServers": {
    "agentwaves": {
      "serverUrl": "https://agentwaves.net/mcp",
      "headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
    }
  }
}
Gemini CLIAPI-ключ
  1. In AgentWaves, open Developers and create an API key.
  2. Edit ~/.gemini/settings.json and add:
{
  "mcpServers": {
    "agentwaves": {
      "httpUrl": "https://agentwaves.net/mcp",
      "headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
    }
  }
}
Any MCP clientAPI-ключ
  1. Transport: Streamable HTTP at the connector URL.
  2. Authentication: send an API key as Authorization: Bearer YOUR_AGENTWAVES_KEY, or use OAuth 2.1 sign-in (discovery at /.well-known/oauth-protected-resource, PKCE S256, dynamic client registration).
  3. Start with the get_started tool.

Справочник инструментов

Что ИИ-приложение может делать в AgentWaves

Инструменты чтения работают при любом подключении. Инструментам действий нужен доступ на чтение и действия, и каждый из них проверяет роль самого человека. Ваши одобрения по-прежнему в силе: если у Агента включено «Спрашивать меня перед звонком», звонок, порученный из приложения, ждет вашего нажатия на странице «Сегодня» или вашего «да» в WhatsApp, а контакту из списка «не звонить» никто не позвонит. Каждое действие записывается в журнал аудита.

Открыть JSON-схему

Чтение

Только поиск и просмотр. Ничего не меняется.

  • get_started

    Начните отсюда. Рабочее пространство, его тариф, Агенты, телефонные номера, звонки, потенциальные клиенты и задачи за последние 7 дней, а также что разрешено этому подключению.

  • list_agents

    Каждый Агент со статусом (в работе, выключен или не опубликован), направлением работы, языком, телефонными номерами, номером WhatsApp и числом звонков.

  • list_calls

    Последние телефонные звонки, от новых к старым, со сводкой и итогом. Фильтры по имени Агента, направлению, части номера телефона и числу прошедших дней.

  • get_call

    Один звонок целиком: данные, сводка, извлеченные сведения (имя, почта, компания, следующий шаг) и расшифровка.

  • find_contacts

    Поиск контактов и потенциальных клиентов по имени, телефону, компании или метке (* для самых новых), с тем, что Агенты помнят о каждом.

  • get_contact

    Один контакт: данные, согласие на связь, что помнят Агенты, открытые задачи и последние звонки.

  • list_tasks

    Задачи по итогам писем, WhatsApp, звонков и поручений. Показывает открытые (по умолчанию), выполненные или все.

  • get_task

    Одна задача со всеми заметками, письмом, из которого она появилась, и контактом.

  • order_progress

    На каком этапе звонок, порученный через order_call: ждет одобрения, запланирован, идет вызов, идет разговор или завершен. Со временем каждого шага, действиями Агента во время звонка, а после завершения с итогом и сводкой. Передайте task_id (или approval_id), который вернул order_call.

  • list_campaigns

    Исходящие кампании со статусом, Агентом и ходом выполнения.

  • search_knowledge

    Поиск по тому, что Агент знает о бизнесе (сайт, документы, заметки).

Действие

Что-то меняет или совершает звонок. ИИ-приложению стоит сначала уточнить у вас.

  • order_call

    Поручите Агенту позвонить по номеру и что-то сделать (узнать цену, подтвердить доставку, о чем-то напомнить), сейчас или в назначенное время. Это становится поручением и задачей, а итог записывается в задачу. Звонки другим людям соблюдают часы звонков, а на сохраненный телефон владельца Агент звонит в любое время. Сначала подтвердите номер и суть поручения с пользователем.

  • add_task_note

    Запишите заметку к задаче (что произошло, что дальше). Открытая задача переходит в статус «в работе».

  • set_task_status

    Отметьте задачу как открытую, в работе, выполненную или отмененную.

  • update_contact

    Измените имя, почту, компанию или должность контакта, внесите его в список «не звонить» или уберите из него.

  • set_agent_on

    Выключите Агента (он перестает отвечать на звонки и сообщения) или включите его снова.

REST API

Те же возможности из вашего кода

Обычный HTTPS и JSON на тех же инструментах, что и MCP-сервер, поэтому правила доступа и журнал аудита полностью совпадают. Передавайте API-ключ из AgentWaves как bearer-токен.

Что доступно сейчас

  1. 01Рабочее пространство: тариф, Агенты, номера и последние 7 дней.
  2. 02Агенты: список, выключение и повторное включение, поиск по знаниям Агента.
  3. 03Звонки: список и просмотр, поручение позвонить и отслеживание до конца.
  4. 04Контакты: поиск, просмотр и изменение, включая список «не звонить».
  5. 05Задачи и поручения: список и просмотр, заметки и смена статуса.
  6. 06Кампании: список с ходом выполнения.

Дел, целей, документов и одобрений в API пока нет. С ними работайте в приложении.

  • Ответ приходит в поле data. Ошибка приходит в поле error с полями code и message, вместе с обычным HTTP-статусом.
  • Ключ только для чтения видит лишь эндпоинты чтения. Эндпоинты действий дополнительно проверяют роль человека.
  • До 300 запросов в минуту на ключ. Каждое изменение попадает в журнал аудита рабочего пространства.
Скачать спецификацию OpenAPI

Пример

curl "https://agentwaves.net/api/v1/calls?days=7" \
  -H "Authorization: Bearer $AGENTWAVES_KEY"

curl -X POST https://agentwaves.net/api/v1/call-orders \
  -H "Authorization: Bearer $AGENTWAVES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent": "Layla", "phone": "+14155550123", "task": "Confirm the appointment tomorrow at 10:00"}'

Рабочее пространство

  • GET/workspaceРабочее пространство, тариф, Агенты, номера, последние 7 дней и что разрешено этому ключуЧтение

Агенты

  • GET/agentsКаждый Агент со статусом, направлением работы, языком и номерамиЧтение
  • PATCH/agents/{agent}Выключить Агента или включить сноваДействие
  • GET/agents/{agent}/knowledgeПоиск по тому, что Агент знает о бизнесеЧтение

Звонки

  • GET/callsПоследние звонки, от новых к старым, со сводкой и итогомЧтение
  • GET/calls/{call_id}Один звонок со сводкой, извлеченными сведениями и расшифровкойЧтение
  • POST/call-ordersПоручить Агенту позвонить по номеру сейчас или в назначенное времяДействие
  • GET/call-orders/statusНа каком этапе порученный звонок и его итог после завершенияЧтение

Контакты

  • GET/contactsПоиск контактов по имени, телефону, компании или меткеЧтение
  • GET/contacts/{contact_id}Один контакт с согласием, памятью, открытыми задачами и последними звонкамиЧтение
  • PATCH/contacts/{contact_id}Изменить данные контакта или его статус «не звонить»Действие

Задачи

  • GET/tasksЗадачи по итогам звонков, WhatsApp, писем и порученийЧтение
  • GET/tasks/{task_id}Одна задача с заметками, источником и контактомЧтение
  • PATCH/tasks/{task_id}Отметить задачу как открытую, в работе, выполненную или отмененнуюДействие
  • POST/tasks/{task_id}/notesЗаписать заметку к задачеДействие

Кампании

  • GET/campaignsИсходящие кампании со статусом, Агентом и ходом выполненияЧтение

Вебхуки

Узнавайте об изменениях сразу

AgentWaves отправляет подписанный JSON методом POST в вашу систему, когда меняются звонки, задачи и поручения. Ваша CRM, таблицы и бэк-офис остаются в актуальном состоянии без постоянных опросов. Подписи соответствуют спецификации Standard Webhooks, поэтому их проверяют готовые библиотеки.

  • Ответьте любым кодом 2xx в течение 10 секунд. Иначе доставка повторяется через 1 минуту, 5 минут, 30 минут, затем через 2, 5, 10 и 14 часов.
  • Одно и то же событие может прийти дважды: пропускайте повторы по webhook-id. Порядок не гарантирован, поэтому ориентируйтесь на метку времени.
  • Только публичные адреса https. Эндпоинт, который не отвечает три дня подряд, отключается, и мы сообщаем вам об этом.
  • Добавьте эндпоинт в AgentWaves в разделе «Разработчикам», выберите события и скопируйте секрет подписи: он показывается только один раз.

События

  • call.startedЗвонок начинается, входящий или исходящий.
  • call.endedЗвонок завершен, с длительностью и итогом.
  • call.summarizedСводка звонка и данные, которые собрал Агент, готовы.
  • task.createdСоздана задача по итогам звонка, WhatsApp, письма или поручения.
  • task.updatedЗадача изменилась: статус, ответственный, заметки или срок.
  • order.createdКто-то поручает Агенту позвонить или написать человеку.
  • order.updatedПоручение продвигается: запланировано, идет звонок или новая заметка Агента.
  • order.completedПоручение выполнено или отменено, с последней заметкой Агента.

Что приходит

POST /your/endpoint
webhook-id: evt_3f1c0b9a7d2e4c5b6a7f8e9d
webhook-timestamp: 1792494954
webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

{
  "id": "evt_3f1c0b9a7d2e4c5b6a7f8e9d",
  "type": "call.ended",
  "timestamp": "2026-10-20T09:15:54.000Z",
  "workspaceId": "cmw1org00001",
  "data": {
    "id": "cmw1call0001",
    "direction": "inbound",
    "status": "completed",
    "from": "+14155550123",
    "to": "+14155550199",
    "agent": {
      "id": "cmw1agent001",
      "name": "Layla"
    },
    "contact": {
      "id": "cmw1contact1",
      "name": "Daniel Reyes"
    },
    "campaignId": null,
    "startedAt": "2026-10-20T09:14:02.000Z",
    "answeredAt": "2026-10-20T09:14:03.000Z",
    "endedAt": "2026-10-20T09:15:54.000Z",
    "durationSeconds": 112,
    "outcome": "appointment_booked",
    "endReason": "caller_hung_up",
    "link": "https://agentwaves.net/app/calls/cmw1call0001"
  }
}

Проверка подписи

import crypto from "node:crypto";

// body: the raw request body, as text, before any JSON parsing.
export function verifyAgentWaves(secret, headers, body) {
  const id = headers["webhook-id"];
  const ts = headers["webhook-timestamp"];
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const key = Buffer.from(secret.replace("whsec_", ""), "base64");
  const expected = "v1," + crypto.createHmac("sha256", key).update(`${id}.${ts}.${body}`).digest("base64");
  return headers["webhook-signature"].split(" ").some(
    (sig) => sig.length === expected.length && crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected)),
  );
}

Навык для ИИ-приложения

Навык, который учит ИИ-приложение этой работе

Короткий файл SKILL.md, который ИИ-приложение загружает, когда вы спрашиваете о звонках, контактах, задачах или Агентах вашей команды. Он знает, какой инструмент отвечает на какой вопрос, и правила, которые защищают ваших клиентов.

  1. 01Начинает каждую сессию с get_started, поэтому никогда не угадывает имена
  2. 02Перед тем как поручить звонок, повторяет номер, Агента и цель
  3. 03Никогда не звонит контакту из списка «не звонить»
  4. 04Сообщает, когда порученный звонок ждет вашего одобрения, и следит за ним до конца

Доступ и безопасность

Ваши данные на ваших условиях

  • Вход через OAuth 2.1

    PKCE и динамическая регистрация клиентов. Человек сам выбирает рабочее пространство и уровень доступа и может отозвать его в любой момент.

  • Только чтение или чтение и действия

    Выбирается для каждого приложения или API-ключа. Подключения только для чтения не видят инструментов действий.

  • Ваша роль по-прежнему действует

    Приложение никогда не сможет сделать больше, чем человек, который его подключил.

  • Каждое действие в журнале

    Порученные звонки, измененные задачи и отредактированные контакты записываются на имя человека с пометкой, что действие пришло из ИИ-приложения.

Пусть ваша команда работает в ИИ-приложениях, которыми вы уже пользуетесь.

Выберите тариф, познакомьтесь со своим Руководителем аппарата и подключите Claude или ChatGPT за минуту.