ルールエンジンドキュメント
IF/THENルールを作成して、応答の自動化、会話のルーティング、チャット動作のカスタマイズを行います。
ルールの仕組み
ルールにより、訪問者がメッセージを送信したときに何が起こるかを完全に制御できます。各ルールは、AI自動返信が応答する機会を得る前に、すべての着信訪問者メッセージで評価されます。
- 各ルールには条件(IF)とアクション(THEN)があります。
- マッチモードで条件の組み合わせ方法を決定します:すべての条件に一致(ANDロジック)またはいずれかの条件に一致(ORロジック)。
- ルールは優先度順に実行されます — 番号が小さいほど優先度が高い(先に実行)。
- マッチ時に停止 — 有効にすると、このルールが発火した後、以降のルールはチェックされません。
- ルールはAI自動返信を抑制できます(例:
REPLY_TEXTが代わりに応答を処理)。
条件リファレンス
条件はルールがいつ発火するかを定義します。ALL(AND)またはANY(OR)マッチモードを使用して複数の条件を組み合わせることができます。
MESSAGE_CONTAINS
訪問者のメッセージに特定の単語やフレーズが含まれているかチェックします。
| パラメータ | 説明 |
|---|---|
value | メッセージ内で検索するテキスト |
caseSensitive | true / false — 大文字小文字を区別するか |
例:「メッセージにpricingを含む」は「What's your pricing?」にマッチ
MESSAGE_MATCHES_REGEX
訪問者のメッセージを正規表現と照合します。
| パラメータ | 説明 |
|---|---|
pattern | デリミタを含む正規表現、例:/order\s*#?\d+/i |
例:/\b(refund|return|cancel)\b/iは返金関連のメッセージにマッチ
ヒント:パターンを追加する前にregex101.comでテストしてください。
VISITOR_LANGUAGE
訪問者の検出された言語をチェックします。
| パラメータ | 説明 |
|---|---|
operator | equals、not_equals、またはin |
value | 言語コード(en、pl、deなど) |
例:訪問者の言語がplと一致 → ポーランド語オペレーターにルーティング
OPERATOR_ONLINE
チーム内にオンラインのオペレーターがいるかチェックします。
| パラメータ | 説明 |
|---|---|
value | true = 少なくとも1人のオペレーターがオンライン、false = 全オペレーターがオフライン |
例:オペレーターオンライン = false → 「現在オフラインです」メッセージを送信
SESSION_VARIABLE
会話に保存されたカスタム変数(以前のルールで設定)をチェックします。
| パラメータ | 説明 |
|---|---|
key | チェックする変数名 |
operator | equals、not_equals、exists、またはnot_exists |
value | 期待値(exists / not_existsには不要) |
例:セッション変数lead_typeがdemoと一致 → 営業チームに割り当て
アクションリファレンス
アクションはルールの条件が満たされたときに何が起こるかを定義します。1つのルールに複数のアクションを設定できます。
REPLY_TEXT
訪問者に自動テキスト返信を送信します。
| パラメータ | 説明 |
|---|---|
text | 訪問者に送信するメッセージ |
注意:AI自動返信を抑制 — ルールが応答を処理します。
例:「チームは現在オフラインです。営業時間内にご返信いたします。」
REPLY_AI
このメッセージにAI自動返信を使用するよう明示的にシステムに指示します。
注意:他のアクションと組み合わせて使用 — 例:変数を設定してAIに回答させる。
SET_VARIABLE
後で他のルールで使用するためのキーと値のペアを会話に保存します。
| パラメータ | 説明 |
|---|---|
key | 変数名 |
value | 変数の値 |
注意:AIを抑制しません — 変数設定後もAIは応答できます。
例:フォローアップのためにinterest = enterpriseを設定
ASSIGN_TO_OPERATOR
チームの特定のオペレーターに会話を割り当てます。
| パラメータ | 説明 |
|---|---|
operatorId | チームメンバーから選択 |
注意:暗黙的にAIを抑制 — 割り当てられた会話にはAI返信は行われません。
例:VIP顧客をシニアサポートエージェントにルーティング
NOTIFY_OPERATORS
サウンド通知付きで、すべてのオンラインオペレーターにリアルタイムアラートを送信します。
| パラメータ | 説明 |
|---|---|
message | オペレーターに表示されるアラートメッセージ |
注意:AIを抑制しません — アラートとAI応答の両方が行われます。
例:「緊急:訪問者が即座に助けを必要としています!」
SEND_EMAIL
会話コンテキスト付きでメールを送信します。エスカレーションやCRM連携に便利です。
| パラメータ | 説明 |
|---|---|
to | 受信者のメールアドレス |
subject | メールの件名 |
body | メール本文(オプション — 会話コンテキストは自動的に追加されます) |
注意:AIを抑制しません。
CALL_API
外部APIエンドポイントを呼び出し、レスポンスをセッション変数に保存します。事前にAPI接続の設定が必要です。
| パラメータ | 説明 |
|---|---|
endpointId | 設定済みのAPIエンドポイントから選択 |
注意:AIを抑制しません — REPLY_AIと組み合わせてAIが取得したデータを使用するようにしてください。完全なセットアップガイドについてはAPI接続ドキュメントをご覧ください。
例:注文追跡APIを呼び出し → ステータスをセッションに保存 → AIが実際の注文データで応答
実用的な例
あなたの設定に合わせて応用できるすぐに使えるルールレシピ。
1. 料金の質問に自動回答
静的な返信で一般的な質問に回答し、AIトークンを節約。
IF(いずれか一致): MESSAGE_CONTAINS price、MESSAGE_CONTAINS cost、MESSAGE_CONTAINS pricing
THEN: REPLY_TEXT: 「プランは月額€19からです。詳しい料金はenuchat.com/pricingをご覧ください」
マッチモード:いずれか · マッチ時に停止:はい
2. 言語別に訪問者をルーティング
ポーランド語の訪問者をポーランド語オペレーターに直接送信。
IF(すべて一致): VISITOR_LANGUAGE equals pl
THEN: ASSIGN_TO_OPERATOR → ポーランド語オペレーター
マッチモード:すべて · マッチ時に停止:はい
3. 営業時間外の挨拶
誰もオンラインでない場合の期待値を設定。
IF(すべて一致): OPERATOR_ONLINE = false
THEN: REPLY_TEXT: 「お問い合わせありがとうございます!チームは現在オフラインです。AIがお手伝いを試みますが、営業時間内にフォローアップいたします。」
マッチモード:すべて · マッチ時に停止:いいえ(AIも応答させる)
4. デモリクエストのタグ付けとルーティング
セッション変数を使用した2つのルールの連携。
ルール1 — IF(すべて一致): MESSAGE_CONTAINS demo
ルール1 — THEN: SET_VARIABLE lead_type = demo_request。マッチ時に停止:いいえ(AIが最初のメッセージに応答)
ルール2 — IF(すべて一致): SESSION_VARIABLE lead_type equals demo_request
ルール2 — THEN: ASSIGN_TO_OPERATOR → 営業。マッチ時に停止:はい
最初のメッセージでタグを設定しAIが応答。同じ訪問者からの2番目のメッセージで営業にルーティング。
5. 正規表現で注文番号を検出
注文関連の問い合わせを自動的にサポートにルーティング。
IF(すべて一致): MESSAGE_MATCHES_REGEX /\b(order|tracking)\s*#?\s*\d{'{'}4,}/i
THEN: ASSIGN_TO_OPERATOR → サポートエージェント、REPLY_TEXT: 「注文に関するご質問ですね。サポートチームにおつなぎします。」
マッチモード:すべて · マッチ時に停止:はい
6. 条件の組み合わせ(ANDロジック)
複数の条件がすべてtrueの非常に特定のシナリオでのみトリガー。
IF(すべて一致): VISITOR_LANGUAGE equals en、MESSAGE_CONTAINS urgent
THEN: ASSIGN_TO_OPERATOR → シニアエージェント
マッチモード:すべて(両方一致が必要) · マッチ時に停止:はい
ヒント&ベストプラクティス
- 順序が重要:優先度番号の小さいルールが先に実行されます。最も重要なルールを上に配置してください。
- 「マッチ時に停止」を使用して、同じメッセージで複数のルールが発火するのを防ぎます。
- ダッシュボードのテストパネルで本番前にテストしてください。
- REPLY_TEXTメッセージは簡潔に — 訪問者はエッセイではなくチャットを期待しています。
- SESSION_VARIABLEでマルチステップフローを構築 — 最初のメッセージで会話にタグを付け、後でそれに基づいてアクション。
- 正規表現のヒント:常に大文字小文字無視フラグ
/iを使用し、regex101.comでパターンをテスト。 - 少ないほど良い:50の重複するルールよりも、10〜15の丁寧に作られたルールの方が優れています。
- ルールはAIの前に実行 — ルールがメッセージを処理すると、AIは応答しません(トークンを節約)。