Интеграция с Пачкой

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

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

Интеграция с Пачкой настраивается через вебхук и доступна не во всех тарифах. Подробности о возможнях тарифов и их смене →

Интеграция проходит в 3 этапа:

  1. В Пачке создается чат-бот, который получает информацию из конкретного пространства в Kaiten.

  2. Внутри бота настраивается шаблон и прописываются фразы бота. Шаблон по сути «расшифровывает» приходящую информацию из Кайтена, говорит какие события и с каким текстом присылать в чат.

  3. Вы добавляете бота в любой чат, куда он будет отправлять сообщения о событиях в этом пространстве.

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

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

    1. Откройте раздел Автоматизации → Интеграции

    2. Выберите Чат-боты и вебхуки

    3. Нажмите +

    4. Придумайте название боту и поставьте логотип Kaiten или любую другую аватарку

    5. Выберите тех, кто сможет настраивать бота. Они увидят его в своем разделе интеграций и смогут менять настройки.

    6. Выберите тех, кто сможет добавлять вашего бота в чаты. Эти пользователи смогут добавлять бота в чаты и получать от него сообщения

    7. Поменяйте другие настройки, если необходимо

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

  1. Откройте раздел Входящий Webhook внутри окна настройки бота

  2. Найдите строку Webhook URL и скопируйте ссылку внутри него

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

  1. Откройте нужный чат

  2. Перейдите Настройки чата → Добавить участников → Интеграции

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

  1. Авторизуйтесь в Kaiten. У вас должны быть права администратора того пространства, для которого вы будете настраивать интеграцию.

  2. На панели слева нажмите на нужное пространство и перейдите в его настройки

  1. На странице настроек перейдите в раздел External Webhook

  1. Вставьте в поле ссылку, которую вы копировали в настройках бота в Пачке (шаг 1, п.2), переведите переключатель в режим Включено и нажмите Создать

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

  • Название компании и ID пространства. Откройте пространство, для которого хотите настроить интеграцию, и скопируйте данные из адресной строки:

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

Вставьте ссылку в адресную строку и скопируйте ID колонки:

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

    • Название компании — pachka

    • ID пространства — 595608

    • Названия и ID колонок

      • 4702556 — Выполняется

      • 4702554 — На проверке

      • 4702555 — Готово

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

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

    1. Откройте раздел Автоматизации → Интеграции

    2. Выберите Чат-боты и вебхуки

    3. Выберите бота, которого вы создавали вначале

    4. Откройте раздел Входящий Webhook внутри окна настройки бота

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

    1. В разделе Входящий Webhook выберите Формат отображения → Liquid

    2. Скопируйте блок кода, представленный ниже

    3. Вставьте этот код в поле Шаблон в настройках бота в Пачке

  1. Измените данные в шаблоне на свои

Обратите внимание на комментарии, написанные в блоке кода справа. Они описывают те места, где в код нужно вставить ваши значения, которые вы подготовили при настройке 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. Проверка интеграции

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

  • Пользователь создал задачу

  • Пользователь удалил задачу

  • Пользователь заархивировал задачу

  • Пользователь перенес задачу в другую колонку

  • Пользователь перенес задачу на другую дорожку

  • Пользователь изменил тип задачи внутри задачи

  • Пользователь изменил описание задачи

  • Пользователь удалил описание задачи

  • Пользователь написал комментарий под задачей

👉 Подробнее об External Webhooks читайте здесь: https://developers.kaiten.ru/external-webhooks.

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