Отправка шаблона через API

Отправка шаблона описана в документации API в методе /sendTemplate.

Вы также можете отправить шаблон через раздел в личном кабинете "Кабинет разработчика" →"Тестирование запросов". Чтобы отправить шаблон, необходимо знать namespace, name и language шаблона. Чтобы получить эти данные, вызовите метод "Получить список шаблонов" (/templates).

Некоторые свойства, которые могут вызвать вопросы в методе /sendTemplate.

Свойства

Описание

template

Это name шаблона

language

policy: записывайте deterministiс

code: код language из метода /templates

Объект с type "body"

Текстовое сообщение. Можно опустить, если в тексте нет переменных.

Объект с type "button"

Вам нужно указывать в теле только кнопки с sub_type "url" либо "catalog". Остальные типы кнопок при отправке шаблона можно опустить.

Положение кнопок для каждой карточки в шаблоне "Карусель" должно быть одинаково

Как отправить шаблоны Маркетинга или Услуги

В запросах нужно отправлять только те объекты, которые указаны в созданном шаблоне. Например, если в шаблоне изначально нет объекта header, то и указывать его при отправке не надо. А также опускаются объекты, если:

  • Объект header с типом text без переменной;

  • Body без переменной;

  • Кнопки быстрого ответа и Кнопка с номером опускаются всегда;

  • URL-кнопка без переменной.

В header с типом IMAGE, VIDEO, DOCUMENT всегда указывается полная ссылка на медиа-документ. Обратите внимание, что ссылка на медиа-документ должна содержать формат документа.

Пример отправки Документа с URL кнопкой

Структура:

  • Заголовок содержит документ

  • тело сообщения содержит 2 переменные

  • Две URL-кнопки, вторая URL кнопка содержит переменную.

Если URL-кнопка не имеет переменной, опускайте ее из запроса. Например, в этом запросе первая URL-кнопка c индексом 0 пропущена, а вторая - выведена. Обратите также внимание, что индекс второй кнопки уже 1.

{
  "token": "{{token}}",
  "namespace": "{{namespace}}",
  "template": "delivery_tracking",
  "language": {
    "policy": "deterministic",
    "code": "ru"
  },
  "params": [
    {
      "type": "header",
      "parameters": [
        {
          "type": "document", //объект документа
          "document": {
            "link": "https://test.com/reyshi.pdf" //ссылка на документ. Обратите внимение, чтобы в ссылке был указан формат документа
          }
        }
      ]
    },
    {
      "type": "body",
      "parameters": [
        {
          "type": "text",
          "text": "Андрей" // первая переменная в BODY
        },
        {
          "type": "text",
          "text": "№003478" // вторая переменная в BODY
        }
      ]
    },
    {
      "type": "button", // вторая URL-кнопка
      "sub_type": "url",
      "index":1, // индексы нумеруются с нуля, у второй кнопки индекс 1
      "parameters": [
        {
          "type": "text",
          "text": "/reyshi" //переменная ссылки
        }
      ]
    }
  ],
  "phone": "{{phone}}"
}

Пример отправки Текстового заголовка со всеми типами кнопок

Структура:

  • Текстовый заголовок с одной переменной

  • Тело сообщения не содержит переменной. Поэтому в запросе опущен.

  • 4 кнопки. Первая кнопка - быстрый ответ, вторая кнопка - звонок, третья кнопка - URL-кнопка с переменной, четвертая кнопка - URL-кнопка без переменной.

{
  "token": "{{token}}",
  "namespace": "{{namespace}}",
  "template": "utility_all_buttons_2024_05",
  "language": {
    "policy": "deterministic",
    "code": "en"
  },
  "params": [
    {
      "type": "header",
      "parameters": [
        {
          "type": "text",
          "text": "Anna" // переменная заголовка
        }
      ]
    },
    {
      "type": "button", // третья кнопка, URL-кнопка с переменной
      "sub_type": "url",
      "index": 2, // индекс третьей кнопки
      "parameters": [
        {
          "type": "text",
          "text": "inbox" // переменная ссылки
        }
      ]
    }
  ],
  "phone": "{{phone}}"
}

Как отправить шаблон "Карусель"

Шаблон сообщения «Карусель» поддерживается только в Cloud API.

Шаблон Карусель:

  • Имеет свой type - CAROUSEL

  • Объект с типом CAROUSEL содержит массив cards. Используется только для данного типа шаблона

  • Каждая карточка содержит card_index - порядок появления карточек в карусели карточек.0 означает первую карту, 1 означает вторую карту и т. д

Пример как отправить шаблон "Карусель"​

Пример шаблона из 2-ух карточек. Каждая карточка содержит кнопку быстрого ответа и url-кнопку. Медиа-заголовок - картинка.

POST https://api.1msg.io/{{channel}}/sendTemplate
Content-Type: application/json
Body: {
  "token": "{{token}}",
  "namespace": "{{namespace}}", // Вызовите список шаблонов через метод /templates и найдете namespace для нужного шаблона
  "template": "marceting_carousel_01_test", // name шаблона
  "language": {
    "policy": "deterministic",
    "code": "en" // код language из запроса /templates
  },
  "params": [
    {
   /* Общее текстовое сообщение. Можно опустить, если в тексте нет переменных. */
      "type": "body", 
      "parameters": [
        {
          "type": "text",
          "text": "21OFF" // переменная {{1}} для общего текстового сообщения
        },
        {
          "type": "text",
          "text": "21" // переменная {{2}} для общего текстового сообщения
        }
      ]
    },
    {
      "type": "carousel",
      "cards": [
        /* Первая карточка */
        {
          "card_index": 0,
          "components": [
            {
              "type": "header",
              "parameters": [
                {
                  "type": "image",
                  "image": {
                    "link": "https://img.freepik.com/free-photo/top-view-citric-fruit-slices-table_23-2148495686.jpg"
                  }
                }
              ]
            },
            {
              "type": "button",
              "sub_type": "url",
              "index": 1,  // положение кнопки, начинается с 0. Тут url-кнопка вторая в последовательности, поэтому index=1
              "parameters": [
                {
                  "type": "text",
                  "text": "summer" // параметр в url ссылке
                }
              ]
            },
            {
             /* Текст карточки. Можно опустить, если в тексте не будет переменных. */
              "type": "body",
              "parameters": [
                {
                  "type": "text",
                  "text": "10F" // переменная {{1}} в первой карточке
                },
                {
                  "type": "text",
                  "text": "10" // переменная {{2}} в первой карточке
                }
              ]
            }
          ]
        },
        /* Вторая карточка */
        {
          "card_index": 1, 
          "components": [
            {
              "type": "header",
              "parameters": [
                {
                  "type": "image",
                  "image": {
                    "link": "https://img.freepik.com/free-photo/delicious-background-orange-slices_23-2148231462.jpg"
                  }
                }
              ]
            },
            {
              "type": "button",
              "sub_type": "url",
              "index": 1, // положение кнопки, начинается с 0. Тут url-кнопка вторая в последовательности, поэтому index=1
              "parameters": [
                {
                  "type": "text",
                  "text": "winter" // параметр в url ссылке
                }
              ]
            },
            {
             /* Текст карточки. Можно опустить, если в тексте не будет переменных. */
              "type": "body",
              "parameters": [
                {
                  "type": "text",
                  "text": "30F" // переменная {{1}} во второй карточке
                },
                {
                  "type": "text",
                  "text": "30" // переменная {{2}}  во второй карточке
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "phone": "+556123122026"
}

Как отправить шаблон "Каталог"

Шаблон сообщения «Каталог» поддерживается только в Cloud API.

Прежде чем отправить каталог, проверьте, включен ли он у вас. Проверить вы можете в своем личном кабинете в 360 Dialog либо вызвав метод /commerce.

Шаблон Каталог:

  • В объекте кнопки в sub_type необходимо написать CATALOG . Наименование кнопки не управляется.

  • Можно записать в thumbnail_product_retailer_id артикул товара, который указан в Meta. В этом случае миниатюра этого товара будет использоваться в качестве изображения заголовка сообщения. Иначе будет использоваться изображение продукта первого товара в вашем каталоге.

Пример части кода, когда не указан thumbnail_product_retailer_id.

 {
      "type": "button",
      "sub_type": "CATALOG",
      "index": 0,
      "parameters": [
        {
          "type": "action",
          "action": {
            "thumbnail_product_retailer_id": ""
          }
        }
      ]
    }
Пример отправки шаблона "Каталог"

Так как шаблон не содержал в type "BODY" описания переменных, то при отправке в теле сообщения этот объект опушен.

POST https://api.1msg.io/{{channel}}/sendTemplate
Content-Type: application/json
Body: {
  "token": "{{token}}",
  "namespace": "{{namespace}}",
  "template": "catalog_services",
  "language": {
    "policy": "deterministic",
    "code": "en"
  },
  "params": [
    {
      "type": "button",
      "sub_type": "CATALOG",
      "index": 0,
      "parameters": [
        {
          "type": "action",
          "action": {
            "thumbnail_product_retailer_id": "0002" // Отправится миниатюра данного товара. Можно отправить "thumbnail_product_retailer_id": "". Тогда будет использоваться изображение продукта первого товара в вашем каталоге.
        }
      ]
    }
  ],
  "phone": "+556123122026"
}
        

Как отправить шаблон Аутентификации

Пример отправки шаблона Аутентификации

Пример отправки кнопки копирования кода

{
  "token": "{{token}}",
  "namespace": "{{namespace}}",
  "template": "auth_2",
  "language": {
    "policy": "deterministic",
    "code": "ru"
  },
  "params": [
        {
      "type": "body",
      "parameters": [
        {
          "type": "text",
          "text": "05425" // код, отображаемый в теле сообщения
        }
      ]
    },
    {
      "type": "BUTTON",
      "sub_type": "URL",
      "index": 0,
      "parameters": [
        {
          "type": "TEXT",
          "text": "05425" // код, который будет скопирован
        }
      ]
    }
  ],
  "phone": "+556123122026"
}

Last updated