Konfiguration für Datenaktionen anfordern
Sie können benutzerdefinierte Aktionen für die Integrationen von Datenaktionen erstellen. Eine benutzerdefinierte Aktion enthält eine Anfrage und eine Antwort in ihrer Konfiguration. Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Aktion für Integrationen.
In diesem Artikel werden die Bestandteile des Antrags erläutert. Informationen über die Antwort finden Sie unter Antwortkonfiguration.
Benutzerdefinierte Aktionen verwenden Anforderungsvorlagen, um den Text von POST-, PUT- und PATCH-Anforderungen an Remote-Endpunkte oder an Ihre AWS Lambda-Funktionen zu definieren. Die entfernten Endpunkte werden durch requestUrlTemplatedefiniert. Diese Anforderungsvorlagen unterstützen die Verwendung von Makros. Weitere Informationen finden Sie unter Velocity macros for data actions.
- GET-Anfragen verwenden keine Anfragevorlagen. Das Feld requestTemplate enthält den Standardwert "${input.rawRequest}"
- Übermäßig verschachtelte JSON-Objekte können die Leistung des Datenaktionsdienstes beeinträchtigen. Um die Leistung zu erhalten, ist die Tiefe der JSON-Objekte auf 50 Ebenen begrenzt. Weitere Informationen finden Sie unter Limits im Genesys Cloud Developer Center.
- Verwenden Sie esc.jsonString , um Zeichenketten in JSON-Bodies zu entschlüsseln
Weitere Informationen finden Sie im Abschnitt esc.jsonString unter Velocity macros.
- Verwenden Sie esc.url() oder urlTool.optionalQueryParam() , um Pfad- oder Abfrageparameter für ein requestUrlTemplate oder requestTemplate richtig zu entschlüsseln, wenn x-www.form-urlencoded Werte verwendet werden.
Weitere Informationen finden Sie im Abschnitt über die String-Escaping-Bibliothek unter Velocity-Makros und URL-Form-Codierung für Datenaktionen.
requestTemplate
Anforderungsvorlagen verwenden Velocity, um den Inhalt von POST-, PUT- und PATCH-Anforderungen zu definieren. Nachdem Sie eine Anforderungsvorlage gespeichert haben, referenziert die API-Antwort diese als requestTemplateUri.
- Für die Integration von AWS Lambda-Datenaktionen sind alle Eingaben, die Sie unter requestTemplate angeben, im Parameter event der aufgerufenen AWS Lambda-Funktion verfügbar.
- Für Google Cloud Functions wandelt das Makro $esc.jsonString Strings in einer Anfrage in JSON um
Kopfzeilen
Header sind Schlüssel-Wert-Paare, die der an den entfernten Endpunkt gesendeten Anfrage als HTTP-Header hinzugefügt werden. Die Kopfwerte unterstützen die Geschwindigkeitssubstitution.
Hinweis: Wenn Sie sich darauf verlassen, dass die API die Autorisierung übernimmt, nehmen Sie die Autorisierung nicht in die Kopfzeile der Anfrage auf. Die Integration wird die Kopfzeile automatisch ausfüllen. Andernfalls fügen Sie Ihre eigene Autorisierung in die Kopfzeile der Anfrage ein.
Die Integration von AWS Lambda-Datenaktionen fügt Schlüssel-Wert-Paare als clientContext Elemente zum Aufruf context Objekt hinzu. Wenn die Attribute vorhanden sind, werden die folgenden Attribute automatisch auf das Objekt context gesetzt:
- ININ-Gesprächs-Id
- ININ-Organisation-Id
- ININ-Home-Organisation-Id
- ININ-Korrelation-Id
- ININ-Benutzer-Id
- ININ-Integration-Id
Antragsart
requestType definiert den Typ der HTTP-Anfrage in Ihrer Datenaktion Zu den verfügbaren HTTP-Anforderungstypen gehören POST, PUT und PATCH.
requestUrlTemplate
requestUrlTemplate ist der Remote-Endpunkt, auf den Ihre HTTP-Anfrage trifft, oder der ARN der AWS Lambda-Funktion, die die AWS Data Actions Integration aufruft. requestUrlTemplate verwendet Velocity-Vorlagen für die Variablensubstitution.
requestTemplateUri
requestTemplateUri ist ein Referenz-URI für Ihr requestTemplate Wenn Sie das requestTemplatespeichern, wird es von der Integration zusammengeklappt. Um den Inhalt Ihres requestTemplate zu sehen, nachdem Sie es gespeichert haben, führen Sie einen GET-Vorgang auf requestTemplateUridurch
Beispiel requestTemplate
Körper der Aktionsausführung
Der folgende REST-Aufruf löst die Aktion sampleAction123 aus und übergibt drei Eigenschaften, die im inputSchema definiert sind, an die Beispielaktion
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" }'
Der Aktionsdienst findet und ersetzt alle Werte, die auf diese drei Eigenschaften in der Beispielaktion verweisen, einschließlich requestUrlTemplate und requestTemplate
requestTemplate
Die Aktion ist so konfiguriert, dass sie die folgende requestTemplatehat:
"{"firstName": "$esc.jsonString(${input.FIRST_NAME})","lastName": "$esc.jsonString(${input.LAST_NAME})"},
Weitere Informationen zum Escaping finden Sie im Abschnitt esc.jsonString unter Velocity-Makros für Datenaktionen
Der Aktionsdienst ersetzt die Platzhalter der Velocity-Vorlage in der Beispielaktion, was zu folgendem Ergebnis führt:
{
"firstName": "John",
"lastName": "Smith"
}
requestTemplate wird zum Textkörper des HTTP POST, der an den entfernten Endpunkt gesendet wird
Aufruf eines Webdienstes
Die geänderte Beispielaktion führt zu folgendem Webdienstaufruf:
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"}'
Antrag auf Erstellung einer neuen Aktion
Es folgt eine Aktion, die so konfiguriert ist, dass ein POST an https://sample.com/users/${input.USER_ID}durchgeführt wird. inputSchema definiert drei Eigenschaften, die zum Aufbau einer Anfrage verwendet werden USER_ID, FIRST_NAME, LAST_NAME. Auf diese drei Eigenschaften wird in requestTemplate und requestUrlTemplateverwiesen
{
"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
}
Ergebnis der Abfrage der Aktionsdefinition
{
"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>"
}
Informationen über die Konfiguration in benutzerdefinierten Aktionen finden Sie unter Konfiguration hinzufügen und Konfiguration ändern
Weitere Informationen finden Sie unter Über benutzerdefinierte Aktionen für Integrationen.
Weitere Informationen zu den Integrationen finden Sie unter Über die Integrationen von Datenaktionen.