Ответить в диалоге

Этот метод позволяет отвечать в диалоге и добавлять внутренние заметки.

URL

POST https://api.carrotquest.io/v1/conversations/{id}/reply

В качестве {id} нужно использовать ID диалога.

Аргументы

Этот метод следует общим правилам. Аргументы передаются как GET или POST параметры.

Аргумент Описание
auth_token Обязательный. Токен авторизации (нужен scope: conversations-write)
body Обязательный. Сообщение
from_user Укажите true в случае отправки сообщения от пользователя на сайте (в этом случае нужен scope as-user)
from_admin Укажите ID администратора в случае ответа от администратора<!-- (можно указать default_admin — администратор по умолчанию)
bot_name Укажите имя бота, от которого происходит отправка. Имя по умолчанию: Bot-->
type Тип сообщения: reply_admin или note. По умолчанию: reply_admin. При отправке от имени пользователя игнорируется
random_id Случайный ID ConversationPart для контроля отправки. По умолчанию: 0
auto_assign ID администратора. Перед ответом автоматически назначить диалог администратору с этим ID
auto_assign_random_id Случайный ID ConversationPart о назначении для контроля отправки. По умолчанию: 0

Чтобы точнее контролировать, от чьего имени будет отправлено сообщение, используйте from_admin и from_user.

Чтобы указать тип сообщения (обычный ответ или заметка), задайте type.

Чтобы перед ответом автоматически назначить диалог на того или иного администратора, можно указать его ID в поле auto_assign.

random_id и auto_assign_random_id используются для контроля отправки. Вы можете записать сюда случайное 32-битное число, которое придет в поле random_id, если вы слушаете канал conversation_reply.{app_id} через риалтайм-сервисы.

Ситуация такая: вы отправляете сообщение и одновременно слушаете канал conversation_reply через риалтайм-сервисы. Как только пользователь отправил сообщение, вы сразу же отрисовываете его на экране. И это же самое сообщение приходит через риалтайм-сервисы. Чтобы не показывать это сообщение дважды, вы сравниваете random_id от пришедшего сообщения с тем что вы уже отправляли, и если они совпадают, то это то же самое сообщение и отображать его второй раз не нужно.

Примеры

<!--Ответить от имени бота:

curl -X POST \
  --data-urlencode "body=Some Bot Message" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/conversations/1789152/reply

--> Ответить от имени администратора (ID администратора 8164):

curl -X POST \
  --data-urlencode "body=Some Admin Message" \
  --data-urlencode "from_admin=8164" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/conversations/1789152/reply

Ответить от имени пользователя на сайте:

curl -X POST \
  --data-urlencode "body=Some User Message" \
  --data-urlencode "from_user=true" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/conversations/1789152/reply

Добавить заметку от имени администратора (ID администратора 8164):

curl -X POST \
  --data-urlencode "body=Some Admin Message" \
  --data-urlencode "from_admin=8164" \
  --data-urlencode "type=note" \
  --data-urlencode "auth_token=XXX" \
  https://api.carrotquest.io/v1/conversations/1789152/reply

Ответ

{
  "data": {
    "id": 48719451,
    "id_assign_part": 48719450
  },
  "meta": {
    "status": 200
  }
}

Ответ будет содержать ID новой ConversationPart в поле id.

Если диалог был автоматически назначен кому-либо, то поле id_assign_part будет содержать идентификатор ConversationPart, соответствующей этому назначению.