Описание интеграции

Реализовать двустороннее взаимодействие между Discord-каналом и системой поддержки Usedesk. При использовании сервиса агентство или support-команда сможет принимать/отвечать на обращения в режиме реального времени.

Направление Discord → Usedesk

  • Обрабатывать только сообщения не от ботов в заданном канале.
  • На первое сообщение от пользователя создаётся новый заявка (тикет) в Usedesk.
  • Последщие сообщать добавляются как комментарии к активному тикету (1 открытый тикет на пользователя).
  • В заявку Включать: текст, никнейм, User ID, email вида <id>?@discord.local, название сервера, канала, ссылку на оригинальное сообщение и его изображения/вкладыши (ссылкой).

Направление Usedesk → Discord

Использоваться системные webhook-эвенты (событие ticket.comment.created).

  • Реагировать только ответы агента (оператора), игнорировать служебные/системные сообщения.
  • Отвечать юзеру немедленно в личный канал Discord (канал-тред).

Технические требования

  • Стенд: Node.js (Discord.js) или Python (Discord.py), REST API, Webhook.
  • Конфигурация: все токены/ID вынести в `.env` файл.
  • В рабочем режиме 24/7 (демон/контейнер).
  • Логирование под уровнем: отладка, info, error.
  • Защитить от дубликатов по уиду сообщения/комментария.

Документация к API Discord: официальный референс Developers Discord; UsedREST-package - by Usedes/Usedocs с их паблик вебхуками.

Архитектура

  • Каждый ответ в ТГ формате author (role): text
  • Все внетренние сценарии (создание, связовой ID, личные ключи) хранить в самом боте - БД не предусмотрено (оперативная память). Только на Redis/Vars.