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つのステップが必要です。
- Contactを作成または更新する。
- Accountを作成する。
- Contact IDをAccount IDに紐付ける。
これには3つの個別のAPIコールが必要です。多くの基本的なプラグインは、このような処理を行うようには作られていません。
これを解決するための3つの方法を紹介します。
カスタムフィールドを使用する ActiveCampaignのContactオブジェクトに「Company」という名前のカスタムフィールドを作成します。そうすれば、プラグインがこのフィールドを認識できるようになります。そこに会社名をマッピングできます。ただし、これは単なるテキストフィールドであり、実際のAccountレコードではないことに注意してください。
ActiveCampaignのオートメーションを使用する まず、フォームのデータをContactレコードにマッピングします。次に、ActiveCampaignのオートメーションを使用します。オートメーションによって会社名を検索し、ContactをAccountに自動的に紐付けることができます。これにより、設定をシンプルに保つことができます。
直接API連携を行う Contact Form to APIのようなツールを使用します。これにより、APIコールを連鎖させることができます。最初のコールのレスポンスを次のリクエストに渡すことが可能です。
開発者であれば、wp_remote_post 関数を使用して、これら3つのステップを手動で処理するカスタムPHP関数を記述することも可能です。
