SmartContact

CRM 連携: smartcontact_meta JSON の活用

SDK は判定 OK 時、フォームに 2 つの hidden input を自動追加します。整形済みテキストの『smartcontact_meta_text』と、構造化 JSON の『smartcontact_meta』。後者を CRM や社内ツールへ機械処理として流すレシピを紹介します。

2 つの hidden input

  • smartcontact_meta_text: 整形済みプレーンテキスト。担当者通知メールの本文末尾に差し込むのに最適 (メール組み込み手順)
  • smartcontact_meta: JSON 文字列。サーバ側で json_decode() 等でパースすれば構造化データとして扱えます。本ページの主役

JSON のフィールド

{
  "sufficient": true,
  "score": 85,
  "category": "見積もり依頼",
  "urgency": "normal",
  "language": "ja",
  "summary": "ECサイトのリニューアル案件。予算100万円、希望納期3ヶ月、現状Shopifyを利用中。",
  "extracted": {
    "budget": "100万円",
    "deadline": "3ヶ月",
    "current_system": "Shopify"
  },
  "missing_items": []
}
  • sufficient: 通過したかどうか (今回は判定 OK のみフォーム送信に乗るので true)
  • score: 充足度 0–100
  • urgency: low / normal / high
  • language: ISO 639-1 (ja / en / zh / ko)
  • extracted: 業種・本文に応じた可変キー
  • missing_items: 通過時は空配列

サーバ側でパースする例 (PHP)

$raw  = $_POST['smartcontact_meta'] ?? '{}';
$meta = json_decode($raw, true);

// HubSpot に Lead として送る
$payload = [
  'email'    => $_POST['email'],
  'name'     => $_POST['name'],
  'category' => $meta['category']  ?? null,
  'urgency'  => $meta['urgency']   ?? 'normal',
  'summary'  => $meta['summary']   ?? null,
  'budget'   => $meta['extracted']['budget'] ?? null,
];
post_to_hubspot($payload);

Slack に直接 POST する例 (Node.js)

SmartContact 側の Slack 通知 (Incoming Webhook) を使わず、自前で投稿フォーマットを完全に制御したい場合の例です。

app.post("/contact", async (req, res) => {
  const meta = JSON.parse(req.body.smartcontact_meta || "{}");

  await fetch(process.env.SLACK_WEBHOOK_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      text: `【${meta.category || "問い合わせ"}】${meta.summary || ""}`,
      attachments: [{
        color: meta.urgency === "high" ? "#dc2626" : "#3b82f6",
        fields: Object.entries(meta.extracted || {}).map(([k, v]) => ({
          title: k, value: String(v), short: true,
        })),
      }],
    }),
  });
});

個人情報の取り扱い

smartcontact_meta JSON には、AI 解析結果のみが含まれます。氏名・メール・電話などの個人情報は含まれません (フォームの POST 全体には含まれているので、外部送信前に必要なフィルタリングを行ってください)。

関連

← マニュアルトップへ戻る