Перейти к основному содержимому

CRM и платежи

Методы воронки продаж и приёма оплаты.

Авторизация

Права: crm:read / crm:write для воронки, payments:read / payments:write для платежей.


Как устроена CRM конструктора

Отдельной таблицы сделок в конструкторе нет. Карточка клиента — это подписчик, а этап воронки хранится его тегом. Поэтому:

  • перевод по воронке через API — то же самое, что перетащить карточку мышкой на доске;
  • если у цепочки стоит запуск по тегу этапа, она сработает и при переводе через API;
  • фильтр по этапу — это фильтр по тегу, он уже есть в разделе диалогов.

Этапы

GET|POST /crm/stage/list — этапы воронки по порядку.

{ "items": [ { "id": 3, "name": "Новый", "color": "blue-5", "order": 0 } ] }

Параметр group — воронка конкретного проекта: у каждой группы ботов она своя.

POST /crm/stage/create — новый этап: name, необязательные color и group.


Доска

GET|POST /crm/board

{
"items": [
{ "name": "Новый", "color": "blue-5", "count": 42 },
{ "name": "В работе", "color": "orange-5", "count": 7 }
],
"without": 315,
"total": 364
}

without — сколько клиентов ещё не на этапе.

GET|POST /crm/stage/subscribers с параметром stage — карточки одной колонки.


Перевести клиента

POST /crm/stage/set

curl -X POST https://api.quescha.com/api/crm/stage/set \
-H "Authorization: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"botid":"123456789","clientid":"987654321","stage":"Оплачен"}'
{ "ok": true, "stage": "Оплачен", "chains": true }

chains: true означает, что обработка тегов прошла и цепочки, привязанные к этапу, запустились. Пустой stage снимает этап.

GET|POST /crm/stage/get — текущий этап и ответственный подписчика.


Ответственные и сотрудники

GET|POST /crm/assignee/list — владелец аккаунта и сотрудники кабинета.

POST /crm/assignee/set — назначить ответственного: параметр assignee — логин, пустой снимает назначение.

GET|POST /crm/manager/list — сотрудники, которым бот отправляет заявки (раздел «Сотрудники»).


Платежи

Подключённые системы

GET|POST /payment/system/list

{ "items": [ { "id": 12, "name": "ЮKassa магазина", "type": "yookassa" } ] }

Создать ссылку на оплату

POST /payment/link/create

curl -X POST https://api.quescha.com/api/payment/link/create \
-H "Authorization: ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{
"system": "ЮKassa магазина",
"sum": "3500",
"description": "Заказ A-1024",
"returnurl": "https://example.com/thanks"
}'
ПолеОбязательныйОписание
systemДаномер или название платёжной системы
sumДасумма
currencyНетпо умолчанию RUB
descriptionНетназначение платежа
returnurlНеткуда вернуть плательщика
payloadsНетмассив [{name, data}] — свои поля, они вернутся в событии об оплате
{ "link": "https://...", "payment": 91024, "system": "ЮKassa магазина", "sum": "3500" }
Что делает и чего не делает эта ссылка

Ссылка создаётся тем же кодом, что и кнопка проверки ссылки в интерфейсе, и не привязана к сообщению бота: после оплаты сценарий не продолжится сам.

Зато отметка об оплате ставится — её видно методом /payment/status и событием payment.success в подписке на события. Если нужно продолжение сценария в боте, создавайте ссылку действием «Платежи» внутри бота.

Статус и список

GET|POST /payment/status с параметром payment:

{ "payment": 91024, "system": "yookassa", "paid": true, "visits": 2, "created": "…" }

GET|POST /payment/list — платежи за период: paid, from, to, limit, offset.

Не опрашивайте статус в цикле

Подпишитесь на событие payment.success — конструктор сообщит об оплате сам. См. Подписка на события.