Назад к блогу
Интеграции

Интеграция Kaiten + Пачка

Инструкция, как интегрировать Kaiten с Пачкой для получения уведомлений из трекера

Автор:ivan-dakonov
Интеграция Kaiten + Пачка

Интеграция Пачка × Kaiten позволит вам получать уведомления из вашего пространства в Кайтене прямо в чат в Пачке. Вы и ваши коллеги сможете быстро реагировать на проектные задачи, обсуждать их в тредах и ставить реакции.

Интеграцию можно сделать в двух вариантах:

  1. Простой вариант. Тогда всем будут приходить одинаковые уведомления в один/несколько чатов. Этот вариант подойдет, если вы хотите сделать бота только для себя или вам достаточно, чтобы бот присылал все уведомления в групповой чат с командой.
  2. Более сложный вариант. Тогда каждому коллеге будут приходить уведомления только по его задачам в личные сообщения.

В данной статье мы покажем первый и более простой пример: как настроить интеграцию с Kaiten, чтобы бот присылал в групповой чат команды уведомления о большинстве событий в пространстве.

Выглядит это следующим образом:

  • В Пачке создается чат-бот, который получает информацию из конкретного пространства в Kaiten.
  • Внутри бота настраивается шаблон и прописываются фразы бота. Шаблон по сути "расшифровывает" приходящую информацию из Кайтена, говорит какие события и с каким текстом присылать в чат.
  • Затем вы можете добавить этого бота в любой чат, куда он будет отправлять вам сообщения о событиях в этом пространстве.

Шаг 1. Создание бота внутри Пачки

Пример ссылки на задачу в Kaiten

Создайте нового бота в Пачке:

  • Откройте раздел "Автоматизации" → "Интеграции"
  • Выберите "Чат-боты и вебхуки"
  • Нажмите "+"
  • Придумайте название боту и поставьте логотип Kaiten или любую другую аватарку
  • Выберите тех, кто сможет настраивать бота. Они увидят его в своем разделе интеграций и смогут менять настройки.
  • Выберите тех, кто сможет добавлять вашего бота в чаты**. **Эти пользователи смогут добавлять бота в чаты и получать от него сообщения
  • Поменяйте другие настройки, если необходимо

Скопируйте Webhook URL (он понадобится для настройки в Kaiten)

  • Откройте раздел "Входящий Webhook" внутри окна настройки бота
  • Найдите строку "Webhook URL" и скопируйте ссылку внутри него

Добавьте созданного бота в групповой чат

  • Откройте нужный чат
  • Перейдите "Настройки чата" → "Добавить участников" → "Интеграции"

Шаг 2. Настройка Kaiten

Пример ссылки на колонку в Kaiten

  • Авторизуйтесь в Kaiten. У вас должны быть права администратора того пространства, для которого вы будете настраивать интеграцию.
  • На панели слева нажмите наведите курсор на нужное пространство и перейдите в его настройки
  • На странице настроек перейдите в раздел "External Webhook"
  • Вставьте в поле ссылку, которую вы копировали в настройках бота в Пачке (шаг 1, п.2)
  • Переведите переключатель в режим "Включено"

Скопируйте следующие данные из вашего Kaiten (они понадобятся для финальной настройки бота в Пачке):

  1. Название компании и ID пространства. Чтобы узнать их, скопируйте ссылку на задачу - они будут в ней, как на изображении ниже:

Пример пространства

  1. Названия колонок на доске с задачами и их ID. Чтобы найти ID скопируйте ссылку на колонку и возьмите его оттуда, как на изображении ниже:

Пример задачи и ID

В итоге должно получиться примерно так:

  • Название компании - "pachka"
  • ID пространства - "595608"
  • Названия и ID колонок
    • 4702556 - "Выполняется"
    • 4702554 - "На проверке"
    • 4702555 - "Готово"
    • ...

Шаг 3. Настройка шаблона в боте Пачки

Пример задачи и ID

Откройте настройки созданного бота в Пачке:

  • Откройте раздел "Автоматизации" → "Интеграции"
  • Выберите "Чат-боты и вебхуки"
  • Выберите бота, которого вы создавали вначале
  • Откройте раздел "Входящий Webhook" внутри окна настройки бота

Вставьте шаблон, который позволит боту присылать нужную информацию в чат

  • В разделе "Входящий Webhook" выберите "Формат отображения" → "Liquid"
  • Скопируйте блок кода, представленный ниже
  • Вставьте этот код в поле "Шаблон" в настройках бота в Пачке
  • Измените данные в шаблоне на свои

⚠️ Обратите внимание на комментарии, написанные в блоке кода зелёным цветом справа. Они описывают те места, где в код нужно вставить ваши значения, которые вы подготовили при настройке Kaiten (в предыдущем шаге инструкции)

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

{% assign id_space = 595608 %} {% comment %}"Смените этот ID_space на свой (шаг 2 текущей инструкции)"{% endcomment %}
{% assign space = "pachka" %} {% comment %}"Смените это название компании на своё (шаг 2 текущей инструкции)"{% endcomment %}
{% assign Type = changes %}

{%- if event contains 'card:update' %}
{% assign card_link = "[" | append: data.old.title | append: "](https://" | append: space | append: ".kaiten.ru/space/" | append: id_space | append: "/boards/card/" | append: data.old.id | append: ")" %}

{%- if data.changes.column_id %}
{%- assign status_id = data.changes.column_id | default: "0" -%}
{%- case status_id -%}
{%- when 4702556 -%} {%- assign status_name = "Выполняется" -%} {% comment %}"Смените этот ID колонки и название колонки на свои (шаг 2 текущей инструкции)"{% endcomment %}
{%- when 4702554 -%} {%- assign status_name = "🟡На проверке" -%} {% comment %}"Смените этот ID колонки и название колонки на свои (шаг 2 текущей инструкции)"{% endcomment %}
{%- when 4702555 -%} {%- assign status_name = "✅Готово" -%} {% comment %}"Смените этот ID колонки и название колонки на свои (шаг 2 п.4 текущей инструкции)"{% endcomment %}
{% comment %}"Добавьте точно такие же строки, если у вас больше колонок и вы хотите прописать их"{% endcomment %}
{%- else -%}
{%- assign status_name = "⚠️ошибка! Названия этой колонки нет в боте, добавьте информацию в настройках бота в Пачке" -%}
{%- endcase -%}
{{ card_link }}
🏃🏼‍♂️**{{ data.author.full_name }}** перенес(ла) эту карточку в колонку `{{ status_name }}`

{%- elsif data.changes.lane_id %}
{{ card_link }}
🏃🏼‍♂️**{{ data.author.full_name }}** перенес(ла) эту карточку на другую дорожку

{%- elsif data.changes.type_id %}
{{ card_link }}
🔁**{{ data.author.full_name }}** сменил(ла) тип этой карточки

{%- elsif data.changes.description %}
{{ card_link }}
🔁**{{ data.author.full_name }}** обновил(ла) описание этой карточки: "*{{ data.changes.description }}*"

{%- elsif data.changes.description == null %}
{{ card_link }}
🔁**{{ data.author.full_name }}** удалил(ла) описание этой карточки

{%- elsif data.changes.comments_total %}
{{ card_link }}

{%- elsif data.changes.archived and data.changes.condition == 3 %}
{{ card_link }}
❌**{{ data.author.full_name }}** удалил(ла) эту карточку

{%- elsif data.changes.archived and data.changes.condition == 2 %}
{{ card_link }}
🚫**{{ data.author.full_name }}** заархивировал(ла) эту карточку

{% endif %}

{%- elsif event contains 'card:add' %}
{% assign card_link = "[" | append: data.title | append: "](https://" | append: space | append: ".kaiten.ru/space/" | append: id_space | append: "/boards/card/" | append: data.id | append: ")" %}
{{ card_link }}
🆕**{{ data.owner.full_name }}** создал(ла) эту карточку

{%- elsif event contains 'comment:add' %}
✍🏼**{{ data.author.full_name }}**: {{ data.text }}

{% endif %}

Шаг 4. Проверка интеграции

Пример задачи и ID

Чтобы проверить работу триггера, сделайте какое либо из действий в Kaiten. Бот должен прислать уведомление в Пачку о следующих действиях:

  • Кто то создал задачу
  • Кто то удалил задачу
  • Кто то архивировал задачу
  • Кто то перенес задачу в другую колонку
  • Кто то перенес задачу на другую дорожку
  • Кто то изменил тип задачи внутри задачи
  • Кто то изменил описание задачи
  • Кто то удалил описание задачи
  • Кто то написал комментарий под задачей

Если вы хотели бы, чтобы бот обрабатывал большее количество событий, то можно написать нам в поддержку. Будем рады расширить интеграцию, если такие события поддерживаются в самом Kaiten.