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

หลังจากที่คุณเชื่อมต่อ 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- ลาก Salesforce: สร้างหรืออัปเดตเรคคอร์ด จากส่วน การผสานรวม ของแผงด้านซ้ายมาวางบน canvas
- ดับเบิลคลิกที่พอยต์และป้อน ชื่อขั้นตอน (Step Name)
- ใน My Domain host ให้ป้อนโฮสต์เดียวกับที่ connected app อยู่

- ใน Object ให้ป้อน API name ของอ็อบเจกต์ —
Contact,Leadหรืออ็อบเจกต์ที่กำหนดเองที่ลงท้ายด้วย__c

- ใน External id field ให้ป้อน API name ของฟิลด์ที่ทำเครื่องหมายเป็น External ID

- ใน External id value ให้ป้อนค่าที่จะใช้จับคู่ โดยปกติจะเป็นมาโครเช่น
{{device:hwid}}

- ใน Fields ให้เพิ่มหนึ่งแถวต่อฟิลด์ Salesforce ที่จะตั้งค่า ป้อน API name ของฟิลด์และค่า ชื่อต้องไม่ว่างเปล่าและไม่ซ้ำกัน ฟิลด์ที่จำเป็นของอ็อบเจกต์ต้องอยู่ในนั้นด้วย มิฉะนั้น Salesforce จะปฏิเสธการสร้างเรคคอร์ดใหม่ ค่าอาจเป็นข้อความคงที่หรือมาโครของ traveler เช่น
{{device:hwid}}ซึ่งเป็นมาโครเดียวกับในเนื้อหาของ Webhook หรือคลิก แทรกค่าไดนามิก เพื่อเลือกแอททริบิวต์ที่ขั้นตอนก่อนหน้าใน Journey นี้สร้างขึ้น เช่น การตอบสนองของ LLM หรือค่า Webhook ที่แมปไว้

- คลิก บันทึก
การตอบสนอง
Anchor link totraveler จะเดินทางต่อไปยังขั้นตอนใดก็ตามที่คุณเชื่อมต่อถัดไปบน canvas
แอททริบิวต์หลังจากขั้นตอนทำงาน
Anchor link to| แอททริบิวต์ | สิ่งที่เก็บไว้ |
|---|---|
salesforce_record_id | ID ของเรคคอร์ด |
วิธีใช้ในขั้นตอนถัดไป
Anchor link totraveler ได้เดินทางต่อไปยังขั้นตอนถัดไปแล้วโดยไม่คำนึงถึงแอททริบิวต์นี้ บันทึกเป็น 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 เพื่อให้ตัวแทนสามารถติดตามผลได้
- เพิ่มองค์ประกอบ Trigger-based entry และตั้งค่าให้ทำงานเมื่อมีเหตุการณ์
AdvisorCallRequested - เพิ่ม Salesforce: สร้างหรืออัปเดตเรคคอร์ด ต่อจากนั้นทันที ตั้งค่า Object เป็น
Contact, External id field เป็นPushwoosh_HWID__cและ External id value เป็น{{device:hwid}}ใน Fields ตั้งค่าEmailเป็น{{tag:Email}} - คลิก บันทึก
เมื่อทำงานแล้ว ทุกคำขอที่ปรึกษาในแอปจะถูกส่งไปยัง Salesforce เป็น Contact โดยจับคู่ด้วย ID อุปกรณ์ ดังนั้นการแตะซ้ำจะอัปเดต Contact เดิมแทนที่จะสร้างรายการซ้ำซ้อน