Straty OS/Help/MicroMA lead API

Integration Guide

MicroMAリード登録APIを外部フォームに連携する

Straty FlowのMicroMAで発行したAPIキーを使い、自社サイトやLPのフォーム送信と同時にFlow上へリードを作成する方法です。

対象: 外部Webフォーム / Straty Flow MicroMA更新: 2026-05-01

全体構成

Webフォームから直接Straty Flowへ秘密キーを送るのではなく、自社サイト側のサーバー処理を経由します。これにより、Ingestion APIキーをブラウザへ公開せずに安全にリード登録できます。

外部Webサイト / LP
問い合わせフォーム
サーバー側API
Straty Flow リード登録

必要に応じて、同じサーバー処理内で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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
重要

Ingestion 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),
});
  1. フォームから自社サイト側のAPI、例: /api/contact にPOSTする
  2. API Routeで必須項目とメール形式を検証する
  3. 問い合わせ項目をFlowの attributes へ変換する
  4. Authorization: Bearer にIngestion APIキーを付けて /api/leads へ送信する
  5. レスポンスの lead_idrequest_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/exec

Apps ScriptのWebアプリ設定は以下にします。

  • 実行ユーザー: 自分
  • アクセスできるユーザー: 全員
  • 初回はURLをブラウザで開き、Googleのアクセス許可を手動承認する
  • コード変更後は新しいバージョンとして再デプロイする

動作確認

動作確認は、Flow、Google、フォーム画面の3段階で行います。

  1. Apps Scriptの /exec URLへテストPOSTし、{"ok":true} が返ることを確認する
  2. 本番環境に必要な環境変数を設定する
  3. 本番の問い合わせフォームからテスト送信する
  4. Straty Flowにリードが作成されることを確認する
  5. スプレッドシートに行が追加され、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` で送信します。