FAQ
Чи потрібно користувачам щось встановлювати?
Ні. Користувачі просто вставляють один тег script у свій HTML — жодних npm-пакетів, кроків збірки чи залежностей. Додаткові функції завантажуються автоматично з того самого origin.
Чи конфліктуватиме він із моїм CSS?
Ні. Віджет рендериться всередині Shadow DOM, повністю ізолюючи свої стилі від вашої сторінки.
Чи підтримує він односторінкові застосунки (React, Vue, Next.js)?
Так. Скрипт завантажується один раз і зберігається під час зміни маршрутів. Для React/Next.js розмістіть скрипт у кореневому layout.
// app/layout.tsx (App Router)
import Script from 'next/script';
import { ReactNode } from 'react';
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en">
<body>
{children}
<Script id="respondo-init" strategy="afterInteractive">
{`
window.Respondo = window.Respondo || {};
Respondo.init = Respondo.init || function(c) { window.RespondoAIConfig = c; };
Respondo.q = Respondo.q || [];
Respondo.identify = Respondo.identify || function(d) { Respondo.q.push(['identify', d]); };
Respondo.init({
agentId: 'YOUR_AGENT_ID',
channelId: 'YOUR_CHANNEL_ID'
});
`}
</Script>
<Script src="https://api.respondo.ai/widget/widget.js" strategy="afterInteractive" />
</body>
</html>
);
}Що відбувається, коли розмову вирішено?
Нове повідомлення після вирішення автоматично відкриває подальшу розмову, пов’язану з попередньою (у вашій скриньці вона показується як «Continued from #N»). Контекст на кшталт мови та попередній транскрипт переносяться, і відвідувач бачить один безперервний чат. Якщо вирішеною розмовою займався учасник команди, подальша розмова повертається до вашої команди, а не до AI; інакше її підхоплює AI.
Як завантажується віджет?
Віджет завантажується асинхронно (async), тому ніколи не блокує рендеринг сторінки. Основний бандл — ~180KB (~50KB у gzip); необов’язкові функції (кампанії, продуктові тури) завантажуються окремими лінивими чанками після монтування віджета, тож початковий рендер сторінки ніколи не блокується.
Як працює ескалація?
Користувачі можуть натиснути кнопку "Talk to human", ввести фразу із запитом на людину, або AI сам передає розмову, коли не може відповісти на основі вашої бази знань. Після ескалації AI припиняє відповідати, і всі подальші повідомлення пересилаються вашій команді підтримки. Докладніше див. розділ Ескалація та передача.
Чи можуть користувачі продовжити спілкування з AI після ескалації?
Так. Віджет показує кнопку "Continue with AI", яка дозволяє користувачу скасувати ескалацію та відновити розмову з AI.
База знань і сканування сайту#
Чому сканування мого сайту заблоковано?
«Заблоковано» означає, що сайт — або його захист (Cloudflare, WAF, антибот-плагін) — відмовив нашому сканеру: стартова сторінка або robots.txt за кожної спроби відповідали помилкою доступу чи перевіркою «перевіряємо ваш браузер», або robots.txt прямо забороняє наш сканер. Раніше імпортовані сторінки залишаються цілими, а повторна синхронізація падатиме так само, доки сайт нас не пустить. Попросіть власника сайту дозволити User-Agent RespondoAI-Crawler (повний рядок: Mozilla/5.0 (compatible; RespondoAI-Crawler/1.0; +https://respondo.ai/bot)) у налаштуваннях захисту — у Cloudflare це Security → WAF → Custom rules — і, якщо причина в robots.txt, додати дозвільне правило для User-agent: RespondoAI-Crawler. Respondo не публікує фіксовану IP-адресу сканера — дозволяйте за User-Agent; якщо в помилці на джерелі вказано IP, дозвольте і його. Якщо сайт змінити не можна, додайте ті самі матеріали файлами або вставленим текстом.
Сканування завершилося, але знайшло лише кілька сторінок
Ми знаходимо сторінки через sitemap сайту (рядок Sitemap: у robots.txt або типові адреси на кшталт /sitemap.xml) і переходячи за посиланнями зі стартового URL — до 10 переходів углиб і до 5 000 сторінок на джерело. Імпортуються лише сторінки того самого сайту всередині шляху стартового URL: сканування, розпочате з https://example.com/help, пропустить /blog, тож починайте з кореня або додайте включені шляхи. Сторінки, на які не веде жодне посилання чи sitemap, сторінки, заборонені в robots.txt, і сторінки за логіном не буде знайдено. Майже однакові сторінки (версії для друку, варіанти з параметрами відстеження) об’єднуються в одну. Сторінки, вміст яких повністю малює JavaScript, розпізнаються й рендеряться резервним браузерним механізмом, тож мала кількість сторінок зазвичай означає проблему з областю сканування чи sitemap, а не з рендерингом.
Як обмежити сканування одним розділом сайту?
Розгорніть Advanced у діалозі додавання сайту та заповніть Only crawl paths starting with («сканувати лише шляхи, що починаються з») і/або Skip paths starting with («пропускати шляхи, що починаються з») — по одному шляху в рядку, до 50 у кожному полі. Зіставлення відбувається за цілими сегментами шляху: /docs збігається з /docs і /docs/getting-started, але не з /docs-archive; кінцевий слеш ігнорується, можна вставити повний URL — візьметься лише його шлях. Правила пропуску сильніші за правила включення. Ті самі правила застосовуються до sitemap і до кожної наступної повторної синхронізації цього джерела.
Як часто Respondo пересканує мій сайт?
У кожного джерела-сайту є розклад Auto-refresh на панелі його сторінок: Off (вимкнено), Daily (кожні 24 години) або Weekly (кожні 7 днів). Планове сканування інкрементальне: сторінки, чий lastmod у sitemap старший за попереднє сканування, пропускаються, незмінені сторінки не переіндексуються, змінені переіндексуються, а зниклі видаляються. Щоб оновити негайно, скористайтеся Re-sync у меню джерела або Re-sync all на сторінці Knowledge.
«Не вдалося прочитати сайт цього разу» — що сталося?
Це загальний збій: сайт не відповів вчасно, домен не розв’язався, сервер повернув помилку, на стартовій сторінці не було читабельного тексту або адресу не знайдено. Деталь показано на джерелі. Перевірте, що URL відкривається в приватному вікні браузера, що в домені немає одруку і що стартова сторінка — справжня сторінка з вмістом, а не екран входу. Соціальні мережі та месенджери (Facebook, Instagram, LinkedIn, X, YouTube і подібні) імпортувати не можна взагалі — їх відхиляють ще до запуску сканування. Наявні сторінки зберігаються; джерело з розкладом повторить спробу під час наступного запуску, інакше запустіть повторну синхронізацію, коли сайт знову буде доступний.
Що означають «наш пошуковий індекс заповнений» і «не вдалося проіндексувати це джерело»?
Обидва повідомлення з’являються після того, як вміст успішно прочитано. Індекс заповнений означає, що в пошуковому індексі, куди копіюється це джерело, на боці Respondo немає місця — це обмеження Respondo, а не проблема з вашим контентом. Сторінки збережено, усе вже проіндексоване й далі відповідає, нашу команду повідомлено автоматично, і джерело буде проіндексовано, щойно з’явиться місце; повторна синхронізація раніше впаде так само. Не вдалося проіндексувати це джерело означає, що побудова пошукового індексу цього разу не вдалася — тимчасова помилка на нашому боці; попередні дані цілі, завдання повторюється автоматично. Якщо будь-яке з повідомлень не зникає, натисніть «Запитати Copilot» на помилці.
Довгі сторінки відповідають лише своїм початком?
Ні. Кожна відсканована сторінка ріжеться на фрагменти, що перекриваються, приблизно по 1 600 символів, кожен індексується окремо з доданим заголовком сторінки, тож відповідь може прийти з будь-якої частини довгої статті. У посиланнях на джерела й далі показується одне посилання на сторінку. Сторінки, імпортовані до цієї зміни, перенарізаються під час наступних повторних синхронізацій.
Як отримати допомогу з помилкою сканування?
У кожної помилки сканування чи індексації на сторінці Knowledge є кнопка Запитати Copilot. Вона відкриває Copilot із доданою помилкою, і Copilot відповідає за власною документацією Respondo конкретними кроками для вашого випадку. Ця допомога безкоштовна — вона не витрачає ваші AI-запити. Якщо кроки не допомогли, так і напишіть — досить «не допомогло». Copilot сам запропонує картку передачі питання команді Respondo: у картці перелічено, що саме піде, нічого не відправиться, доки ви не підтвердите, а їхня відповідь надійде в той самий тред Copilot. А якщо передати питання звідси не можна, Copilot скаже про це прямо, а не промовчить.
Повідомлення, які не доходять до клієнта#
Відповідь позначено як «Not delivered» — що це означає і з чого почати?
Кожне вихідне повідомлення в інбоксі має індикатор доставки: Queued («у черзі» — відповіді, написані одна за одною, об’єднуються й виходять одним листом за пару хвилин), Sending…, Sent, Delivered — або червона позначка збою. Збої бувають трьох видів: Not delivered — канал відмовився приймати повідомлення; Bounced із підтипом відбиття поруч — поштовий сервер отримувача відхилив листа; і Marked as spam — отримувач поскаржився на нього. Наведіть курсор на позначку або клацніть її: у підказці буде формулювання самого провайдера, зокрема сира SMTP-діагностика для відбиття. Поруч є до двох дій — Retry / Send again, що справді надсилає повторно, і Ask Copilot, що відкриває Copilot із доданою помилкою. Якщо кнопки повтору немає взагалі, адресу заблоковано, і повторне надсилання впало б так само. Sent або Delivered із позначкою N files not delivered поруч означає, що текст дійшов, а вкладення — ні: цей канал не зміг передати файл.
Чому мій лист не дійшов до клієнта?
Причин чотири, і позначка їх розрізняє. Постійне відбиття означає, що адреси не існує або вона не приймає пошту: кнопки повтору немає, а адреса потрапляє до списку блокувань. Тимчасове відбиття — це переповнена скринька або минуща проблема на боці одержувача; тоді пропонується Send again, і згодом воно зазвичай спрацьовує. Відбиття, у діагностиці якого згадано SPF, DKIM, DMARC чи 5.7.515, — інша річ: поштова система одержувача відхилила листа, бо ваш домен відправлення не пройшов перевірку автентичності. Нова відповідь відіб’ється рівно так само, доки домен не полагоджено, тож поки що відповідайте іншим каналом, а DNS-записи поштового каналу виправте в Settings → Channels. Нарешті, Marked as spam означає, що одержувач натиснув «поскаржитися на спам»: адресу заблоковано, і ми більше на неї не надсилаємо. У звіті кампанії додатково можуть з’явитися The email provider rejected this message («поштовий провайдер відхилив це повідомлення») — остаточна відмова ще до відправлення, зазвичай через непідтверджений домен відправлення або некоректну адресу — і The email provider rejected our credentials («поштовий провайдер відхилив наші облікові дані»), що вказує на проблему налаштування робочого простору, а не на щось у цьому конкретному контакті.
Що таке список блокувань і як прибрати з нього адресу?
Це приватний для вашого робочого простору перелік поштових адрес, на які Respondo відмовляється надсилати. Адреса потрапляє туди, коли лист жорстко відбивається (остаточна відмова), коли хтось позначає ваш лист як спам, або коли її заблокували вручну. М’які відбиття ніколи не блокують адресу. Поки блокування діє, доставки кампаній на цю адресу пропускаються з поміткою This address is blocked after an earlier bounce or complaint («адресу заблоковано після попереднього відбиття чи скарги»), а відповідь з інбокса відхиляється ще до надсилання. Заблокувати можна лише справжнього одержувача листа — сповіщення про відбиття не здатне заблокувати довільну адресу. Окремого екрана для цього списку в дашборді немає: власник або адміністратор може прочитати його запитом GET https://api.respondo.ai/api/v1/integrations/email/suppressions і зняти один запис через DELETE https://api.respondo.ai/api/v1/integrations/email/suppressions/<email>, або попросити підтримку Respondo зробити це. Знімайте жорстке відбиття лише тоді, коли точно знаєте, що скриньку справді полагодили: повторні надсилання на мертву адресу псують репутацію вашого домену.
WhatsApp не приймає мою відповідь — 24-годинне вікно
WhatsApp дозволяє бізнесу надсилати довільні повідомлення лише протягом 24 годин після останнього повідомлення клієнта; усе пізніше Meta відхиляє з помилкою 131047. Respondo відстежує це вікно для кожної людини окремо і, коли знає, що воно вичерпалося, зупиняє відповідь ще до надсилання. Якщо ж запису про вікно немає взагалі — імпортований контакт або номер, який вам ніколи не писав, — Respondo не блокує: повідомлення йде до Meta, і рішення ухвалює Meta. Виходів рівно два. Дочекатися, поки клієнт напише знову — його повідомлення відкриває вікно ще на 24 години, і ваша відповідь тоді пройде, — або надіслати схвалений Meta шаблон. Шаблони не можна надіслати з поля відповіді в бесіді. Керуйте ними в Outbound → WhatsApp templates: Sync («синхронізувати») підтягує те, що вже зареєстровано на вашому номері, а New template («новий шаблон») подає шаблон на розгляд Meta, який триває день і довше. Потім надішліть схвалений шаблон через outbound-кампанію, націлену на цей контакт. Шаблон доходить і всередині вікна, і поза ним, але лише поки його статус — approved («схвалено»).
«Канал відключено» / «Канал не підключено»
Disconnected («відключено») означає, що інтеграція існує, але вже не активна: її токен доступу відкликано чи протерміновано, або хтось відключив її вручну. Not connected («не підключено») означає, що за адресою контакту взагалі немає жодної інтеграції. І те, і те виправляється в Settings → Channels, де відключені канали зібрані під власним заголовком, а на кожній картці є кнопка Reconnect; підключіться заново й повторіть надсилання. Два сусідні випадки схожі, але це не те саме: поштовий канал із непідтвердженим доменом відправлення не можна перевести в Live і він нічого не надсилає, доки не підтверджено DKIM та SPF; а канал, який працює лише на приймання, за задумом не випускає вихідних повідомлень, тож Retry там ніколи не спрацює.
«Немає каналу, щоб зв’язатися з цією людиною» / «У цього контакту немає email-адреси»
Обидва з’являються у звіті доставки кампанії, а не в інбоксі. Перший означає, що жодна з адрес контакту не збіглася з каналами, якими надсилає кампанія; якщо єдина його адреса належить каналу лише для приймання, це фіксується окремо як свідомий пропуск. Другий означає, що кампанія надсилає пошту, а в контакту не записано адреси. У Telegram свій варіант: якщо людина ніколи не писала вашому боту, немає й чату, куди писати, бо Bot API забороняє боту писати першим — перше повідомлення має надіслати сама людина. Виправляється це так: додайте контакту відсутню адресу, розширте набір каналів кампанії або дозвольте їй відкочуватися на пошту.
Контакт відписався — що йому можна надсилати?
They had already unsubscribed («вони вже відписалися») означає, що на контакті стоїть глобальна відмова: її поставили через посилання для відписки в одному з ваших листів, принесли з імпортом або перемкнув колега. Кампанії та серії пропускають такі контакти в усіх каналах, не лише в пошті, і доставка записується як пропуск, а не як збій. Особисту відповідь колеги всередині бесіди вона свідомо не блокує: відмова стосується розсилок, а відповідь людині, яка вам написала, — це людське рішення. Стан показано на контакті як Outbound: Subscribed / Unsubscribed, за ним можна фільтрувати список контактів, а кнопка Re-subscribe на контакті скасовує відмову — користуйтеся нею лише тоді, коли людина сама про це попросила.
Скільки разів ви повторюєте надсилання і чи безпечно тиснути Retry?
Відповідь з інбокса потрапляє в чергу, яка робить до п’яти спроб із паузами приблизно 3, 10, 30 і 30 хвилин між ними. Повторюються лише тимчасові збої — таймаути, відмови з’єднання, ліміти частоти, серверні помилки самого провайдера. Остаточна відмова (невідома адреса, непідтверджений домен відправлення, відхилені облікові дані) одразу позначається як збій, бо повтор дав би ту саму відповідь. Доставки кампаній ідуть власною чергою — до шести спроб і коротші паузи: 5 секунд, 30 секунд, 2 хвилини, 10 хвилин; коли вони вичерпуються, доставку закривають із поміткою Delivery kept failing and was stopped after several attempts («доставка раз за разом падала і була зупинена після кількох спроб»), замість того щоб вічно висіти в черзі. Тиснути Retry вручну безпечно. Кнопка діє лише на повідомлення, яке справді у стані збою, а для пошти спершу запитує провайдера, що сталося з оригіналом: якщо той лист усе-таки пішов, рядок перемикається на «доставлено» замість надсилання другої копії, а справжнє повторне надсилання виходить під новим ключем ідемпотентності. Там, де друга копія була б помилкою — жорстке відбиття, скарга на спам, надсилання, яке ще в дорозі, — кнопки немає або повтор відхиляється з поясненням причини.
Причина досі не зрозуміла — як отримати допомогу?
Біля кожного невдалого повідомлення є кнопка Ask Copilot («запитати Copilot»). Вона відкриває Copilot із доданою помилкою, каналом і бесідою, і Copilot відповідає за власною документацією Respondo кроками саме для цього збою. Ця допомога безкоштовна — вона не витрачає ваші AI-запити. Якщо кроки не допомогли, так і напишіть — досить «не допомогло». Copilot сам запропонує картку передачі питання команді Respondo: у картці перелічено, що саме піде, нічого не відправиться, доки ви не підтвердите, а їхня відповідь надійде в той самий тред Copilot. А якщо передати питання звідси не можна, Copilot скаже про це прямо, а не промовчить.