Чим ми можемо допомогти?

Стисло опишіть питання; ми відповімо електронною поштою.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
На головну

Дані клієнтів у чаті: замовлення, доставка, рахунки

Дозвольте ШІ-асистенту відповідати клієнтам, які ввійшли, про їхні власні замовлення: безпечно, з підписаною ідентифікацією, чітко визначеними полями, запитом до магазину або імпортом.

З даними клієнтів ШІ-асистент відповідає на запитання на кшталт «Де моя посилка?», «Чи оплачено мій рахунок?» або «Що було в останньому замовленні?» — для клієнтів, які ввійшли, і лише про їхні власні дані. Функція доступна на платних тарифах.

Як захищено дані

Передумова: підтвердження особи

Асистент використовує дані клієнтів лише для відвідувачів, чию особу підтвердив ваш сервер. Налаштуйте секрет в обліковому записі в розділі Проєкт → Підтвердження особи. Він залишається на сервері й ніколи не має бути в браузері чи фрагменті вбудовування.

Для кожного клієнта, який увійшов, сервер обчислює хеш зі строком дії (щонайбільше на 24 години вперед) та передає його віджету:

$userId = (string) $customer->id;
$exp    = time() + 3600;
$hash   = hash_hmac('sha256', $userId . '.' . $exp, getenv('RC_IDENT_SECRET'));
echo "<script>ReactiveChat('identify', { userId: " . json_encode($userId)
   . ", userHash: " . json_encode($hash) . ", exp: " . $exp . " });</script>";
const crypto = require('crypto');
const exp  = Math.floor(Date.now() / 1000) + 3600;
const hash = crypto.createHmac('sha256', process.env.RC_IDENT_SECRET)
                   .update(String(user.id) + '.' + exp).digest('hex');
// in the template: ReactiveChat('identify', { userId: '<id>', userHash: '<hash>', exp: <exp> });

Хеш без exp і далі підтверджує відвідувача (наприклад для історії розмов), але не достатній для даних клієнтів. Під час оновлення секрету старий залишається дійсним 24 години.

Підпис електронної пошти також (для бронювання зустрічей та інтеграцій на основі пошти). email поруч із хешем вважається підтвердженим лише як частина підпису: userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email) — адреса саме в тому вигляді, як ви передаєте її до identify. Без цього відвідувач залишається в системі, але асистент не бронює зустрічі для цієї адреси, а інтеграції її не шукають. Наявна форма userId + "." + exp працює без змін.

Запит, імпорт або обидва

У розділі Проєкт → Дані клієнтів ви обираєте джерело даних асистента:

Які дані може отримувати асистент

Кожне поле вмикається окремо. Стандартні значення охоплюють звичайні запитання:

Вимкнене поле ніколи не потрапляє до асистента: під час запиту відкидається, під час імпорту взагалі не зберігається. Місто й індекс навмисно доступні лише за явного ввімкнення; вулиця та ім’я завжди виключені.

Що ніколи не передається

Це неможливо ввімкнути. Якщо магазин надсилає такі дані, вони відкидаються:

Ліміти

Щонайбільше 10 замовлень у відповіді, до 20 позицій на замовлення, тексти до 200 символів, уся відповідь до 16 кБ. Невідомі поля відкидаються без помилки.

Кінцева точка запиту

reactive.chat викликає вашу кінцеву точку через POST:

POST https://shop.your-domain.com/rc-customer-data
Content-Type: application/json
X-RC-Zeit: 1791196400
X-RC-Signatur: <hex(HMAC_SHA256(endpoint secret, X-RC-Zeit + "." + body))>

{"user_id":"4711","anliegen":"bestellung","referenz":"2026-0815","sprache":"en","nonce":"..."}

Ваша кінцева точка має:

  1. перевіряти підпис (порівняння за сталий час) і відхиляти запити, чий X-RC-Zeit відрізняється більш як на 5 хвилин,
  2. повертати лише дані заданого user_id,
  3. бути доступною через https на порту 443 за публічною адресою, без перенаправлень,
  4. відповідати протягом 3 секунд.

Відповідь:

{
  "bestellungen": [
    {
      "nummer": "2026-0815", "datum": "2026-09-28", "status": "shipped",
      "summe": "49.90", "waehrung": "EUR",
      "positionen": [ { "name": "Balance bike blue", "menge": 1 } ],
      "versand": { "dienst": "DHL", "sendungsnummer": "00340434...", "status": "out for delivery" },
      "rechnung": { "nummer": "R-2026-1201", "status": "paid", "faellig_am": "2026-10-12" }
    }
  ]
}

Повний приклад PHP доступний у документації для розробників (kundendaten-referenz-endpunkt.php).

Через Перевірити з’єднання reactive.chat викликає кінцеву точку з user_id rc-test і типом запиту test та показує результат. Поверніть для нього порожній список або зразок замовлення.

Імпорт через API

З ключем API, що має право kundendaten:schreiben:

PUT https://reactive.chat/v1/kundendaten/4711?project_id=123
Authorization: Bearer <API key>
Content-Type: application/json

{"bestellungen":[ ... as above ... ]}

project_id — номер вашого проєкту; якщо в робочому просторі лише один проєкт, його можна пропустити. PUT замінює всі замовлення цього ID клієнта (щонайбільше 50). DELETE /v1/kundendaten/4711?project_id=123 видаляє їх. Імпортовані дані зберігаються в нас зашифрованими й видаляються через 90 днів після останнього імпорту, тому надсилайте зміни постійно, наприклад за кожної зміни стану.

Відвідувачі, які не ввійшли

Якщо людина без підтвердженої особи запитує про замовлення, асистент не отримує жодних даних. Натомість показує повідомлення, яке ви задаєте в розділі Проєкт → Дані клієнтів: текст для кожної мови та необов’язкове посилання входу. Або передає запитання команді.

Що зберігається

Усунення несправностей

Докладніше в документації

Докладно: Кінцева точка даних клієнтів. Усі розділи є в документації.

Оновлено: