インタラクション
インタラクションは、LINE公式アカウントのユーザーと対話形式でコミュニケーションをとるための機能です。アンケートの実施、予約の受付、ユーザープロセスのガイドなど、さまざまな目的に利用できます。
インタラクションの作成
新しいインタラクションを作成するには、WordPressダッシュボードの「インタラクション」メニューに移動し、「新規追加」をクリックします。インタラクションの動作とフローを定義するためのフォームが表示されます。
インタラクション設定
インタラクションフォームのトップレベルで、インタラクションの全体的な設定を行うことができます。
| フィールド | 説明 |
|---|---|
| タイムアウト (分) | 非アクティブな状態が何分続いたらインタラクションセッションを期限切れにするかを設定します。0に設定するとタイムアウトしません。 |
| タイムアウトリマインダーを送信 | タイムアウトの何分前にリマインダーメッセージを送信するかを設定します。0に設定するとリマインダーは送信されません。リマインダーメッセージの内容は、特別な「Timeout Remind」ステップで定義します。 |
| タイムアウト時 | セッションがタイムアウトしたときの動作を定義します。 - セッションを削除: セッションデータが完全に削除されます。 - タイムアウトとしてマーク: セッションはタイムアウトとしてマークされますが、データは保持されます。 |
| 実行ポリシー | 同じユーザーが同じインタラクションを実行しようとした場合の処理方法です。 - 許可しない: ユーザーがすでにこのインタラクションを実行済みの場合、新しいインタラクションは開始されません。 - 許可 (最新のみ保持): 以前のインタラクションは削除され、最新のもののみ保存されます。 - 許可 (履歴を保持): 複数のインタラクション記録が保存されます。 |
| 上書きポリシー | 進行中のインタラクションがある場合に新しいインタラクションを開始しようとした場合の処理方法です。 - 拒否: 新しいインタラクションは開始されません。 - 同じもののみ再起動: 新しいインタラクションが現在のものと同じ場合、現在のセッションを最初からやり直します。 - 異なるもののみ再起動: 新しいインタラクションが現在のものと異なる場合、現在のものは削除し、新たにセッションを開始します。 - 常に再起動: 常に現在のセッションを終了し、新しいセッションを開始します。一時停止している同じインタラクションが ある場合、そのセッションを最初からやり直します。 - スタック: 現在のインタラクションを一時停止し、新しいセッションを開始します。新しいインタラクションの完了後に、スタックされていたインタラクションが再開されます。 |
| バージョン | インタラクションフォームのバージョンです。既存のインタラクションから構造的な変更がある場合は、このバージョン番号を大きくすることで、現在進行中のインタラクションがある場合の影響を避けることができます。 |
| ストレージ | 収集したデータの保存場所です。 - プロフィールにバインド: データはユーザーのプロフィールに紐づけられて保存されます。ステップIDがキーとなります。 - インタラクション: データはインタラクションセッションテーブル内に保存されます。 |
| 除外ステップ | ここで設定したステップIDの入力値は確認画面に表示されず、保存もされません。同意や単なる説明ステップなど、ユーザーデータを収集しないステップに設定します。 |
| キャンセルワード | インタラクションを中断するための単語やフレーズのリストです。ユーザーがこれらの単語を送信すると、確認メッセージが表示されインタラクションを中断します。一致条件(完全一致、部分一致、正規表現)を定義できます。 |
ステップの構築
インタラクションは1つ以上のステップで構成されます。各ステップが会話の一部を定義します。
ステップの設定
| フィールド | 説明 |
|---|---|
| ID | ステップの一意の識別子です。分岐やデータ参照に使用されます。英数字とハイフン(例: ask-name, confirm-email)を使用することをお勧めします。 |
| タイトル | 確認画面で表示されるステップのタイトルです。 |
| 説明 | 確認画面で表示されるステップの説明です。 |
| 次のステップID | 他の分岐ロジックが適用されない場合に、このステップが完了した後に進むステップのIDです。 |
| 停止 | チェックをいれると、このステップでインタラクションが終了します。 |
メッセージ
各ステップで、ユーザーに1つ以上のメッセージを送信できます。さまざまなメッセージタイプから選択できます。 また、クイックリプライを追加することも可能です。
- テキスト: シンプルなテキストメッセージ。
- スタンプ: LINEスタンプ。
- 画像, 動画, 音声: メディアメッセージ。
- 位置情報: 位置情報メッセージ。
- Flex: Flex Message Simulatorで作成したJSONを使用してカスタマイズ可能なレイアウトのメッセージ。
- Raw: LINEメッセージの生のJSONオブジェクト。
- テンプレートボタン: タイトルとボタンのセットを持つメッセージ。各ボタンにはラベル、値、および会話を分岐させるための
nextStepIdを設定できます。 - 確認テンプレート: 確認画面のためのテンプレート。各ステップのタイトルと入力値が自動的に表示されます。加えて、「適用」と「編集」ボタンを表示できます。
- 編集項目選択テンプレート: 修正したいステップを選択するためのテンプレート。各ステップのタイトルと戻るためのボタンが自動的に生成されます。
- キャンセル確認テンプレート: インタラクションを中止するかどうかの確認メッセージ用テンプレート。
ユーザー入力の処理
各ステップでユーザーの入力を処理し、検証することができます。
正規化
正規化ルールは、検証と保存の前にユーザーの入力をクリーンアップします。
- トリム: 入力の最初と最後の空白を削除します。
- 除去: コンマ、ハイフン、スペースなどの文字を削除します。
- 文字種変換: 日本語の文字種(ひらがな、カタカナ)間、または半角と全角の英数字間で変換します。
バリデーション
バリデーションルールは、ユーザーの入力が正しい形式であることを保証します。バリデートに失敗した場合、ユーザーに再度プロンプトが表示されます。
- 必須: 入力必須項目であることを示します。
- 数値: 入力は数値でなければなりません(オプションで最小/最大値を設定可能)。
- 長さ: 入力は特定の文字数でなければなりません(オプションで最小/最大長を設定可能)。
- Eメール, 電話番号, URL: 入力は有効なEメール、電話番号、またはURLでなければなりません。
- 日付, 時刻, 日時: 入力は日付/時刻形式に一致する必要があります。
- Enum: 入力は定義済みの値のリストのいずれかでなければなりません。
- 正規表現: 入力は正規表現に一致する必要があります。
- 日本語: 入力はひらがなまたはカタカナでなければなりません。
- 禁止コンテンツ: 入力に特定の単語を含めたり、特定のパターンに一致させたりすることはできません。
入力値に応じた分岐
分岐ユーザー入力に基づく条件分岐を定義します。分岐は、ユーザーの入力に基づく条件と、条件が満たされた場合にジャンプするステップIDの組み合わせです。
- 条件タイプ:
等しい,含む,正規表現。 - マッチする値: ユーザーの入力に対してチェックする文字列またはパターン。
- **この分岐の次のステップID **: 条件を満たした場合にジャンプするステップID。
分岐は順に評価されます。どの分岐条件も満たされない場合、ステップのデフォルトの次のステップIDが使用されます。
特別なステップ
このステップが特殊なステップかどうかを指定します。
| 特別なステップ | 説明 |
|---|---|
| 確認 | ユーザーの入力を表示し、確認を求めるステップ。 |
| 編集項目選択 | ユーザーが戻って編集したい以前のステップを選択するためのボタンを動的に生成するステップ。 |
| 完了 | インタラクションが完了した後に表示されるメッセージを定義するためのステップ。 |
| キャンセル確認 | ユーザーにインタラクションを中断するかどうかを確認するメッセージを定義するためのステップ。 |
| キャンセル済み | ユーザーがインタラクションを中断した後に表示されるメッセージを定義するためのステップ。 |
| Timeout Remind | もうすぐタイムアウトすることを通知するメッセージを定義するためのステップ。 |
| タイムアウト通知 | インタラクションがタイムアウトしたときに送信するメッセージを定義するためのステップ。 |
アクション
ステップのライフサイクルの2つの時点でアクションを実行できます:
- 入力前アクション: ユーザーが入力を行う前に、ステップが開始されるときに実行されます。
- 入力後アクション: ユーザーが入力を提供し、それが検証された後に実行されます。
これにより、インタラクションの一部としてデータを取得したり、ユーザープロファイルを更新したり、他のプロセスをトリガーしたりできます。
インタラクションデータの使用
以前のステップで収集したデータをメッセージやアクションパラメータ内で参照できます。{{session.step_id}}の形式を使用します。ここでstep_idは、データにアクセスしたいステップのIDです。
たとえば、ユーザーが名前を入力するask-nameというIDのステップがある場合、後続のステップで{{session.ask-name}}を使用して個人宛に呼びかけることができます:
{{session.ask-name}}さん、こんにちは!私たちのサービスへようこそ。
セッションの管理
各インタラクションのセッションは、WordPress管理画面のインタラクション一覧から直接表示・管理することができます。
インタラクション一覧のカラム
インタラクション一覧画面には、セッションの統計情報を素早く確認するためのカラムが追加されています。
| カラム | 説明 |
|---|---|
| アクティブ | 現在進行中のセッション数。 |
| 一時停止 | 一時停止中のセッション数(例:他のインタラクションによってスタックされている)。 |
| 完了 | 正常に完了したセッション数。 |
| タイムアウト | ユーザーの無操作により期限切れとなったセッション数。 |
| 完了率 | 開始された全セッションのうち、完了したセッションの割合。 |
| ユニークユーザー数 | このインタラクションのセッションを開始したユニークLINEユーザーの数。 |
| セッション | そのインタラクションの詳細なセッション管理ページへのリンク。 |
これらの統計情報のカラムヘッダーをクリックすることで、インタラクションを並べ替えることができます。
セッション管理画面
セッションカラムの「セッション一覧」リンクをクリックすると、セッション管理画面に移動します。この画面では、選択したインタラクションの全セッションを詳細に確認できます。
フィルタリングと検索
ページ上部のコントロールを使用して、セッションのフィルタリングや検索ができます。
- ステータスで絞り込み: 特定のステータス(例:アクティブ、完了)のセッションのみを表示し ます。
- バージョンで絞り込み: インタラクションのバージョン番号で絞り込みます。
- チャネルで絞り込み: セッションが属するLINE公式アカウントのチャネルで絞り込みます。
- LINEユーザーIDで検索: 特定のユーザーの全セッションを検索します。
- 更新日時で絞り込み: 開始日時と終了日時を選択し、特定の期間内に更新されたセッションを検索します。
CSVダウンロード
CSVダウンロードボタンをクリックすると、現在フィルタリングされているセッションの一覧をCSVファイルとしてエクスポートできます。これは外部での分析や記録保持に便利です。
セッション一覧
画面の主要部分はセッションの一覧で、以下の情報が含まれています。
- セッションID
- インタラクションバージョン
- チャネル名
- LINEユーザー(表示名またはユーザーID)
- ステータス
- 現在のステップID(アクティブなセッションの場合)
- 最終更新日時
セッション詳細の表示と編集
一覧のいずれかのセッションをクリックすると、そのセッションの完全な詳細情報(ユーザーから収集した全データを含む)がサイドパネル(ドロワー)で開きます。
このビューから、以下の操作が可能です。
- セッションデータの編集: 収集されたデータの値を変更します。
- ステータスの変更: セッションのステータスを手動で変更します(例:「アクティブ」から「完了」へ)。
行った変更は「保存」ボタンをクリックすることで保存されます。
セッションの削除
セッションを削除するには、一覧の対応するセッションのアクションカラムにあるゴミ箱アイコンをクリックします。削除の確認を求められます。セッションの削除は永続的であり、元に戻すことはできません。詳細ビューからもセッションを削除できます。