API конструктора

Какие запросы поддерживает конструктор и как их выполнять.

которые Функции API- запросов можно выполнять в Калькуляторе.

Запросы выполняются методом POST на URL, типа: https://chatter.salebot.pro/api/{api_key}/{action}

Где: api_key ключ доступа к API, который получается в настройках проекта (Рисунок 1)

Получить ключ доступа можно с использованием переменной #{api_key}. В ней хранится актуальный сгенерированный ключ доступа. Не забудьте перед использованием сгенерировать токен.

При копировании url запроса с этой страницы подставляется пробел, который необходимо при вызове удалить.

Пример неправильно скопированной ссылки: https://chatter.salebot.pro /api/callback

Пробел после .pro не так просто заметить. С ним запрос не будет выполняться

При отправке запроса методом GET не используйте запрещенные символы. Изучите правильное формирование GET запросов.

Как получать сообщения на Webhook URL, указанный в настройках проекта

Каждое входящее или исходящее сообщение будет приходить следующим json POST запросом:

{
    'id': идентификатор сообщения в системе,
    'client': {
        'id': идентификатор клиента в системе,
        'recepient': идентификатор клиента в мессенджере,
        'client_type': тип мессенджера,
        'name': имя клиента,
        'avatar': аватар клиента,
        'created_at': дата создания клиента,
        'tag': ключ подписки,
        'group': бот, к которому привязан клиент,
    },
    'message': текст сообщения,
    'attachments': массив, который содержит ссылки на файлы либо словари ссылок на файлы 
    'message_id': id блока, из которого было отправлено сообщение
    'project_id': идентификатор проекта,
    'is_input': 1 если сообщение от клиента, 0 если оно от бота,
    'delivered': 1 если сообщение успешно отправлено, 0 если произошла ошибка отправки,
    'error_message': текст ошибки отправки сообщения
}

Если запрос вернул ошибку, повторной отправки не будет. Если сервер возвращает ошибки, уведомления продолжат отправляться несмотря на это.

Как написать json-запрос

Переходим в настройки блока, в котором у нас будет осуществляться запись данных таблицу.

  1. Добавляем раздел API-запрос.

  2. Выбираем тип запроса POST-json

  3. Переходим к заполнению полей запроса:

URL запроса - путь к функции для выполнения запроса. Далее в документации всегда в первой строке, рядом с типом запроса:

Сохраняемые значения - перечень параметров ответа запроса с указанием имен переменных, в которые следует сохранить результат в формате:

параметр_из_запроса -> ваша_переменная

Если в ответ получаем параметры сложной структуры, то разбираем их так:

  • "cell_number":{"row":4,"col":2} cell_number|row -> Строка; cell_number|col -> Столбец

Заголовок запроса - заполняется при необходимости. Чаще всего здесь передаются форматы передаваемых данных и/или токен доступа

JSON-параметры - тело запроса, в котором прописываются параметры передаваемых данных в формате(ниже возможный вариант написания):

{"client_id": "#{id_получателя_в_конструкторе}", "message":"Hello!"}

Для понимания в какой структуре запрос возвращает ответ, напишите в поле Сообщение вывод значения переменной #{custom_answer}.

Далее в документации допустимые параметры указаны в Body:

Как использовать универсальный webhook

Перечисленные методы теперь могут быть запущены как POST, так и GET запросом.

Раньше в наших методах были жестко прописаны параметры, по которым запускались выполнения методов для подписчиков (например client_id и vk_id) и это накладывало некоторые ограничения для использования их со сторонними сервисами.

Теперь вы можете указать, в каком параметре запроса сэйлбот будет искать идентификатор пользователя: для этого используется параметр с префиксом value_, например value_user_id и value_group_id.

А еще метод отправки колбека callback, теперь можно запустить передав электронный адрес (client_email) или телефон (client_phone) клиента.

Методы callback, vk_callback, ok_callback и whatsapp_callback не привязаны к именам параметра. Вы можете указать, в каком параметре будет находиться номер телефона, email или id-клиента.

Это удобно, когда вы настраиваете прием вебхука с какого-то сайта.

Чтобы указать, в какой переменной лежит client_id, необходимо передать параметр value_client_id, в котором указать название параметра с этим значением.

Чтобы указать, в какой переменной лежит phone, необходимо передать параметр value_phone, в котором указать название параметра с этим значением.

Чтобы указать, в какой переменной лежит email, необходимо передать параметр value_email, в котором указать название параметра с этим значением.

Чтобы указать, в какой переменной лежит user_id, необходимо передать параметр value_user_id, в котором указать название параметра с этим значением.

Чтобы указать, в какой переменной лежит group_id, необходимо передать параметр value_group_id, в котором указать название параметра с этим значением.

Пример:

В адрес пропишем value_client_id = my_client

https://chatter.salebot.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback?value_client_id=my_client {"my_client":49177759, "message":"Hello world"}

Запрос будет эквивалентен запросу ниже:

https://chatter.salebot.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback {"client_id":49177759, "message":"Hello world"}

Как можно заметить, название параметра, в котором лежит имя, отличается припиской value_

Обращаем внимание!

Некоторые события генерируют системное уведомление в проекте.

Например, существуют системные уведомления с message, которые приходят не пустыми, но без текста от клиента.

При этом в проекте также могут генерироваться хуки message с определенным содержанием следующего вида: "message: new_chat_member"

Соответственно, следует обращать внимание на содержание: это либо системное уведомление, либо хук с определенным событием.

Как запускать бота

Запуск бота

POST https://chatter.salebot.pro/api/#{api_key}/callback

URL запроса: https://chatter.salebot.pro/api/#{api_key}/callback Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем ресурсе. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохранятся в переменные. Метод отправки колбека, теперь можно запустить передав электронный адрес (client_email) или телефон (client_phone) клиента.

Path

api key* - токен доступа

Body

client_phone - телефон, по которому будет искаться клиент

client_email - email, по которому будет искаться клиент

client_id - id клиента в конструкторе

message - Текст сообщения

resume_bot - True (необязательный параметр). Если бот на паузе, чтобы снять с паузы.

Пример: resume_bot = True

import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/callback'
requests.post(url, json=params)

Запуск бота по идентификатору пользователя ВКонтакте

POST https://chatter.salebot.pro/api/#{api_key}/vk_callback

URL запроса: https://chatter.salebot.pro/api/#{api_key}/vk_callback

Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем ресурсе. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохранятся в переменные.

Path

api key* - токен доступа

Body

message - Текст сообщения user_id - id пользователя вконтакте group_id - id группы вконтакте resume_bot - True (необязательный параметр). Если бот на паузе, чтобы снять с паузы. Пример: resume_bot = True

params = {"user_id": '146467928', "group_id": '143414131', 'message': 'test'}
api = 'cab4233db32c8af006c91945fa03cb468d1fd845f140'
url = f'https://chatter.zmservice.ru/api/{api}/vk_callback'
requests.post(url, json=params)

Запуск бота по номеру WhatsApp

POST https://chatter.salebot.pro/api/<api_key>/whatsapp_callback

URL запроса: https://chatter.salebot.pro/api/<api_key>/whatsapp_callback

Этот метод может запустить вотсап бота, после регистрации клиента на сайте или после того, как он оставит заявку с номером телефона. Дополнительно переданные параметры сохранятся в переменные.

Path

api key* - токен доступа

Body

name - Имя клиента message - Текст сообщения phone - Номер телефона клиента bot_id - Идентификатор бота resume_bot - True (необязательный параметр). Если бот на паузе, чтобы снять с паузы. Пример: resume_bot = True

Запуск бота по идентификатору пользователя Одноклассников

POST https://chatter.salebot.pro/api/#{api_key}/ok_callback

URL запроса: https://chatter.salebot.pro/api/#{api_key}/ok_callback

Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем ресурсе. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохранятся в переменные.

Path

api key* - токен доступа

Body

name - Имя клиента message - Текст сообщения user_id - Идентификатор бота group_id - ID группы Одноклассников resume_bot - True (необязательный параметр). Если бот на паузе, чтобы снять с паузы. Пример: resume_bot = True

Запуск бота по идентификатору Telegram

POST https://chatter.salebot.pro/api/#{api_key}/tg_callback

URL запроса: https://chatter.salebot.pro/api/#{api_key}/tg_callback

Метод можно использовать для запуска воронки у клиента или подтверждения действия на стороннем сайте. Данное сообщение не увидит клиент. Дополнительно переданные параметры сохраняются в переменные.

Path

api key* - токен доступа

Body

message - Текст сообщения user_id - Идентификатор пользователя в Телеграм group_id - название бота (заканчивается на bot) resume_bot - True (необязательный параметр). Если бот на паузе, чтобы снять с паузы. Пример: resume_bot = True

Отправка Callback-сообщений списку клиентов по platform_id

POST https://chatter.salebot.pro/api/#{api_key}/send_callback_by_platform_id

URL запроса: https://chatter.salebot.pro/api/#{api_key}/send_callback_by_platform_id

При обнаружении в проекте клиентов с platform_id из списка отправит callback с текстом из поля callback_text. Ограничение: 1 запрос = не более 300 отправлений

Пример параметров запроса: {"platform_ids":[407184121, "79609879898", "2rwewefw"], "callback_text": "test_callback"}

Path

api key* - токен доступа

Body

platform_ids - список идентификаторов клиентов в мессенджере callback_text - текст callback group_id - идентификатор бота

Отправка callback-сообщения email-клиенту

POST https://chatter.Salebot.pro/api/#{api_key}/email_callback

URL запроса: https://chatter.Salebot.pro/api/#{api_key}/email_callback

Этот метод может запустить email-бот после регистрации клиента на сайте или после того, как он оставит заявку с email, при этом метод находит email-клиента или создает его, если тот не найден.

Дополнительно переданные параметры сохранятся в переменные

Path

api key* - токен доступа

Body

name - имя клиента message - текст сообщения email - адрес почты email_id_bot - email-адрес бота resume_bot - True (необязательный параметр).

Если бот на паузе, чтобы снять с паузы.

Пример: resume_bot = True

Как работать с сообщениями

Параметры отправки сообщения

attachment_type может принимать значения: image, video, link, file, audio При отправке вложения параметр message необязателен buttons - определяет кнопки, которые будут прикреплены к сообщению. Формат кнопок аналогичен расширенным настройкам кнопок. Возможны два варианта передачи кнопок: с указанием подсказки для мессенджеров без кнопок и без нее.

Пример параметра buttons:

"buttons": {"hint": "Этот текст будет отображен в вотсапе",
 "buttons": [
    {"type": "reply", 
     "text": "Расскажи об услугах", 
     "line": 0, "index_in_line": 0}, 
       
    {"type": "reply", 
     "text": "Стоимость услуг", 
     "line": 0, 
     "index_in_line": 1}, 
        
    {"type": "reply", 
     "text": "Контакты", 
     "line": 1, "index_in_line": 0}, 
        
    {"type": "reply", 
     "text": "Оставить заявку", 
     "line": 1, "index_in_line": 1}
   ] 
}

Отправка сообщения клиенту

POST https://chatter.salebot.pro/api/#{api_key}/message

URL запроса: https://chatter.salebot.pro/api/#{api_key}/message

Этот метод можно использовать для отправки сообщений с уведомлениями. Параметр message обязателен, если вы не отправляете файл. Если вы отправляете файл, текст необязателен.

Path

api key* - токен доступа

Body

message_id - Номер блока для отправки message - Текст сообщения client_id - id клиента в конструкторе attachment_type - Тип отображения файла. Обязательный, если передан attacment_url attachment_url - url файла buttons - Кнопки

import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/message'
requests.post(url, json=params)

ЕСЛИ отправляем вложение:
params = {"message": "какое-нибудь сообщение", 
"client_id": "1234565", "attachment_type": "video/image/file", 
"attachment_url": "https://qwreqw"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/message'
requests.post(url, json=params)

//где в attachment_type указываем либо video, либо image, либо file - 
в зависимости от того, какое вложение: видео, картинка или документ

Отправка сообщения в Whatsapp

POST https://chatter.salebot.pro/api/<api_key>/whatsapp_message

URL запроса: https://chatter.salebot.pro/api/<api_key>/whatsapp_message

Позволяет отправить сообщение от имени подключенного бота на указанный номер whatsapp_bot_id необходимо взять из раздела мессенджеры и чаты. Каждому подключенному вотсапу конструктор присваивает уникальный идентификатор.

Path

api key* - токен доступа

Body

message_id - Номер блока для отправки whatsapp_bot_id - Идентификатор вотсап бота, от которого нужно отправить сообщение attachment_url - url файла attachment_type - Тип отображения файла. Обязательный, если передан attacment_url message - Текст сообщения phone - Номер телефона получателя

import requests
import json

params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/whatsapp_message'
requests.post(url, json=params)

Массовая отправка сообщений

POST https://chatter.salebot.pro/api/#{api_key}/broadcast

URL запроса: https://chatter.salebot.pro/api/#{api_key}/broadcast

Метод позволяет запустить рассылку.

Можно использовать один из вариантов, они взаимоисключающие: 1. передан параметр list - рассылка будет произведена по указанному списку клиентов Метод позволяет запустить рассылку.

2.передан параметр clients - рассылка будет произведена по массиву переданных идентификаторов клиентов

3.передан параметр platform_ids и group_id - рассылка будет произведена по массиву переданных platform_id (идентификатор в мессенджере) указанного бота (group_id)

4.Если не передан ни один из выше перечисленных, рассылка будет произведена по всем клиентам

Обязательный параметр message (и\или attachment_type и attachment_url) ИЛИ message_id

Path

api key* - токен доступа

Body

list - Номер списка, по которому необходимо разослать

clients - Идентификаторы получателей в конструкторе

message - Текст сообщения

platform_ids - Идентификаторы получателей в мессенджере. Вместе с ним передать обязательный параметр group_id

group_id - Обязательный, работает только с platform_ids. При работе с другими вариантами - игнорируется. Для отправки по platform_ids указанного бота.

attachment_url - url файла

attachment_type - Тип отображения файла. Обязательный, если передан attacment_url

buttons - кнопки

message_id - Номер блока для отправки

shift - Количество секунд между сообщениями. По умолчанию 0.2

import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/broadcast'
requests.post(url, json=params)

Получение истории сообщений

GET https://chatter.salebot.pro/api/#{api_key}/get_history?client_id=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_history?client_id=

Параметр client_id можно получить ТУТ

Path

api key* - токен доступа

Body

client_id - id клиента

limit - Количество элементов в ответе/ По умолчанию 2000, максимальное значение 2000

start_date - указание даты, начало периода выборки (поле обязательное, если указывается stop_date), формат: дд.мм.гггг

stop_date - указание даты, конец периода выборки (поле обязательное, если указывается start_date), формат: дд.мм.гггг

{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "Пышь тышь",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true",
      "manager_id": 12486,
      "manager_email": "example@mail.com"
    },
  ]
}

Очистить историю сообщений

GET https://chatter.salebot.pro/api/#{api_key}/clear_history?client_id=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/clear_history?client_id=

Удаляет историю переписки

Path

api key* - токен доступа

Body

client_id - id клиента

import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/clear_history?client_id=85856'
requests.get(url)

Как распределять клиентов

Определение клиента сотруднику

POST https://chatter.salebot.pro/api/#{api_key}/assign_to_user

URL запроса: https://chatter.salebot.pro/api/#{api_key}/assign_to_user

Метод позволяет определить клиента сотруднику. Параметр e-mail не обязателен. Если емейл не передать, распределит по алгоритму системы.

Path

api key* - токен доступа

Body

client_id - id клиента e-mail - е-мейл сотрудника (опционально)

import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/broadcast'
requests.post(url, json=params)

Загрузка клиентов в систему

POST https://chatter.salebot.pro/api/{#api_key}/load_clients

URL запроса: https://chatter.salebot.pro/api/{#api_key}/load_clients

Метод позволяет загрузить клиентов в систему. При загрузке клиентов whatsapp можно передавать номер в свободном формате, как с концовкой @s.whatsapp.net, так и без нее.

Идентификатор группы (group_id) можно получить ТУТ через /api/<api_key>/connected_channels

(если client_type=13 (телефония), то group_id="")

Тип мессенджера, откуда пришел клиент (client_type) можно посмотреть ТУТ

Пример: [{"platform_id":"79875555555","group_id":34810,"client_type":6}]

Path

api key* - токен доступа

Body

platform_id - номер телефона group_id - id группы client_type - тип мессенджера, откуда пришел клиент

import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/load_clients'

params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# в случае успеха функция вернет каждому элементу идентификатор и статус добавления
# пример ответа
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}

Добавить клиентов в список

POST https://chatter.salebot.pro/api/<api_key>/add_to_list

URL запроса: https://chatter.salebot.pro/api/<api_key>/add_to_list

Добавляет клиентов в список

Path

api key* - токен доступа

Body

list_id - Номер списка client_id - id клиента

Удалить клиентов из списка

POST https://chatter.salebot.pro/api/#{api_key}/remove_from_list

URL запроса: https://chatter.salebot.pro/api/#{api_key}/remove_from_list

Удаляет клиентов из списка

Path

api key* - токен доступа

Body

list_id - Номер списка clients - Массив с номерами клиентов

Получение списка клиентов

GET https://chatter.salebot.pro/api/<api_key>/get_clients

URL запроса: https://chatter.salebot.pro/api/<api_key>/get_clients

Path

api key* - токен доступа

Body

offset - Смещение относительно первого элемента limit - Количество элементов в ответе/ По умолчанию 500, максимальное значение 500. list - номер списка reverse - указание обратной сортировки(от самой "старой" записи к самой "новой"). Параметр работает при отсутствии параметра list

Возвращает статус и массив элемента

{
"status":"success",
"clients":[{
    "id":44483,
    "platform_id":"146467928",
    "client_type":0,
    "name":null,
    "avatar":null,
    "message_id":null,
    "project_id":1,
    "created_at":1588248599,
    "updated_at":1588248599,
    "custom_answer":null,
    "tag":null,
    "group":"143414131",
    "operator_start_dialog":null
    }
]
}

Получение списка подписчиков на бота в любом мессенджере

GET https://chatter.salebot.pro/api/#{api_key}/subscribers

URL запроса: https://chatter.salebot.pro/api/#{api_key}/subscribers

Получение информации о клиентах из выбранного мессенджера.

Внимание! метод не возращает переменные!

Path

api key* - токен доступа

Body

page tag - Tag, который был указан на подписочной странице group - ID группы вк, к которой привязан подписчик date_from - После какой даты подписался. timestamp date_to - До какой даты подписался timestamp client_type - идентификатор мессенджера, для которого нужно узнать список подписчиков. Если ничего не передать - выведет всех клиентов

[  
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "Дмитрий Спирин",
    "vk_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Иван Иванов",
    "vk_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]

Получение списка подписчиков на бота Вконтакте

GET https://chatter.salebot.pro/api/#{api_key}/vk_subscribers

URL запроса: https://chatter.salebot.pro/api/#{api_key}/vk_subscribers

Получение информации о клиентах из мессенджера Вконтакте. Метод был написан специально для интеграции с Eresh.

Внимание! метод не возращает переменные!

Path

api key* - токен доступа

Body

page tag - Tag, который был указан на подписочной странице group - ID группы вк, к которой привязан подписчик date_from - После какой даты подписался. timestamp date_to - До какой даты подписался timestamp

[
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "Дмитрий Спирин",
    "vk_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Иван Иванов",
    "vk_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]

Как работать с переменными

Присвоение переменных

POST https://chatter.salebot.pro/api/#{api_key}/save_variables

URL запроса: https://chatter.salebot.pro/api/#{api_key}/save_variables

Позволяет сохранить переменные в заявку и в клиента. Запрос присвоения переменных по умолчанию добавляет в переменные сделок. И если нужно изменить переменные в профиле, нужно прописывать префикс client. Например, для телефона: client.phone

Update: Параметр clients позволяет массово присваивать переменные.

Пример: {"client_id":49177759, "variables":{"client.phone":"88888888888"}}

Path

api key* - токен доступа

Body

clients - Массив id клиентов для присвоения переменных client_id - id клиента variables - Хеш переменных(ключ-значение)

import requests
import json

params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/save_variables'
requests.post(url, json=params)

Получение переменных

GET https://chatter.salebot.pro/api/#{api_key}/get_variables?client_id=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_variables?client_id=

Пример: https://chatter.salebot.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/get_variables?client_id=49177759

Path

api key* - токен доступа

Body

client_id - id клиента

import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/get_variables?client_id=85856'
requests.get(url)

Как получить id клиента (client_id)

Получение client_id по значению platform_id

POST https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_platform_id

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_platform_id

Path

api key* - токен доступа

Body

platform_ids - массив идентификаторов в мессенджере group_id - идентификатор бота

[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"ОЛЬГА БЕЛИК",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@belik"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"Елена Молниева",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@molniy61"}
}]

Получить id клиента из Онлайн-чата

GET https://chatter.salebot.pro/api/#{api_key}/online_chat_client_id?recipient=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/online_chat_client_id?recipient=

Этот метод позволяет интегрировать сайт и чат-бота. Например, если человек зашел на страницу с акцией, прислать сразу же сообщение в чат о персональном предложении.

Path

api key* - токен доступа

Body

tag - Тег (метка клиента) name - Имя клиента recipient - Идентификатор диалога на сайте

Где взять recipient?

На сайте, где размещен онлайн чат "Salebot.pro" при помощи JS получите свойство SaleBotPro.recipient_id

{ "client_id": 36553 }

Получение client_id по номеру Whatsapp

GET https://chatter.salebot.pro/api/#{api_key}/whatsapp_client_id?phone=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/whatsapp_client_id?phone=

Метод вернет идентификатор клиента для выполнения запросов к API, если вы знаете номер телефона клиента в Whatsapp Если клиента нет с таким номером, то метод вернет 404

Path

api key* - токен доступа

Body

phone - Номер телефона group_id - Идентификатор бота

Получение client_id по номеру телефона

GET https://chatter.salebot.pro/api/<api_key>/find_client_id_by_phone?phone=

URL запроса: https://chatter.salebot.pro/api/<api_key>/find_client_id_by_phone?phone=

Метод вернет идентификатор клиента для выполнения запросов к API. Поиск происходит как по клиентам whatsapp, так и по переменным

Path

api key* - токен доступа

Body

phone - Номер телефона

Получение client_id по email

GET https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_email?email=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_email?email=

Метод вернет идентификатор клиента для выполнения запросов к API. Поиск происходит по переменным.

Path

api key* - токен доступа

Body

email - Email для поиска

Получение client_id по значению переменной

GET https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_var?var=&val=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_client_id_by_var?var=&val=

Метод вернет идентификатор клиента для выполнения запросов к API

Path

api key* - токен доступа

Body

var - Имя переменной, по которой будет поиск val - Значение переменной group_id - Идентификатор группы search_in - Передать значение 'order' для поиска по переменным сделки; Ищет до 3-х переменных у клиентов проекта, возвращает список клиентов, у которых есть все заявленные переменные.

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

GET https://chatter.salebot.pro/api/#{api_key}/find_latest_client_id_by_var?var=&val=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_latest_client_id_by_var ?var=&val=

Метод вернет id последнего созданного клиента для выполнения запросов к API. Ищет по переменным клиента и сделок.

Path

api key* - токен доступа

Body

var - Имя переменной, по которой будет поиск val - Значение переменной

Получение списка client_id по значению переменной

GET https://chatter.salebot.pro/api/#{api_key}/find_all_client_id_by_var?var=&val=

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_all_client_id_by_var?var=&val=

Метод вернет список идентификаторов клиентов, у которых есть заданная переменная с заданным значением

Path

api key* - токен доступа

Body

var - Имя переменной, по которой будет поиск val - Значение переменной

{
    // Response
}

Получение списка client_id по значениям нескольких переменных

GET https://chatter.salebot.pro/api/#{api_key}/find_all_client_id_by_several_vars?var=val

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_all_client_id_by_several_vars?var=val

Path

api key* - токен доступа

Body

variable1 - Значение1

variable2 - Значение2

variable3 - Значение3

{
 "status":"success","client_ids":[93891114]
}

Поиск по переменным

GET https://chatter.salebot.pro/api/#{api_key}/find_clients

URL запроса: https://chatter.salebot.pro/api/#{api_key}/find_clients

Метод осуществляет поиск по переменным, вернет список идентификаторов клиентов, удовлетворяющих условию запроса.

Примеры параметров: по умолчанию поиск производится по переменным клиента (рекомендуется)

{"q": {"result": "ok", "var": "дом", "var": "60"}} - поиск по переменным клиента, у клиента должны быть все указанные переменные

{"q": {"result": "ok", "var": "дом", "var": "60"}, "search_in": "order", "include_all": False} - поиск по переменным сделок ("search_in": "order"), в сделке должны быть хотя бы одна из указанных переменных ("include_all": False)

{"q": {"name": {"_in": ["Joe", "Jane", "Donald"]}}} - переменная клиента name равна одному из значений списка ["Joe", "Jane", "Donald"]

{"q": {"name": {"_not_in": ["Joe", "Jane", "Donald"]}}} - переменная клиента name НЕ равна одному из значений списка ["Joe", "Jane", "Donald"]

{"q": {"name": {"_not": "Joe"}}} - переменная клиента name не равна Joe

Внимание!

Сравнение чисел возможно только, если у всех клиентов в искомой переменной число. Если хотя бы у одного будет строка, запрос не отработает.

Параметры

Path

api key* - токен доступа

Body

q - обязательный параметр, query условия на поиск переменных

search_in - по переменным какой сущности искать, если не передать ищет по переменным клиента, может принимать значение order

include_all - обязательное выполнение всех условий из параметра q, False - если одно из условий совпало, отбирает сущность

Успешно
{"status":"success","client_ids":[41203, 5622354, 785212]} 
{"status":"success","client_ids":[]} 
{"status": "fail", "message": "Parameter "q" required"} {"status": "fail", "message": "Error in parameter format"}
Ошибка
{"status":"fail","message":"Something went wrong"}

Как работать со сделками

Получение идентификатора текущей сделки

GET https://chatter.salebot.pro/api/#{api_key}/get_current_order_id

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_current_order_id

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

Успешный ответ: {"status":"success","order_id":40632}, где
order_id - идентификатор текущей сделки
Ответ с ошибкой: {"status":"client_not_found"}

Получение списка сделок

GET https://chatter.salebot.pro/api/#{api_key}/get_orders

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_orders

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

order_status - Статус сделки: 0 - активные сделки 1 - успешные сделки 2 - проваленные сделки

Успешный ответ: {"status":"success","order_id":[40338,40340,40341]} 
Ответ с ошибкой: {"status":"client_not_found"}

Перемещение сделки на следующее по порядку состояние воронки Salebot

POST https://chatter.salebot.pro/api/#{api_key}/move_order_to_next_state

URL запроса: https://chatter.salebot.pro/api/#{api_key}/move_order_to_next_state

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

order_id - Идентификатор сделки

Ответ в случае успеха: 
{"status":"success","state_id":37}, где 
state_id - идентификатор состояния в SalebotCRM 
Ответ с ошибкой: 
{"status":"client_not_found"}

Получение данных сделки

POST https://chatter.salebot.pro/api/#{api_key}/get_order_vars

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_order_vars

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

order_id - Идентификатор сделки

variables - массив переменных (формат:["var_name1", "var_name2"])

Ответ в случае успеха: 
{"status":"success","result":{"var_name1":"111","var_name2":"13.04.2023"}} 

Пример с ошибкой: 
{"status":"client_not_found"}

Добавление переменных сделки

POST https://chatter.salebot.pro/api/#{api_key}/set_order_vars

URL запроса: https://chatter.salebot.pro/api/#{api_key}/set_order_vars

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

order_id - Идентификатор сделки

variables - массив переменных (формат:["var_name1", "var_name2"])

Ответ в случае успеха: {"status":"success"} 
Ответ с ошибкой: {"status":"order 12345 not found"}

Создание сделки

POST https://chatter.salebot.pro/api/#{api_key}/create_order

URL запроса: https://chatter.salebot.pro/api/#{api_key}/create_order

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

name - название сделки

description - описание сделки

budget - стоимость сделки

Успешный ответ: {"status":"success","order_id":40654}, 
где order_id идентификатор новой активной сделки 
Ответ с ошибкой: {"status":"client_not_found"}

Перенос сделки в состояние SalebotCRM

POST https://chatter.salebot.pro/api/#{api_key}/set_order_state

URL запроса: https://chatter.salebot.pro/api/#{api_key}/set_order_state

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

state_id - Номер состояния, в которое нужно перенести сделку клиента

Получения id состояния воронки в SalebotСRM

GET https://chatter.salebot.pro/api/#{api_key}/get_order_state

URL запроса: https://chatter.salebot.pro/api/#{api_key}/get_order_state

Path

api key* - токен доступа

Body

client_id - идентификатор клиента

state_id - Индентификатор сделки (если не указан, то метод вернет ID этапа текущей сделки)

Пример успешного ответа
{'status': 'success', 'state_id': 123456}

Пример неуспешного ответа
{'status': 'order not found'}

Какие еще есть возможности

Проверка, есть ли Whatsapp на номере телефона

GET https://chatter.salebot.pro/api/#{api_key}/check_whatsapp

URL запроса: https://chatter.salebot.pro/api/#{api_key}/check_whatsapp

Чтобы использовать метод, у вас должен быть подключен Whatsapp к salebot!!!

Вызывается как с методом GET, так и POST Номер телефона можно передавать в любом формате.

Path

api key* - токен доступа

Body

phone - Номер телефона для проверки

Получить список подключенных мессенджеров к проекту

GET https://chatter.salebot.pro/api/<api_key>/connected_channels

URL запроса: https://chatter.salebot.pro/api/<api_key>/connected_channels

Функция возвращает к каждому мессенджеру параметр group_id, именно его необходимо передавать при загрузке клиентов. Для Whatsapp также возвращается поле status, которое принимает значения: NOT_STARTED = 0 STARTED = 1 ASLEEP = 2 STOPPED = 3

Path

api key* - токен доступа

{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'salebotstage', 
        'name': 'salebotstage', 
        'enabled': true,
        'group_id': 11}], 
'facebook': [], 
'telegram': [{
        'id': 23, 
        'short_name': 'bulls_vs_bears_bot', 
        'name': 'bulls_vs_bears_bot', 
        'enabled': true,
        'group_id': 'bulls_vs_bears_bot'}], 
'whatsapp': [], 
'avito': [], 
'ok': [], 
'vkontakte': [{
        'id': 33, 
        'group': '143414131',
        'group_id': '143414131'}]
}

Получение списка блоков из схемы бота

GET https://chatter.salebot.pro/api/<api_key>/get_messages

URL запроса: https://chatter.salebot.pro/api/<api_key>/get_messages

Path

api key* - токен доступа

Получение вложенных данных клиента

delimiter

Для получения client_id и/или телефона клиента, которые лежат не на первом уровне, а во вложенных словарях, воспользуйтесь параметром delimiter:

Для этого к URL запроса добавьте:

?delimiter=1&delimiter_value_client_id={key1}1{key2}&delimiter_value_phone={key1}1{key2}

где

?delimiter=1 - параметр со значением. Данное значение разделяет ключи {key1}1{key2}1{key3}

delimiter_value_client_id={key1}1{key2} - получение ID клиента; delimiter_value_phone={key1}1{key2} - получение номера телефона клиента;

{key1} - ключ, в который вкладывается значение с ЛЮБЫМИ символами, кроме символов, лежащих в параметре. Ключей может быть неограниченное количество: ?delimiter=1&delimiter_value_client_id={key1}1{key2}1{key3}1{key4}1{key5}1{key6}. Ключ передается БЕЗ фигурных скобок.

Между ключами передавайте заданное значение delimiter!

если delimiter=2, то {key1}2{key2}2{key3}2,

delimiter=5, то {key1}5{key2}5{key3}5.

При присвоении значения delimiter=5, в ключе не должно быть символа 5 и т.д.

Пример:

https://chatter.salebot.pro/api/<api_key>/callback?delimiter=1&delimiter_value_client_id={key1}1{key2}&delimiter_value_phone={key1}1{key2}

Также можно получить только ID либо номер телефона: для этого после URL запроса добавьте один из необходимых запросов:

https://chatter.salebot.pro/api/<api_key>/callback?delimiter=1&delimiter_value_client_id={key1}1{key2} - для получения ID клиента;

https://chatter.salebot.pro/api/<api_key>/callback?delimiter=1delimiter_value_phone={key1}1{key2} - для получения номера телефона;

Для методов API:

  1. Запуск бота

https://chatter.salebot.pro/api/<api_key>/callback

  1. Запуск бота по идентификатору пользователя ВКонтакте

https://chatter.salebot.pro/api/<api_key>/vk_callback

  1. Запуск бота по номеру WhatsApp

https://chatter.salebot.pro/api/<api_key>/whatsapp_callback

  1. Запуск бота по идентификатору пользователя Одноклассников

https://chatter.salebot.pro/api/<api_key>/ok_callback

  1. Запуск бота по идентификатору Telegram

https://chatter.salebot.pro/api/<api_key>/tg_callback

  1. Отправка callback-сообщения email-клиенту

https://chatter.salebot.pro/api/<api_key>/email_callback

  1. Отправка сообщения клиенту

https://chatter.salebot.pro/api/<api_key>/message

8. Отправка сообщения в Whatsapp

https://chatter.salebot.pro/api/<api_key>/whatsapp_message

  1. Массовая отправка сообщений

https://chatter.salebot.pro/api/<api_key>/broadcast

  1. Присвоение переменных

https://chatter.salebot.pro/api/<api_key>/save_variables

Если вам нужны дополнительные методы, свяжитесь со службой поддержки.

Last updated