
KARTE Craftを使ってあるユーザーの行動をきっかけに関連する別のユーザーに通知する
こんにちは、Customer Engineerの島本です!最近銀座にできたオールドルーキーが気になってます。
さて、KARTE ではユーザーの特定の行動をきっかけにLINE やメールなどの配信ができますが、「あるユーザーの行動をきっかけに関連する別のユーザーに通知をしたいな」と思ったことはありませんか?
例えば、次のようなサービスでは有効な施策になると考えています。
- サービスの契約者と利用者が異なるような教育系サービス
- 金融や不動産、BtoBなど顧客に対して担当者がつくサービス
サービスの契約者と利用者が異なるような教育系サービスであれば、利用者のサービス利用状況を契約者に通知することで両者の満足度を向上することができますし、他にも金融や不動産、BtoBなど顧客に対して担当者がつく場合も、顧客の行動情報を担当者に通知することで成約率の向上に繋げることができます。
ただ、現在のKARTE ではあるユーザーの行動をきっかけに関連する別のユーザーに接客サービスの配信することが出来ません。
しかし、KARTE Craft を使うことで実現することができます!
今回は「ユーザーA が特定のページを閲覧したことをきっかけに関連するユーザーB にLINE で通知する」方法について紹介します。
処理の流れ
全体の処理の流れは、次の通りです。
実現する上で必要なプロダクトやオプションは以下になります。
また、Craft Functions とLINE 接客との連携では次の2つの機能を利用します。
- サーバーサイドアクショントリガー
- Craft 用接客アクションの実行をきっかけにFunctionを実行する
- API v2 の Send event to KARTE and exec serverside-action API
- API 経由で KARTE にイベントを送信し、サーバサイドのアクションを実行する
実装手順
実装の手順は次の通りです。
紹介する内容はKARTE でユーザーA とユーザーB の計測ができていることが前提条件となります。
- 相互に関連するユーザーのマッピングテーブルを用意する
- 紐づけテーブルに連携してユーザーにデータを紐付ける
- Craft 用接客を作成する
- API v2 アプリを作成する
- API v2 アプリの アクセストークンを Craft Secret Manager に登録する
- Craft Functions を作成する
- LINE 接客を作成する
順番に見てみましょう。
1. 相互に関連するユーザーのマッピングテーブルを用意する
まず、どのユーザーがどのユーザーと相互に関連するのかをKARTE 側で識別するために、マッピングテーブルをCSVファイル形式で用意します。以下のサンプルを参考に準備を進めてください。
今回はユーザーA のID をuser_id
、ユーザーB のID を related_user_id
とします。
【マッピングテーブルのCSVデータ例】
user_id | related_user_id |
---|---|
xxxxabc | xxxxdef |
2. 紐づけテーブルに連携してユーザーにデータを紐付ける
次に、用意したマッピングテーブルを紐づけテーブルに連携します。
以下サポートサイトを参考に用意したマッピングテーブルを紐づけテーブルにインポートしてください。
紐付け設定については、次のとおりに設定を行います。
- 紐付けテーブルの「データ紐付け」タブをクリック
- 右上の「編集」をクリック
- 「紐付けテーブルの有効化」にチェックを入れ、以下の設定を行う
- 紐付け対象のフィールド:ユーザー情報 ->
user_id
- オプション:
- データの追加先:ユーザー情報
- データの上書き:既に紐付いているデータを上書きしたい場合はチェックを入れます(今回は新規で紐付けを行うのでチェックは不要です)
- 紐付け対象のフィールド:ユーザー情報 ->
- 右上の「保存」をクリック
これでユーザーAのID: user_id
に対してユーザーBのID: related_user_id
の紐づけ設定が完了しました。
3. Craft 用接客を作成する
Functionをトリガーする条件を指定するための接客サービスを作成します。
- 接客サービス画面を開く
Craft Functions連携
テンプレートを利用してアクションを追加- ※ テンプレートが表示されない場合は、Craftの利用申請が必要です
今回は、ユーザーA が特定のページを閲覧したことをきっかけにFunction をトリガーするため、次のようにCraft 接客の配信設定を行います。
- 「アクション」
- 配信率: 100%
- ※ アクションの中身の設定については後述
- 配信率: 100%
- 「対象ユーザー」
- 全員
- ※ 対象ユーザーを絞りたい場合は、条件を指定します
- ※ 検証中はテスト配信用のセグメントを設定してください
- 全員
- 「対象イベント」
- 「〇〇ページを見た」という条件になるよう「閲覧イベント」に対する条件を指定
- 「オプション」
- 同時配信: OK
- 保存をする
次に、接客サービスに登録したアクションの設定をしていきます。ここで設定した内容がCraft Functions 側に渡されます。
先程連携した紐づけテーブルで紐付けたデータは「ユーザー情報変数」で接客サービス内に埋め込むことができます。その機能を活用して、related_user_id
をCraft Functions 側に渡す設定を行います。
- 「アクション設定」を埋めていく
- 「ファンクション名」
- トリガーしたいFunctionの名称(今回の例では notify-other-users )を設定
- 「name」
- 今回は利用しないので「ファンクション名」と同じ値を設定
- 「data」
- JSONで
related_user_id
を設定
- JSONで
- 「ファンクション名」
{
"related_user_id": "#{related_user_id}"
}
- 「データ管理」をクリック
- ユーザー情報変数を次のとおりに設定
- 変数名:
related_user_id
- すべての期間 > ユーザー情報 >
related_user_id
> 最新の値
- 変数名:
- ユーザー情報変数を次のとおりに設定
- 保存する
以上で、ユーザーA が特定のページを閲覧したタイミングで、Craft Functions 側にユーザーB のユーザーIDを渡す設定が完了しました。
4. API v2 アプリを作成する
API 経由で KARTE にイベントを送信し、LINE接客アクションを実行するための設定を進めていきます。
まずは、Send event to KARTE and exec serverside-action API を利用するためのAPI v2アプリを作成します。
- [ストア > API v2設定] からアプリを新規作成
- [アプリタイプ] を token に設定
- 必要なscopeを追加
beta.track.event.writeAndExecAction
: イベントを送信してサーバサイドのアクションを実行するのに必要
- アプリを保存し、一度だけ表示されるアクセストークンを控えておく
「アプリタイプ」は後から変更できないため、誤って作成した場合は、アプリを再度作成し直してください。
5. API v2 アプリの アクセストークンを Craft Secret Manager に登録する
API v2 アプリのアクセストークンを Craft Secret Manager のシークレットとして登録します。それにより、秘匿すべきアクセストークンをファンクション上に直接記述する必要が無くなります。
- [Craft > シークレット] からシークレットを新規作成
- 控えておいたアクセストークンを貼り付けて、適当な名前を付けて保存
作成したシークレットの名前は、次に作成するCraft Functions のファンクション中に記載します。
6. Craft Functions を作成する
ユーザーB に対してイベントを送信するためのCraft Functions のファンクションを作成します。サンプルとなるソースコードは、GitHubで公開しています。
craft-codes/craft-functions/notify-other-users at main · plaidev/craft-codes · GitHub
実装内容は、次のとおりです。
- Craft 接客からユーザーB のuser_id を受け取る
- ユーザーB に対してAPI v2 を使ってイベントを送信する
Craft Functions作成画面のcode に サンプルコードのindex.js の内容を貼り付け、modules に modules.json の内容を貼り付けます。冒頭に以下の2つを定数に指定します。
- 送信するイベント名
- ユーザーB に対して送信するイベント名を指定する
- イベントには使用できないイベント名があるためサポートサイトを参考にしてください
- シークレット名
- Craft Secret Manager に登録したSecret名を貼り付ける
const EVENT_NAME = ''; // 送信するイベント名を指定する
const SECRET_NAME = ''; // シークレット名を指定する
イベントを送信するユーザーのIDを指定する際には、アクション設定で記載したJSONのフィールド名と一致させてください。
const userId = data.jsonPayload.data.related_user_id; // イベントを送信するユーザーのIDを指定する
7. LINE 接客を作成する
最後に、ユーザーB に対するLINE 接客を配信するための設定を行います。
LINE 接客を作成する前に、以下LINE 連携の対応を完了させておいてください。
LINE 連携の設定完了後、接客サービスを作成からLINE 接客を作成します。
-
接客サービス画面を開く
-
「LINE」のテンプレート一覧から適切なアクションを追加
-
「アクション」
- 配信率: 100%
- テンプレートに合わせてユーザーB に通知したい内容をアクションの設定で行う
- 配信率: 100%
-
「配信モード」
- イベント応答配信
-
「対象ユーザー」
- 全員
- ※ 対象ユーザーを絞りたい場合は、条件を指定します
- ※ 検証中はテスト配信用のセグメントを設定してください
- 全員
-
「対象イベント」
- 「ユーザーB に対して送信したイベント」に対する条件を指定
-
保存をする
以上でユーザーB に対するLINE 接客アクションの設定が完了しました。
実際に動かしてみる
「ユーザーA が特定のページを閲覧したことをきっかけに関連するユーザーB にLINE で通知する」実装が完成したところで、実際に動作を確認しましょう。
まず、ユーザーA が特定のページを閲覧します。
今回は商品詳細ページを閲覧した際にCraft 接客が実行される設定にしています。
ユーザーB のユーザーストーリー画面を見るとCraft functions から「notification」イベントが送信されていることが確認できます。
(※ KARTE ではイベントのライフサイクルが導入され、新規に送信されたカスタムイベントは、対応未設定のイベントとして扱われます。これらのイベントの挙動は暫定的に「解析しない」と同じ状態になっているため、こちらのサポートサイトの状態の変更方法を参考に、イベントの用途に応じた状態を設定してください。)
そして、ユーザーB に対してLINE メッセージが送信されていますね!
時間を見ると、商品詳細ページを閲覧したタイミングで届いていることが確認できます。
おわりに
今回は特定のページを閲覧した時をトリガーに LINE に通知を飛ばす方法を紹介しました。
LINE 以外にもAPIが公開されており外部サービスとの連携ができるサービスに対して通知を飛ばすことができるので、あらゆるシーンでの活用ができます。
冒頭お伝えした通り以下のようなサービスでは有効な施策になると思います。
- サービスの契約者と利用者が異なるような教育系サービス
- 金融や不動産、BtoBなど顧客に対して担当者がつくサービス
KARTE Craft を使ってみたいと思った際には是非一度ご相談くださいませ!
プレイドでは、世の中にインパクトを与える新しいソリューションを一緒につくる仲間を募集しています!
ぜひ気軽にお問い合わせください。
↓ パートナー企業になりたい
↓ PLAIDで働きたい
※KARTE Craftをまだ有効化していない場合はこちらからお問い合わせください!
記事をシェア