SetDialogflowResponse policy

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

A política SetDialogflowResponse facilita a integração do Dialogflow com o Apigee. Para mais informações, consulte o artigo Integrar o Apigee com o Contact Center AI.

A política SetDialogflowResponse processa e formata os dados de resposta dos seus sistemas de back-end antes de enviar os dados como uma WebhookResponse para o agente do Dialogflow. Um agente do Dialogflow requer o WebhookResponse num formato específico, e a política SetDialogflowResponse cria a resposta no formato necessário. A política cria uma WebhookResponse no formato necessário para um agente do Dialogflow. O WebhookResponse tem expressões de linguagem natural e outros parâmetros que o agente do Dialogflow compreende.

Se for um integrador de serviços de back-end, não precisa de perder tempo a compreender o formato da Dialoglfow WebhookResponse. A política SetDialogflowResponse pronta a usar processa os dados de resposta de forma integrada.

Esta política é uma política extensível e a utilização desta política pode ter implicações de custo ou utilização, consoante a sua licença do Apigee. Para ver informações sobre os tipos de políticas e as implicações de utilização, consulte Tipos de políticas.

<SetDialogflowResponse>

Define uma política SetDialogflowResponse.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal N/A
Elementos subordinados <DisplayName>
<Source>
<DialogflowVersion>
<NaturalLanguageResponse>
<Parameters>
<IgnoreUnresolvedVariables>

A tabela seguinte fornece uma descrição de nível elevado de todos os elementos secundários do elemento SetDialogflowResponse:

Elemento secundário Obrigatório? Descrição
<DisplayName> Opcional Um nome personalizado para a política.
<Source> Opcional Especifica a variável a analisar.
<DialogflowVersion> Opcional Especifica a versão do Dialogflow.
<NaturalLanguageResponse> Opcional Encapsula todo o conteúdo que tem de ser enviado como um objeto WebhookResponse.FulfillmentResponse.
<Parameters> Opcional Elemento principal de <Parameter>. Define o conjunto de parâmetros a definir na resposta do Webhook.
<IgnoreUnresolvedVariables> Opcional Especifica se o processamento é interrompido quando é encontrada uma variável não resolvida.
Outros elementos secundários
<MergeBehavior> Opcional Especifica o comportamento de união das mensagens de resposta.
<Header> Opcional Extrai o valor do campo especificado no cabeçalho da resposta.
<JSONPath> Opcional Extrai o valor do caminho JSON especificado.
<Parameter> Obrigatória Especifica um parâmetro a definir no objeto sessionInfo.parameters da resposta do Webhook.
<Phrase> Obrigatória Especifica a expressão (texto) a definir no objeto fulfillmentResponse.messages da resposta do webhook.
<Phrases> Opcional Elemento principal de <Phrase>. Define o conjunto de expressões de linguagem natural a serem definidas na resposta do webhook.
<Ref> Opcional Extrai o valor da variável de referência especificada.
<Value> Opcional Define um texto personalizado para o parâmetro especificado.

Exemplo

O exemplo seguinte mostra uma política SetDialogflowResponse de exemplo e o WebhookResponse enviado para o agente do Dialogflow:

Sintaxe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetDialogflowResponse continueOnError="false" enabled="true"
        name="POLICY_NAME">
    <!-- The display name for this policy -->
    <DisplayName>DISPLAY_NAME</DisplayName>
    <!-- The message variable from which the policy extracts the required information -->
    <Source>MESSAGE_VARIABLE</Source>
    <!-- The version of Dialogflow for which this response policy is written up.
         This policy supports only the CX version. This element is optional and
         defaults to CX if unspecified -->
    <DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
    <!-- A container object to encapsulate all content needed for a natural
         language response to be returned to Dialogflow from the Southbound API -->
    <NaturalLanguageResponse>
        <!-- Defines the merge behavior for existing responses and new responses.
             Refer here for more details -->
        <MergeBehavior>MERGE_BEHAVIOR</MergeBehavior>
        <!-- An ordered list of natural language phrases to be returned to
             Dialogflow from the Southbound API -->
        <Phrases>
            <!-- A phrase is a natural language phrase that Dialogflow agents
                 can send back to their caller/chatting customer -->
            <Phrase>
                <!-- A phrase can be extracted from the response JSON payload of a
                     service callout -->
                <JSONPath>JSON_PATH</JSONPath>
            </Phrase>
            <Phrase>
                <!-- A phrase can be extracted from the response headers of a
                     service callout -->
                <Header name="HEADER_NAME"/>
            </Phrase>
            <Phrase>
                <!-- A phrase refer to the value of an existing flow variable -->
                <Ref>EXISTING_FLOW_VARIABLE</Ref>
            </Phrase>
            <Phrase>
                <!-- A phrase can be static text -->
                <Value>CUSTOM_TEXT</Value>
            </Phrase>
        </Phrases>
    </NaturalLanguageResponse>
    <!-- A container object defining the parameters to be set as session parameters
         in the Webhook response sent to Dialogflow -->
    <Parameters>
        <!-- Defines a single parameter to be set in sessionInfo.parameters object
             of the WebhookResponse object. The name of the parameter is defined
             as an attribute -->
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be extracted from the response JSON
                 payload of a service callout -->
            <JSONPath>JSON_PATH</JSONPath>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be extracted from the response headers
                 of a service callout -->
            <Header name="HEADER_NAME"/>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be refer to the value of an existing flow
                 variable -->
            <Ref>EXISTING_FLOW_VARIABLE</Ref>
        </Parameter>
        <Parameter name="PARAMETER_NAME">
            <!-- A parameter's value can be static text -->
            <Value>CUSTOM_TEXT</Value>
        </Parameter>
    </Parameters>
    <IgnoreUnresolvedVariables>BOOLEAN_VALUE</IgnoreUnresolvedVariables>
</SetDialogflowResponse>
      

Política SetDialogflowResponse

O exemplo seguinte mostra a definição da política SetDialogflowResponse:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetDialogflowResponse continueOnError="false" enabled="true"
        name="CCAIDialogflowResponse-InsuranceAgent">
    <DisplayName>Insurance Agent Webhook Response Policy</DisplayName>
    <Source>myMessageVar</Source>
    <DialogflowVersion>CX</DialogflowVersion>
    <NaturalLanguageResponse>
        <MergeBehavior>APPEND</MergeBehavior>
        <Phrases>
            <Phrase>
                <JSONPath>$.claim.status.text</JSONPath>
            </Phrase>
            <Phrase>
                <Header name="X-Response-Text"/>
            </Phrase>
            <Phrase>
                <Ref>myVar</Ref>
            </Phrase>
            <Phrase>
                <Value>You call is important to us</Value>
            </Phrase>
        </Phrases>
    </NaturalLanguageResponse>
    <Parameters>
        <Parameter name="claimStatus">
            <JSONPath>$.claim.status.value</JSONPath>
        </Parameter>
        <Parameter name="claimAmount">
            <JSONPath>$.claim.amount</JSONPath>
        </Parameter>
        <Parameter name="timeSpent">
            <Header name="X-Time-Spent"/>
        </Parameter>
        <Parameter name="myVar">
            <Ref>dialogflow.my.var</Ref>
        </Parameter>
        <Parameter name="responder">
            <Value>SYSTEM</Value>
        </Parameter>
    </Parameters>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</SetDialogflowResponse>

Aceda ao exemplo seguinte para ver a resposta do webhook criada por esta política.

Resposta do webhook

O exemplo seguinte mostra uma WebhookResponse enviada para o agente do Dialogflow:

{
    "fulfillmentResponse": {
        "mergeBehavior": "APPEND",
        "messages": [{
            "text": {
                "text": ["Your claim is currently being processed",
                          "Please call back in a couple of days"]
            }
        }]
    },
    "sessionInfo": {
        "parameters": {
            "claimStatus": "PROCESSING",
            "claimAmount": 1000
        }
    }
}

Este elemento tem os seguintes atributos comuns a todas as políticas:

Atributo Predefinição Obrigatório? Descrição
name N/A Obrigatório

O nome interno da política. O valor do atributo name pode conter letras, números, espaços, hífenes, sublinhados e pontos finais. Este valor não pode exceder 255 carateres.

Opcionalmente, use o elemento <DisplayName> para etiquetar a política no editor de proxy da IU de gestão com um nome diferente em linguagem natural.

continueOnError falso Opcional Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas. Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:
enabled verdadeiro Opcional Defina como true para aplicar a política. Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça anexada a um fluxo.
async   falso Descontinuado Este atributo foi descontinuado.

Referência de elemento secundário

Esta secção descreve os elementos subordinados de <SetDialogflowResponse>.

<DisplayName>

Use em conjunto com o atributo name para etiquetar a política no editor de proxy da IU de gestão com um nome diferente e mais natural.

O elemento <DisplayName> é comum a todas as políticas.

Valor predefinido N/A
Obrigatório? Opcional. Se omitir <DisplayName>, é usado o valor do atributo name da política.
Tipo String
Elemento principal <PolicyElement>
Elementos subordinados Nenhum

O elemento <DisplayName> usa a seguinte sintaxe:

Sintaxe

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Exemplo

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

O elemento <DisplayName> não tem atributos nem elementos subordinados.

<Source>

Especifica a variável a analisar. O valor de <Source> é predefinido como message. O valor message é sensível ao contexto. Num fluxo de pedidos, message é resolvido para a mensagem de pedido. Num fluxo de resposta, message é resolvido para a mensagem de resposta.

Embora use frequentemente esta política para extrair informações de uma mensagem de pedido ou resposta, pode usá-la para extrair informações de qualquer variável. Por exemplo, pode usá-la para extrair informações de uma entidade criada pela política AccessEntity, de dados devolvidos pela política ServiceCallout ou extrair informações de um objeto XML ou JSON.

Se não for possível resolver <Source> ou se a resolução for um tipo que não seja de mensagem, a política falha e recebe um erro de tempo de execução.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <SetDialogflowResponse>
Elementos subordinados Nenhum
O elemento <Source> usa a seguinte sintaxe:

Sintaxe

<Source>MESSAGE_VARIABLE</Source>

Exemplo

O exemplo seguinte define a origem como myMessageVar:

<Source>myMessageVar</Source>

<DialogflowVersion>

Especifica a versão do Dialogflow. A política SetDialogflowResponse só suporta a versão CX. Se não especificar este elemento na sua política, a versão é CX por predefinição.

Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <SetDialogflowResponse>
Elementos subordinados Nenhum
O elemento <DialogflowVersion> usa a seguinte sintaxe:

Sintaxe

<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>

Exemplo

O exemplo seguinte define o DialogflowVersion como CX:

<DialogflowVersion>CX</DialogflowVersion>

<IgnoreUnresolvedVariables>

Determina se o processamento é interrompido quando é encontrada uma variável não resolvida.

Valor predefinido Verdadeiro
Obrigatório? Opcional
Tipo Booleano
Elemento principal <SetDialogflowResponse>
Elementos subordinados Nenhum

Definido como true para ignorar as variáveis não resolvidas e continuar o processamento; caso contrário, false. O valor predefinido é true.

Definir <IgnoreUnresolvedVariables> como true é diferente de definir o <SetDialogflowResponse> de continueOnError como true. Se definir continueOnError como true, o Apigee ignora todos os erros, não apenas os erros nas variáveis.

O elemento <IgnoreUnresolvedVariables> usa a seguinte sintaxe:

Sintaxe

 <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

Exemplo

O exemplo seguinte define <IgnoreUnresolvedVariables> como false:

       <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<MergeBehavior>

Define o comportamento de união das mensagens de resposta. Pode especificar qualquer um dos seguintes valores:

  • APPEND: acrescenta as mensagens à lista de mensagens que aguardam envio para o utilizador.
  • REPLACE: substitui as mensagens mais antigas por mensagens mais recentes na lista de mensagens que aguardam envio para o utilizador.
Se não especificar o elemento, o comportamento é predefinido para APPEND.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <NaturalLanguageResponse>
Elementos subordinados Nenhum
O elemento <MergeBehavior> usa a seguinte sintaxe:

Sintaxe

<MergeBehavior>BEHAVIOR</MergeBehavior>

Exemplo

O exemplo seguinte define o comportamento de união como APPEND:

<MergeBehavior>APPEND</MergeBehavior>

<NaturalLanguageResponse>

Encapsula toda a resposta de linguagem natural que quer enviar para o agente do Dialogflow.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <SetDialogflowResponse>
Elementos subordinados <MergeBehavior>
<Phrases>

<Parameters>

Define o conjunto de parâmetros a definir na resposta do webhook. O nome do parâmetro é um atributo do elemento <Parameter>.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <SetDialogflowResponse>
Elementos subordinados <Parameter>

<Parameter>

Especifica um parâmetro a definir no objeto sessionInfo.parameters da resposta do webhook.

Pode especificar um texto estático como um valor de parâmetro ou extrair o valor de qualquer um dos seguintes campos na resposta:

  • Campos de cabeçalho da resposta
  • Payload de JSON
  • Variáveis de fluxo

Tem de definir um elemento <Parameter> separado para cada valor que quer extrair.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal <Parameters>
Elementos subordinados <Header>
<JSONPath>
<Ref>
<Value>
O elemento <Parameter> tem os seguintes atributos:
Atributo Descrição Obrigatório? Tipo
name O nome da variável a criar com este parâmetro. Sim String

O elemento <Parameter> usa a seguinte sintaxe:

Sintaxe

<Parameters>
  <Parameter name="PARAMETER_NAME">
  <Header name="HEADER_NAME"/>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <JSONPath>JSON_PATH</JSONPath>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <Ref>EXISTING_FLOW_VARIABLE</Ref>
</Parameter>
<Parameter name="PARAMETER_NAME">
  <Value>CUSTOM_TEXT</Value>
</Parameter>
</Parameters>

Extraia o valor do campo de cabeçalho

Este exemplo define o parâmetro timeSpent para o valor do campo de cabeçalho X-Time-Spent.

<Parameter name="timeSpent">
     <Header name="X-Time-Spent"/>
</Parameter>

Extraia o valor do caminho JSON

Este exemplo define o parâmetro claimAmount para o valor do campo claim.amount na carga útil JSON.

<Parameter name="claimAmount">
   <JSONPath>$.claim.amount</JSONPath>
</Parameter>

Extraia o valor da variável de fluxo

Este exemplo define o parâmetro myVar com o valor da variável de fluxo dialogflow.my.var.

<Parameter name="myVar">
   <Ref>dialogflow.my.var</Ref>
</Parameter>
       

Defina texto personalizado

Este exemplo define o valor do parâmetro responder como SYSTEM.

<Parameter name="responder">
   <Value>SYSTEM</Value>
</Parameter>

<Phrases>

Elemento principal de <Phrase>. Define a lista ordenada de expressões de linguagem natural a serem definidas na resposta do webhook.

Valor predefinido N/A
Obrigatório? Opcional
Tipo Objeto complexo
Elemento principal <NaturalLanguageResponse>
Elementos subordinados <Phrase>

<Phrase>

Especifica a expressão (texto) a definir no objeto fulfillmentResponse.messages da resposta do webhook.

Pode especificar um texto estático como um valor de expressão ou extrair o valor de qualquer um dos seguintes campos na resposta:

  • Campos de cabeçalho da resposta
  • Payload de JSON
  • Variáveis de fluxo

Tem de definir um elemento <Phrase> separado para cada valor que quer extrair.

Valor predefinido N/A
Obrigatório? Obrigatória
Tipo Objeto complexo
Elemento principal <Phrases>
Elementos subordinados <Header>
<JSONPath>
<Ref>
<Value>

O elemento <Phrase> usa a seguinte sintaxe:

Sintaxe

<Phrases>
  <Phrase>
    <Header name="HEADER_NAME"/>
  </Phrase>
  <Phrase>
    <JSONPath>JSON_PATH</JSONPath>
  </Phrase>
  <Phrase>
    <Ref>EXISTING_FLOW_VARIABLE</Ref>
  </Phrase>
  <Phrase>
    <Value>CUSTOM_TEXT</Value>
  </Phrase>
</Phrases>

Extraia o valor do campo de cabeçalho

Este exemplo define um texto de linguagem natural na resposta para o valor do campo de cabeçalho X-Response-Text.

<Phrase>
     <Header name="X-Response-Text"/>
</Phrase>

Extraia o valor do caminho JSON

Este exemplo define um texto de linguagem natural na resposta para o valor do campo claim.status.text no payload JSON.

<Phrase>
   <JSONPath>$.claim.status.text</JSONPath>
</Phrase>

Extraia o valor da variável de fluxo

Este exemplo define um texto de linguagem natural na resposta para o valor da variável de fluxo myVar.

<Phrase>
   <Ref>myVar</Ref>
</Phrase>
       

Defina texto personalizado

Este exemplo adiciona o texto You call is important to us ao texto em linguagem natural na resposta.

<Phrase>
   <Value>You call is important to us</Value>
</Phrase>

Extrai o valor do campo especificado no cabeçalho da resposta. Pode usar o valor do cabeçalho para definir um texto em linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor do cabeçalho como uma resposta em linguagem natural, especifique o elemento <Header> no interior do elemento <Phrase>.
  • Para extrair o valor do cabeçalho como um parâmetro de resposta, especifique o elemento <Header> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Header> usa a seguinte sintaxe:

Sintaxe

<Header name="HEADER_FIELD"/>

Exemplo 1

O exemplo seguinte obtém o valor do campo de cabeçalho X-Response-Text como uma resposta de linguagem natural:

<Phrase>
  <Header name="X-Response-Text"/>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor do campo do cabeçalho X-Response-Text como um parâmetro de resposta:

<Parameter name="timeSpent">
  <Header name="X-Response-Text"/>
<Parameter/>

A variável de fluxo timeSpent é definida como o valor do campo de cabeçalho X-Response-Text.

O elemento <Header> tem os seguintes atributos:

Atributo Descrição Obrigatório? Tipo
nome Especifica o nome do cabeçalho de resposta do qual extrai o valor. Obrigatória String

<JSONPath>

Extrai o valor de um caminho JSON num payload JSON da chamada de serviço. Pode usar o valor para definir um texto de linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor JSON como um texto de linguagem natural, especifique o elemento <JSONPath> no interior do elemento <Phrase>.
  • Para extrair o valor JSON como um parâmetro de resposta, especifique o elemento <JSONPath> no elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <JSONPath> usa a seguinte sintaxe:

Sintaxe

<JSONPath>JSON_PATH</JSONPath>

Exemplo 1

O exemplo seguinte obtém o valor do campo JSON claim.status.text como uma resposta em linguagem natural:

<Phrase>
  <JSONPath>$.claim.status.text</JSONPath>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor do campo JSON claim.amount como um parâmetro de resposta:

<Parameter name="claimAmount">
  <JSONPath>$.claim.amount.</JSONPath>
<Parameter/>

A variável de fluxo claimAmount é definida com o valor do campo JSON {claim.amount}.

<Ref>

Extrai o valor de uma variável de fluxo existente. Pode usar o valor para definir um texto de linguagem natural ou um parâmetro de resposta.

  • Para extrair o valor de uma variável como um texto de linguagem natural, especifique o elemento <Ref> no interior do elemento <Phrase>.
  • Para extrair o valor de uma variável como um parâmetro de resposta, especifique o elemento <Ref> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Ref> usa a seguinte sintaxe:

Sintaxe

<Ref>EXISTING_FLOW_VARIABLE</Ref>

Exemplo 1

O exemplo seguinte obtém o valor da variável de fluxo myVar como uma resposta em linguagem natural:

<Phrase>
  <Ref>myVar</Ref>
<Phrase/>

Exemplo 2

O exemplo seguinte obtém o valor da variável de fluxo dialogflow.my.var como um parâmetro de resposta:

<Parameter name="customVar">
  <Ref>dialogflow.my.var</Ref>
<Parameter/>

A variável de fluxo customVar é definida com o valor da variável dialogflow.my.var.

<Value>

Define um valor literal para um texto de linguagem natural ou um parâmetro de resposta.

  • Para definir o valor literal como um texto em linguagem natural, especifique o elemento <Value> no interior do elemento <Phrase>.
  • Para definir o valor literal como um parâmetro de resposta, especifique o elemento <Value> no interior do elemento <Parameter>.
Valor predefinido N/A
Obrigatório? Opcional
Tipo String
Elemento principal <Phrase>
<Parameter>
Elementos subordinados Nenhum
O elemento <Value> usa a seguinte sintaxe:

Sintaxe

<Value>CUSTOM_TEXT</Value>

Exemplo 1

O exemplo seguinte define o texto literal You call is important to us como uma resposta de linguagem natural:

<Phrase>
  <Value>You call is important to us</Value>
<Phrase/>

Exemplo 2

O exemplo seguinte define o texto literal SYSTEM como um parâmetro de resposta:

<Parameter name="responder">
  <Value>SYSTEM</Value>
<Parameter/>

A variável de fluxo responder está definida como SYSTEM.

Códigos de erro

This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.setdialogflowresponse.ExecutionFailed 500 This error occurs when the execution of the policy failed because of a generic exception. The fault message has the details of the exception.
steps.setdialogflowresponse.InvalidSourceType 500 This error occurs if the variable specified in the <Source> element is not of message type.
steps.setdialogflowresponse.MalformedInput 500 This error occurs when the JSON provided to this policy is invalid or malformed.
steps.setdialogflowresponse.SourceMessageNotAvailable 500 This error occurs if the message variable specified in the Source element of the policy is either:
  • Out of scope (not available in the specific flow where the policy is executed)
  • or
  • Can't be resolved (is not defined)
steps.setdialogflowresponse.UnresolvedHeader 500 This error occurs if the Header element has an invalid header. For example, if the Header element has the value X-Response-Text, and there is no X-Response-Text in the response header, you will get this error.
steps.setdialogflowresponse.UnresolvedJSONPath 500 This error occurs if the JSONPath element has an invalid path. For example, if the JSONPath element has the value {claim.status.value}, and there is no status object in the JSON payload, you will get this error.
steps.setdialogflowresponse.UnresolvedVariable 500

This error occurs if a variable specified in the SetDialogflowResponse policy is either:

  • Out of scope (not available in the specific flow where the policy is being executed)
  • or
  • Can't be resolved (is not defined)

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause
UnsupportedOperation This error occurs if you have specified unsupported Dialogflow version in the DialogflowVersion element. The SetDialogflowResponse policy supports only the CX version.

Fault variables

Whenever there are execution errors in a policy, Apigee generates error messages. You can view these error messages in the error response. Many a time, system generated error messages might not be relevant in the context of your product. You might want to customize the error messages based on the type of error to make the messages more meaningful.

To customize the error messages, you can use either fault rules or the RaiseFault policy. For information about differences between fault rules and the RaiseFault policy, see FaultRules vs. the RaiseFault policy. You must check for conditions using the Condition element in both the fault rules and the RaiseFault policy. Apigee provides fault variables unique to each policy and the values of the fault variables are set when a policy triggers runtime errors. By using these variables, you can check for specific error conditions and take appropriate actions. For more information about checking error conditions, see Building conditions.

The following table describes the fault variables specific to this policy.

Variables Where Example
fault.name="FAULT_NAME" FAULT_NAME is the name of the fault, as listed in the Runtime errors table. The fault name is the last part of the fault code. fault.name Matches "UnresolvedVariable"
setdialogflowresponse.POLICY_NAME.failed POLICY_NAME is the user-specified name of the policy that threw the fault. setdialogflowresponse.My-Set-Dialogflow-Response.failed = true
For more information about policy errors, see What you need to know about policy errors.

Tópicos relacionados

As implementações de referência de proxies do Apigee e fluxos partilhados que mostram a utilização da política SetDialogflowResponse estão disponíveis no GitHub do Apigee. Para mais informações, consulte o artigo Implementações de referência de IA de conversação.