リード獲得広告(MetaおよびLinkedIn)
Facebook/Instagram広告(Meta Lead Ads)またはLinkedIn広告(Lead Gen Forms)から送信されたすべてのフォームが、自身のアプリを使用してCRM内でリードになります(BYOモデル)。
リード獲得広告の連携は、お客様ご自身のアプリとページ/広告アカウントを使用します(BYO、つまり「自分のアプリを持ち込む」方式)。誰かがFacebook/Instagram(Meta)またはLinkedIn広告のリードフォームに入力すると、CRMは公開フォームでのキャプチャと同様に、自動的にリードを作成しラウンドロビンで担当者を割り当てます。データはお客様の広告アカウントから直接届き、当社側での仲介は一切ありません。
この連携は最初は無効な状態で始まります。認証情報を入力してオンにするまで何も起こりません。App Secretとアクセストークンは暗号化されてCRMに保存され、再表示されることはありません。
前提条件
- Meta:developers.facebook.comのアプリ、広告を配信しているFacebookページ、およびleads_retrievalとpages_manage_metadataの権限。App Secretと長期有効なページアクセストークンが必要です。
- LinkedIn:linkedin.com/developersのアプリでLead Sync / Advertising APIへのアクセス権を持ち、r_marketing_leadgen_automationスコープのOAuthアクセストークンが必要です。
- キャンペーンで作成済みのリードフォーム(Meta Lead Ads / LinkedIn Lead Gen Forms)があること。
- Sellioでは、認証情報を保存し設定 → 連携で連携を有効化するための管理者権限。
Meta(Facebook/Instagram)の仕組み
Metaのwebhookはフォームデータそのものを送信しません。識別子(leadgen_id)のみを送信します。受信時、CRMはイベントの署名を検証し(App SecretによるボディのHMAC-SHA256)、その後お客様のページアクセストークンを使ってMeta Graph APIからリードを「取得」し、送信されたフィールド(field_data)を取り出します。それらのフィールドはリードフィールドにマッピングされ、リードが作成されます。
Metaの設定:Metaダッシュボード側
- developers.facebook.comでアプリを作成(または既存のものを使用)します。設定 → 基本設定でApp Secretをコピーします。
- 「Webhooks」プロダクトとLeadgenオブジェクト/プロダクト(Leads Access)を追加します。ページに対してleads_retrievalとpages_manage_metadataの権限をリクエストします。
- 広告を配信しているページの長期有効なページアクセストークンを生成します(Graph API ExplorerまたはBusiness Manager)。
- すべての情報を手元に用意しておきます。App Secret、ページトークン、「verify token」(任意の文字列)をCRMに貼り付けることになります。
Metaの設定:CRM側
- 設定 → 連携を開き、「Meta Lead Ads(Facebook/Instagram)」カードを見つけます。
- Verify token:任意の文字列を選んで入力します。Metaダッシュボードでも「同じ値」を使用します。
- App Secretとページアクセストークン:両方を貼り付けます(一緒に暗号化されて保存されます)。「認証情報を保存」をクリックします。
- 表示された「Webhook URL(Meta)」をコピーします。
- Metaダッシュボード → Webhooksに戻り、そのURLをCallback URLとして、verify tokenをVerify Tokenとして貼り付けます。Metaはハンドシェイク(GET)を実行し、verify tokenが一致すればCRMがチャレンジに応答します。
- ページの「leadgen」フィールドを購読します。その後CRMに戻り「有効化」をクリックします。
LinkedInの設定
LinkedIn(Lead Gen Forms)では、linkedin.com/developersでアプリを作成し、Lead Sync / Advertising APIプロダクトをリクエストして、lead genスコープ(r_marketing_leadgen_automation)付きのOAuthアクセストークンを生成します。CRMの「LinkedIn Lead Gen Forms」カードでアクセストークン(任意で組織URN)を貼り付け、保存して有効化します。自動化(またはフォーム回答の取得処理)を「受信URL(LinkedIn)」に向け、フォームフィールドを含むJSONを送信します。
フィールドマッピング
各マッピング行は、広告フォームのフィールド「名前」(左側)をリードフィールド(右側、api_nameで指定:email、name、phone、company、titleなど)に紐づけます。妥当なデフォルトが用意されています:full_name → name、email → email、phone_number → phone、company_name → company。フォーム内のカスタムフィールドのみ行を追加してください。フォームがfirst_nameとlast_nameを別々に送信する場合(LinkedInでよくあるケース)、それらはnameとして結合されます。
webhook URL、App Secret、トークンはシークレットとして扱ってください。無効な署名は拒否されます(401)。ページアクセストークンがないと、CRMはGraph APIからリードデータを取得できません。そのためApp Secretと一緒にトークンを貼り付ける必要があります。1つ留意点があります。ネイティブのLinkedIn取得(leadNotificationsを購読し、その後API経由で回答を取得する方式)はここでドキュメント化されており組み込み可能ですが、現在このルートは既に正規化されたフォーム回答ペイロードを受け取る仕様です。
テスト方法
- Meta:Metaダッシュボード → Webhooksで、Callback URLを保存する際にハンドシェイク(GET)がすでにverify tokenを検証しています。その後、Metaの「Lead Ads Testing Tool」(developers.facebook.com/tools/lead-ads-testing)を使って、フォームにテストリードを送信します。
- CRMで確認:マッピングされたフィールドを持つ新しいリードが表示されるはずです。会社情報が届いていれば、会社が検索/作成されリンクされます。
- LinkedIn:フォーム回答ペイロードを「受信URL(LinkedIn)」に発火(または手動送信)し、作成されたリードを確認します。
トラブルシューティング
- Metaのハンドシェイクが失敗する:CRMに入力したverify tokenは、Metaダッシュボードのverify tokenと「完全に一致」している必要があります。一致させて保存してください。
- webhookは受信するがリードが作成されない:ページアクセストークンがないと、CRMはGraph APIからfield_dataを取得できません。ページトークンをApp Secretと「一緒に」貼り付けてください。leads_retrieval/pages_manage_metadataの権限と、ページの「leadgen」フィールドを購読していることを確認してください。
- 無効な署名(401):CRM内のApp SecretがMetaアプリのものと異なります(署名はApp Secretを使ったボディのHMAC-SHA256です)。正しいApp Secretを貼り付け直してください。
- メールアドレスのないリードは無視される:メールアドレスがリードの唯一の必須フィールドです。広告フォームにメールアドレスフィールドがあることを確認してください。
- フィールドが入力されない:マッピング(フォームフィールド名からリードのapi_nameへ)を確認してください。LinkedInでは、first_name + last_nameが自動的にnameに結合されます。