ドキュメント

FAQ

ユーザーは何かをインストールする必要がありますか?

いいえ。ユーザーは 1 つの script タグを HTML に貼り付けるだけで済みます — npm パッケージも、ビルド手順も、依存関係もありません。追加機能は同じオリジンから自動的に読み込まれます。

自分の CSS と競合しますか?

いいえ。ウィジェットは Shadow DOM 内でレンダリングされ、そのスタイルはページから完全に隔離されます。

シングルページアプリ(React、Vue、Next.js)に対応していますか?

はい。スクリプトは一度読み込まれ、ルート変更をまたいで維持されます。React/Next.js では、スクリプトをルートレイアウトに配置してください。

Next.js App Routertsx
// 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」と表示されます)。言語や以前のやり取りなどのコンテキストは引き継がれ、訪問者には 1 つの連続したチャットとして見えます。解決された会話をチームメンバーが担当していた場合、フォローアップは AI ではなくチームへルーティングされます。そうでなければ AI が引き継ぎます。

ウィジェットはどのように読み込まれますか?

ウィジェットは非同期(async)で読み込まれるため、ページのレンダリングをブロックすることはありません。コアバンドルは約 180KB(gzip 圧縮で約 50KB)で、オプション機能(キャンペーン、プロダクトツアー)はウィジェットのマウント後に個別の遅延チャンクとして読み込まれるため、初回のページレンダリングがブロックされることはありません。

エスカレーションはどのように機能しますか?

ユーザーは「担当者と話す」ボタンをクリックしたり、担当者を求めるフレーズを入力したりできます。また、ナレッジベースから回答できない場合は AI が自ら引き継ぎます。エスカレーションされると、AI は応答を停止し、以降のすべてのメッセージがサポートチームに転送されます。詳しくは エスカレーションと引き継ぎ のセクションを参照してください。

エスカレーション後もユーザーは AI とチャットを続けられますか?

はい。ウィジェットには「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 が記載されている場合はその IP も許可してください。サイトを変更できない場合は、同じコンテンツをファイルまたは貼り付けテキストとして追加してください。

クロールは完了したのに、数ページしか見つかりません

ページは、サイトのサイトマップ(robots.txt の Sitemap: 行、または /sitemap.xml などの一般的な場所)と、開始 URL からのリンクをたどることで検出します。深さは最大 10 リンク、ソースあたり最大 5,000 ページです。取り込まれるのは同じサイト上で、開始 URL のパス配下にあるページのみです。https://example.com/help から開始したクロールは /blog をスキップするため、ルートから開始するか、含めるパスを追加してください。リンクにもサイトマップにも含まれないページ、robots.txt で禁止されたページ、ログインの先にあるページは見つかりません。ほぼ同一のページ(印刷用バージョン、トラッキングパラメータ付きのバリエーション)は 1 つに統合されます。コンテンツが完全に JavaScript で描画されるページは検出され、ブラウザベースのフォールバックでレンダリングされるため、ページ数が少ない場合は通常、レンダリングではなく範囲やサイトマップの問題です。

クロールをサイトの特定セクションに限定するには?

ウェブサイト追加ダイアログで Advanced を開き、Only crawl paths starting with(このパスで始まるものだけをクロール)と Skip paths starting with(このパスで始まるものをスキップ)を 1 行に 1 パスずつ、各欄最大 50 件まで入力します。照合はパスのセグメント単位で行われます。/docs は /docs と /docs/getting-started に一致しますが、/docs-archive には一致しません。末尾のスラッシュは無視され、完全な URL を貼り付けてもパス部分だけが使われます。スキップのルールは含めるルールより優先されます。同じルールがサイトマップと、そのソースの以後のすべての再同期に適用されます。

Respondo はどのくらいの頻度でウェブサイトを再クロールしますか?

各ウェブサイトソースのページパネルには Auto-refresh のスケジュールがあります: Off(オフ)、Daily(24 時間ごと)、Weekly(7 日ごと)。スケジュールされたクロールは増分方式です。サイトマップの lastmod が前回のクロールより古いページはスキップされ、変更のないページは再インデックスされず、変更されたページは再インデックスされ、消えたページは削除されます。すぐに更新するには、ソースメニューの Re-sync か、Knowledge ページの Re-sync all を使ってください。

「今回はサイトを読み取れませんでした」— 何が起きたのですか?

これは一般的な失敗です。サイトが時間内に応答しなかった、ドメインを解決できなかった、サーバーがエラーを返した、開始ページに読み取れるテキストがなかった、またはアドレスが見つからなかった、のいずれかです。詳細はソースに表示されます。URL がブラウザのプライベートウィンドウで開けること、ドメインに入力ミスがないこと、開始ページがログイン画面ではなく実際のコンテンツページであることを確認してください。SNS やメッセージングプラットフォーム(Facebook、Instagram、LinkedIn、X、YouTube など)はまったく取り込めず、クロール開始前に拒否されます。既存のページは保持されます。スケジュール設定のあるソースは次回の実行で再試行し、それ以外はサイトに再びアクセスできるようになってから再同期してください。

「検索インデックスがいっぱいです」と「このソースをインデックスできませんでした」はどういう意味ですか?

どちらもコンテンツの読み取りに成功した後に表示されます。インデックスがいっぱいは、このソースのコピー先となる検索インデックスに Respondo 側で空きがないことを意味します。これは Respondo 側の制限であり、お客様のコンテンツの問題ではありません。ページは保存されており、すでにインデックスされたものは引き続き回答に使われ、当社チームには自動で通知され、空きができ次第ソースはインデックスされます。それより早く再同期しても同じように失敗します。このソースをインデックスできませんでしたは、今回は検索インデックスの構築に失敗したことを意味します。当社側の一時的なエラーで、既存データは無傷のまま、ジョブは自動で再試行されます。どちらかのメッセージが続く場合は、エラー上の「Copilot に質問」を使ってください。

長いページは冒頭部分からしか回答されないのですか?

いいえ。クロールされた各ページは約 1,600 文字の重なり合うチャンクに分割され、それぞれにページタイトルを付けて個別にインデックスされるため、長い記事のどの部分からでも回答できます。引用は引き続きページごとに 1 つのリンクを表示します。この変更前に取り込まれたページは、以後の再同期で再分割されます。

クロールエラーについてサポートを受けるには?

Knowledge ページのクロールまたはインデックスのエラーには、すべて Copilot に質問 ボタンが付いています。エラーを添付した状態で Copilot が開き、Copilot は Respondo 自身のヘルプドキュメントをもとに、お客様のケースに合わせた具体的な手順で回答します。この支援は無料で、AI リクエスト数には計上されません。 手順で解決しない場合は、その旨を伝えてください。「解決しませんでした」だけで十分です。すると Copilot が、問題を Respondo チームに引き渡すカードを提案します。カードには送信される内容が正確に列挙され、確認するまで何も送信されず、その返信は同じ Copilot スレッドに届きます。引き渡しができない場合、Copilot は黙り込まず、そのことをはっきり伝えます。

顧客に届かないメッセージ#

返信に「Not delivered」と表示されます — どういう意味で、まず何をすればよいですか?

受信トレイの送信メッセージにはすべて配信インジケーターが付きます: Queued(近い時間に書かれた返信はまとめられ、数分後に 1 通のメールとして送信されます)、Sending…、Sent、Delivered、または赤色の失敗表示です。失敗は 3 種類あります: Not delivered — チャネルがメッセージを拒否した、Bounced(横にバウンスのサブタイプが表示されます)— 受信者のメールサーバーがメールを拒否した、Marked as spam — 受信者がスパムとして報告した、です。ラベルにカーソルを合わせるかクリックすると、ツールチップにプロバイダー自身の文言が表示されます。バウンスの場合は生の SMTP 診断メッセージも含まれます。その隣には最大 2 つのアクションがあります — 実際に再送信する Retry / Send again と、エラーを添付した状態で Copilot を開く Ask Copilot です。再試行ボタンがまったく表示されない場合、そのアドレスはブロックされており、再送信しても同じ結果になります。Sent または Delivered の横に N files not delivered と表示されている場合は、本文は届いたものの添付ファイルが届かなかったことを意味します — そのチャネルはそのファイルを運べませんでした。

メールが顧客に届かなかったのはなぜですか?

原因は 4 つあり、ラベルで見分けられます。恒久的なバウンスは、アドレスが存在しないかメールを受け付けないことを意味します — 再試行ボタンはなく、そのアドレスは抑制リストに登録されます。一時的なバウンスは、メールボックスが満杯か、受信側サーバーの一過性の問題です。Send again が表示され、時間をおけば通常は成功します。診断メッセージに SPF、DKIM、DMARC、5.7.515 が含まれるバウンスは別物です: 受信者のメールシステムが、あなたの送信ドメインの認証チェックが通らなかったためにメッセージを拒否しました。ドメインを修正するまで新しい返信もまったく同じようにバウンスするので、その間は別のチャネルで対応し、Settings → Channels のメールチャネルで DNS レコードを修正してください。最後に、Marked as spam は受信者が「迷惑メールを報告」を押したことを意味します。アドレスは抑制され、以後の送信は停止します。キャンペーンのレポートにはさらに The email provider rejected this message(メールが送信される前の恒久的な拒否。多くは送信ドメインが未確認か、アドレスの形式が不正)や、その 1 件の連絡先ではなくワークスペースの設定の問題である 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> で 1 件を解除できます。Respondo サポートに依頼することもできます。ハードバウンスの解除は、メールボックスが実際に修復されたと分かっている場合のみにしてください — 無効なアドレスへの再送信はドメインの評価を損ないます。

WhatsApp が返信を受け付けません — 24 時間ウィンドウ

WhatsApp では、ビジネスが自由形式のメッセージを送れるのは顧客の最後のメッセージから 24 時間以内だけで、それを過ぎると Meta はエラー 131047 で拒否します。Respondo は人ごとにこのウィンドウを管理しており、期限切れと分かっている場合は送信前に返信を止めます。ウィンドウの記録がまったくない場合 — インポートされた連絡先や、一度もあなたに書いたことのない番号 — はブロックしません。メッセージは Meta に送られ、Meta が判断します。進む道はちょうど 2 つです。顧客がもう一度書くのを待つか(顧客のメッセージでウィンドウがさらに 24 時間開き、返信が通るようになります)、Meta の承認を受けたテンプレートを送るかです。テンプレートは会話の入力欄からは送信できません。管理は Outbound → WhatsApp templates で行います: Sync は番号に登録済みのものを取り込み、New template は Meta に申請します(審査には 1 日以上かかります)。承認されたテンプレートは、その連絡先を対象としたアウトバウンドキャンペーンから送信します。テンプレートはウィンドウの内外を問わず届きますが、ステータスが approved の間に限られます。

「チャネルの接続が解除されています」/「チャネルが接続されていません」

Disconnected は、連携は存在するがもう有効ではないことを意味します — アクセストークンが取り消されたか期限切れになったか、誰かが接続を解除しました。Not connected は、その連絡先の宛先の背後に連携がまったくないことを意味します。どちらも Settings → Channels で修正します。切断されたチャネルは専用の見出しの下にまとめられ、各カードに Reconnect ボタンがあります。再接続してからメッセージを再試行してください。よく似ていますが同じではないケースが 2 つあります: 送信ドメインが未確認のメールチャネルは Live にできず、DKIM と SPF が確認されるまで何も送信しません。また受信専用チャネルは仕様上、送信メッセージを受け付けないため、そこで Retry しても成功することはありません。

「この相手に届けられるチャネルがありません」/「この連絡先にメールアドレスがありません」

どちらも受信トレイではなく、キャンペーンの配信レポートに表示されます。前者は、連絡先のどの宛先もキャンペーンの送信チャネルと一致しなかったことを意味します。唯一の宛先が受信専用チャネル上にある場合は、意図的なスキップとして別途報告されます。後者は、キャンペーンがメールを送るのに、その連絡先にアドレスが登録されていないことを意味します。Telegram には独自のパターンがあります: 相手が一度もあなたのボットに書いたことがなければ、書き込むチャットが存在しません。Bot API はボットから先に送ることを禁じているため、最初のメッセージは相手から送ってもらう必要があります。解決するには、連絡先に不足しているアドレスを追加するか、キャンペーンの対象チャネルを広げるか、メールへのフォールバックを許可してください。

連絡先が配信停止しました — 何を送れますか?

They had already unsubscribed は、その連絡先に全体オプトアウトが設定されていることを意味します — あなたのメール内の配信停止リンクから、インポート時に取り込まれて、またはチームメンバーの切り替えによって設定されます。キャンペーンとシリーズは、メールに限らずすべてのチャネルでこうした連絡先をスキップし、配信は失敗ではなくスキップとして記録されます。会話の中でのチームメンバーによる 1 対 1 の返信は、意図的にブロックされません: オプトアウトは一斉配信に関するものであり、書いてきた相手に答えるかどうかは人の判断だからです。状態は連絡先に Outbound: Subscribed / Unsubscribed として表示され、連絡先一覧はこれで絞り込めます。連絡先の Re-subscribe ボタンで解除できますが、本人から依頼された場合にのみ使ってください。

再試行は何回まで行われますか?Retry を押しても安全ですか?

受信トレイからの返信はキューに渡され、最大5 回まで試行されます。間隔はおよそ 3 分、10 分、30 分、30 分です。再試行されるのは一時的な失敗だけです — タイムアウト、接続拒否、レート制限、プロバイダー側のサーバーエラー。恒久的な拒否(存在しないアドレス、未確認の送信ドメイン、認証情報の拒否)は繰り返しても同じ答えが返るため、すぐに失敗として記録されます。キャンペーンの配信は独自のキューで動き、最大6 回、待ち時間も短く 5 秒、30 秒、2 分、10 分です。これを使い切ると、配信は「queued」のまま放置されるのではなく Delivery kept failing and was stopped after several attempts として終了します。手動で Retry を押すのは安全です。本当に失敗状態のメッセージにしか作用せず、メールの場合はまず元のメールがどうなったかをプロバイダーに問い合わせます。実際に送信されていた場合は、2 通目を送る代わりに行が配信済みに変わり、本当の再送信は新しい冪等キーで送られます。2 通目が誤りとなる場合 — ハードバウンス、スパム報告、送信処理中 — はボタン自体が表示されないか、理由付きで再試行が拒否されます。

原因がまだ分かりません — どうすればサポートを受けられますか?

失敗したメッセージにはすべて隣に Ask Copilot ボタンがあります。エラー、チャネル、会話を添付した状態で Copilot が開き、Copilot は Respondo 自身のヘルプドキュメントをもとに、その失敗に合わせた手順を回答します。この支援は無料で、AI リクエスト数には計上されません。 手順で解決しない場合は、その旨を伝えてください。「解決しませんでした」だけで十分です。すると Copilot が、問題を Respondo チームに引き渡すカードを提案します。カードには送信される内容が正確に列挙され、確認するまで何も送信されず、その返信は同じ Copilot スレッドに届きます。引き渡しができない場合、Copilot は黙り込まず、そのことをはっきり伝えます。