ผสานรวมเอเจนต์แบบกําหนดเองกับ Suggested Actions Agent

ตัวแทนการดําเนินการที่แนะนําใน Dynamics 365 Sales แสดงคําแนะนําที่จัดลําดับความสําคัญสําหรับโอกาส โอกาสทางธุรกิจ บัญชี และผู้ติดต่อ มันมีท่อการให้คะแนนร่วมกัน สัญญาข้อมูล และการซิงโครไนซ์สถานะแบบสองทาง เพื่อให้เอเจนต์ที่กําหนดเองสามารถแสดงคําแนะนําร่วมกับเอเจนต์ฝ่ายแรกได้

บทความนี้อธิบายสถาปัตยกรรม ส่วนประกอบหลัก สัญญาข้อมูล และกระบวนการบูรณาการที่ใช้เมื่อเอเจนต์แบบกําหนดเองผสานรวมกับเอเจนต์การดําเนินการที่แนะนํา มันให้ความรู้พื้นฐานที่จําเป็นสําหรับการดําเนินการบูรณาการ

ข้อกําหนดเบื้องต้น

สถาปัตยกรรมการรวม

การผสานรวม Suggested Actions Agent ใช้กระบวนการประมวลผลที่รับคําสั่งดิบจากตัวแทนต้นทาง ให้คะแนนโดยใช้ เครื่องมือให้คะแนน UICE (ความเร่งด่วน, ผลกระทบ, ความมั่นใจ, ความพยายาม) และแสดงผลลัพธ์ที่จัดลําดับความสําคัญในแครูเซลของผู้ขาย

กระบวนการประมวลผลทํางานดังนี้:

  1. ตัวแทนศุลกากร จะตรวจจับข้อมูลเชิงลึกที่สามารถนําไปปฏิบัติได้ (เช่น ความเสี่ยงของดีล ดีลที่หยุดชะงัก หรือขาดผู้มีส่วนได้ส่วนเสีย)
  2. custom agent จะเรียกใช้msdyn_PushActionDataToRecommendedActionAgent custom API เพื่อส่งคําสั่ง
  3. การกระทําจะถูกเก็บไว้ใน msdyn_rawactioncatalogue (ตารางอินพุต)
  4. สําหรับแต่ละการกระทํา ระบบให้คะแนน:
    • ดึงข้อมูลสัญญาณเอนทิตีจาก Dataverse
    • ดึงข้อมูลการจัดลําดับความสําคัญเฉพาะของตัวแทนจากแค็ตตาล็อกการดําเนินการ
    • เรียกใช้ LLM เพื่อให้คะแนนการกระทําในมิติ UICE (ความเร่งด่วน, ผลกระทบ, ความมั่นใจ, ความพยายาม)
    • ใช้กฎเกณฑ์ขั้นต่ำและขั้นสูงสุด
    • คํานวณคะแนนลําดับความสําคัญสุดท้ายโดยใช้ GetRecommendedActionAgentResponse.
  5. การกระทําที่ให้คะแนนจะถูกแทรกเข้าไปใน msdyn_prioritizedactioncatalogue (ตารางผลลัพธ์)
  6. คารูเซลการดำเนินการที่แนะนำจะดึงข้อมูลการดำเนินการที่มีคะแนนและแสดงผลเป็นการ์ดในมุมมองรายการของเอนทิตี หากคารูเซลนี้เปิดใช้งานสำหรับเอนทิตีนั้น

ส่วนประกอบหลัก

การผสานรวมนี้อาศัยตารางและ 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 และเอเจนต์แบบกำหนดเองของคุณ เพื่อให้แน่ใจว่าผู้ขายจะเห็นข้อมูลที่สอดคล้องกัน ไม่ว่าพวกเขาจะดำเนินการกับแอ็กชันนั้นจากที่ใดก็ตาม
การดําเนินการที่แนะนํา ตัวแทน→ตัวแทนกําหนดเอง (ผู้ขายจะทํางานในคารูเซล): เมื่อผู้ขายทําเครื่องหมายว่าการดําเนินการเป็น เสร็จสิ้น หรือ ถูกยกเลิก ในวงล้อหมุน:

  1. เอเจนต์การดำเนินการที่แนะนำอัปเดต msdyn_actionuistatus ใน msdyn_prioritizedactioncatalogue
  2. เอเจนต์การดำเนินการที่แนะนำจะอ่าน msdyn_syncactionexecutionstateapiconfig จากการกำหนดค่าของเอเจนต์
  3. เอเจนต์การดำเนินการที่แนะนำเรียกใช้ 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 (ซึ่งกำหนดค่าไว้ในการกำหนดค่าเอเจนต์)