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–100urgency:low / normal / highlanguage: 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 全体には含まれているので、外部送信前に必要なフィルタリングを行ってください)。