ข้ามไปยังเนื้อหา

Salesforce: สร้างหรืออัปเดตเรคคอร์ด

ใช้ Salesforce: สร้างหรืออัปเดตเรคคอร์ด เพื่อ upsert (อัปเดตหรือแทรก) เรคคอร์ด Salesforce หนึ่งรายการจากขั้นตอน Journey โดยจับคู่กับฟิลด์ ID ภายนอก: โดยจะอัปเดตเรคคอร์ดเมื่อมีค่าอยู่แล้ว และสร้างขึ้นเมื่อยังไม่มี Salesforce ไม่มี API token แบบคงที่ ดังนั้นพอยต์นี้จะยืนยันตัวตนผ่าน connected app ที่ลงทะเบียนไว้ครั้งเดียวสำหรับทั้งบัญชี จะไม่มีฟิลด์ token ในตัวพอยต์เอง

การใช้งานทั่วไป:

  • ทำให้ Salesforce ซิงค์ข้อมูลอยู่เสมอ: สร้างหรืออัปเดต Contact หรือ Lead ขณะที่ traveler เคลื่อนที่ผ่าน Journey เพื่อให้ฝ่ายขายเห็นข้อมูลปัจจุบัน
  • ซิงค์กิจกรรม Journey เข้าสู่ CRM: ตั้งค่าฟิลด์เมื่อ traveler ไปถึงเหตุการณ์สำคัญ เพื่อให้ฝ่ายขายสามารถกรองหรือรายงานข้อมูลนั้นได้
  • หลีกเลี่ยงเรคคอร์ดที่ซ้ำซ้อน: การจับคู่ด้วย ID ภายนอกหมายความว่า traveler ที่ผ่านพอยต์นี้อีกครั้งจะอัปเดตเรคคอร์ดเดิมแทนที่จะสร้างเรคคอร์ดใหม่

ก่อนที่คุณจะเริ่ม

Anchor link to

สร้าง connected app ในองค์กร Salesforce ของคุณและเชื่อมต่อภายใต้ การตั้งค่า > การผสานรวมกับบุคคลที่สาม > Salesforce:

  1. ใน Salesforce สร้าง External Client App (หรือ connected app แบบคลาสสิก) ที่เปิดใช้งาน OAuth และมีขอบเขต Manage user data via APIs (api)
  2. เปิดใช้งาน Client Credentials Flow และเลือก run-as user พอยต์จะเขียนข้อมูลในฐานะผู้ใช้นั้น ดังนั้นโปรไฟล์ของผู้ใช้จะตัดสินใจว่าสามารถเข้าถึงอ็อบเจกต์และฟิลด์ใดได้บ้าง
  3. ใน Pushwoosh ใน My Domain host ให้ป้อนโฮสต์ขององค์กรของคุณโดยไม่มี https:// ตัวอย่างเช่น acme.my.salesforce.com
  4. ใน Consumer Key และ Consumer Secret ให้วางข้อมูลประจำตัวของแอป ข้อมูลลับจะถูกจัดเก็บแบบเขียนอย่างเดียว: Pushwoosh จะไม่แสดงข้อมูลนี้อีก ดังนั้นให้วางข้อมูลใหม่เพื่อแทนที่
  5. คลิก เชื่อมต่อ Salesforce
ฟอร์มเชื่อมต่อ Salesforce ในหน้าการตั้งค่า พร้อมช่อง My Domain host, Consumer Key และ Consumer Secret

หลังจากที่คุณเชื่อมต่อ Salesforce แล้ว ติดตั้งการผสานรวม เพื่อให้พอยต์ปรากฏใน journey builder

มีสองสิ่งที่ต้องทำในฝั่ง Salesforce ด้วย:

  • ฟิลด์ที่คุณใช้จับคู่ต้องถูกทำเครื่องหมายเป็น External ID บนอ็อบเจกต์นั้น ฟิลด์ข้อความธรรมดา แม้แต่ Email ก็ไม่เพียงพอ — Salesforce จะปฏิเสธคำขอด้วย NOT_FOUND เมื่อฟิลด์ไม่ใช่ ID ภายนอก
  • Run As user ของ connected app ต้องมีการเข้าถึงระดับฟิลด์สำหรับฟิลด์นั้น ฟิลด์ที่สร้างผ่าน Setup หรือ API ไม่ได้ให้สิทธิ์ใดๆ ด้วยตัวเอง และหากไม่มีสิทธิ์ Salesforce จะตอบกลับด้วย NOT_FOUND: Field name provided ... does not match an External ID เดียวกัน — ฟิลด์นั้นจะมองไม่เห็นสำหรับผู้ใช้นั้น ดังนั้นจากฝั่งของ API จึงถือว่าไม่มีอยู่จริง ให้เพิ่มลงใน permission set ที่กำหนดให้กับ Run As user

กำหนดค่าพอยต์

Anchor link to
  1. ลาก Salesforce: สร้างหรืออัปเดตเรคคอร์ด จากส่วน การผสานรวม ของแผงด้านซ้ายมาวางบน canvas
  2. ดับเบิลคลิกที่พอยต์และป้อน ชื่อขั้นตอน (Step Name)
  3. ใน My Domain host ให้ป้อนโฮสต์เดียวกับที่ connected app อยู่
หน้าต่างตั้งค่า Salesforce create or update record ที่มีชื่อขั้นตอน (Step Name) ถูกกรอก และ My Domain host ถูกตั้งค่าเป็นโดเมน Salesforce
  1. ใน Object ให้ป้อน API name ของอ็อบเจกต์ — Contact, Lead หรืออ็อบเจกต์ที่กำหนดเองที่ลงท้ายด้วย __c
ฟิลด์ Object ถูกตั้งค่าเป็น Contact
  1. ใน External id field ให้ป้อน API name ของฟิลด์ที่ทำเครื่องหมายเป็น External ID
ฟิลด์ External id field ถูกตั้งค่าเป็น Pushwoosh_HWID__c
  1. ใน External id value ให้ป้อนค่าที่จะใช้จับคู่ โดยปกติจะเป็นมาโครเช่น {{device:hwid}}
ฟิลด์ External id value ถูกตั้งค่าเป็นมาโคร device hwid
  1. ใน Fields ให้เพิ่มหนึ่งแถวต่อฟิลด์ Salesforce ที่จะตั้งค่า ป้อน API name ของฟิลด์และค่า ชื่อต้องไม่ว่างเปล่าและไม่ซ้ำกัน ฟิลด์ที่จำเป็นของอ็อบเจกต์ต้องอยู่ในนั้นด้วย มิฉะนั้น Salesforce จะปฏิเสธการสร้างเรคคอร์ดใหม่ ค่าอาจเป็นข้อความคงที่หรือมาโครของ traveler เช่น {{device:hwid}} ซึ่งเป็นมาโครเดียวกับในเนื้อหาของ Webhook หรือคลิก แทรกค่าไดนามิก เพื่อเลือกแอททริบิวต์ที่ขั้นตอนก่อนหน้าใน Journey นี้สร้างขึ้น เช่น การตอบสนองของ LLM หรือค่า Webhook ที่แมปไว้
ตารางชื่อและค่าของ Fields ที่มี Email ถูกแมปกับมาโครของแท็ก
  1. คลิก บันทึก

การตอบสนอง

Anchor link to

traveler จะเดินทางต่อไปยังขั้นตอนใดก็ตามที่คุณเชื่อมต่อถัดไปบน canvas

แอททริบิวต์หลังจากขั้นตอนทำงาน

Anchor link to
แอททริบิวต์สิ่งที่เก็บไว้
salesforce_record_idID ของเรคคอร์ด

วิธีใช้ในขั้นตอนถัดไป

Anchor link to

traveler ได้เดินทางต่อไปยังขั้นตอนถัดไปแล้วโดยไม่คำนึงถึงแอททริบิวต์นี้ บันทึกเป็น Tag ด้วย อัปเดตโปรไฟล์ผู้ใช้ หากคุณต้องการอ้างอิงถึงเรคคอร์ดเฉพาะนี้ในภายหลัง เช่น ผ่าน API ของ Salesforce เอง

ความล้มเหลวและการตอบสนองที่ไม่คาดคิด

Anchor link to

เปิด Calls log ในหน้าต่างของพอยต์และตรวจสอบการตอบสนอง:

  • 401 — ข้อมูลประจำตัวของ connected app ไม่ถูกต้อง หรือ client credentials flow ไม่ได้เปิดใช้งาน
  • NOT_FOUND ในเนื้อหา — ชื่ออ็อบเจกต์ หรือฟิลด์ ID ภายนอก ไม่ตรงกับสิ่งใดในองค์กรนั้น ตรวจสอบว่าฟิลด์นั้นถูกทำเครื่องหมายเป็น External ID จริงๆ
  • REQUIRED_FIELD_MISSING ในเนื้อหา — การสร้างเรคคอร์ดใหม่ต้องการฟิลด์ที่พอยต์ไม่ได้ส่ง ให้เพิ่มใน Fields
  • INVALID_FIELD ในเนื้อหา — ชื่อใน Fields ไม่ใช่ API name ของอ็อบเจกต์นั้น API name ของฟิลด์ที่กำหนดเองจะลงท้ายด้วย __c

คำขอที่ล้มเหลวจะทำให้ traveler ออกจาก Journey ดู ข้อผิดพลาดและคำขอที่ล้มเหลว

สถานการณ์ตัวอย่าง: การส่งต่อคำขอคำปรึกษาในแอปไปยังฝ่ายขาย

Anchor link to

แอปเพื่อสุขภาพให้ผู้ใช้แตะ พูดคุยกับที่ปรึกษา ในแอป ทีมงานต้องการให้คำขอนั้นกลายเป็น Contact ใน Salesforce เพื่อให้ตัวแทนสามารถติดตามผลได้

  1. เพิ่มองค์ประกอบ Trigger-based entry และตั้งค่าให้ทำงานเมื่อมีเหตุการณ์ AdvisorCallRequested
  2. เพิ่ม Salesforce: สร้างหรืออัปเดตเรคคอร์ด ต่อจากนั้นทันที ตั้งค่า Object เป็น Contact, External id field เป็น Pushwoosh_HWID__c และ External id value เป็น {{device:hwid}} ใน Fields ตั้งค่า Email เป็น {{tag:Email}}
  3. คลิก บันทึก

เมื่อทำงานแล้ว ทุกคำขอที่ปรึกษาในแอปจะถูกส่งไปยัง Salesforce เป็น Contact โดยจับคู่ด้วย ID อุปกรณ์ ดังนั้นการแตะซ้ำจะอัปเดต Contact เดิมแทนที่จะสร้างรายการซ้ำซ้อน