CF7とActiveCampaign:Accountフィールドが表示されない理由

ActiveCampaignにはAccountフィールドが存在しています。

それをContact Form 7 (CF7) プラグインでマッピングしようとします。

しかし、どうしても表示されません。

プラグインのアップデートを待っても解決しません。これはバグではないからです。

これは、ActiveCampaignのデータ構造によるものです。

ActiveCampaignにおいて、ContactとAccountは異なるものです。

  • Contactは「個人」です。名前、メールアドレス、電話番号を持ちます。
  • Accountは「企業」です。ウェブサイト、業種、収益などの情報を持ちます。

CF7プラグインを使用する場合、それはContacts APIと通信します。そして、個人に関するフィールドの一覧をリクエストします。

AccountフィールドはContactフィールドではありません。それは別のAPIエンドポイントに属しています。そのため、マッパーで見つけることができないのです。

ほとんどのプラグインは、1つのステップしか処理しません。Contactを作成してそこで終了してしまいます。

ContactをAccountに紐付けるには、以下の3つのステップが必要です。

  1. Contactを作成または更新する。
  2. Accountを作成する。
  3. Contact IDをAccount IDに紐付ける。

これには3つの個別のAPIコールが必要です。多くの基本的なプラグインは、このような処理を行うようには作られていません。

これを解決するための3つの方法を紹介します。

  1. カスタムフィールドを使用する ActiveCampaignのContactオブジェクトに「Company」という名前のカスタムフィールドを作成します。そうすれば、プラグインがこのフィールドを認識できるようになります。そこに会社名をマッピングできます。ただし、これは単なるテキストフィールドであり、実際のAccountレコードではないことに注意してください。

  2. ActiveCampaignのオートメーションを使用する まず、フォームのデータをContactレコードにマッピングします。次に、ActiveCampaignのオートメーションを使用します。オートメーションによって会社名を検索し、ContactをAccountに自動的に紐付けることができます。これにより、設定をシンプルに保つことができます。

  3. 直接API連携を行う Contact Form to APIのようなツールを使用します。これにより、APIコールを連鎖させることができます。最初のコールのレスポンスを次のリクエストに渡すことが可能です。

開発者であれば、wp_remote_post 関数を使用して、これら3つのステップを手動で処理するカスタムPHP関数を記述することも可能です。

出典: https://dev.to/rahul_sharma_15bd129bc69e/cf7-activecampaign-why-the-account-field-never-shows-in-your-field-mapper-ne4