CF7 و ActiveCampaign: چرا فیلد Account نمایش داده نمی‌شود

شما فیلد Account را در ActiveCampaign مشاهده می‌کنید.

سعی می‌کنید آن را در افزونه Contact Form 7 (CF7) خود نگاشت (map) کنید.

اما هرگز نمایش داده نمی‌شود.

منتظر به‌روزرسانی افزونه نمانید، این مشکل با آپدیت حل نخواهد شد. این یک باگ نیست.

این اتفاق به دلیل نحوه ساختاردهی داده‌ها در ActiveCampaign رخ می‌دهد.

در ActiveCampaign، یک Contact و یک Account دو چیز متفاوت هستند.

  • یک Contact یک شخص است. دارای نام، ایمیل و شماره تلفن است.
  • یک Account یک شرکت است. دارای وب‌سایت، حوزه فعالیت (industry) و درآمد است.

وقتی از یک افزونه CF7 استفاده می‌کنید، این افزونه با Contacts API ارتباط برقرار می‌کند و لیست فیلدهای مربوط به یک شخص را درخواست می‌کند.

فیلد Account یک فیلدِ Contact نیست؛ بلکه به یک API endpoint متفاوت تعلق دارد. به همین دلیل است که ابزار نگاشت (mapper) شما نمی‌تواند آن را پیدا کند.

اکثر افزونه‌ها فقط یک مرحله را مدیریت می‌کنند. آن‌ها یک Contact ایجاد می‌کنند و کار را همان‌جا تمام می‌کنند.

برای متصل کردن یک Contact به یک Account، به سه مرحله نیاز دارید:

  1. ایجاد یا به‌روزرسانی Contact.
  2. ایجاد Account.
  3. متصل کردن Contact ID به Account ID.

این کار مستلزم سه فراخوانی API مجزا است. اکثر افزونه‌های پایه برای این کار ساخته نشده‌اند.

در اینجا سه راه برای رفع این مشکل وجود دارد:

  1. استفاده از یک فیلد سفارشی (Custom Field) یک فیلد سفارشی به نام "Company" در شیء (object) Contact در ActiveCampaign ایجاد کنید. افزونه شما این فیلد را خواهد دید و می‌توانید نام شرکت خود را به آن نگاشت کنید. توجه داشته باشید که این فقط یک فیلد متنی است و یک رکورد واقعی Account محسوب نمی‌شود.

  2. استفاده از اتوماسیون‌های ActiveCampaign ابتدا داده‌های فرم خود را به یک رکورد Contact نگاشت کنید. سپس از اتوماسیون ActiveCampaign استفاده کنید. این اتوماسیون می‌تواند نام شرکت را جستجو کرده و به طور خودکار Contact را به یک Account متصل کند. این روش تنظیمات شما را ساده نگه می‌دارد.

  3. استفاده از یکپارچه‌سازی مستقیم API از ابزاری مانند Contact Form to API استفاده کنید. این کار به شما اجازه می‌دهد فراخوانی‌های API را زنجیره‌ای (chain) کنید. می‌توانید پاسخ اولین فراخوانی را به درخواست بعدی ارسال کنید.

اگر توسعه‌دهنده هستید، می‌توانید یک تابع PHP سفارشی با استفاده از تابع wp_remote_post بنویسید تا این سه مرحله را به صورت دستی مدیریت کنید.

منبع: https://dev.to/rahul_sharma_15bd129bc69e/cf7-activecampaign-why-the-account-field-never-shows-in-your-field-mapper-ne4