Покрокова інструкція
Markdown статтіПовідомити про помилку

Як налаштувати відправку Viber/SMS через Infobip

Infobip дозволяє відправляти текстові повідомлення через Viber та SMS. Це корисно для автоматизації комунікацій із клієнтами, наприклад, для підтвердження замовлень, сповіщень про акції, або іншої важливої інформації.

📖 Документація: Детальніше про Infobip API читайте на офіційному сайті.

Передумови

  • Активний обліковий запис Infobip
  • API-ключ від Infobip
  • Зареєстрований Sender Name для Viber (якщо використовуєте Viber)

Отримання API ключа

  1. Увійдіть у панель управління Infobip
  2. Перейдіть до розділу API Keys
  3. Створіть новий API-ключ
  4. Скопіюйте отриманий ключ

Налаштування Sender Name для Viber

  1. У панелі Infobip перейдіть до розділу Viber Sender Names
  2. Зареєструйте унікальне ім'я відправника (зазвичай це назва вашої компанії)
  3. Очікуйте на схвалення (може зайняти деякий час)

Створення action для Infobip

Для відправки повідомлень через Infobip потрібно створити кастомний action через Action Jail.

Приклад коду action

const axios = require('axios');

// Константи для налаштування API
const API_KEY = 'YOUR_API_KEY'; // Ваш API-ключ Infobip
const SENDER_NAME = 'DemoCompany'; // Ім'я відправника для Viber
const BASE_URL = 'https://api.infobip.com'; // Базовий URL для Infobip
const API_PATH = '/viber/2/messages'; // Шлях для відправлення повідомлень

const action_infobip_send_message = async function() {
    const j = this.getCurrentStateJSON();
    if (!j || typeof j !== 'object') {
        console.error("Error: JSON data is invalid or not an object.");
        return "error";
    }

    const message = (j.message || '').trim();
    const to = (j.to || '').trim();

    if (!message || !to) {
        console.error("Error: 'message' or 'to' is missing in the JSON data.");
        return "error";
    }

    const options = {
        method: 'POST',
        url: `${BASE_URL}${API_PATH}`,
        headers: {
            'Authorization': `App ${API_KEY}`,
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        },
        data: {
            messages: [
                {
                    sender: SENDER_NAME,
                    destinations: [{ to }],
                    content: {
                        text: message,
                        type: "TEXT"
                    }
                }
            ]
        }
    };

    try {
        const response = await axios(options);
        console.log("Response from Infobip:", response.data);
        return "success";
    } catch (error) {
        console.error("Error sending message:", error.response?.data || error.message);
        return "error";
    }
};

module.exports = action_infobip_send_message;

Використання в сценарії

Підготовка даних

Перед викликом action встановіть змінні в state:

{
  "message": "Ваше замовлення #123 відправлено!",
  "to": "380971234567"
}

Параметри:

  • message — текст повідомлення, який потрібно надіслати
  • to — номер телефону отримувача у міжнародному форматі (без знаку +)

Обробка результату

Успіх (success):

  • Якщо повідомлення успішно відправлено, action повертає "success"
  • У сценарії можна додати наступні дії (логікування, оновлення статусу тощо)

Помилка (error):

  • Якщо виникла помилка, action повертає "error"
  • У сценарії слід передбачити обробку помилок (повідомлення адміністратора, повторна спроба тощо)

Відправка SMS через Infobip

Для відправки SMS використовується інший endpoint:

const smsOptions = {
    method: 'POST',
    url: `${BASE_URL}/sms/2/text/single`,
    headers: {
        'Authorization': `App ${API_KEY}`,
        'Content-Type': 'application/json'
    },
    data: {
        from: SENDER_NAME,
        to: to,
        text: message
    }
};

Обмеження

  • Viber повідомлення мають обмеження на довжину тексту
  • Номер телефону повинен бути в міжнародному форматі
  • Sender Name повинен бути зареєстрований в Infobip
  • Rate limiting може застосовуватися залежно від тарифного плану Infobip

Пов'язані статті

Працюєте з власним ШІ-агентом?Встановіть відкритий skill, щоб ваш ШІ-агент працював з актуальною офіційною документацією ConnectiveOne.Отримати skillПотрібна підтримка?Не знайшли відповідь або потрібна допомога команди ConnectiveOne? Створіть запит у Client Portal.Створити запит