Integration Guide
MicroMAリード登録APIを外部フォームに連携する
Straty FlowのMicroMAで発行したAPIキーを使い、自社サイトやLPのフォーム送信と同時にFlow上へリードを作成する方法です。
全体構成
Webフォームから直接Straty Flowへ秘密キーを送るのではなく、自社サイト側のサーバー処理を経由します。これにより、Ingestion APIキーをブラウザへ公開せずに安全にリード登録できます。
必要に応じて、同じサーバー処理内でGoogle Sheetsへの控え保存、メール通知、サンクスメール送信なども同時に実行できます。
利用するキー
Straty Flowには、サーバー向けのIngestion APIキーと、ブラウザ/JSタグ向けの公開キーがあります。外部フォーム連携では、原則としてIngestion APIキーをサーバー側環境変数に保存します。
| キー | 用途 | 外部サイトでの扱い |
|---|---|---|
| Ingestion APIキー | サーバーからFlowのリード登録APIへ送信する | サーバー側環境変数に保存。ブラウザには出さない |
| 公開キー | JSタグや公開capture APIで使う | フォールバック用途。公開されてもよいキー |
STRATY_FLOW_LEADS_ENDPOINT=https://flow.example.com/api/leads
STRATY_FLOW_INGESTION_API_KEY=sl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STRATY_FLOW_PUBLIC_KEY=pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIngestion APIキーは秘密情報です。Reactコンポーネント、HTML、公開リポジトリ、フロントエンドJavaScriptに直接書かないでください。
Straty Flowへ送るデータ
Flow側のリード登録APIは、email、name、attributes、source、consent、metadata を受け取ります。会社名、部署、問い合わせ内容などのフォーム項目は attributes にフラットな値として格納します。
{
"email": "customer@example.com",
"name": "山田 太郎",
"attributes": {
"company": "株式会社サンプル",
"department": "マーケティング部",
"title": "部長",
"budget": "月額30万円前後",
"timeline": "1〜3ヶ月",
"inquiry": "問い合わせ内容",
"online_meeting_requested": true,
"form_name": "contact_form"
},
"source": {
"type": "web_form",
"name": "contact_form",
"url": "https://www.example.com/contact",
"external_id": "example-contact-form"
},
"consent": {
"status": "granted",
"text": "個人情報保護方針に同意",
"captured_at": "2026-05-01T00:00:00.000Z"
}
}外部サイト側の実装
WebサイトやLPでは、フォーム送信先を自社サーバー側のAPIにします。Next.jsの場合はRoute Handler、その他の構成では任意のバックエンドAPIやサーバーレス関数で同じ処理を実装できます。
const response = await fetch(FLOW_LEADS_ENDPOINT, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.STRATY_FLOW_INGESTION_API_KEY}`,
},
body: JSON.stringify(leadPayload),
});- フォームから自社サイト側のAPI、例:
/api/contactにPOSTする - API Routeで必須項目とメール形式を検証する
- 問い合わせ項目をFlowの
attributesへ変換する Authorization: BearerにIngestion APIキーを付けて/api/leadsへ送信する- レスポンスの
lead_idやrequest_idをログや外部通知へ渡す
Google Sheets / Gmail連携
問い合わせ管理をGoogle Workspaceで行う場合は、Apps Script WebアプリをWebhookとして使えます。自社サイト側のAPIからApps Script URLへ同じ問い合わせ情報をPOSTし、Apps Script側でSheets保存、Gmail通知、サンクスメールを実行します。
CONTACT_GOOGLE_APPS_SCRIPT_URL=https://script.google.com/macros/s/xxxxxxxx/execApps ScriptのWebアプリ設定は以下にします。
- 実行ユーザー: 自分
- アクセスできるユーザー: 全員
- 初回はURLをブラウザで開き、Googleのアクセス許可を手動承認する
- コード変更後は新しいバージョンとして再デプロイする
動作確認
動作確認は、Flow、Google、フォーム画面の3段階で行います。
- Apps Scriptの
/execURLへテストPOSTし、{"ok":true}が返ることを確認する - 本番環境に必要な環境変数を設定する
- 本番の問い合わせフォームからテスト送信する
- Straty Flowにリードが作成されることを確認する
- スプレッドシートに行が追加され、Gmail通知が届くことを確認する
curl -L "https://script.google.com/macros/s/xxxxxxxx/exec" \
-H "Content-Type: application/json" \
-d '{"contact":{"company":"テスト","name":"テスト","email":"support@example.com"}}'トラブルシュート
Straty Flowには登録されるが、Google Sheetsに反映されない
本番環境にGoogle Apps Script Webhook URLの環境変数が設定されているか、設定後に再デプロイ済みか確認します。Apps Scriptのアクセス許可が未承認の場合も失敗します。
Apps Script URLで「アクセス権が必要です」と出る
Webアプリ設定が「全員」でも、初回承認が未完了だと外部POSTが通らない場合があります。通常ブラウザでURLを開き、Googleのアクセス許可を承認してください。
curlでMoved Temporarilyが返る
Apps ScriptのContentServiceは302リダイレクトを返すことがあります。`curl -L` を使い、`-X POST` を明示せず `-d` で送信します。