LINE Messaging公式アカウント(OA)は、顧客の会話データと行動データを収集し、分析、トリガー、マーケティング目的のパーソナライゼーションに活用できます。この連携により、LINE OAからのメッセージ/イベントデータをTreasure Dataにインポートできます。
この連携は、LINE Messaging APIから送信されるすべてのWebhookイベントを受信します。以下が含まれます:
- メッセージイベント(テキスト、画像、動画、音声、ファイル、位置情報、スタンプ)
- フォローイベント(ユーザーがアカウントを友だち追加したとき)
- アンフォローイベント(ユーザーがアカウントをブロックしたとき)
- 参加イベント(アカウントがグループまたはルームに参加したとき)
- 退出イベント(アカウントがグループまたはルームから退出したとき)
- メンバー参加/退出イベント
- ポストバックイベント
- ビーコンイベント
- アカウント連携イベント
- デバイス連携/連携解除イベント
Webhookイベントの完全なリストとデータ構造については、LINE Messaging APIドキュメントを参照してください。
- Treasure Dataの基礎知識
- LINE Messaging公式アカウントの基礎知識
- 会話データの取得をサポート
- LINE WebhookとLINE Messaging APIが有効化されている必要があります
- Webhook URLを正しく設定する必要があります
- データを取り込むテーブルにデータを取り込む前に、Plazmaでデータベースとテーブルを作成する必要があります
- LINE Messaging APIでは、チャネルごとに1つのWebhook URLのみ許可されています。Webhookを必要とする複数のツールを使用したり、既存のシステム連携がある場合は、ZapierなどのWebhookイベントをTreasure Dataを含む複数の宛先に配信する中間サービスを使用する必要があります
セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。
リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/
- 認証情報セットを使用して新しい認証を作成するには、以下の手順を実行します。
- Integrations Hubを選択します。
- Catalogを選択します。
- カタログで連携を検索し、アイコンにマウスカーソルを合わせて、Create Authenticationを選択します。

- Credentialsタブが選択されていることを確認し、連携の認証情報を入力します。

| パラメータ | 説明 |
|---|---|
| TD API Key | TD APIキー、書き込み専用キー |
| Channel Secret Key | LINEチャネルシークレットキー |
- TDコンソールを開きます。
- Integrations Hub > Authenticationsに移動します。
- 新しく作成した認証を見つけて、New Sourceを選択します。

| パラメータ | 説明 |
|---|---|
| Data Transfer Name | 転送の名前を定義できます。 |
| Authentication | 転送に使用される認証名。 |
- Data Transfer Nameフィールドにソース名を入力します。
- Nextを選択します。
- Create SourceページがSource Tableタブが選択された状態で表示されます。
続行する前に、Plazmaでデータベースとテーブルを作成したことを確認してください。この連携では、LINE OAデータを保存するための既存のデータベースとテーブルが必要です。
- LINE OAデータを保存する宛先テーブルを設定します。

| パラメータ | 説明 |
|---|---|
| Datastore | Plazmaが使用可能なオプションです。 |
| Tags | オプション。タグを使用してこのソースを検索できます。 |
| Database | データをインポートするTreasure Data内のデータベースを指定します。 |
| Raw Table | 生のメッセージデータを配置するデータベース内のテーブルを指定します。 |
| Events Table | イベントデータを配置するデータベース内のテーブルを指定します。 |
- Nextを選択します。
インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。
- Next を選択します。Data Preview ページが開きます。
- データをプレビューする場合は、Generate Preview を選択します。
- データを確認します。
データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。
Next を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。
Database を選択 > Select an existing または Create New Database を選択します。
オプションで、database 名を入力します。
Table を選択 > Select an existing または Create New Table を選択します。
オプションで、table 名を入力します。
データをインポートする方法を選択します。
- Append (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。
- Always Replace - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
- Replace on New Data - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
Timestamp-based Partition Key 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。
データストレージの Timezone を選択します。
Schedule の下で、このクエリを実行するタイミングと頻度を選択できます。
- Off を選択します。
- Scheduling Timezone を選択します。
- Create & Run Now を選択します。
- On を選択します。
- Schedule を選択します。UI では、@hourly、@daily、@monthly、またはカスタム cron の 4 つのオプションが提供されます。
- Delay Transfer を選択して、実行時間の遅延を追加することもできます。
- Scheduling Timezone を選択します。
- Create & Run Now を選択します。
転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。
ソースID(UUID v4)は、ソース作成時に発行されます。
不正使用を防ぐため、ソースIDは権限のない者に開示しないでください。
ソース作成後、自動的にソース一覧ページに移動します。
- 作成したソースを検索します。
- 同じ行の「...」をクリックし、Copy Unique IDを選択します。

このユニークIDが、LINE Messaging APIでWebhook URLを設定する際に必要なソースIDです。
Treasure DataでLINE OAイベントを受信するには、LINE Messaging APIの設定でWebhook URLを設定する必要があります。
LINE Developers Consoleにログインします。
LINE公式アカウントチャネルを選択します。
Messaging APIタブに移動します。
Webhook settingsセクションで、Webhook URLを入力します:
米国リージョンの場合:
https://line-in-streaming.treasuredata.com/v1/task/{source_id}東京リージョンの場合:
https://line-in-streaming.treasuredata.co.jp/v1/task/{source_id}{source_id}を前の手順でコピーしたソースIDに置き換えます。VerifyをクリックしてWebhook接続をテストします。
Use webhookトグルを有効にします。
オプションで、Webhook redeliveryを有効にして、失敗したWebhook配信を再試行できるようにします。
Updateをクリックして設定を保存します。

Webhookを有効にする前に、Webhook URLが正しく設定され、検証されていることを確認してください。他のリージョンのホスト名も同じパターンに従いますが、リージョン固有のドメインになります。
Webhook設定とソース作成が完了した後、最初のイベントがトリガーされると、コネクタはすぐにLINE OAイベントデータをTreasure Dataに取り込み始めることができます。
Eventsテーブルには、LINE Messaging APIからの詳細なWebhookイベントデータが含まれます。各行は、以下の構造を持つ単一のWebhookイベントを表します:
| カラム名 | データ型 | 説明 |
|---|---|---|
| event_mode | string | イベントモードのステータス(例:「active」) |
| event_type | string | Webhookイベントのタイプ(例:「message」、「postback」、「follow」、「unfollow」) |
| event_deliverycontext | JSON string | isRedeliveryフラグを含む配信コンテキスト情報 |
| event_timestamp | long | イベントが発生した時のUnixタイムスタンプ(ミリ秒) |
| destination | string | Webhookを受信したLINE公式アカウントのユーザーID |
| event_source | JSON string | userIdとtype(user、group、またはroom)を含むソース情報 |
| event_postback | JSON string | ポストバックイベントデータ(ポストバックイベントのみ)。dataとparamsを含む |
| event_webhookeventid | string | LINEからの一意のWebhookイベントID |
| event_replytoken | string | イベントに応答するためのリプライトークン |
| record_uuid | string | このレコードに対してTreasure Dataが生成した一意の識別子 |
| event_message | JSON string | text、markAsReadToken、quoteToken、メッセージID、typeを含むメッセージイベントデータ |
| time | long | レコードがTreasure Dataに取り込まれた時のUnixタイムスタンプ |
メッセージイベントの例:
{
"event_mode": "active",
"event_type": "message",
"event_deliverycontext": "{\"isRedelivery\":false}",
"event_timestamp": 1764739548058,
"destination": "U26272c69eb9c705cdb310034a13d8a2c",
"event_source": "{\"userId\":\"U7df7e1515baea0a9898c2d8553d016d1\",\"type\":\"user\"}",
"event_webhookeventid": "01KBHAS125354QY30EQDB80MXV",
"event_replytoken": "a24d6cd95f4e4cceb74505a3c67fa1f0",
"record_uuid": "c32f42c1-6464-312e-8a73-64b19c6c8116",
"event_message": "{\"text\":\"Hello\",\"id\":\"590404062261018659\",\"type\":\"text\"}",
"time": 1764739556
}ポストバックイベントの例:
{
"event_mode": "active",
"event_type": "postback",
"event_deliverycontext": "{\"isRedelivery\":false}",
"event_timestamp": 1764739548788,
"destination": "U26272c69eb9c705cdb310034a13d8a2c",
"event_source": "{\"userId\":\"U7df7e1515baea0a9898c2d8553d016d1\",\"type\":\"user\"}",
"event_postback": "{\"data\":\"second-menu\",\"params\":{\"newRichMenuAliasId\":\"second-menu\",\"status\":\"SUCCESS\"}}",
"event_webhookeventid": "01KBHAS1TNJ9W3GZZSAYG8WSEW",
"event_replytoken": "e6a713af40ed416e8844db6638705d01",
"record_uuid": "5289e93e-d7c2-3a7d-9ba0-8de86cc53e4f",
"time": 1764739552
}event_source、event_message、event_postbackなどのJSON文字列カラムには、ネストされたJSONデータが含まれています。クエリでTreasure DataのJSON関数を使用して、特定のフィールドを抽出できます。