
はじめに
冬です、寒いです。エキスパート開発チームの尾藤です。
弊社では複数のサービスを提供しており、それに伴い様々な外部サービスを利用しています。その中でも今回はintercomについて概要からデータ連携まで紹介します。
intercomができること
intercomはユーザとのコミュニケーションを一元管理できるSaasツールです。 チャットによる問い合わせ対応、自動メッセージ配信やボットによる応答、さらにユーザー情報の管理や特定条件に基づくアクションの実行など、カスタマーサポートや顧客エンゲージメントに必要な機能をまとめて提供しています。 特に、ユーザーの行動履歴や属性情報に基づいてメッセージ配信やプロダクトツアーの表示などを自動化できる点は、大きな特徴の一つです。 これらの機能を効果的に活用するには、ユーザに関する属性やプロダクト内での行動データをIntercomへ連携することによって実現できます。
intercomデータ管理の特徴
Intercomは基本的にContact(ユーザー)を中心としたデータ構造になっています。
本章では標準属性(Standard attributes)とカスタム属性(Custom attributes)について本章では述べますが、他にもイベント履歴やコミュニケーション履歴といったデータなどがあります。これらすべてのデータ群はユーザー単位で統合されるため、誰がどんな属性を持ち、何をしたか、どんな問い合わせを行ったかを把握できます。この仕組みが、Intercomにおけるユーザー情報の一元管理を実現しているんですね。
intercom側で様々なアクションを行うには特に以下の属性をフル活用されるかと思いますので、それぞれの特徴を述べます。
- 標準属性(
Standard attributes)- 名前やアカウント作成日時といった基本的な情報、Intercomがデフォルトで持つ属性
- Intercom にあらかじめ用意されている「箱」のようなもので、値は送信して初めて入る
- ダッシュボード上だと空っぽでもUI上に表示される
- カスタム属性(
Custom attributes)- 自由に追加して拡張できる任意の属性
- 基本的にはAPI送信時に「箱」と「値」が動的に生成されますが、管理画面から事前に「箱(属性)」のみを作成することも可能
- 「箱(属性)」がなければUI上で表示されません
- データルールあり
標準属性もカスタム属性も、Intercomで値を管理するには開発側から送信する必要がある or 管理画面から手動入力・更新という点はどちらも共通です。 ダッシュボード上のUI的な見方としてカバンやメールアイコンなど、アイコンが設定されてるのが標準属性であり、「⇄」のアイコンがカスタム属性のようでした。

カスタム属性(Custom attributes)のデータルール
自由に追加自体はできますが、以下の制約があります!データ送信時はバリデーションを設けるなどして送信前に値をチェックしましょう。
- カスタム属性は最大250個まで設定可能
- フィールド名
- フィールド名にピリオド(.)やドル記号($)を含めてはいけない
- フィールド名は190文字以内
- 一度intercom側に送信されたフィールド名は以降変更不可
- 日時を表したい場合は属性名のsuffixに
_atをつけること(intercomが自動で日時と認識するため)
- フィールド値
- JSONの文字列、数値、またはbool値(オブジェクトや配列は❌)
- 一度値を送るとintercom側でその属性型を記憶するため、型の一致に気をつけること例)1回目:email: xxxx@test.com2回目:email: 1234 ⚠️1回目でstring値を送っているのでstringとして認識されてしまう、全く異なる型を送った場合は型エラーが返る
- 文字列型のフィールド値は255文字以内
- 日時はUnixタイムスタンプに要変換(UNIX時間はミリ秒ではなく秒単位で渡すこと)
- 値は自動で消えないため、クリアする場合は型に応じて
nullまたは空文字("")を明示的に送信する必要がある
これらの特徴から、同一ユーザーに対して継続的にデータを送信し、存在すれば更新・存在しなければユーザ作成する形で同期を行う必要があります。
参考記事
- Create and track custom data attributes (CDAs) | Intercom Help
- How dates work in Intercom | Intercom Help
intercomデータ連携
データ連携の方法は大きく分けてバックエンド・フロントエンドの2つです。
バックエンド経由
IntercomのAPIを通じてデータを送信できます。標準属性と一緒にカスタム属性もまとめて送信・更新可能なため基本的にはこのAPIを用いて連携を図ります。他にもintercomでは様々なAPIを紹介しており、イベント履歴やコミュニケーション履歴の取得から、特定のイベント発生時に特定の属性値を更新する、なんてことも可能です。
参考記事
フロントエンド経由
JS
- intercomが提供する公式JavaScript スニペットがあります。
- 送信値は標準属性・カスタム属性・イベントなど主たるデータ送信が可能なため、ページに埋め込むことで簡単に連携が可能です。
GTM(Google Tag Manager)経由
- ページにGTMを設置している場合、Intercom JS スニペットをタグとして発火することも可能です。
- または、GTMのカスタムHTMLタグやデータレイヤー経由でユーザー情報やイベントを送信することも可能です。
GTMデータレイヤー経由の参考記事
- Install Intercom with Google Tag Manager | Intercom Help
- Adding the website script to Google Tag Manager | Feedbackly Help Center
intercom では公式のコミュニティサイトもあり、Intercom に関する疑問や問題解決、メッセージ配信のコツやカスタム属性の活用法などの情報が多く掲載されています。実務での運用や API の活用例を知るうえで、こちらも参考になるでしょう。
Intercom Community | Community
おわりに
顧客とのコミュニケーションをリアルタイムで、しかも一元管理できるintercomの強さ。 データの柔軟性も高く、使いこなせれば顧客体験改善に大いに貢献できそうですね!
最後に…
ビザスクではエンジニアの仲間を募集しています! 少しでもビザスク開発組織にご興味を持たれた方は、ぜひ一度カジュアルにお話ししましょう! recruit.visasq.co.jp