ใช้ msdyn_invokeCaseProcessingAgent เพื่อเรียกใช้ตัวแทนการจัดการกรณีและปัญหา

msdyn_invokeCaseProcessingAgentใช้เหตุการณ์ธุรกิจเพื่อกระตุ้นตัวแทนจัดการเคสให้ทำสิ่งต่อไปนี้:

  • แยกข้อมูลจากเอนทิตีต้นทาง เช่น อีเมล และอัปเดตกรณีที่มีรายละเอียดที่เกี่ยวข้อง
  • แก้ไขเคสเฉพาะ

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

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

การร้องขอทาง HTTP

POST [Organization URI]/api/data/v9.2/msdyn_invokeCaseProcessingAgent

เนื้อหาของคำขอ

คุณสมบัติ ชนิด จำเป็น คำอธิบาย
msdyn_incidentId สตริง ใช่ ID ของกรณี (เหตุการณ์) ที่ตัวแทนการจัดการเหตุการณ์ควรทํางาน
ตัวอย่าง: "3895d023-a353-f011-877b-6045bd062e87"
msdyn_actions อาร์เรย์ JSON ที่จําแนกเป็นสตริง ใช่ กำหนดการกระทำหรือความสามารถของตัวแทนการจัดการกรณีที่จะดำเนินการ ดูรายละเอียดด้านล่าง

ออบเจ็กต์อาร์เรย์ msdyn_actions

คุณสมบัติ ชนิด จำเป็น คำอธิบาย
การเคลื่อนไหว สตริง ใช่ กําหนดการดําเนินการประมวลผลกรณีที่จะเรียกใช้
ค่า:
  • แก้ไข: แก้ไขปัญหาโดยใช้ความสามารถการแก้ปัญหาของ Case Management Agent
  • การเสริมข้อมูล: แยกข้อมูลจากเอนทิตีต้นทาง เช่น อีเมล และปรับปรุงข้อมูลในกรณีด้วยรายละเอียดที่เกี่ยวข้อง
    เอนทิตีต้นทางต้องสามารถเข้าถึงได้และมีข้อมูลกรณีที่เกี่ยวข้อง
automationLevel สตริง ไม่ กําหนดโหมดการทํางานอัตโนมัติสําหรับการดําเนินการ ใช้สำหรับการแก้ไขเคสเท่านั้น ถ้าไม่ได้ระบุค่านี้ ตัวแทนจะใช้โหมดที่กําหนดค่าโดยผู้ดูแลระบบ
ค่า:
  • แบบเต็ม: ตัวแทน AI จะแก้ไขปัญหากรณีโดยอัตโนมัติโดยไม่มีการดําเนินการโดยเจ้าหน้าที่บริการลูกค้า (ตัวแทนบริการหรือตัวแทน)
  • ,
  • กึ่ง: เอเจนต์ AI ร่างอีเมลวิธีการแก้ไขแต่ต้องมีการตรวจสอบและอนุมัติจากเจ้าหน้าที่บริการ
sourceContextEntity สตริง ใช่ นี่คือค่าที่จำเป็นสำหรับการเสริมกรณีและเป็นตัวเลือกเพิ่มเติมสำหรับการแก้ไขกรณี เอนทิตีแหล่งข้อมูล เช่น อีเมลหรือการสนทนาที่ต้องใช้เพื่ออัปเดตกรณี
ตัวอย่าง: "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)"

คำขอตัวอย่าง

{
  "msdyn_incidentId": "5ad2ac2c-6363-f011-bec2-6045bd026457",
  "msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationLevel\":\"Full\"}]"
}

การตอบสนอง

  • ความสําเร็จ: ส่งกลับ HTTP 204 No Content ด้วยเนื้อความที่ว่างเปล่า
  • ความล้มเหลว: การตอบกลับข้อผิดพลาดมาตรฐานของ OData

โค้ดตัวอย่าง

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

ตัวอย่างที่ 1

CrmServiceClient GetService()
{
    string orgUrl = "";
    string username = "";
    string connectionString = $"AuthType=OAuth;Username={username};Url={orgUrl};AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;RedirectUri=http://localhost;LoginPrompt=Auto";
    CrmServiceClient svc = new CrmServiceClient(connectionString);
    return svc;
}

public class InvokeCaseProcessingAgentRequest
{
    [JsonProperty("msdyn_incidentId")]
    public string incidentid { get; set; }

    [JsonProperty("msdyn_actions")]
    public List<AgentAction> actions { get; set; }
}

public class AgentAction
{
    [JsonProperty("action")]
    public AgentActionType action { get; set; }

    [JsonProperty("sourceContextEntity")]
    public string sourceContextEntity { get; set; }

    [JsonProperty("automationLevel")]
    public AutomationLevel? automationLevel { get; set; }
}

[JsonConverter(typeof(StringEnumConverter))]
public enum AgentActionType
{
    [EnumMember(Value = "enrich")]
    Enrich,
    [EnumMember(Value = "resolve")]
    Resolve
}

[JsonConverter(typeof(StringEnumConverter))]
public enum AutomationLevel
{
    [EnumMember(Value = "Full")]
    Full,
    [EnumMember(Value = "Semi")]
    Semi
}

void Main()
{
    var service = GetService();
    var actions = new List<AgentAction>()
    {
        new AgentAction()
        {
            action = AgentActionType.Enrich,
            sourceContextEntity = "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)"
        },
        new AgentAction()
        {
            action = AgentActionType.Resolve,
            automationLevel = AutomationLevel.Full
        },
    };
    var req = new OrganizationRequest("msdyn_invokeCaseProcessingAgent")
    {
        ["msdyn_incidentId"] = new Guid("8f2db50d-0c64-f011-bec2-000d3a3b776a"),
        ["msdyn_actions"] = JsonConvert.SerializeObject(actions)
    };
    service.Execute(req);
}

ตัวอย่างที่ 2

function invokeCaseManagementAgent() {
  var data = JSON.stringify({
    "msdyn_incidentId": "020edf2f-7d3f-4a69-bd26-030736604eeb",
    "msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationMode\":\"Full\"}]"
  });
  var xhr = new XMLHttpRequest();
  xhr.withCredentials = true;
  xhr.addEventListener("readystatechange", function() {
    if(this.readyState === 4) {
      console.log(this.responseText);
    }
  });
  xhr.open("POST", Xrm.Utility.getGlobalContext().getClientUrl()+"/api/data/v9.2/msdyn_invokeCaseProcessingAgent");
  xhr.setRequestHeader("Cache-Control", "no-cache");
  xhr.setRequestHeader("Accept", "*/*");
  xhr.setRequestHeader("Content-Type", "application/json");
  xhr.send(data);
}

invokeCaseManagementAgent();