CF7 และ ActiveCampaign: ทำไมฟิลด์ Account ถึงไม่ปรากฏขึ้น

คุณเห็นฟิลด์ Account ใน ActiveCampaign

คุณพยายามจะแมปฟิลด์นี้ในปลั๊กอิน Contact Form 7 (CF7) ของคุณ

แต่มันไม่เคยแสดงขึ้นมาเลย

การรอให้ปลั๊กอินอัปเดตจะไม่ช่วยแก้ปัญหานี้ เพราะนี่ไม่ใช่บั๊ก

มันเกิดขึ้นจากวิธีการที่ ActiveCampaign จัดโครงสร้างข้อมูล

ใน ActiveCampaign นั้น Contact และ Account คือสิ่งที่แตกต่างกัน

  • Contact คือบุคคล ซึ่งจะมีชื่อ อีเมล และเบอร์โทรศัพท์
  • Account คือบริษัท ซึ่งจะมีเว็บไซต์ อุตสาหกรรม และรายได้

เมื่อคุณใช้ปลั๊กอิน CF7 มันจะสื่อสารกับ Contacts API โดยจะขอรายการฟิลด์สำหรับบุคคล

ฟิลด์ Account ไม่ใช่ฟิลด์ของ Contact แต่มันอยู่ใน API endpoint อื่น นี่คือสาเหตุที่ตัวแมป (mapper) ของคุณหาฟิลด์นี้ไม่เจอ

ปลั๊กอินส่วนใหญ่จัดการเพียงขั้นตอนเดียว คือสร้าง Contact แล้วก็จบแค่นั้น

ในการเชื่อมโยง Contact เข้ากับ Account คุณต้องทำ 3 ขั้นตอน:

  1. สร้างหรืออัปเดต Contact
  2. สร้าง Account
  3. เชื่อมโยง Contact ID เข้ากับ Account ID

กระบวนการนี้ต้องใช้การเรียก API แยกกัน 3 ครั้ง ซึ่งปลั๊กอินพื้นฐานส่วนใหญ่ไม่ได้ถูกสร้างมาเพื่อรองรับสิ่งนี้

นี่คือ 3 วิธีในการแก้ไขปัญหานี้:

  1. ใช้ Custom Field สร้างฟิลด์แบบกำหนดเอง (custom field) ชื่อว่า "Company" บน Contact object ใน ActiveCampaign ปลั๊กอินของคุณจะมองเห็นฟิลด์นี้ และคุณสามารถแมปชื่อบริษัทของคุณลงไปได้ โปรดทราบว่านี่เป็นเพียงฟิลด์ข้อความเท่านั้น ไม่ใช่ข้อมูล Account จริงๆ

  2. ใช้ ActiveCampaign Automations แมปข้อมูลจากฟอร์มไปยัง Contact record ก่อน จากนั้นจึงใช้ระบบ Automation ของ ActiveCampaign เพื่อให้ระบบค้นหาชื่อบริษัทและเชื่อมโยง Contact เข้ากับ Account โดยอัตโนมัติ วิธีนี้จะช่วยให้การตั้งค่าของคุณไม่ซับซ้อน

  3. ใช้การเชื่อมต่อ API โดยตรง ใช้เครื่องมืออย่าง Contact Form to API ซึ่งจะช่วยให้คุณสามารถทำ API chaining ได้ โดยคุณสามารถส่งผลลัพธ์ (response) จากการเรียกครั้งแรกไปยังคำขอ (request) ถัดไปได้

หากคุณเป็นนักพัฒนา คุณสามารถเขียนฟังก์ชัน PHP ขึ้นมาเองโดยใช้ฟังก์ชัน wp_remote_post เพื่อจัดการทั้งสามขั้นตอนนี้ด้วยตนเอง

ที่มา: https://dev.to/rahul_sharma_15bd129bc69e/cf7-activecampaign-why-the-account-field-never-shows-in-your-field-mapper-ne4