Partilhar via


Use msdyn_invokeCaseProcessingAgent para invocar o Agente de Gerenciamento de Casos

Use o msdyn_invokeCaseProcessingAgent evento de negócios para acionar o Agente de Gerenciamento de Casos para fazer o seguinte:

  • Extraia informações de uma entidade de origem, como um e-mail, e atualize o caso com detalhes relevantes.
  • resolver um caso específico.

Você pode usar isso para estender a automação de casos além dos gatilhos padrão. Por exemplo, você pode invocar o Agente de Gerenciamento de Casos quando um cliente cria um caso a partir de um portal externo ou quando um evento CRUD ocorre em uma tabela personalizada, como novos recibos adicionados a um caso.

Pré-requisitos

Pedido HTTP

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

Corpo do pedido

Propriedade Tipo Obrigatório Description
msdyn_incidentId Cordão Yes O ID do caso (incidente) no qual o Agente de Gestão de Incidentes deve ser executado.
Exemplo: "3895d023-a353-f011-877b-6045bd062e87"
msdyn_actions Matriz JSON convertida em string Yes Define quais ações/capacidades do Agente de Gerenciamento de Casos devem ser executadas. Veja os detalhes abaixo.

msdyn_actions objeto de matriz

Propriedade Tipo Obrigatório Description
action Cordão Yes Define a ação de processamento de casos a ser executada.
Valores:
  • resolve: resolva o caso usando os recursos de resolução do Agente de Gerenciamento de Casos.
  • enriquecer: extrai informações de uma entidade de origem, como um e-mail, e atualiza o caso com detalhes relevantes.
    A entidade de origem deve ser acessível e conter informações relevantes sobre os casos
nívelAutomação Cordão Não Define o modo de automação para a ação. Isto aplica-se apenas à resolução de casos. Se esse valor não for fornecido, o agente usará o modo configurado pelo administrador.
Valores:
  • Completo: o agente de IA resolve o caso automaticamente sem a intervenção do agente de atendimento ao cliente (representante ou agente de serviço).
  • ,
  • Semi: agente de IA elabora e-mails de resolução, mas requer revisão e aprovação do representante do serviço
sourceContextEntity Cordão Yes Este é um valor obrigatório para enriquecimento de casos e opcional para resolução de casos. A entidade de origem, como um e-mail ou uma conversação que deve ser usada para atualizar o caso.
Exemplo: "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)"

Pedido de amostra

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

Resposta

  • Êxito: Retorna HTTP 204 No Content com um corpo vazio.
  • Falha: Resposta de erro OData padrão.

Código de exemplo

No exemplo abaixo, você pode invocar o Case Management Agent a partir de plug-ins do Dataverse ou código personalizado executando a solicitação da msdyn_invokeCaseProcessingAgent organização. O agente é usado para atualizar o caso usando uma entidade de e-mail relacionada e, em seguida, resolver o caso com automação total.

Exemplo 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);
}

Exemplo 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();