Команда Пачки
Демонстрация Пачки
Живой разговор с нашим экспертом,
не больше получаса
Узнаете, как быстро перейти в Пачку из Slack, Telegram или другого мессенджера
Сориентируетесь по ценам и скидкам
Посмотрите, как работает Пачка: основные функции и интеграции
Передовые компании выбирают Пачку
Логотип МФТИЛоготип SkillfactoryЛоготип Lamoda
Демонстрация Пачки
Мы свяжемся с вами в течение дня и договоримся о времени.
Спасибо! Ваша заявка была получена!
Запись в данный момент недоступна. Попробуйте ещё раз позднее.

Как правильно заполнить шаблон Webhook

При настройке интеграции через Webhook, вам нужно написать специальный шаблон: в нем прописываются значения, которые бот будет отправлять в сообщении. В Пачке поддерживается два формата таких шаблонов: Mustache и Liquid.

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

Webhook — это механизм, который позволяет получать информацию о событиях из стороннего сервиса. Когда будет происходить событие, сторонний сервис будет отправлять запрос в формате JSON на специальный адрес Пачки.

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

Пример данных в формате JSON:

{
	"name": "Vadim Grushev",
	"age": 25,
	"isStudent": false,
	"hobbies": ["reading", "gardening"],
	"address": {
		"street": "123 Main Street",
		"city": "Anytown"
		}
}

К полям, которые вы описываете в шаблонах, можно применять форматирование (как к сообщениям в Пачке). Например, если мы напишем **{{description}}**, то бот отправит значение этого поля с форматированием “жирный текст”.

Откуда брать поля для заполнения шаблона

Для того чтобы узнать, какие поля указывать в шаблоне, нужно посмотреть структуру JSON запроса, которая приходит от стороннего сервиса. Для этого можно воспользоваться специальным сервисом для создания тестовых Webhook:

  1. Откройте https://webhook.site/
  2. Скопируйте адрес из поля “Your unique URL”
  3. Вставьте скопированный адрес в сервис, который хотите подключить к Пачке. Его нужно вставить на этапе настройке Webhook. Если вы уже настроили интеграцию с Пачкой, то просто замените Webhook URL Пачки на скопированный адрес
  4. Сделайте триггерное действие в сервисе, который вы подключаете. Вы его настраивали при создании Webhook.
  5. После этого на странице отобразится запрос в формате JSON, который прислал сервис.
  6. Выберите те поля, которые вы хотите отобразить в сообщениях бота. Вставьте их в ваш Liquid или Mustache шаблон.

Mustache —

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

Синтаксис Mustache

В шаблоне Mustache все поля заключаются в двойные скобки “{{name}}”

JSON запрос:

{
	"name": "Roman",
	"age": 10
}

Mustache шаблон:

Привет, {{Name}}!

Сообщение от бота:

Привет, Roman!

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

JSON запрос:

{
	"Student": {
		"Requisites": {
			"Name": "Artem"
		}
	}
}

Mustache шаблон:

{{#Student}}
	{{#Requisites}}
			{{Name}}
	{{/Requisites}}
{{/Student}}

Сообщение от бота:

Artem

Пример Mustache шаблона:

JSON:

{
  "user": {
	  "id": "12345",
    "userName": "Vadim Grushev"
  },
  "issue": {
    "id": "10000",
    "fields": {
        "title": "Очень важная задача",
        "description": "Что-то что нужно сделать срочно",
	      "project": {
	        "name": "Pachca"
      }
    }
  }
}

Mustache шаблон:

Новое событие в проекте {{#issue}}{{#fields}}{{#project}}**{{name}}**{{/project}}{{/fields}}{{/issue}}

{{#user}}**{{userName}}**{{/user}}

**Название задачи**
{{#issue}}{{#fields}}{{title}}{{/fields}}{{/issue}}

**Описание задачи**
{{#issue}}{{#fields}}{{description}}{{/fields}}{{/issue}}

Сообщение от бота:

Новое событие в проекте **Pachca**

**Vadim Grushev**

**Название задачи**
Очень важная задача

**Описание задачи**
Что-то что нужно сделать срочно

Больше методов работы с Mustache можно найти по ссылке.

Liquid —

это язык шаблонов, который позволяет создать единый шаблон и динамически его изменять. В отличие от Mustache, позволяет использовать логические операторы if, else и тд. Например, с его помощью, можно присылать разные сообщения, в зависимости от того положительный или отрицательный отзыв оставил клиент.

Синтаксис Liquid

Объектыпредставляют из себя структуру данных, описывающую поля из JSON. Для доступа к объектам и их свойствам используются двойные фигурные скобки “{{ object.field }}”

JSON запрос:

{
	"student": {
		"requisites": {
			"name": "Anton"
		}
	}
}

Liquid шаблон:

{{student.requisites.name}}

Сообщение от бота:

Anton

Теги используются для определения логики, которая позволяет выводить разные поля, в зависимости от описанных условий. Теги и свойства объектов заключаются в одинарные фигурные скобки с процентным разделителем “{% elsif %}”

JSON запрос:

{
	"student": {
		"requisites": {
			"name": "Dima"
		}
}

Liquid шаблон:

{% assing Name = student.requisites.name %}
{% if Name != "" and Name != null %} 
  Hey {{Name}}!
{% else %}
  Hi Stranger!
{% endif %}

Сообщение от бота:

Hey Dima!

Фильтрыиспользуются для изменения вывода переменных и объектов. Фильтры описываются в одинарных фигурных скобках и отделяются от объектов вертикальной чертой “{{ | }}”

Liquid шаблон:

{{ "CALM DOWN!" | downcase }}

Сообщение от бота:

calm down!

Пример Liquid шаблона:

JSON запрос:

{
  "application": {
	  "id": "12345",
    "name": "Заявка на таблицу сравнения"
    "contact": {
	    "number": "+799999999999",
	    "call": true
    }
}

Liquid шаблон:

{% assign Source = application.name%}
{% if Source contains 'демо' %}
{% assign heading = "**Новая заявка на демонстрацию**" %}
{% elseif Sourse contains 'таблицу' %}
{% assign heading = "**Новая заявка на таблицу**" %}
{% endif %}
{{heading}}
{% if application.contact.call == true  %}
	"Связаться по телефону:"
{% else %}
	"Написать в мессенджер:"
{% endif %}
{{application.contact.number}}

Сообщение от бота:

**Новая заявка на таблицу**

Связаться по телефону:
+799999999999

Больше методов работы с Liquid можно найти по ссылке.

Обновлено 
29.3.2024