← На главную

Техническая спецификация amoBridge

MCP-сервер (Model Context Protocol) для amoCRM. Даёт ИИ-ассистенту доступ к данным CRM «только на чтение» и 24 инструмента аналитики продаж, включая приватные — поверх методов, которых нет в официальном API amoCRM. Этот документ предназначен для людей и для ИИ-агентов, анализирующих возможности сервиса.

Машиночитаемый манифест инструментов — в конце страницы (JSON) и в /llms.txt.

Что это

amoBridge — это транспорт данных между amoCRM и ИИ-ассистентом. Сервис сам не строит отчёты и не хранит данные: он предоставляет ассистенту набор инструментов, а пользователь в своём приложении ИИ (Claude, ChatGPT, Cursor и др.) задаёт вопросы, строит отчёты и настраивает их регулярность. Ответы формируются на живых данных amoCRM.

Авторизация и модель данных

Способ подключения
Официальный виджет amoBridge в маркетплейсе amoCRM.
Область доступа
Только чтение и анализ. Сервис не создаёт, не изменяет и не удаляет объекты в amoCRM.
Хранение данных
Данные не хранятся. amoBridge — только транспорт между amoCRM и ассистентом.
Отзыв доступа
Отключение виджета в один клик в настройках amoCRM.
Изоляция
Каждый аккаунт amoCRM — отдельный ключ подключения.

Поддерживаемые клиенты

Любой клиент с поддержкой Model Context Protocol: Claude (Desktop, Code), ChatGPT, Cursor и другие MCP-совместимые приложения.

Подключение

Доставка отчётов

Отчёты и дайджесты доставляются в Telegram и MAX по расписанию — читать их можно, не открывая приложение ИИ. Что присылать, как часто и в каком виде — пользователь настраивает в своём ИИ-клиенте (инструмент deliver_report).

Общие параметры

Период (period)
Именованный: today, yesterday, this_week, last_week, this_month, last_month, this_quarter, last_quarter, this_year, last_7_days, last_30_days (недели с понедельника) или произвольный YYYY-MM-DD..YYYY-MM-DD (конец включительно).
Сравнение
compare_to='prev_period' — сопоставимое окно предыдущего периода.
Фильтры
Часто доступны pipeline, manager, source.
Методика
Когорты считаются по created_at, продажи — по closed_at; цикл сделки — по медиане; мусорные причины отказа отсекаются (exclude_junk).
Текущее время
Каждый ответ с датами открывается строкой now: ГГГГ-ММ-ДД ЧЧ:ММ · пояс (UTC±X) · рабочее / НЕрабочее время; вне графика указано начало следующего рабочего интервала. Справочники без временной привязки (list_pipelines, list_fields, list_tags) её не несут.
Рабочее время
Интервалы возвращаются в двух величинах: рабочие — основная, календарные — рядом. Колонки с рабочими величинами помечены *_work_*, календарные — *_cal_*. График задаётся во вкладке «Рабочее время» в настройках виджета (рабочие дни, часы, часовой пояс, нерабочие даты) и печатается в шапке инструментов, которые по нему считают, вместе с московским эквивалентом. Пусто — будни 09:00–18:00, пояс аккаунта amoCRM, производственный календарь РФ. Обед не вычитается, и это указано в строке графика.

Каталог инструментов (24)

Приватные инструменты (помечены «приватный») работают поверх методов, которых нет в официальном API amoCRM: чтение переписки в чатах (в API отсутствует полностью), фильтр компаний по кастомным полям покупок, расчёт скорости ответа по графику работы с учётом выходных и праздников.

sales_stats(period, group_by?, compare_to?, pipeline?, manager?, exclude_junk?)
KPI продаж за период: created, won, lost, sum_won, avg_check, win_rate, cohort_won_%, медианный цикл. Группировка: manager | month | pipeline | source.
cohort_stats(created_period, pipeline?, source?, manager?)
Честная конверсия когорты лидов, созданных в периоде: cohort_size, won/lost/still_open, won_%, maturity_%, sum_won, медианный цикл. Предупреждает о незрелых когортах.
funnel_snapshot(pipeline?, manager?)
Текущий срез воронки: этап × число открытых сделок × сумма. Показывает, где скапливаются сделки прямо сейчас.
stuck_leads(days=7, limit=20, pipeline?, manager?)
Активные (не won/lost) сделки без касаний дольше N дней, по updated_at; сортировка по застою. Простой возвращается в двух величинах: idle_work_days — рабочие дни молчания по графику аккаунта, idle_cal_days — календарные (шесть календарных дней через выходные = четыре рабочих). Фильтр days — календарный.
response_time_stats(period, group_by='manager', pipeline?, business_hours=true)
Приватный. Время от создания лида до первого действия человека (отвеченный звонок, смена этапа, заметка, исходящее сообщение в чате); события роботов не считаются. Считается в рабочих минутах по умолчаниюmedian_work_min и avg_work_min по графику из настроек, рядом median_cal_min с календарной медианой: заявка в пятницу 20:30 с ответом в понедельник 10:27 — это 27 рабочих минут и ~62 календарных часа. business_hours=false возвращает только календарные минуты и нужен для сверки со старыми отчётами. Период ≤31 дня.
calls_stats(period, direction?, group_by='manager')
Звонки за период: count, вх/исх, минуты на линии, средняя длительность разговора, доля пропущенных и коротких (<30с).
loss_reasons(period, compare_to?, exclude_junk?, pipeline?, manager?)
Потерянные сделки по причинам отказа: count, доля %, сумма; отсев мусорных причин (спам/нецелевые).
time_in_stage(pipeline?, manager?)
Сколько времени сделки проводят на каждом этапе воронки — где они простаивают. Среднее и медиана по каждому этапу в рабочих днях (*_work_days) и календарных (*_cal_days): этап, начатый в пятницу вечером и закрытый в понедельник утром, — это около нуля рабочих дней, а не трое суток.
activity_stats(period, group_by='manager')
Сводная активность (события amoCRM) по менеджерам за период — звонки, задачи, сделки, заметки.
search_leads(query?, pipeline?, status?, manager?, created?, updated?, closed?, price_from?, price_to?, only_active?, only_won?, only_lost?, no_active_task?, has_overdue_task?, awaiting_reply?, with_contacts?, sort?)
Поиск сделок по тексту и фильтрам, включая гигиену: без открытых задач, с просроченными задачами (глубина, ручные/робот), ждущие ответа клиенту в чате. Этап печатается с позицией в воронке и следующим шагом: Сформирован договор [11/13→Получена предоплата] — по нему выборка ранжируется по близости к успешному закрытию без дополнительных запросов.
get_lead(id)
Полное досье сделки: карточка, кастомные поля, контакты с телефонами, компания, причина отказа, события, заметки, открытые задачи, звонки с записями и сводка переписки (кто написал последним, ждёт ли клиент ответа). В начале досье — строка state:: позиция этапа с дистанцией до успешного закрытия и именем следующего этапа, кто написал последним в чате, ближайшая открытая задача с текстом и сроком; ассистенту заданы правила приоритета — эти три сигнала главнее кастомных полей, и пустое поле не читается как несделанный шаг. Первое живое касание вынесено отдельной строкой с интервалом от создания сделки в рабочем и календарном времени; у дат создания и обновления указан возраст («40 минут назад»), у открытых задач — срок относительно сейчас. Примечания считаются тремя числами — сколько написал человек, сколько содержательных всего (включая AI-расшифровки) и сколько записей в ленте; вывод «итоги не зафиксированы» появляется, только когда содержательных нет ни одной. Полный текст — в list_notes.
get_chat(lead, limit=20)
Приватный. Текст переписки по сделке (WhatsApp, Telegram и др. через мессенджеры amo): хронология с разметкой клиент / менеджер / робот. Чтения чатов в официальном API amoCRM нет вообще.
list_notes(entity_id, entity='lead', human_only=true, types?, since?, until?, order='asc', limit=50, offset=0, max_chars=4000, include_linked=true, read_files=false, file_max_chars=30000, file_offset=0, strip_timecodes=true)
Примечания одной карточки полным текстом: итоги встреч, договорённости, AI-расшифровки звонков. Лента собирается так же, как её показывает карточка amoCRM — примечания сделки плюс примечания связанных контактов и компании (расшифровки звонков хранятся на контакте, и по документированному методу сделки их не видно); у каждого примечания указано, на какой карточке оно лежит. human_only=true оставляет написанное человеком, счётчик скрытого отдельно считает содержательные записи роботов и служебный шум.

Вложенные файлы читаются в два шага. В любом ответе каждое вложение показано строкой: имя, расширение, размер в символах, пометка «читаемый» или «бинарный» и номер записи. Сам файл при этом не скачивается. Содержимое приходит только по явному read_files=[номер записи] (или read_files=true — все читаемые, от мелких к крупным). Читаются .txt, .md, .log, .vtt, .srt, .csv, .tsv, .json. У субтитров strip_timecodes=true снимает таймкоды и схлопывает бегущие строки Zoom, где каждая фраза повторяется по мере набора; метки говорящих остаются. Файлы в кодировке Windows (cp1251) декодируются правильно, кодировка указывается в ответе. Длинный файл дочитывается через file_offset — на месте обрыва печатается готовый вызов со следующим смещением.
Объём: 12 минут разговора ≈ 10 000 символов, 19-минутная встреча в файле — 14 455 символов; ориентир 760–850 символов на минуту. Одно примечание — до 60 000 символов, один файл — до 100 000, бюджет файлов считается отдельно от бюджета примечаний. Файл больше 5 МБ не скачивается, его размер называется в ответе. Прочитанный файл кэшируется на неделю: повторный запрос той же расшифровки не обращается к amoCRM.
search_notes(query?, period='last_30_days', pipeline?, manager?, human_only=true, limit=50)
Поиск по тексту примечаний сразу по всем сделкам периода: где упоминали конкурента, в скольких сделках вообще зафиксировали итоги встречи. Полнотекстового поиска по примечаниям в API amoCRM нет — лента периода выкачивается и сопоставляется на стороне сервиса, поэтому период ограничен 31 днём.
repeat_customers(min_purchases=2, sort='silence', limit=50)
Приватный. Компании, купившие больше одного раза: покупки, сумма, средний чек, дата последней покупки, дни тишины. Фильтр по кастомным полям покупок — документированный API так фильтровать не умеет.
stale_customers(min_purchases=2, limit=25, scan_cap?)
Приватный. Постоянные клиенты, с которыми давно не общались: последний реальный контакт (звонки + сообщения в чатах) по всем контактам компании, отсортировано по «заброшенности».
search_contacts(query, limit?)
Поиск контактов по имени, телефону, email или иным полям.
list_calls(period?, manager?, lead_id?, contact_id?, min_duration?, direction?, limit=20)
Отдельные звонки со ссылками на записи: дата, менеджер, контакт, направление, длительность, статус.
list_tasks(manager?, status='open', group_by?, limit=20)
Задачи (открытые/выполненные/просроченные) с контекстом сделки; разделение ручных задач и задач роботов, сводка по менеджерам. Срок показан относительно текущего момента (due_in: «через 3 дня» / «2 дня назад»), глубина просрочки — в рабочих днях (overdue_work_days) и календарных (overdue_cal_days).
list_unsorted(pipeline?, limit?)
Неразобранные заявки, ожидающие принятия в воронку.
list_pipelines()
Воронки и их этапы — справочник для фильтров и интерпретации.
list_fields(entity?)
Кастомные поля сделок/контактов — имена и типы.
list_tags(entity?)
Теги сделок и контактов.
deliver_report(text, parse_mode='HTML')
Отправка готового отчёта или дайджеста в Telegram или MAX. Поддержка форматирования и разбиения длинных текстов.

Лимиты и заметки

Тарификация

Подписка
1 990 ₽ / месяц за один аккаунт amoCRM. Все инструменты включены, без доплат за пользователей и без лимита на число вопросов.
Периоды оплаты
6 месяцев — 11 940 ₽, ещё 1 месяц в подарок (7 месяцев доступа); 10 месяцев — 19 900 ₽, ещё 3 месяца в подарок (13 месяцев доступа).
Пробный период
14 дней полного доступа бесплатно, карта не нужна.
Интеграторам
Оптовые условия под объём: отдельный доступ на каждого клиента, скидка за объём, приоритетная поддержка.
Что оплачивается
Только доступ к данным для ИИ. Отчёты, расписание и вопросы — в приложении пользователя, без доплат amoBridge.

Вендор

amoBridge разрабатывает Make Rock (ИП Заводов Павел Владимирович, ИНН 390613140002, ОГРНИП 316392600052935) — официальный сертифицированный партнёр amoCRM с крупными обучающими каналами на YouTube и в Telegram. Реквизиты и бизнес-профиль: Точка Банк →.

Машиночитаемый манифест

JSON ниже дублируется в <script type="application/json" id="mcp-manifest"> для программного разбора.