Solicitar configuración para acciones de datos

Nota: Este artículo se aplica a las integraciones de las acciones de datos de Adobe, AWS Lambda, Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, servicios web y Zendesk.

Puede crear acciones personalizadas para las integraciones de acciones de datos. Una acción personalizada incluye una solicitud y un respuesta en su configuración. Para obtener más información, consulte Crear una acción personalizada para integraciones.

Este artículo explica las partes de la solicitud. Para obtener información sobre respuesta, consulte Configuración de respuesta.

Las acciones personalizadas utilizan plantillas de solicitud para definir el cuerpo de solicitudes de POST, PUT y PATCH a los criterios de valoración remotos o a sus funciones de AWS Lambda. Los criterios de valoración remotos están definidos por solicitarPlantilla de emergencia. Estas plantillas de solicitud admiten el uso de macros. Para obtener más información, consulte Macros Velocity para acciones de datos.

Nota: Las solicitudes GET no utilizan plantillas de solicitud. El solicitarPlantilla campo muestra un valor predeterminado de “${input.rawRequest}”.
Advertencia: Escape cualquier uso de variables de entrada o salida dentro de solicitarPlantilla, sucesiónPlaca, o solicitarPlantilla de emergencia. Si no tiene correctamente variables de escape con caracteres especiales, las acciones de datos fallarán en la ejecución.
  • Uso Cadena esc.jsonString para escapar de las cuerdas dentro de los cuerpos JSON.

    Para obtener más información, consulte la sección esc.jsonString en Macros Velocity.

  • Uso esc.url() o urlTool.optionalQueryParam() para escapar correctamente de la ruta o de los parámetros de consulta de un solicitarPlantilla de emergencia o solicitarPlantilla si se utiliza x-www.form-urlencoded valores.

    Para obtener más información, consulte la sección de escape de cadena biblioteca en Macros Velocity.

solicitarPlantilla

Las plantillas de solicitud utilizan Velocity para definir el cuerpo de solicitudes de POST, PUT y PATCH. Después de guardar una plantilla de solicitud, la API respuesta la hace referencia como solicitar plantillururi.

  • Para la integración de acciones de datos de AWS Lambda, cualquier entrada que especifique en solicitarPlantillaestará disponible en elevento parámetro de la función AWS Lambda invocada.
  • Para las funciones de Google Cloud, el $esc.jsonCadena macro convierte las cadenas en una solicitud a JSON.

encabezados

Los encabezados son pares de valor clave que se añaden como encabezados HTTP en la solicitud que se envía al remoto punto final. Los valores de encabezado admiten la sustitución de Velocity.

Nota: Si confía en la API a manejar la autorización, no incluya la autorización en el encabezado de la solicitud. La integración rellenará automáticamente el encabezado. De lo contrario, incluya su propia autorización en el encabezado de solicitud.

La integración de acciones de datos de Adobe añade pares de valor clave a acciones en tiempo de ejecución para la gestión de autenticación. Los siguientes atributos se establecen automáticamente:

  • x-api-clave
  • x-gw-ims-org-id
  • x-sandbox-name (si está configurado)

    Puede agregar un nombre de Sandbox a las credenciales de integración o como encabezado en una acción. Si el nombre de Sandbox se establece en ambos lugares, la integración utiliza el encabezado configurado en el acción de datos. Para obtener más información, consulte Añadir una integración de acciones de datos

La integración de acciones de datos AWS Lambda añade pares de valor clave como clientContexto artículos sobre la invocación contexto objeto. Los siguientes atributos se establecen automáticamente en el contexto objeto si existen atributos:

  • ININ-Conversation-Id
  • ININ-Organization-Id
  • ININ-Home-Organization-Id
  • ININ-Correlation-Id
  • ININ-User-Id
  • ININ-Integration-Id

tipo de solicitante

tipo de solicitante define el tipo de solicitud HTTP en su acción de datos. Los tipos de solicitud HTTP disponibles incluyen POST, PUT y PATCH.

Nota: Para las integraciones de acciones de datos de AWS Lambda y Google, utilice POST. Este método HTTP garantiza que se envíe cualquier cuerpo de solicitud.

solicitarPlantilla de emergencia

solicitarPlantilla de emergencia es el remoto punto final que su solicitud HTTP alcanza o el ARN de la función AWS Lambda que se invoca a la integración de AWS. solicitarPlantilla de emergencia utiliza plantillas Velocity para la sustitución variable. 

Nota: si la requestUrlTemplate hace referencia a un HTTP punto final, solicitarPlantilla de emergenciadebe hacer referencia a un HTTP Secure (HTTPS) punto final.

solicitar plantillururi

solicitar plantillururi es una URI de referencia para su solicitarPlantilla. Al guardar el solicitarPlantilla, la integración la contrae. Para ver el contenido de su solicitarPlantilla una vez que lo haya guardado, realice una operación GET en solicitar plantillururi.

Ejemplo solicitarPlantilla

Cuerpo de ejecución de acción

La siguiente llamada REST activa la acción de acción action123 y pasa tres propiedades definidas en el inpuTschema en la acción de ejemplo. 

curl -X POST https://api.mypurecloud.com/api/v2/integrations/actions/sampleAction123/execute \
  -H 'authorization: bearer *****' \
  -d '{
    "USER_ID": 123,
    "FIRST_NAME":"John",
    "LAST_NAME": "Smith"
}'

El servicio de acción encuentra y sustituye cualquier valor que haga referencia a estas tres propiedades en la acción de ejemplo, incluyendo solicitarPlantilla de emergencia y solicitarPlantilla

solicitarPlantilla

La acción está configurada para tener lo siguiente solicitarPlantilla

"{"firstName": "$esc.jsonString(${input.FIRST_NAME})","lastName": "$esc.jsonString(${input.LAST_NAME})"},

Para obtener más información sobre cómo escapar, consulte el Cadena esc.jsonString sección en Macros Velocity para acciones de datos.

El servicio de acción sustituye a los marcadores de posición de la plantilla Velocity en la acción de muestra, lo que da como resultado lo siguiente:

{
  "firstName": "John",
  "lastName": "Smith"
}

solicitarPlantilla se convierte en el cuerpo de la PUBLICACIÓN HTTP enviada al remoto punto final. 

Llamada de servicio web

Los resultados de la acción de muestra modificada en la siguiente llamada de servicio web:

curl -X POST \
  https://sample.com/users/123 \
  -H 'content-type: application/json' \
  -H 'UserAgent: GenesysCloudIntegrations/1.0' \
  -H 'Company: My company' \
  -d '{
  "firstName": "John",
  "lastName": "Smith"}'

Solicitud para crear una nueva acción

La siguiente es una acción configurada para realizar una PUBLICACIÓN en https://sample.com/users/${input.USER_ID}.inpuTschema define tres propiedades utilizadas para crear una solicitud: USER_ID, FIRST_NAME, LAST_NAME. Se hace referencia a estas tres propiedades en solicitarPlantilla y solicitarPlantilla de emergencia.

{
  "category": "Sample",
  "contract": {
    "input": {
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Update user's first and/or last name",
        "properties": {
          "USER_ID": {
            "description": "User Id",
            "type": "number"
          },
          "FIRST_NAME": {
            "description": "Users first name",
            "type": "string"
          },
          "LAST_NAME": {
            "description": "User last name",
            "type": "string"
          }
        },
        "required": [
          "USER_ID",
          "FIRST_NAME",
          "LAST_NAME"
        ],
        "title": "Update name request",
        "type": "object"
      }
    },
    "output": {
      ...
    }
  },
  "config": {
    "request": {
      "headers": {
        "Content-Type": "application/json",
        "UserAgent": "GenesysCloudIntegrations/1.0",
        "Company": "My company"
      },
      "requestTemplate" : "{\"firstName\": \"${input.FIRST_NAME}\",\"lastName\": \"${input.LAST_NAME}\"}",
      "requestType": "POST",
      "requestUrlTemplate": "https://sample.com/users/${input.USER_ID}"
    },
    "response": {
      ...
    }
  },
  "name": "Sample Action",
  "secure": true
}

Resultado de obtener la definición de la acción

{
    "id": "<action ID>",
    "name": "Sample Action", 
    ...
    "config: {
        "request": {
            "requestUrlTemplate": "https://sample.com/users/${input.USER_ID}",
            "requestTemplateUri": "/api/v2/integrations/actions/<action ID>/templates/requesttemplate.vm",
            "requestType": "POST",
            "headers": {
                "Content-Type": "application/json",
        	    "UserAgent": "GenesysCloudIntegrations/1.0",
        	    "Company": "My company"
         },
         "response": {
             ...
         }
    },
    "category": "Sample",
    "version": 1,
    "secure": true,
    "selfUri": "/api/v2/integrations/actions/<action ID>"
}

Para obtener información sobre la configuración en acciones personalizadas, consulte Añadir configuración y Modificar configuración.

Para obtener más información, consulte Acerca de acciones personalizadas para integraciones.

Para obtener más información sobre las integraciones, consulte Acerca de las integraciones de acciones de datos.