メインコンテンツへスキップ
エージェントを Web サイトに埋め込むとき、ページ側が持っているユーザー情報やページ固有の情報を ユーザーコンテキスト として引き渡せます。 たとえば、会員向けページでログイン済みユーザーのメールアドレスや契約プランを渡したり、記事ページでカテゴリや閲覧中の商品 ID を渡したりできます。渡された値はセッションの context として保存され、ゲートの事前入力や Webhook 連携などで利用できます。

渡せる情報の例

キー値の例用途
emailuser@example.comゲートのメールアドレス入力を事前入力する
company株式会社サンプル会社名をセッションに紐づける
planenterprise契約プランに応じた会話や分岐に使う
accountIdacct_123自社システム上のアカウント ID と紐づける
pageCategorypricingどのページ文脈で起動されたかを渡す
キー名は任意です。ゲートのフォームフィールドと連動させたい場合は、ダッシュボード側で設定したフィールドのキーと同じ名前にしてください。

data-turnint-context で渡す

埋め込み要素に data-turnint-context 属性を追加し、JSON 文字列を指定します。
<div
  data-turnint-id="pub_xxxxxxxxxxxxxxxx"
  data-turnint-type="inline"
  data-turnint-context='{"email":"user@example.com","company":"株式会社サンプル","plan":"enterprise"}'
></div>
ボタンでフルスクリーン表示する場合も同じです。
<button
  data-turnint-id="pub_xxxxxxxxxxxxxxxx"
  data-turnint-type="fullscreen"
  data-turnint-context='{"email":"user@example.com","accountId":"acct_123"}'
>
  AI と資料を読む
</button>
data-turnint-context の値は JSON として解釈されます。HTML 属性内では、JSON 全体をシングルクォートで囲むと書きやすくなります。
embed script はページ内で 1 度だけ読み込みます。UI 言語は script 側の data-turnint-locale で指定してください。

application/json の script で渡す

属性に長い JSON を直接書きたくない場合は、data-turnint-context を付けた application/json の script block を使えます。
<div data-turnint-id="pub_xxxxxxxxxxxxxxxx" data-turnint-type="inline"></div>

<script data-turnint-context type="application/json">
  {
    "email": "user@example.com",
    "company": "株式会社サンプル",
    "plan": "enterprise",
    "pageCategory": "pricing"
  }
</script>
同じページに複数の data-turnint-context がある場合は、後に出現した値が同じキーを上書きします。
application/ld+json は対象外です。構造化データや SEO 用の JSON-LD を誤ってユーザーコンテキストに取り込まないよう、コンテキスト引き渡しには type="application/json" を使ってください。

ゲートとの関係

ユーザーコンテキストのキーがゲートのフォームフィールドのキーと一致する場合、その値はゲートの型に沿って検証・整形されます。 たとえば、ゲートに email というメールアドレス項目がある場合、data-turnint-context で渡した email はメールアドレスとして検証されます。score のような数値項目であれば、数値として扱える値に整形されます。 ゲートに存在しないキーも破棄されず、セッションの context に保持されます。
{
  "email": "user@example.com",
  "company": "株式会社サンプル",
  "plan": "enterprise"
}
上記のうち、ゲートに emailcompany がある場合はその 2 つがゲートの定義に沿って扱われ、plan は追加のセッションコンテキストとして保持されます。
ゲートが設定されていないエージェントでも、data-turnint-context で渡した値はセッションの context に保存されます。

URL query parameter との優先順位

URL query parameter は、ゲートのフォームフィールドと一致するキーだけを事前入力に使います。autoconfirm=true はゲートの自動確認用の制御フラグとして扱われますが、セッションの context には保存されません。 ゲートに存在しない query parameter はユーザーコンテキストとしては取り込まれません。ページ固有の情報や任意のキーをセッション context に渡したい場合は、data-turnint-context または application/json の script block を使ってください。 同じゲートフィールドのキーが複数の場所に存在する場合、次の順序で後の値が優先されます。
外部サービス連携 < ページ上のフォーム入力 < 保存済みコンテキスト < data-turnint-context < URL query parameter(ゲートフィールド一致時のみ)
たとえば、ページ上で data-turnint-context='{"email":"old@example.com"}' を指定し、URL に ?email=new@example.com が含まれる場合、最終的な emailnew@example.com になります。 URL query parameter は、メール配信や広告キャンペーンなどでゲート入力を一時的に上書きする用途に向いています。data-turnint-context は、ページテンプレートやログイン済みユーザー情報から安定して渡したい値、またはゲートに含まれない追加コンテキストに向いています。

自動的に参照されるコンテキスト

embed script は、明示的に指定された data-turnint-context や URL query parameter に加えて、同一ページ上で利用できる一部のコンテキストも低い優先度で参照します。これにより、既存のフォームや外部フォームサービスに入力済みの情報を、追加実装を少なく Turnint AI のセッションに引き継げます。

ページ上のフォーム入力

ページ上の安全なフォーム入力値は、Turnint AI のセッション context として利用されます。次回以降、同じ name 属性を持つフォーム項目が空欄の場合は、以前の入力値を復元します。 ページ上のフォーム入力は、既に入力されている値や HubSpot などホストサイト側の prefill を上書きしません。対象になるのは name 属性を持つ安全な input / select に限られ、textareasearchpasswordfilehidden、無効化された項目、読み取り専用の項目は対象外です。

外部サービス連携

一部の外部フォームサービスがページ内に保持している一時データは、最も低い優先度のユーザーコンテキストとして利用されます。この値は読み取り専用で扱われ、Turnint AI 側の保存データには書き戻されません。同じキーがページ上のフォーム入力、保存済みコンテキスト、data-turnint-context、URL query parameter に存在する場合は、そちらが優先されます。

対応している外部サービス

サービス参照するデータ備考
Immedioフォームで入力済みの顧客情報低優先度のユーザーコンテキストとして利用します
passwordtokensecretcsrfauthcard など、認証情報や機密情報に該当しうるキーは自動取り込みの対象外です。ユーザーコンテキストには、セッションで利用して問題ない業務情報だけを渡してください。

トラッキングパラメータとの違い

utm_sourcegclid などの広告・計測用パラメータは、ユーザーコンテキストではなく sys.tracking として自動保存されます。
種類保存先
ユーザーコンテキストセッションの contextemail, company, plan, accountId
トラッキングパラメータsys.trackingutm_source, utm_campaign, gclid, fbclid
広告効果測定やクロスドメイン計測にはトラッキングパラメータを使い、ユーザーやページの業務的な文脈にはユーザーコンテキストを使ってください。

関連ドキュメント