หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ตัวแทนการดําเนินการที่แนะนําใน Dynamics 365 Sales แสดงคําแนะนําที่จัดลําดับความสําคัญสําหรับโอกาส โอกาสทางธุรกิจ บัญชี และผู้ติดต่อ มันมีท่อการให้คะแนนร่วมกัน สัญญาข้อมูล และการซิงโครไนซ์สถานะแบบสองทาง เพื่อให้เอเจนต์ที่กําหนดเองสามารถแสดงคําแนะนําร่วมกับเอเจนต์ฝ่ายแรกได้
บทความนี้อธิบายสถาปัตยกรรม ส่วนประกอบหลัก สัญญาข้อมูล และกระบวนการบูรณาการที่ใช้เมื่อเอเจนต์แบบกําหนดเองผสานรวมกับเอเจนต์การดําเนินการที่แนะนํา มันให้ความรู้พื้นฐานที่จําเป็นสําหรับการดําเนินการบูรณาการ
ข้อกําหนดเบื้องต้น
โซลูชัน NextBestActionAgent ที่ติดตั้งกับองค์กรเป้าหมาย สําหรับข้อมูลเพิ่มเติม ดูที่ นําเข้าเอเจนต์เข้าสู่สภาพแวดล้อมเป้าหมาย
ผู้ขายมีบทบาทความปลอดภัย Dataverse ที่เหมาะสมตามที่อธิบายไว้ใน สิทธิ์ที่จําเป็นสําหรับบทบาทความปลอดภัยที่กําหนดเอง
สตริง SourceAgentId ที่เสถียรและไม่ซ้ํากันสําหรับเอเจนต์ที่กําหนดเอง สําหรับข้อมูลเพิ่มเติม ดูที่ เพิ่มเอเจนต์ที่กําหนดเองสําหรับการดําเนินการที่แนะนํา
สิทธิ์ต่อไปนี้จําเป็นสําหรับการผลักดันการดําเนินการที่แนะนํา:
ตาราง สิทธิ์ที่ต้องใช้ ขอบเขต msdyn_rawactioncatalogue อ่าน, เขียน, ผนสก และ AppendTo ทั่วโลก msdyn_prioritizedactioncatalogue อ่าน, เขียน, ผนสก และ AppendTo ทั่วโลก msdyn_recommendedactionsourceagentconfig อ่าน ทั่วโลก msdyn_salesagentprofile อ่าน ทั่วโลก
สถาปัตยกรรมการรวม
การผสานรวม Suggested Actions Agent ใช้กระบวนการประมวลผลที่รับคําสั่งดิบจากตัวแทนต้นทาง ให้คะแนนโดยใช้ เครื่องมือให้คะแนน UICE (ความเร่งด่วน, ผลกระทบ, ความมั่นใจ, ความพยายาม) และแสดงผลลัพธ์ที่จัดลําดับความสําคัญในแครูเซลของผู้ขาย
กระบวนการประมวลผลทํางานดังนี้:
- ตัวแทนศุลกากร จะตรวจจับข้อมูลเชิงลึกที่สามารถนําไปปฏิบัติได้ (เช่น ความเสี่ยงของดีล ดีลที่หยุดชะงัก หรือขาดผู้มีส่วนได้ส่วนเสีย)
-
custom agent จะเรียกใช้
msdyn_PushActionDataToRecommendedActionAgentcustom API เพื่อส่งคําสั่ง - การกระทําจะถูกเก็บไว้ใน
msdyn_rawactioncatalogue(ตารางอินพุต) - สําหรับแต่ละการกระทํา ระบบให้คะแนน:
- ดึงข้อมูลสัญญาณเอนทิตีจาก Dataverse
- ดึงข้อมูลการจัดลําดับความสําคัญเฉพาะของตัวแทนจากแค็ตตาล็อกการดําเนินการ
- เรียกใช้ LLM เพื่อให้คะแนนการกระทําในมิติ UICE (ความเร่งด่วน, ผลกระทบ, ความมั่นใจ, ความพยายาม)
- ใช้กฎเกณฑ์ขั้นต่ำและขั้นสูงสุด
- คํานวณคะแนนลําดับความสําคัญสุดท้ายโดยใช้
GetRecommendedActionAgentResponse.
- การกระทําที่ให้คะแนนจะถูกแทรกเข้าไปใน
msdyn_prioritizedactioncatalogue(ตารางผลลัพธ์) - คารูเซลการดำเนินการที่แนะนำจะดึงข้อมูลการดำเนินการที่มีคะแนนและแสดงผลเป็นการ์ดในมุมมองรายการของเอนทิตี หากคารูเซลนี้เปิดใช้งานสำหรับเอนทิตีนั้น
ส่วนประกอบหลัก
การผสานรวมนี้อาศัยตารางและ API ของ Dataverse ดังต่อไปนี้
| ส่วนประกอบ | ตำแหน่งที่ตั้ง | คำอธิบาย |
|---|---|---|
| ตารางอินพุต | msdyn_rawactioncatalogue (Dataverse) | การดำเนินการดิบที่เอเจนต์แบบกำหนดเองส่ง |
| ตารางผลลัพธ์ | msdyn_prioritizedactioncatalogue (Dataverse) | ให้คะแนนและจัดอันดับการดําเนินการสําหรับ UI |
| กําหนดค่าตัวแทน | msdyn_recommendedactionsourceagentconfig (Dataverse) | การลงทะเบียนและการกําหนดค่าสําหรับแต่ละตัวแทน |
| พุช API | msdyn_PushActionDataToRecommendedActionAgent (API แบบกําหนดเอง) | เอเจนต์ → การดำเนินการที่แนะนำที่การดำเนินการของเอเจนต์ส่ง |
การลงทะเบียนตัวแทน
ลงทะเบียนตัวแทนที่กําหนดเองกับตัวแทนการดําเนินการที่แนะนํา เพื่อให้แพลตฟอร์มรับรู้และดึงข้อมูลการกระทําของพวกเขา สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการลงทะเบียนตัวแทน ดูที่ เพิ่มตัวแทนที่กําหนดเองสําหรับการดําเนินการที่แนะนํา
เมื่อคุณลงทะเบียนตัวแทน มันจะสร้างรายการใน msdyn_recommendedactionsourceagentconfig. ค่า SourceAgentId ที่ไม่ซ้ำกันใช้ระบุรายการสำหรับเอเจนต์แบบกำหนดเอง
การกําหนดค่าตัวแทน
ตารางนี้ msdyn_recommendedactionsourceagentconfig เก็บการกําหนดค่าต่อเอเจนต์ที่ควบคุมวิธีที่ Recommended Actions Agent ตีความการกระทําของเอเจนต์ ฟิลด์ที่สำคัญที่สุดสองฟิลด์ที่ต้องกรอกคือ msdyn_internalprioritizationinstruction และ msdyn_syncactionexecutionstateapiconfig
คุณสามารถใช้การกําหนดค่าได้โดยการอัปเดตระเบียนตารางด้วยตนเองหรือเรียก API UpsertRecommendationAgentConfigRequestแบบกําหนดเอง
สคีมาของ UpsertRecommendationAgentConfigRequest
ตัวอย่างต่อไปนี้แสดงฟิลด์การกําหนดค่าที่มีอยู่ในสคีมา
{
"agentName": "YourAgentName",
"agentType": "CustomAgent",
"isRecommendedActionAgentEnabled": true,
"salesAgentProfileId": "<SourceAgentId that was configured>",
"agentImpactMapping": "[]",
"internalPrioritizationInstruction": "{\"signals\":[...]}",
"syncActionExecutionStateApiConfig": "{\"syncactionuistatusapiname\":\"your_SyncBackCustomApiName\"}",
"description": "Brief description of your agent"
}
| เขตข้อมูล JSON | Type | คำอธิบาย |
|---|---|---|
| agentName | สตริง | แมปไปยัง msdyn_agentname (สูงสุด 850 อักขระ) จําเป็นสําหรับเรกคอร์ดใหม่ |
| agentType | สตริง | ประเภทของตัวแทน ใช้ "CustomAgent" เพื่อสร้างโปรไฟล์โดยอัตโนมัติ |
| เปิดใช้งานเอเจนต์การดำเนินการที่แนะนำหรือไม่ | boolean | แมปกับ msdyn_isrecommendedactionagentenabled Null = ปล่อยไว้ไม่เปลี่ยนแปลง |
| salesAgentProfileId | GUID? | ลิงก์ไปยัง msdyn_salesagentprofile ใช้สําหรับการค้นหาเรกคอร์ดใน upsert |
| agentImpactMapping | สตริง | อาร์เรย์ JSON แบบแบนของชื่อหลัก แมปกับ msdyn_agentimpactmapping |
| คําสั่งการจัดลําดับความสําคัญภายใน | สตริง | JSON พร้อมอาร์เรย์สัญญาณ แมปกับ msdyn_internalprioritizationinstruction |
| syncActionExecutionStateApiConfig | สตริง | วัตถุ {"syncactionuistatusapiname":"..."}JSON แมปกับ msdyn_syncactionexecutionstateapiconfig |
| sourceAgentUniqueId | สตริง | แมปไปยัง msdyn_sourceagentuniqueid । |
| description | สตริง | แมปกับ msdyn_sourcedescription (สูงสุด 1000 ตัวอักษร) |
คําแนะนําการจัดลําดับความสําคัญภายใน
คําสั่งการจัดลําดับความสําคัญภายในมีข้อมูลเมตาสัญญาณเฉพาะตัวแทนที่บอกเอนจินการให้คะแนนว่าจะตีความฟิลด์ข้อมูลการจัดลําดับความสําคัญของตัวแทนอย่างไร มันเป็นอ็อบเจ็กต์ JSON ที่มีอาร์เรย์ระดับ signals บนสุด แต่ละสัญญาณจะถูกดีซีเรียลไลซ์เป็น AgentSignalInstructionConfig ซึ่งมีฟิลด์ดังต่อไปนี้:
| ฟิลด์ | Type | คำอธิบาย |
|---|---|---|
| ชื่อ | สตริง | ตัวระบุสัญญาณ — ใช้เป็นกุญแจในส่วนอ้างอิงสัญญาณของพรอมต์คะแนน |
| ชนิด | สตริง | ประเภทข้อมูล: "string", "number", "boolean" |
| แหล่ง | สตริง | ป้ายชื่อเชิงพรรณาสําหรับตําแหน่งที่สัญญาณมาจาก ไม่ใช้สําหรับการกําหนดเส้นทาง — fetch_info.fetch_type ควบคุมกลไกการดึงข้อมูลจริง โดยทั่วไปจะใช้ "action_data" สําหรับสัญญาณที่เอเจนต์ส่งผ่าน |
| อิทธิพล_ของมิติ | {มิติ: ความแข็งแรง} | สัญญาณนี้ส่งผลต่อมิติใดของ UICE และมากน้อยเพียงใด คีย์: "ความเร่งด่วน", "ผลกระทบ", "ความมั่นใจ", "ความพยายาม" จุดแข็ง: "แข็งแกร่ง", "ปานกลาง", "อ่อนแอ" |
| การตีความ | สตริง | คําอธิบายภาษาธรรมชาติของความหมายของสัญญาณสําหรับการให้คะแนน — ถูกฝังไว้ในพรอมต์ LLM |
| ความน่าเชื่อถือ | สตริง | ความน่าเชื่อถือของสัญญาณนี้: "สูง", "กลาง", "ต่ํา" |
| จำเป็น | boolean | ว่าต้องมีสัญญาณสําหรับการให้คะแนนหรือไม่ |
| fetch_info | วัตถุ | ควบคุมว่าจะดึงค่าสัญญาณจากที่ใดและอย่างไรในขณะให้คะแนน |
ตัวอย่างบล็อกสัญญาณ:
{
"signals": [
{
"name": "risk_type",
"type": "string",
"source": "action_data",
"dimension_influence": { "urgency": "moderate", "confidence": "weak" },
"interpretation": "Risk category code assigned by the source agent (e.g. 8 = Missing BANT Info). Used for pre-filter rule matching and prompt context.",
"reliability": "high",
"required": false,
"fetch_info": { "fetch_type": "action_data", "crm_field": "riskType" }
},
{
"name": "risk_label",
"type": "string",
"source": "action_data",
"dimension_influence": { "urgency": "weak", "confidence": "weak" },
"interpretation": "Human-readable risk name from the source agent (e.g. 'Missing BANT Info', 'Stalled Pipeline'). Useful for prompt context and seller explanation.",
"reliability": "high",
"required": false,
"fetch_info": { "fetch_type": "action_data", "crm_field": "risk" }
}
]
}
กําหนดค่า API ของสถานะการดําเนินการซิงค์
การตั้งค่าสถานะการดําเนินการ API สําหรับการกระทําซิงค์เป็นวัตถุ JSON ที่ระบุชื่อ API ที่กําหนดเองซึ่ง Recommended Actions Agent เรียกใช้เมื่อผู้ขายดําเนินการกับการ์ด (เช่น ทําเครื่องหมายว่าการ์ดนั้นสมบูรณ์หรือไม่เกี่ยวข้อง) API นี้ตั้งค่าสถานะของการดําเนินการในแหล่งที่มาของตัวแทนแบบกําหนดเอง
{
"syncactionuistatusapiname": "your_SyncBackCustomApiName"
}
สัญญา Action Push
เอเจนต์แบบกําหนดเองจะผลักดันการกระทําโดยใช้ msdyn_PushActionDataToRecommendedActionAgent API แบบกําหนดเอง API จะถูกเรียกใช้ทุกครั้งที่เอเจนต์สร้างหรืออัปเดตการกระทําสําหรับเอนทิตีเป้าหมาย
พารามิเตอร์คำขอ
| พารามิเตอร์ | Type | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
| msdyn_ActionId | สตริง | ใช่ | ตัวระบุเฉพาะของเอเจนต์สำหรับการดำเนินการนี้ ใช้สําหรับการทําสําเนาและการซิงค์สถานะ ต้องเป็นแบบเชิงกําหนด (การดําเนินการเดียวกัน = รหัสเดียวกัน) รูปแบบตัวอย่าง: DealRisk_{opportunityId}_{riskType} |
| msdyn_SourceAgentId | สตริง | ใช่ | รหัสประจําตัวของตัวแทน ต้องตรงกับ msdyn_agentname ในระเบียนกําหนดค่าของเอเจนต์ ตัวอย่าง: "DealClosingAgent" |
| msdyn_TargetEntityId | uniqueidentifier (GUID) | ใช่ | GUID ของเรกคอร์ดเป้าหมาย (โอกาสทางการขาย, ลูกค้าเป้าหมาย) ที่การดำเนินการนี้เกี่ยวข้อง |
| msdyn_TargetEntityTypeName | สตริง | ใช่ | ชื่อตรรกะของเอนทิตีเป้าหมาย ตัวอย่าง: "โอกาส", "ผู้นํา" |
| msdyn_ActionReason | สตริง | ใช่ | เหตุผลที่การดำเนินการนี้ถูกสร้างขึ้น ใช้โดยโปรแกรมการให้คะแนนสำหรับการจับคู่หลักการ |
| msdyn_ActionUIPayload | สตริง | ไม่ | ข้อมูลเพย์โหลด JSON สำหรับการแสดงผลการ์ด หากละเว้น ตัวแทนการดําเนินการที่แนะนําจะไม่สามารถแสดงการ์ดได้ |
| msdyn_ActionPrioritizationData | สตริง | ไม่ | JSON ที่มีข้อมูลเฉพาะเอเจนต์สําหรับการให้คะแนน |
| msdyn_ActionCTA | สตริง | ไม่ | สตริงชนิด CTA ตัวอย่าง: "อีเมล", "รีวิว", "โทร" |
| msdyn_PrioritizationPrinciples | สตริง | ไม่ | อาร์เรย์ JSON ของหลักการจัดลำดับความสำคัญที่การดำเนินการเฉพาะนี้เชื่อมโยง (สามารถแทนที่การแมประดับเอเจนต์ได้) |
ตัวอย่าง: การเรียกปลั๊กอิน C#
ตัวอย่างต่อไปนี้สร้างและดําเนินการคําขอเพื่อผลักดันการดําเนินการความเสี่ยงดีลไปยังตัวแทนการดําเนินการที่แนะนํา คําขอระบุเอเจนต์ต้นทางและโอกาสเป้าหมาย ให้เหตุผลและข้อมูลของ UI การ์ด รวมสัญญาณความเสี่ยงสําหรับการจัดลําดับความสําคัญ และตรวจสอบว่าการดําเนินการสําเร็จหรือไม่
var request = new OrganizationRequest("msdyn_PushActionDataToRecommendedActionAgent")
{
["msdyn_ActionId"] = $"DealRisk_{opportunityId}_{riskType}",
["msdyn_SourceAgentId"] = "DealClosingAgent",
["msdyn_TargetEntityId"] = opportunityId, // Guid
["msdyn_TargetEntityTypeName"] = "opportunity",
["msdyn_ActionReason"] = "Customer has not responded in 14 days, deal is at risk of stalling",
["msdyn_ActionUIPayload"] = JsonConvert.SerializeObject(new
{
version = "1.0",
payload = new
{
header = "Follow up with Contoso",
description = "No customer response in 14 days. Deal may stall without re-engagement.",
oncardClickActionType = "Navigate",
oncardClickActionTypeParameters =
"{etn=\"opportunity\", id=\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\", pagetype=\"entityrecord\"}"
}
}),
["msdyn_ActionPrioritizationData"] = JsonConvert.SerializeObject(new
{
riskType = "14",
risk = "low"
})
};
var response = orgService.Execute(request);
bool success = (bool)response["msdyn_IsSuccess"];
สัญญาภาระงาน UI ของ Action
ฟิลด์ msdyn_ActionUIPayload ประกอบด้วยเพย์โหลด JSON ที่ควบคุมการแสดงผลของการ์ดแอ็กชันในคารูเซลของเอเจนต์การดำเนินการที่แนะนำ
{
"version": 1.0,
"header": "Follow up with Contoso on pricing proposal",
"description": "Stakeholder engagement has dropped. The customer expressed interest in the enterprise tier but hasn't responded to the last proposal sent 10 days ago.",
"oncardClickActionType": "Navigate",
"oncardClickActionTypeParameters": "{\"etn\":\"opportunity\",\"id\":\"<guid>\",\"pagetype\":\"entityrecord\"}",
"onctaClickActionType": "Navigate",
"onctaClickActionTypeParameters": "{\"etn\":\"opportunity\",\"id\":\"<guid>\",\"pagetype\":\"entityrecord\"}"
}
การจัดลําดับความสําคัญของสัญญาข้อมูล
ฟิลด์นี้ msdyn_prioritizationdata ช่วยให้ตัวแทนส่งสัญญาณเฉพาะตัวแทนที่มีผลต่อวิธีที่เครื่องมือให้คะแนน UICE จัดลําดับความสําคัญของการกระทํา
[
{ "signalName": "risk", "value": "low" },
{ "signalName": "riskType", "value": "4" }
]
ระบบให้คะแนนจะอ่านสัญญาณเหล่านี้ควบคู่ไปกับสัญญาณระดับเอนทิตี (มูลค่าดีล, เวที, คู่แข่ง ฯลฯ)
msdyn_internalprioritizationinstructionในการตั้งค่าเอเจนต์จะบอก LLM ว่าจะตีความสัญญาณแต่ละอย่างอย่างไร และเอนจินคะแนนจะรวมสัญญาณทั้งหมดไว้ในพรอมต์คะแนนของ UICE
เปิดใช้งานคารูเซลการดําเนินการที่แนะนํา
เปิดใช้งานวงล้อการดำเนินการที่แนะนำเพื่อให้วงล้อนี้ปรากฏในมุมมองแบบรายการของเอนทิตี เอนทิตีควบคุม aiinsightcard สถานะการเปิดใช้งานของคารูเซลสําหรับแต่ละเอนทิตี ตรวจสอบให้แน่ใจว่าระเบียนที่เกี่ยวข้อง aiinsightcard สําหรับเอนทิตีถูกตั้งค่าเป็น active
ตารางต่อไปนี้แสดงค่าที่ต้องตั้งค่าสําหรับการเปิดใช้งานหรือปิดใช้งานคารูเซลสําหรับเอนทิตี:
| สถานะการ์ด | statecode |
statuscode |
|---|---|---|
| ใช้งานอยู่ | 0 |
1 |
| ไม่ได้ใช้งาน | 1 |
2 |
การกําหนดเวอร์ชันและการยกเลิกการกระทํา
เมื่อเอเจนต์อัปเดตข้อมูลสําหรับการดําเนินการที่เคยถูกส่งไปก่อนหน้านี้ มันจะสร้างระเบียนใหม่ที่มีข้อมูลเดียวกัน msdyn_ActionId โดยการเรียกใช้งาน msdyn_PushActionDataToRecommendedActionAgent อีกครั้ง ระบบสร้างแถวใหม่ใน msdyn_rawactioncatalogue ด้วย เดียวกัน msdyn_actionid แต่เป็น ใหม่msdyn_rawactioncatalogueid Suggested Actions Agent จะแสดงเวอร์ชันเก่าจนกว่าจะประมวลผลเวอร์ชันใหม่
เพื่อยกเลิกการกระทํา (เช่น เมื่อความเสี่ยงได้รับการแก้ไข) เอเจนต์จะเรียกใช้ msdyn_RAAgent_RemoveActionsV2 API แบบกําหนดเองด้วย .actionId การกระทํานี้จะทําให้บันทึกทั้งหมด msdyn_rawactioncatalogue ของการกระทํานั้นไม่ใช้งาน และการ์ดจะหายไปจากคารูเซล
การซิงโครไนซ์สถานะแบบสองทิศทาง
สถานะของการดำเนินการจะซิงค์ทั้งในคารูเซล Recommended Actions Agent และเอเจนต์แบบกำหนดเองของคุณ เพื่อให้แน่ใจว่าผู้ขายจะเห็นข้อมูลที่สอดคล้องกัน ไม่ว่าพวกเขาจะดำเนินการกับแอ็กชันนั้นจากที่ใดก็ตาม
การดําเนินการที่แนะนํา ตัวแทน→ตัวแทนกําหนดเอง (ผู้ขายจะทํางานในคารูเซล): เมื่อผู้ขายทําเครื่องหมายว่าการดําเนินการเป็น เสร็จสิ้น หรือ ถูกยกเลิก ในวงล้อหมุน:
- เอเจนต์การดำเนินการที่แนะนำอัปเดต
msdyn_actionuistatusในmsdyn_prioritizedactioncatalogue - เอเจนต์การดำเนินการที่แนะนำจะอ่าน
msdyn_syncactionexecutionstateapiconfigจากการกำหนดค่าของเอเจนต์ - เอเจนต์การดำเนินการที่แนะนำเรียกใช้ API ที่กำหนดเองของเอเจนต์ด้วย:
| พารามิเตอร์ | Type | คำอธิบาย |
|---|---|---|
| แอคชั่นอิด | GUID | ตัวระบุการดําเนินการ |
| สถานะ | สตริง | "ทําเครื่องหมายเสร็จแล้ว" หรือ "ยกเลิก" |
เอเจนต์ต้องสร้าง API แบบกําหนดเองที่รับพารามิเตอร์ทั้งสองนี้และอัปเดตสถานะการกระทําในที่เก็บข้อมูลของตนเอง
ตัวแทนกําหนดเอง → ตัวแทนการดําเนินการที่แนะนํา (ผู้ขายทํางานในส่วนติดต่อผู้ใช้ของตัวแทน): เมื่อผู้ขายดําเนินการกับการกระทําใน UI ของเอเจนต์เอง (เช่น ทําเครื่องหมายว่าเป็นการลดทอนความรุนแรงในหน้าเอเจนต์แบบกําหนดเอง) เอเจนต์จะซิงค์สถานะนั้นไปยังเอเจนต์การดําเนินการที่แนะนําโดยการเรียกใช้msdyn_SyncActionExecutionStateFromAgent การดำเนินการนี้จะอัปเดตสถานะในตารางเอาต์พุตของเอเจนต์การดำเนินการที่แนะนำ และซ่อนรายการนั้นออกจากภาพสไลด์แบบหมุน
| พารามิเตอร์ | Type | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
| msdyn_ActionId | สตริง | ใช่ | ตัวระบุการกระทำ (ค่าเดียวกับที่พุชไว้) |
| msdyn_ActionState | จำนวนเต็ม | ใช่ | สถานะใหม่ — ค่า (จับคู่กับ MarkAsDone/Dismissed) |
| msdyn_TargetEntityId | ตัวระบุที่ไม่ซ้ํากัน | ใช่ | GUID ของเอนทิตีเป้าหมาย |
| TargetEntityTypeName | สตริง | ใช่ | ชื่อตรรกะของเอนทิตีเป้าหมาย |
| msdyn_TrackingId | สตริง | ไม่ | ID สำหรับการติดตาม/การเชื่อมโยง (ไม่บังคับ) |
การทดสอบและการตรวจสอบความถูกต้อง
หลังจากกําหนดค่าและติดตั้งแล้ว ให้ตรวจสอบความถูกต้องของโฟลว์แบบ end-to-end โดยดําเนินการตรวจสอบดังต่อไปนี้
ตรวจสอบการกําหนดค่าตัวแทน:
GET [org-url]/api/data/v9.2/msdyn_recommendedactionsourceagentconfigs
?$filter=msdyn_agentname eq 'YourAgentName'
&$select=msdyn_agentname,msdyn_agentimpactmapping,msdyn_internalprioritizationinstruction,msdyn_syncactionexecutionstateapiconfig
ผลักดันแอ็กชันทดสอบโดยการเรียก msdyn_PushActionDataToRecommendedActionAgent และตรวจสอบว่า msdyn_IsSuccess เป็นจริงและมีระเบียนใหม่ปรากฏใน msdyn_rawactioncatalogue.
กระตุ้นการให้คะแนนตามต้องการโดยการโทร msdyn_RAAgent_TriggerRecommendedActionsAgentOrchestration (แทนที่จะรอเวลาถึง 4 ชั่วโมง)
ตรวจสอบผลลัพธ์ที่ให้คะแนนแล้ว:
GET [org-url]/api/data/v9.2/msdyn_prioritizedactioncatalogues
?$filter=msdyn_actionid eq 'your-action-id'
&$select=msdyn_actionid,msdyn_actionscore,msdyn_actionuipayload,msdyn_hascrossedceiling,msdyn_hascrossedfloor,msdyn_actionuistatus,msdyn_scoredetails
ค่าคาดหวัง:
-
msdyn_actionscoreจะถูกเติมด้วยค่าในช่วง 0–10 -
msdyn_hascrossedfloorเป็นเท็จ (การดำเนินการอยู่เหนือค่าขีดล่างและแสดงในวงล้อ) -
msdyn_actionuistatusคือ 1 (ใช้งานอยู่) -
msdyn_scoredetailsประกอบด้วยคำอธิบายที่สร้างโดย LLM
ตรวจสอบการแสดงผลแบบคารูเซลโดยเปิดฟอร์มโอกาสทางการขายใน Dynamics 365 Sales และตรวจสอบส่วนการดำเนินการที่แนะนำ ตรวจสอบการซิงค์สถานะโดยปิดการดําเนินการในคารูเซล (API ซิงค์ย้อนกลับควรถูกเรียกใช้ด้วย state = "Dismissed") และโดยการทําเครื่องหมายการกระทําใน UI ของเอเจนต์ (บันทึกตารางผลลัพธ์ควรแสดงถึงการอัปเดต)msdyn_actionuistatus
ตัวอย่าง: ตัวแทนโอกาสการขาย
Sales Opportunity Agent เป็นตัวแทนแรกที่เข้าร่วมกับ Recommended Actions Agent และการผสานรวมของมันทําหน้าที่เป็นการใช้งานอ้างอิง
ค่าการกําหนดค่าเอเจนต์:
| เขตข้อมูลการกําหนดค่า | มูลค่าตัวแทนโอกาสการขาย (จาก OraDefaults.cs) |
|---|---|
| msdyn_agentname | "ตัวแทนโอกาสการขาย" |
| msdyn_agentimpactmapping | ["ความเสี่ยงของดีล","ความเร็วของดีล"] |
| msdyn_syncactionexecutionstateapiconfig | {"syncactionuistatusapiname":"msdyn_SyncDealRiskActionFromNba"} |
| msdyn_internalprioritizationinstruction | ดูมูลค่าการผลิตของตัวแทนโอกาสการขาย |
เมื่อการวิจัยของตัวแทนฝ่ายขายเสร็จสมบูรณ์และระบุความเสี่ยงของข้อตกลง ให้ DealRiskToNBAService ผลักความเสี่ยงแต่ละรายการเป็นการดําเนินการแยกต่างหาก:
| พารามิเตอร์การพุช | คุณค่าของตัวแทนโอกาสการขาย |
|---|---|
| msdyn_ActionId | DealRisk_{opportunityId}_{riskType} |
| msdyn_SourceAgentId | "DealRiskAgent" |
| msdyn_TargetEntityTypeName | "โอกาส" |
| msdyn_ActionReason | คําอธิบายความเสี่ยงจากการวิจัย |
| msdyn_ActionUIPayload | การ์ดพร้อมส่วนหัวความเสี่ยง + คำอธิบาย |
| msdyn_ActionPrioritizationData |
{"riskType":"8","risk":"Missing BANT Info"} (ตัวอย่าง) |
พฤติกรรมการซิงค์สถานะ:
-
ตัวแทนโอกาสการขาย → ตัวแทนดําเนินการที่แนะนํา: เมื่อผู้ขายทําเครื่องหมายความเสี่ยงว่า 'ทําแล้ว' บนหน้าการวิจัย ตัวแทนจะโทรหา
msdyn_SyncActionExecutionStateFromAgent. -
เอเจนต์การดำเนินการที่แนะนำ → เอเจนต์โอกาสทางการขาย: เมื่อผู้ขายปิดการ์ดในวงล้อ เอเจนต์การดำเนินการที่แนะนำจะเรียกใช้
ora_UpdatedActionStateFromRAAgent(ซึ่งกำหนดค่าไว้ในการกำหนดค่าเอเจนต์)