diff --git a/ai-for-service/apis/automation/add-enable-new-language.mdx b/ai-for-service/apis/automation/add-enable-new-language.mdx index f4f79b770..f2835f131 100644 --- a/ai-for-service/apis/automation/add-enable-new-language.mdx +++ b/ai-for-service/apis/automation/add-enable-new-language.mdx @@ -22,7 +22,7 @@ To initiate the addition and enablement of a new language for an AI Agent. ## Sample Request -```json +```json expandable=true curl -X POST 'https://{{host}}/api/{{version-Id}}/public/bot/{{botId}}/language' \ --header 'Content-Type: application/json' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ diff --git a/ai-for-service/apis/automation/add-questions-to-knowledgegraph.mdx b/ai-for-service/apis/automation/add-questions-to-knowledgegraph.mdx index 663796ead..0adb6b1c6 100644 --- a/ai-for-service/apis/automation/add-questions-to-knowledgegraph.mdx +++ b/ai-for-service/apis/automation/add-questions-to-knowledgegraph.mdx @@ -29,7 +29,7 @@ To add specific questions to the Knowledge Graph. ## Sample Request -```json +```json expandable=true curl --location 'https://platform.kore.ai/api/public/bot/botID/faqs/bulk?language=en' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'content-type: application/json' \ diff --git a/ai-for-service/apis/automation/batch-test-execution-status.mdx b/ai-for-service/apis/automation/batch-test-execution-status.mdx index 4e865ddc3..63a6992b4 100644 --- a/ai-for-service/apis/automation/batch-test-execution-status.mdx +++ b/ai-for-service/apis/automation/batch-test-execution-status.mdx @@ -40,7 +40,7 @@ No body parameters are passed. When the test execution is completed: -```json +```json expandable=true { "_id": "tr-74d94321-35f8-5066-bdc8-a0863e7axxxx", "streamId": "st-83a4989c-7f57-59e7-85b8-d6547a91xxxx", @@ -88,7 +88,7 @@ When the test execution is completed: When the test execution is in progress: -```json +```json expandable=true { "_id": "tr-beaadxxb-xxxx-xxxe-axfb-xxxxcxbexdxa", "streamId": "st-xxxxxxxx-cxxd-xcaf-xxax-dxxxxxxffxdxb", diff --git a/ai-for-service/apis/automation/billing-session.mdx b/ai-for-service/apis/automation/billing-session.mdx index 613582246..56e392017 100644 --- a/ai-for-service/apis/automation/billing-session.mdx +++ b/ai-for-service/apis/automation/billing-session.mdx @@ -69,7 +69,7 @@ curl --location --request POST 'https://{{host}}/api/public/bots/getBillingSessi ## Sample Response -```json +```json expandable=true { "total":5, "moreAvailable": true, diff --git a/ai-for-service/apis/automation/billing-usage-summary.mdx b/ai-for-service/apis/automation/billing-usage-summary.mdx index bd9557d09..1e61fbd4e 100644 --- a/ai-for-service/apis/automation/billing-usage-summary.mdx +++ b/ai-for-service/apis/automation/billing-usage-summary.mdx @@ -113,7 +113,7 @@ curl --location 'https://{{HOST}}/api/public/bots/billingsessionsummary/status?t **Monthly Billing Session Summary** -```json +```json expandable=true { "_id": "ds-df7dbe18-9028-59db-8d12-cda96xxxxxx", "status": "success", diff --git a/ai-for-service/apis/automation/bot-export-status.mdx b/ai-for-service/apis/automation/bot-export-status.mdx index ee62709a6..4f5d8cd62 100644 --- a/ai-for-service/apis/automation/bot-export-status.mdx +++ b/ai-for-service/apis/automation/bot-export-status.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/api/public/bot/{{BotID}}/export/status' \ ## Sample Response -```json +```json expandable=true { "_id": "ber-xxxxx-xxx-xxx-xxx-xxxxx", "botId": "st-xxxxx-xxx-xxx-xxx-xxxxx", diff --git a/ai-for-service/apis/automation/bot-export.mdx b/ai-for-service/apis/automation/bot-export.mdx index 0a356c732..a0640af51 100644 --- a/ai-for-service/apis/automation/bot-export.mdx +++ b/ai-for-service/apis/automation/bot-export.mdx @@ -27,7 +27,7 @@ This API only initiates the export process. Use the [Export Status API](/ai-for- ## Sample Request -```json +```json expandable=true curl --location 'https://{host}/api/public/bot/{BotID}/export' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'content-type: application/json' \ diff --git a/ai-for-service/apis/automation/bot-import-status.mdx b/ai-for-service/apis/automation/bot-import-status.mdx index 8d6c3ac60..302be611a 100644 --- a/ai-for-service/apis/automation/bot-import-status.mdx +++ b/ai-for-service/apis/automation/bot-import-status.mdx @@ -38,7 +38,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "_id": "bir-5fxxxxxx-a0xx-52xx-axxf-f3xxxxxxxxxx", "status": "success", diff --git a/ai-for-service/apis/automation/bot-publish-status.mdx b/ai-for-service/apis/automation/bot-publish-status.mdx index 4ace0449b..7415d53ae 100644 --- a/ai-for-service/apis/automation/bot-publish-status.mdx +++ b/ai-for-service/apis/automation/bot-publish-status.mdx @@ -34,7 +34,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "_id": "ds-4a1b3e3d-7f55-5d80-acc6-7066e5cxxxxx", "action": "RUN", diff --git a/ai-for-service/apis/automation/bot-variables-export.mdx b/ai-for-service/apis/automation/bot-variables-export.mdx index 6a27a21e9..8d3a0d3b5 100644 --- a/ai-for-service/apis/automation/bot-variables-export.mdx +++ b/ai-for-service/apis/automation/bot-variables-export.mdx @@ -31,7 +31,7 @@ curl --location --request POST 'https://{{host}}/api/1.1/public/builder/bot/{{bo ## Sample Response -```json +```json expandable=true [ { "key": "host_url", diff --git a/ai-for-service/apis/automation/bot-variables-import.mdx b/ai-for-service/apis/automation/bot-variables-import.mdx index 28b2f52f8..d17dd1954 100644 --- a/ai-for-service/apis/automation/bot-variables-import.mdx +++ b/ai-for-service/apis/automation/bot-variables-import.mdx @@ -24,7 +24,7 @@ Import environment and content (locale) variables into a bot. ## Sample Request -```json +```json expandable=true curl --location 'https://{{host}}/api/1.1/public/builder/bot/{{botId}}/variables/import' \ --header 'Content-Type: application/json' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ @@ -66,7 +66,7 @@ curl --location 'https://{{host}}/api/1.1/public/builder/bot/{{botId}}/variables ## Sample Request When Collections Are Enabled -```json +```json expandable=true curl -X POST \ https://{{host}}/api/1.1/public/builder/bot/{{botId}}/variables/import \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ diff --git a/ai-for-service/apis/automation/bulk-data-insert.mdx b/ai-for-service/apis/automation/bulk-data-insert.mdx index f78b4ca29..9adb1e4d0 100644 --- a/ai-for-service/apis/automation/bulk-data-insert.mdx +++ b/ai-for-service/apis/automation/bulk-data-insert.mdx @@ -23,7 +23,7 @@ Used to insert bulk data into a Data Table. ## Sample Request -```bash +```bash expandable=true curl -X POST 'https://{{host}}/api/public/tables/{{tableName}}/bulk' \ -H 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ -H 'content-type: application/json' \ @@ -57,7 +57,7 @@ The maximum payload size is 50 MB. To ensure the payload is within the limit, pa ## Sample Response -```json +```json expandable=true { "records": [ { diff --git a/ai-for-service/apis/automation/change-default-language.mdx b/ai-for-service/apis/automation/change-default-language.mdx index ec34c79ee..33666450f 100644 --- a/ai-for-service/apis/automation/change-default-language.mdx +++ b/ai-for-service/apis/automation/change-default-language.mdx @@ -65,20 +65,20 @@ curl --location 'https://{{host}}/api/1.1/public/bot/st-5ac72231-5a37-5b71-bb1e- **Scenario 2**: Language not configured. -``` +```text Can't set default language. The language '{{language code}}' isn't currently configured. Please configure the language and publish the app at least once before setting it as the default. ``` **Scenario 3**: Language already set as default. -``` +```text Permission denied. The language '{{language code}}' is already set as the default language. ``` **Scenario 4**: Language is disabled. -``` +```text Unable to change the default language. The language '{{language code}}' is currently disabled. Please enable the language before setting it as the default. ``` @@ -94,7 +94,7 @@ Please enable the language before setting it as the default. **Scenario 6**: Invalid language code. -``` +```text Error message: Please provide the valid language code. ``` diff --git a/ai-for-service/apis/automation/channel-enablement.mdx b/ai-for-service/apis/automation/channel-enablement.mdx index 96f3cd253..e31d69c84 100644 --- a/ai-for-service/apis/automation/channel-enablement.mdx +++ b/ai-for-service/apis/automation/channel-enablement.mdx @@ -24,7 +24,7 @@ To enable a channel for an AI Agent. **Web/Mobile channel:** -```bash +```bash expandable=true curl --location --request POST 'https://{{host}}/api/public/channels' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'Content-Type: application/json' \ @@ -64,7 +64,7 @@ curl --location --request POST 'https://{{host}}/api/public/channels' \ **WebHook channel:** -```json +```json expandable=true curl --location --request POST 'https://{{host}}/api/public/channels' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'Content-Type: application/json' \ @@ -88,7 +88,7 @@ curl --location --request POST 'https://{{host}}/api/public/channels' \ **Slack channel:** -```json +```json expandable=true curl --location --request POST 'https://{{host}}/api/public/channels' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'Content-Type: application/json' \ diff --git a/ai-for-service/apis/automation/conversation-details-and-summary.mdx b/ai-for-service/apis/automation/conversation-details-and-summary.mdx index 450cb7244..fb5f0327c 100644 --- a/ai-for-service/apis/automation/conversation-details-and-summary.mdx +++ b/ai-for-service/apis/automation/conversation-details-and-summary.mdx @@ -50,7 +50,7 @@ If the session ID is available, the call ID isn't mandatory and vice versa. If b ## Sample Response -```json +```json expandable=true { "conversationInfo": { "userId": "u-c8c61885-85bb-xxxx-xxxx-6fd4a97c58f9", diff --git a/ai-for-service/apis/automation/conversation-history-lightweight.mdx b/ai-for-service/apis/automation/conversation-history-lightweight.mdx index 52b223a4e..dd2ea1c28 100644 --- a/ai-for-service/apis/automation/conversation-history-lightweight.mdx +++ b/ai-for-service/apis/automation/conversation-history-lightweight.mdx @@ -49,7 +49,7 @@ curl --location --request GET \ **Query by `userId`** -```bash +```bash expandable=true curl --location 'https://{{host}}/api/public/bot/{{botId}}/messages-lite' \ --header 'accept: application/json' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ @@ -141,7 +141,7 @@ curl --location 'https://{{host}}/api/public/bot/{{botId}}/messages-lite' \ ## Sample Response -```json +```json expandable=true { "total": 8, "moreAvailable": false, diff --git a/ai-for-service/apis/automation/conversation-history.mdx b/ai-for-service/apis/automation/conversation-history.mdx index c2d097366..60e0b6c79 100644 --- a/ai-for-service/apis/automation/conversation-history.mdx +++ b/ai-for-service/apis/automation/conversation-history.mdx @@ -138,7 +138,7 @@ The duration between `dateTo` and `dateFrom` must be less than 7 days. **GET method:** -```json +```json expandable=true { "total": 14, "moreAvailable": false, diff --git a/ai-for-service/apis/automation/create-users.mdx b/ai-for-service/apis/automation/create-users.mdx index 18add43db..442617e25 100644 --- a/ai-for-service/apis/automation/create-users.mdx +++ b/ai-for-service/apis/automation/create-users.mdx @@ -28,7 +28,7 @@ This API requires a JWT generated by an application created only from the Admin ## Sample Request -```bash +```bash expandable=true curl -X POST \ https://{{host}}/api/public/users \ -H 'Content-Type: application/json' \ @@ -111,7 +111,7 @@ curl -X POST \ **Failure:** -```json +```json expandable=true { "failedUserDetails": [ { diff --git a/ai-for-service/apis/automation/data-update.mdx b/ai-for-service/apis/automation/data-update.mdx index a969f7c23..043499d37 100644 --- a/ai-for-service/apis/automation/data-update.mdx +++ b/ai-for-service/apis/automation/data-update.mdx @@ -23,7 +23,7 @@ Used to update data in a Data Table. ## Sample Request -```bash +```bash expandable=true curl -X PUT \ https://{{host}}/api/public/tables/{{tableName}} \ -H 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ diff --git a/ai-for-service/apis/automation/delete-conversations.mdx b/ai-for-service/apis/automation/delete-conversations.mdx index cfc5659d2..0515595d8 100644 --- a/ai-for-service/apis/automation/delete-conversations.mdx +++ b/ai-for-service/apis/automation/delete-conversations.mdx @@ -179,7 +179,7 @@ The response includes the deleted records with the status as queued. After the j **When a job is queued** -```json +```json expandable=true { "jobId": "cdj-2e5c62ad-df3a-542b-a59e-c72768xxxxx", "status": "queued", @@ -201,7 +201,7 @@ The response includes the deleted records with the status as queued. After the j **When a job is completed** -```json +```json expandable=true { "jobId": "cdj-2e5c62ad-df3a-542b-a59e-c72768bxxxxx", "status": "completed", diff --git a/ai-for-service/apis/automation/delete-users.mdx b/ai-for-service/apis/automation/delete-users.mdx index 372920a8a..06f69c502 100644 --- a/ai-for-service/apis/automation/delete-users.mdx +++ b/ai-for-service/apis/automation/delete-users.mdx @@ -58,7 +58,7 @@ curl -X DELETE \ **Failure:** -```json +```json expandable=true { "failedUserDetails": [ { diff --git a/ai-for-service/apis/automation/disable-existing-language.mdx b/ai-for-service/apis/automation/disable-existing-language.mdx index 7248d5b91..2f4c68a80 100644 --- a/ai-for-service/apis/automation/disable-existing-language.mdx +++ b/ai-for-service/apis/automation/disable-existing-language.mdx @@ -41,6 +41,6 @@ Disables an existing language for an AI Agent. ## Sample Response -``` +```text Disabled Spanish language successfully ``` diff --git a/ai-for-service/apis/automation/enabling-agent-transfer-api.mdx b/ai-for-service/apis/automation/enabling-agent-transfer-api.mdx index 6957b5d2f..e399e861a 100644 --- a/ai-for-service/apis/automation/enabling-agent-transfer-api.mdx +++ b/ai-for-service/apis/automation/enabling-agent-transfer-api.mdx @@ -33,7 +33,7 @@ Configures the BotKit URL, app, and events for agent transfer. ## Sample Request -```bash +```bash expandable=true curl -X PUT \ https://{{host}}/api/bot/{{BotID}}/sdkSubscription \ -H 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ diff --git a/ai-for-service/apis/automation/export-roles.mdx b/ai-for-service/apis/automation/export-roles.mdx index 140e9dfab..b4dd5f5c5 100644 --- a/ai-for-service/apis/automation/export-roles.mdx +++ b/ai-for-service/apis/automation/export-roles.mdx @@ -36,7 +36,7 @@ curl -X GET \ ## Sample Response -```json +```json expandable=true [ { "roleType": "admin", diff --git a/ai-for-service/apis/automation/fetch-feedback-survey-scores.mdx b/ai-for-service/apis/automation/fetch-feedback-survey-scores.mdx index 03a2da570..05be91667 100644 --- a/ai-for-service/apis/automation/fetch-feedback-survey-scores.mdx +++ b/ai-for-service/apis/automation/fetch-feedback-survey-scores.mdx @@ -52,7 +52,7 @@ curl --location 'https://{{host}}/api/1.1/public/bot/{{botId}}/saveFeedback' \ ## Sample Response -```json +```json expandable=true { "botId": "st-053cd130-f983-577a-8aad-2504xxxxxxxx", "channel": "rtm", diff --git a/ai-for-service/apis/automation/find-intent.mdx b/ai-for-service/apis/automation/find-intent.mdx index 4ebbe8a1f..71cfff026 100644 --- a/ai-for-service/apis/automation/find-intent.mdx +++ b/ai-for-service/apis/automation/find-intent.mdx @@ -62,7 +62,7 @@ curl -X POST \ ## Sample Response -```json +```json expandable=true { "request": { "input": "book a ticket", diff --git a/ai-for-service/apis/automation/get-admin-console-audit-logs.mdx b/ai-for-service/apis/automation/get-admin-console-audit-logs.mdx index 30e51f227..2ee00295f 100644 --- a/ai-for-service/apis/automation/get-admin-console-audit-logs.mdx +++ b/ai-for-service/apis/automation/get-admin-console-audit-logs.mdx @@ -36,7 +36,7 @@ curl --location --request GET \ ## Sample Response -```json +```json expandable=true { "total": 3, "auditlogs": [ diff --git a/ai-for-service/apis/automation/get-analytics.mdx b/ai-for-service/apis/automation/get-analytics.mdx index 1186ad8ae..769c35a59 100644 --- a/ai-for-service/apis/automation/get-analytics.mdx +++ b/ai-for-service/apis/automation/get-analytics.mdx @@ -27,7 +27,7 @@ Retrieves metrics data related to intent detection and task performance, includi The following sample request shows how to retrieve unhandled utterance analytics data with specific filters. You can modify the type and filters parameters to retrieve different types of analytics data as needed. -```json +```json expandable=true curl --location --request POST 'https://{{host}}/api/public/bot/{{streamId}}/getAnalytics' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'content-type: application/json' \ @@ -89,7 +89,7 @@ curl --location --request POST 'https://{{host}}/api/public/bot/{{streamId}}/get ## Sample Response -```json +```json expandable=true { "moreAvailable": true, "result": [ diff --git a/ai-for-service/apis/automation/get-batch-test-suites.mdx b/ai-for-service/apis/automation/get-batch-test-suites.mdx index 2d74260c9..1ef69bdb6 100644 --- a/ai-for-service/apis/automation/get-batch-test-suites.mdx +++ b/ai-for-service/apis/automation/get-batch-test-suites.mdx @@ -38,7 +38,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "count": 36, "moreAvailable": true, diff --git a/ai-for-service/apis/automation/get-bots.mdx b/ai-for-service/apis/automation/get-bots.mdx index 357e024da..eaeb3d3dd 100644 --- a/ai-for-service/apis/automation/get-bots.mdx +++ b/ai-for-service/apis/automation/get-bots.mdx @@ -35,7 +35,7 @@ curl -X GET \ ## Sample Response -```json +```json expandable=true { "total": 169, "availableMore": true, diff --git a/ai-for-service/apis/automation/get-change-logs.mdx b/ai-for-service/apis/automation/get-change-logs.mdx index ca02f2470..83836b453 100644 --- a/ai-for-service/apis/automation/get-change-logs.mdx +++ b/ai-for-service/apis/automation/get-change-logs.mdx @@ -40,7 +40,7 @@ curl -X GET \ ## Sample Response -```json +```json expandable=true [ { "_id": "btl-039ca909-5dd2-59ce-a5b7-30c61a3xxxxx", diff --git a/ai-for-service/apis/automation/get-conversation-test-suite-creation-status.mdx b/ai-for-service/apis/automation/get-conversation-test-suite-creation-status.mdx index 532fae901..7240e0ffe 100644 --- a/ai-for-service/apis/automation/get-conversation-test-suite-creation-status.mdx +++ b/ai-for-service/apis/automation/get-conversation-test-suite-creation-status.mdx @@ -38,7 +38,7 @@ No body parameters are passed. **When test suite creation/import is in progress:** -```json +```json expandable=true { "_id": "ds-f8xxxxx5-5xxa-5xx4-axx4-48xxxxxxxxx9", "status": "IN_PROGRESS", @@ -60,7 +60,7 @@ No body parameters are passed. **When test suite creation/import is completed:** -```json +```json expandable=true { "_id": "ds-f8xxxxx5-5xxa-5xx4-axx4-48xxxxxxxxx9", "status": "SUCCESS", diff --git a/ai-for-service/apis/automation/get-dashboard-widget-data.mdx b/ai-for-service/apis/automation/get-dashboard-widget-data.mdx index 7ceea80b4..4f5a45c2d 100644 --- a/ai-for-service/apis/automation/get-dashboard-widget-data.mdx +++ b/ai-for-service/apis/automation/get-dashboard-widget-data.mdx @@ -60,7 +60,7 @@ curl --location --request POST 'https://{{host}}/api/public/bot/{{bot_id}}/dashb ## Sample Response for GET and POST Calls -```json +```json expandable=true { "_id": "wg-xxxx-xxx-xxx-xxx-xxxxx", "overlay": [], diff --git a/ai-for-service/apis/automation/get-faqs-from-knowledge-task-v2.mdx b/ai-for-service/apis/automation/get-faqs-from-knowledge-task-v2.mdx index 6c096dc8c..09f7e38c1 100644 --- a/ai-for-service/apis/automation/get-faqs-from-knowledge-task-v2.mdx +++ b/ai-for-service/apis/automation/get-faqs-from-knowledge-task-v2.mdx @@ -42,7 +42,7 @@ curl --location 'https://localhost/api/public/bot/st-8b87fxxxxx4e90e/v2/faqs?lim ## Sample Response -```json +```json expandable=true { "faqs": [ { diff --git a/ai-for-service/apis/automation/get-faqs-from-knowledge-task.mdx b/ai-for-service/apis/automation/get-faqs-from-knowledge-task.mdx index f2bba9e65..d5045462e 100644 --- a/ai-for-service/apis/automation/get-faqs-from-knowledge-task.mdx +++ b/ai-for-service/apis/automation/get-faqs-from-knowledge-task.mdx @@ -48,7 +48,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "faqs": [ { diff --git a/ai-for-service/apis/automation/get-groups.mdx b/ai-for-service/apis/automation/get-groups.mdx index 5dccc4a76..96c65da1f 100644 --- a/ai-for-service/apis/automation/get-groups.mdx +++ b/ai-for-service/apis/automation/get-groups.mdx @@ -35,7 +35,7 @@ curl -X GET \ ## Sample Response -```json +```json expandable=true { "total": 2, "availableMore": false, diff --git a/ai-for-service/apis/automation/get-kg-extraction-history.mdx b/ai-for-service/apis/automation/get-kg-extraction-history.mdx index 32ba4c849..4f2bdea71 100644 --- a/ai-for-service/apis/automation/get-kg-extraction-history.mdx +++ b/ai-for-service/apis/automation/get-kg-extraction-history.mdx @@ -41,7 +41,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "metaqnas": [ { diff --git a/ai-for-service/apis/automation/get-kg-extraction-questions.mdx b/ai-for-service/apis/automation/get-kg-extraction-questions.mdx index fa8ce13df..c55a74eaa 100644 --- a/ai-for-service/apis/automation/get-kg-extraction-questions.mdx +++ b/ai-for-service/apis/automation/get-kg-extraction-questions.mdx @@ -42,7 +42,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "extractions": [ { diff --git a/ai-for-service/apis/automation/get-knowledge-tasks.mdx b/ai-for-service/apis/automation/get-knowledge-tasks.mdx index 54cab14b8..d844ce31f 100644 --- a/ai-for-service/apis/automation/get-knowledge-tasks.mdx +++ b/ai-for-service/apis/automation/get-knowledge-tasks.mdx @@ -41,7 +41,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "_id": "5axxxxxxxxxxxxxxxxxxxxxx", "createdOn": "2018-05-15T06:08:35.732Z", diff --git a/ai-for-service/apis/automation/get-linked-apps.mdx b/ai-for-service/apis/automation/get-linked-apps.mdx index 85a244ed0..340a7c4fc 100644 --- a/ai-for-service/apis/automation/get-linked-apps.mdx +++ b/ai-for-service/apis/automation/get-linked-apps.mdx @@ -49,7 +49,7 @@ curl --location 'https://{{host}}/api/1.1/public/bot/{{streamId}}/universalbot/l ## Sample Response -```json +```json expandable=true { "type": "unified", "appType": "unified", diff --git a/ai-for-service/apis/automation/get-roles.mdx b/ai-for-service/apis/automation/get-roles.mdx index 86e2dc41a..815d89efd 100644 --- a/ai-for-service/apis/automation/get-roles.mdx +++ b/ai-for-service/apis/automation/get-roles.mdx @@ -36,7 +36,7 @@ curl -X GET \ ## Sample Response (Admin) -```json +```json expandable=true { "total": 2, "availableMore": false, @@ -61,7 +61,7 @@ curl -X GET \ ## Sample Response (Bot) -```json +```json expandable=true { "total": 5, "availableMore": true, diff --git a/ai-for-service/apis/automation/get-sessions-history.mdx b/ai-for-service/apis/automation/get-sessions-history.mdx index c82fa186b..128cabaea 100644 --- a/ai-for-service/apis/automation/get-sessions-history.mdx +++ b/ai-for-service/apis/automation/get-sessions-history.mdx @@ -118,7 +118,7 @@ curl --location POST 'https://{{host}}/api/public/bot/{{BotId}}/getSessions?call ## Response sample -``` +```json expandable=true { "total": 2, "moreAvailable": true, diff --git a/ai-for-service/apis/automation/get-test-suite-execution-status.mdx b/ai-for-service/apis/automation/get-test-suite-execution-status.mdx index bae02d580..45cd69f25 100644 --- a/ai-for-service/apis/automation/get-test-suite-execution-status.mdx +++ b/ai-for-service/apis/automation/get-test-suite-execution-status.mdx @@ -58,7 +58,7 @@ No body parameters are passed. **When the request is completed:** -```json +```json expandable=true { "_id": "ctr-8xxxxxxa-bxx1-5xx1-axx7-d5xxxxxxxxxb", "streamId": "st-4xxxxxx7-3xx4-5xxa-9xxa-d8xxxxxxxxx0", diff --git a/ai-for-service/apis/automation/get-user-information.mdx b/ai-for-service/apis/automation/get-user-information.mdx index f81982a79..6441de859 100644 --- a/ai-for-service/apis/automation/get-user-information.mdx +++ b/ai-for-service/apis/automation/get-user-information.mdx @@ -54,7 +54,7 @@ curl -X POST \ **Success:** -```json +```json expandable=true [ { "canCreateBot": true, @@ -97,7 +97,7 @@ curl -X POST \ **Failure:** -```json +```json expandable=true [ { "userInfo": { diff --git a/ai-for-service/apis/automation/get-user-roles-details.mdx b/ai-for-service/apis/automation/get-user-roles-details.mdx index ee261f19d..e340287cc 100644 --- a/ai-for-service/apis/automation/get-user-roles-details.mdx +++ b/ai-for-service/apis/automation/get-user-roles-details.mdx @@ -41,7 +41,7 @@ curl -X GET \ ## Sample Response -```json +```json expandable=true { "total": 10, "availableMore": true, diff --git a/ai-for-service/apis/automation/import-bot-as-new-bot.mdx b/ai-for-service/apis/automation/import-bot-as-new-bot.mdx index 473f3a211..1bb0ee85a 100644 --- a/ai-for-service/apis/automation/import-bot-as-new-bot.mdx +++ b/ai-for-service/apis/automation/import-bot-as-new-bot.mdx @@ -74,7 +74,7 @@ curl -X POST \ ## Sample Response -```json +```json expandable=true { "_id": "bir-034fc180-4f84-xxxx-xxxx-5d85b76a36dc", "streamRefId": "46d82741-1edc-xxxx-xxxx-7e58ead9deed", diff --git a/ai-for-service/apis/automation/import-bot-into-an-existing-bot.mdx b/ai-for-service/apis/automation/import-bot-into-an-existing-bot.mdx index db9ae3ab8..65f2dae99 100644 --- a/ai-for-service/apis/automation/import-bot-into-an-existing-bot.mdx +++ b/ai-for-service/apis/automation/import-bot-into-an-existing-bot.mdx @@ -29,7 +29,7 @@ This API requires the JWT generated by an application created on the Admin Conso ## Sample Request for the Universal Bot -```json +```json expandable=true curl -X POST \ https://{{host}}/api/public/bot/{{BotID}}/import \ -H 'auth: YOUR_JWT_ACCESS_TOKEN' \ @@ -118,7 +118,7 @@ curl -X POST \ ## Sample Response -```json +```json expandable=true { "streamRefId": "c685t327-xxxx-58xx-9xbx-33xxxxxxxxxx", "statusLogs": [ diff --git a/ai-for-service/apis/automation/import-roles.mdx b/ai-for-service/apis/automation/import-roles.mdx index 08dd18258..779dbe627 100644 --- a/ai-for-service/apis/automation/import-roles.mdx +++ b/ai-for-service/apis/automation/import-roles.mdx @@ -46,7 +46,7 @@ curl -X POST \ ## Sample Response -```json +```json expandable=true [ { "mapping": { diff --git a/ai-for-service/apis/automation/install-sample-bot.mdx b/ai-for-service/apis/automation/install-sample-bot.mdx index 3949cd5b2..466e42b6e 100644 --- a/ai-for-service/apis/automation/install-sample-bot.mdx +++ b/ai-for-service/apis/automation/install-sample-bot.mdx @@ -38,7 +38,7 @@ No Body parameters are passed. ## Sample Response -```json +```json expandable=true { "visibility": { "namespace": "private", diff --git a/ai-for-service/apis/automation/koreutil-libraries.mdx b/ai-for-service/apis/automation/koreutil-libraries.mdx index f6e508459..6250283f4 100644 --- a/ai-for-service/apis/automation/koreutil-libraries.mdx +++ b/ai-for-service/apis/automation/koreutil-libraries.mdx @@ -50,7 +50,8 @@ context.readableFormat=context.rule.toText(); **Output:** - For `context.between`: - ``` + + ```text [ "2012-08-27T10:30:00.000Z", "2012-08-31T10:30:00.000Z" @@ -58,7 +59,8 @@ context.readableFormat=context.rule.toText(); ``` - For `context.readableFormat`: - ``` + + ```text every 5 weeks on Monday, Friday until January 31, 2013 ``` @@ -76,7 +78,7 @@ context.german=koreUtil.moment().locale('de').format('LLLL'); For `context.german`: -``` +```text Montag, 18. November 2019 01:43 ``` @@ -142,7 +144,7 @@ context.hashString= koreUtil.hash('sha256').update('42').digest('hex'); For `context.hashString`: -``` +```text 73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049 ``` @@ -208,7 +210,7 @@ Following is the return format for each of the situations: **Usage Example 1:** To get the standard response for "Ask if the user would like to select any of the languages": -```javascript +```javascript expandable=true var info = koreUtil.getCurrentOptions(); var message = { "type": "template", @@ -232,7 +234,7 @@ print(JSON.stringify(message)); **Usage Example 4:** To get the standard response for "User needs to authorize or re-authorize": -```javascript +```javascript expandable=true var info = koreUtil.getCurrentOptions(); var message = { type: 'template', @@ -257,7 +259,7 @@ The `koreUtil.getAmbiguousIntents` util function is used to obtain the ambiguous **Sample Response:** -```json +```json expandable=true { "intents": [ { diff --git a/ai-for-service/apis/automation/llm-usage-logs-api.mdx b/ai-for-service/apis/automation/llm-usage-logs-api.mdx index 5f2244101..85dd8dc3b 100644 --- a/ai-for-service/apis/automation/llm-usage-logs-api.mdx +++ b/ai-for-service/apis/automation/llm-usage-logs-api.mdx @@ -27,7 +27,7 @@ You can access records spanning up to a 90-day timeframe with one request. ## Sample Request -```json +```json expandable=true curl --location 'https://{{host}}/1.1/public/bot/st-f3195ec3-72aa-5317-92/getLLMUsageLogs' \ --header 'auth: {{YOUR_JWT_ACCESS_TOKEN}}' \ --header 'Content-Type: application/json' \ @@ -65,7 +65,7 @@ curl --location 'https://{{host}}/1.1/public/bot/st-f3195ec3-72aa-5317-92/getLLM ## Sample Response -```json +```json expandable=true [ { "Prompt Name": "Default", diff --git a/ai-for-service/apis/automation/manage-sdk-push-notifications.mdx b/ai-for-service/apis/automation/manage-sdk-push-notifications.mdx index 6c62cc07f..126cb829f 100644 --- a/ai-for-service/apis/automation/manage-sdk-push-notifications.mdx +++ b/ai-for-service/apis/automation/manage-sdk-push-notifications.mdx @@ -180,7 +180,7 @@ curl --location #### Sample Response -```js +```js expandable=true { "success": true, "message": "Requested devices are Unsubscribed", diff --git a/ai-for-service/apis/automation/ml-utterances-export-status.mdx b/ai-for-service/apis/automation/ml-utterances-export-status.mdx index 73f82ce78..ae66266b6 100644 --- a/ai-for-service/apis/automation/ml-utterances-export-status.mdx +++ b/ai-for-service/apis/automation/ml-utterances-export-status.mdx @@ -36,7 +36,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "_id": "dx-aaxxxxxx-bxxe-5xxc-bxxf-31xxxxxxxxxx", "status": "SUCCESS", diff --git a/ai-for-service/apis/automation/ml-utterances-export.mdx b/ai-for-service/apis/automation/ml-utterances-export.mdx index 39a07a4cd..194befb90 100644 --- a/ai-for-service/apis/automation/ml-utterances-export.mdx +++ b/ai-for-service/apis/automation/ml-utterances-export.mdx @@ -35,7 +35,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "status": "IN_PROGRESS", "percentageComplete": 0, diff --git a/ai-for-service/apis/automation/ml-utterances-train-status.mdx b/ai-for-service/apis/automation/ml-utterances-train-status.mdx index c7bf71f38..4e884416d 100644 --- a/ai-for-service/apis/automation/ml-utterances-train-status.mdx +++ b/ai-for-service/apis/automation/ml-utterances-train-status.mdx @@ -40,7 +40,7 @@ No body parameters are passed. **Successful training:** -```json +```json expandable=true { "trainingStatus": "Finished", "isMlInSyncWithSentences": true, diff --git a/ai-for-service/apis/automation/proactive-notification-status-v2.mdx b/ai-for-service/apis/automation/proactive-notification-status-v2.mdx index 2ad43bd15..4f3d0b248 100644 --- a/ai-for-service/apis/automation/proactive-notification-status-v2.mdx +++ b/ai-for-service/apis/automation/proactive-notification-status-v2.mdx @@ -24,7 +24,7 @@ Fetches the status of a proactive notification triggered via the async webhook c ## Sample Request -``` +```bash curl --location 'https://{{host}}/api/public/bot/{{StreamId}}/notifyV2/status/{{dockstatusId}}' --header 'auth: {{jwt-token}}' ``` @@ -35,7 +35,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "statusLogs": [ { diff --git a/ai-for-service/apis/automation/proactive-notifications-status.mdx b/ai-for-service/apis/automation/proactive-notifications-status.mdx index 0e88a82ca..440d35411 100644 --- a/ai-for-service/apis/automation/proactive-notifications-status.mdx +++ b/ai-for-service/apis/automation/proactive-notifications-status.mdx @@ -35,7 +35,7 @@ No body parameters are passed. ## Sample Response -```json +```json expandable=true { "_id": "ds-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "PARTIAL_SUCCESS", diff --git a/ai-for-service/apis/automation/proactive-notifications-v2.mdx b/ai-for-service/apis/automation/proactive-notifications-v2.mdx index f0473efda..38eab2985 100644 --- a/ai-for-service/apis/automation/proactive-notifications-v2.mdx +++ b/ai-for-service/apis/automation/proactive-notifications-v2.mdx @@ -116,7 +116,7 @@ Channel-specific adjustment for **Google Chat**: **WhatsApp:** -```json +```json expandable=true { "channel": "whatsapp", "userIdentityType": "resolve", @@ -140,7 +140,7 @@ Channel-specific adjustment for **Google Chat**: **MS-Teams:** -```json +```json expandable=true { "channel": "msteams", "userIdentityType": "resolve", @@ -194,7 +194,7 @@ Channel-specific adjustment for **Google Chat**: ## Sample Response -```json +```json expandable=true { "_id": "ds-d0f6fed2-87ff-52b7-bf2b-a15216f0xxxx", "streamId": "st-736ff917-d836-55b4-9a6b-3dad20c0xxxx", diff --git a/ai-for-service/apis/automation/publish-bot.mdx b/ai-for-service/apis/automation/publish-bot.mdx index 0738d824d..0095e6d83 100644 --- a/ai-for-service/apis/automation/publish-bot.mdx +++ b/ai-for-service/apis/automation/publish-bot.mdx @@ -46,7 +46,7 @@ curl -X POST 'https://{{host}}/api/public/bot/{{BotID}}/publish' \ ## Sample Response -```json +```json expandable=true [ { "resourceType": "dialog", diff --git a/ai-for-service/apis/automation/query-data-table-view.mdx b/ai-for-service/apis/automation/query-data-table-view.mdx index 9efe078d4..26371cb89 100644 --- a/ai-for-service/apis/automation/query-data-table-view.mdx +++ b/ai-for-service/apis/automation/query-data-table-view.mdx @@ -48,7 +48,7 @@ curl -X POST 'https://{{host}}/api/public/views/{{viewName}}/query?sys_limit=4&s ## Sample Response -```json +```json expandable=true { "metaInfo": [ { diff --git a/ai-for-service/apis/automation/query-table-data.mdx b/ai-for-service/apis/automation/query-table-data.mdx index 5ada09191..a870b849a 100644 --- a/ai-for-service/apis/automation/query-table-data.mdx +++ b/ai-for-service/apis/automation/query-table-data.mdx @@ -48,7 +48,7 @@ curl -X POST 'https://{{host}}/api/public/tables/{{tableName}}/query?sys_limit=4 ## Sample Response -```json +```json expandable=true { "hasMore": true, "total": 2, diff --git a/ai-for-service/apis/automation/task-execution-based-containment-report.mdx b/ai-for-service/apis/automation/task-execution-based-containment-report.mdx index f6e4e4778..094f6ca3c 100644 --- a/ai-for-service/apis/automation/task-execution-based-containment-report.mdx +++ b/ai-for-service/apis/automation/task-execution-based-containment-report.mdx @@ -58,7 +58,7 @@ curl --location 'https://{{host}}/api/public/bot/{{botId}}/taskContainmentReport ## Sample Response for the POST Method -```json +```json expandable=true { "status": "IN_PROGRESS", "percentageComplete": 0, @@ -104,7 +104,7 @@ curl --location 'https://{{host}}/api/public/bot/{{botID}}/taskContainmentReport ## Sample Response for the GET Method -```json +```json expandable=true { "tasksExecutionReport": { "total": 8, diff --git a/ai-for-service/apis/automation/translation-logs.mdx b/ai-for-service/apis/automation/translation-logs.mdx index bf3f63f98..ca309eb5d 100644 --- a/ai-for-service/apis/automation/translation-logs.mdx +++ b/ai-for-service/apis/automation/translation-logs.mdx @@ -45,7 +45,7 @@ curl --location 'https://{{host}}/api/1.1/{{botId}}/translationLogs?{{sessionId} ## Sample Response -```json expandable +```json expandable=true [ { "sessionId": "69ef6f2737087759a08xxxxx", diff --git a/ai-for-service/apis/automation/update-nlp-configurations.mdx b/ai-for-service/apis/automation/update-nlp-configurations.mdx index 12de48b78..b3fca8681 100644 --- a/ai-for-service/apis/automation/update-nlp-configurations.mdx +++ b/ai-for-service/apis/automation/update-nlp-configurations.mdx @@ -25,7 +25,7 @@ To update the NLP thresholds and configurations. ## Sample Request -```json +```json expandable=true curl --location -g --request POST 'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \ --header 'auth: YOUR_JWT_ACCESS_TOKEN' \ --header 'content-type: application/json' \ @@ -81,7 +81,7 @@ The parameters depend on the threshold configuration that needs to be updated. ### Machine Learning Engine -```json +```json expandable=true { "configurations": [ { diff --git a/ai-for-service/apis/automation/update-user.mdx b/ai-for-service/apis/automation/update-user.mdx index 792226120..6d1b1a977 100644 --- a/ai-for-service/apis/automation/update-user.mdx +++ b/ai-for-service/apis/automation/update-user.mdx @@ -26,7 +26,7 @@ This API requires JWT generated by an application created only from the Admin Co ## Sample Request -```json +```json expandable=true curl -X PUT 'https://{{host}}/api/public/users' \ -H 'Content-Type: application/json' \ -H 'auth: YOUR_JWT_ACCESS_TOKEN' \ diff --git a/ai-for-service/apis/automation/user-engagement-trend-v2.mdx b/ai-for-service/apis/automation/user-engagement-trend-v2.mdx index 2c678c599..1347b547d 100644 --- a/ai-for-service/apis/automation/user-engagement-trend-v2.mdx +++ b/ai-for-service/apis/automation/user-engagement-trend-v2.mdx @@ -44,7 +44,7 @@ curl --location --request POST 'https://{{host}}/api/public/bot/{{streamId}}/v2/ **When `aggregation_type = Daily`:** -```json +```json expandable=true { "summary": { "uniqueUsers": 2, diff --git a/ai-for-service/apis/automation/user-engagement-trend.mdx b/ai-for-service/apis/automation/user-engagement-trend.mdx index a34a0029b..d082d72fc 100644 --- a/ai-for-service/apis/automation/user-engagement-trend.mdx +++ b/ai-for-service/apis/automation/user-engagement-trend.mdx @@ -60,7 +60,7 @@ curl -X POST \ **When `aggregation_type = Hourly` or empty or not given:** -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/case-management-apis/create-a-case.mdx b/ai-for-service/apis/case-management-apis/create-a-case.mdx index d9e1a837e..8128034cf 100644 --- a/ai-for-service/apis/case-management-apis/create-a-case.mdx +++ b/ai-for-service/apis/case-management-apis/create-a-case.mdx @@ -29,7 +29,7 @@ Creates a new case in the case management system. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/createCase' \ --header 'AccountId: {{accountId}}' \ --header 'auth: {{jwt-code}}' \ @@ -69,7 +69,7 @@ curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId ## Sample Response -```json +```json expandable=true { "_id": "ci-6b83ac7-8245-4e5e-ac8c-9695b531xxxx", "caseTmp": "Sales", diff --git a/ai-for-service/apis/case-management-apis/create-a-task.mdx b/ai-for-service/apis/case-management-apis/create-a-task.mdx index 15e8d3680..e96d8262a 100644 --- a/ai-for-service/apis/case-management-apis/create-a-task.mdx +++ b/ai-for-service/apis/case-management-apis/create-a-task.mdx @@ -29,7 +29,7 @@ Creates a new task within the case management system. ## Sample Request -```bash expandable +```bash expandable=true curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/createTask' \ --header 'sec-ch-ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"' \ --header 'AccountId: {{accountId}}' \ @@ -78,7 +78,7 @@ curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId ## Sample Response -```json expandable +```json expandable=true { "caseId": "ci-31d9184-d64d-42d9-8c75-5edba531xxxx", "caseRefId": "CS000131", diff --git a/ai-for-service/apis/case-management-apis/get-cases.mdx b/ai-for-service/apis/case-management-apis/get-cases.mdx index d982d5ee4..8ebfa75bd 100644 --- a/ai-for-service/apis/case-management-apis/get-cases.mdx +++ b/ai-for-service/apis/case-management-apis/get-cases.mdx @@ -29,7 +29,7 @@ Retrieves case data from the case management system with filtering, sorting, and ## Sample Request -```bash +```bash expandable=true curl --location --request POST 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/getCases' \ --header 'sec-ch-ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"' \ --header 'AccountId: {{accountId}}' \ @@ -70,7 +70,7 @@ curl --location --request POST 'https://{{host}}/caseManagement/api/public/analy ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/case-management-apis/get-tasks.mdx b/ai-for-service/apis/case-management-apis/get-tasks.mdx index a065b24f1..16c3b3cd3 100644 --- a/ai-for-service/apis/case-management-apis/get-tasks.mdx +++ b/ai-for-service/apis/case-management-apis/get-tasks.mdx @@ -29,7 +29,7 @@ Retrieves task data from the case management system with filters for status, pri ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/getTasks' \ --header 'AccountId: {{accountId}}' \ --header 'client-app: unified' \ @@ -76,7 +76,7 @@ curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/case-management-apis/update-a-case.mdx b/ai-for-service/apis/case-management-apis/update-a-case.mdx index e729f7705..cf12c71e0 100644 --- a/ai-for-service/apis/case-management-apis/update-a-case.mdx +++ b/ai-for-service/apis/case-management-apis/update-a-case.mdx @@ -30,7 +30,7 @@ Updates an existing case in the case management system. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/updateCase/{{caseId}}' \ --header 'sec-ch-ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"' \ --header 'AccountId: {{accountId}}' \ @@ -126,7 +126,7 @@ curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId ## Sample Response -```json +```json expandable=true { "_id": "ci-b4eaa6e-b3d9-4bb3-ae54-bb043b4axxxx", "caseTmp": "CaseTemplate1", diff --git a/ai-for-service/apis/case-management-apis/update-a-task.mdx b/ai-for-service/apis/case-management-apis/update-a-task.mdx index 5b9551dd2..4caef2a5c 100644 --- a/ai-for-service/apis/case-management-apis/update-a-task.mdx +++ b/ai-for-service/apis/case-management-apis/update-a-task.mdx @@ -30,7 +30,7 @@ Updates an existing task in the case management system. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId}}/updateTask/{{taskId}}' \ --header 'sec-ch-ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"' \ --header 'AccountId: {{accountId}}' \ @@ -98,7 +98,7 @@ curl --location 'https://{{host}}/caseManagement/api/public/analytics/{{streamId ## Sample Response -```json +```json expandable=true { "_id": "ti-73acd32-0123-4114-9891-00a950aaxxxx", "caseId": "ci-31d9184-d64d-42d9-8c75-5edba531xxxx", diff --git a/ai-for-service/apis/contact-center/agent-status-details.mdx b/ai-for-service/apis/contact-center/agent-status-details.mdx index be7c0dcd1..2001158ae 100644 --- a/ai-for-service/apis/contact-center/agent-status-details.mdx +++ b/ai-for-service/apis/contact-center/agent-status-details.mdx @@ -64,7 +64,7 @@ curl --location --request POST 'https://{{host}}/agentassist/api/public/analytic ## Sample Response -```json +```json expandable=true { "hasMore": false, "limit": 3, diff --git a/ai-for-service/apis/contact-center/check-agent-availability-status.mdx b/ai-for-service/apis/contact-center/check-agent-availability-status.mdx index 3e1ddef16..76a9edff4 100644 --- a/ai-for-service/apis/contact-center/check-agent-availability-status.mdx +++ b/ai-for-service/apis/contact-center/check-agent-availability-status.mdx @@ -52,7 +52,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/agents/ava ## Sample Response -```json +```json expandable=true { "AVAILABLE": [ { diff --git a/ai-for-service/apis/contact-center/contact-volume.mdx b/ai-for-service/apis/contact-center/contact-volume.mdx index 5e7ba2a27..3f1a46a2a 100644 --- a/ai-for-service/apis/contact-center/contact-volume.mdx +++ b/ai-for-service/apis/contact-center/contact-volume.mdx @@ -55,7 +55,7 @@ curl --location 'https://{{host}}/agentassist/api/public/analytics/account/636f5 ## Sample Response -```json +```json expandable=true { "hasMore": false, "CallVolumeUpdate": [ diff --git a/ai-for-service/apis/contact-center/create-a-contact-by-giving-details.mdx b/ai-for-service/apis/contact-center/create-a-contact-by-giving-details.mdx index 46bf3c96b..0387fb8d6 100644 --- a/ai-for-service/apis/contact-center/create-a-contact-by-giving-details.mdx +++ b/ai-for-service/apis/contact-center/create-a-contact-by-giving-details.mdx @@ -24,7 +24,7 @@ Use this API to create a contact with the given stream ID. ## Sample Request -```bash +```bash expandable=true curl --location --request POST 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/contacts' \ --header 'auth: {jwt-code}' \ --header 'accountId:123456789' @@ -65,7 +65,7 @@ curl --location --request POST 'https://{{host}}/agentassist/api/v1/public/{{str ## Sample Response -```json +```json expandable=true [ { "status": "ACTIVE", diff --git a/ai-for-service/apis/contact-center/create-a-queue.mdx b/ai-for-service/apis/contact-center/create-a-queue.mdx index e53a8a5cb..e1abc24e2 100644 --- a/ai-for-service/apis/contact-center/create-a-queue.mdx +++ b/ai-for-service/apis/contact-center/create-a-queue.mdx @@ -22,7 +22,7 @@ Use this API to create a queue with the given `streamId`. ## Sample Request -```bash +```bash expandable=true curl --location 'http://{{host}}/agentassist/api/v1/public/st-d2aa65cc-a2d2-5b6d-84d7-861509e2xxxx/queues' \ --header 'accept: application/json' \ --header 'accountId: 649bdcaf5037ed113942xxxx' \ @@ -72,7 +72,7 @@ curl --location 'http://{{host}}/agentassist/api/v1/public/st-d2aa65cc-a2d2-5b6d ## Sample Response -```json +```json expandable=true { "isActive": true, "isDefault": true, diff --git a/ai-for-service/apis/contact-center/create-a-skill.mdx b/ai-for-service/apis/contact-center/create-a-skill.mdx index 90fc1d975..4b4d92cdf 100644 --- a/ai-for-service/apis/contact-center/create-a-skill.mdx +++ b/ai-for-service/apis/contact-center/create-a-skill.mdx @@ -23,7 +23,7 @@ Use this API to add a skill with the given stream ID and skill group ID. ## Sample Request -```bash +```bash expandable=true curl --location --request POST \ 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/skill-groups/{{skillGroupId}}/skills' \ --header 'auth: {jwt-code}' \ diff --git a/ai-for-service/apis/contact-center/create-an-agent.mdx b/ai-for-service/apis/contact-center/create-an-agent.mdx index 8dd9cabda..a37f67ddc 100644 --- a/ai-for-service/apis/contact-center/create-an-agent.mdx +++ b/ai-for-service/apis/contact-center/create-an-agent.mdx @@ -22,7 +22,7 @@ Use this API to add an agent with the given stream ID. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/agents' \ --header 'accept: application/json' \ --header 'auth: ' \ @@ -98,7 +98,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/agents' ## Sample Response -```json +```json expandable=true { "emailId": "john.doe@example.com", "firstName": "John", diff --git a/ai-for-service/apis/contact-center/create-bulk-contacts.mdx b/ai-for-service/apis/contact-center/create-bulk-contacts.mdx index d5b994c9f..9f704adef 100644 --- a/ai-for-service/apis/contact-center/create-bulk-contacts.mdx +++ b/ai-for-service/apis/contact-center/create-bulk-contacts.mdx @@ -53,7 +53,7 @@ curl --location --request POST ## Sample Response -```json +```json expandable=true [ { "status": "ACTIVE", diff --git a/ai-for-service/apis/contact-center/create-contact-list-v2.mdx b/ai-for-service/apis/contact-center/create-contact-list-v2.mdx index 3ef3ae6bf..b05b22c82 100644 --- a/ai-for-service/apis/contact-center/create-contact-list-v2.mdx +++ b/ai-for-service/apis/contact-center/create-contact-list-v2.mdx @@ -58,7 +58,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contact list Renewal Due 1- July 2025 created successfully", diff --git a/ai-for-service/apis/contact-center/create-contact-list.mdx b/ai-for-service/apis/contact-center/create-contact-list.mdx index 83a6ceaba..987caede9 100644 --- a/ai-for-service/apis/contact-center/create-contact-list.mdx +++ b/ai-for-service/apis/contact-center/create-contact-list.mdx @@ -58,7 +58,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/con ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contact list Contact list of Passive June 27 created successfully", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format-v2.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format-v2.mdx index 2d1ebdc96..8a9067e72 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format-v2.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format-v2.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign with advanced formatting using the specif ## Sample Request -```bash +```bash expandable=true curl --location 'hhttps://{{host}}/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=sms' \ --header 'auth: ' \ --header 'accountid: 67777ce93e25326494exxxxx' \ @@ -131,7 +131,7 @@ curl --location 'hhttps://{{host}}/api/v2/public/{{streamId}}/campaign?accountId ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign1212 creation in progress", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format.mdx index 332ec71c7..ee69c000b 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-advanced-format.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign with advanced formatting using the specif ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign?campaignType=sms' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -126,7 +126,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign?cam ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign creation in progress", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-using-template-v2.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-using-template-v2.mdx index bdcda70c4..0bf7aa91f 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-using-template-v2.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-using-template-v2.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign using a predefined message template. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=sms' \ --header 'auth: ' \ --header 'accountid: 67777ce93e25326494exxxxx' \ @@ -123,7 +123,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?a ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Billing Alert Template Campaign-21 creation in progress", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-using-template.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-using-template.mdx index 3407dd6fe..731671190 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-using-template.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-using-template.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign using a predefined message template. ## Sample Request -```bash expandable +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign?campaignType=sms' \ --header 'auth: ' \ --header 'iid: st-0603182c-7ffb-53c3-b307-47ca14b9xxxx' \ @@ -120,7 +120,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign?cam ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Billing Alert Template Campaign creation in progress", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-without-template-v2.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-without-template-v2.mdx index faf2fdf86..8d350db11 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-without-template-v2.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-without-template-v2.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign without a template. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=sms' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -123,7 +123,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?a ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Event Reminder SMS Campaign71 creation in progress", diff --git a/ai-for-service/apis/contact-center/create-sms-campaign-without-template.mdx b/ai-for-service/apis/contact-center/create-sms-campaign-without-template.mdx index 98f325beb..354495cca 100644 --- a/ai-for-service/apis/contact-center/create-sms-campaign-without-template.mdx +++ b/ai-for-service/apis/contact-center/create-sms-campaign-without-template.mdx @@ -31,7 +31,7 @@ Use this API to create an SMS campaign without a template. ## Sample Request -```bash expandable +```bash expandable=true curl --location 'https://host/agentassist/api/v1/public/{{IID}}/campaign?campaignType=sms' \ --header 'auth: ' \ --header 'iid: st-0603182c-7ffb-53c3-b307-47ca14b9xxxx' \ @@ -119,7 +119,7 @@ curl --location 'https://host/agentassist/api/v1/public/{{IID}}/campaign?campaig ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Event Reminder SMS Campaign creation in progress", diff --git a/ai-for-service/apis/contact-center/create-voice-campaign-agentless-v2.mdx b/ai-for-service/apis/contact-center/create-voice-campaign-agentless-v2.mdx index 2d4fd0a79..f875fcfe6 100644 --- a/ai-for-service/apis/contact-center/create-voice-campaign-agentless-v2.mdx +++ b/ai-for-service/apis/contact-center/create-voice-campaign-agentless-v2.mdx @@ -32,7 +32,7 @@ Use this API to create a new outbound voice campaign with agentless dialing mode ## Sample request -```bash +```bash expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=voice' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -132,7 +132,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign?a ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Product Feedback Voice Campaign-3.41 creation in progress", diff --git a/ai-for-service/apis/contact-center/create-voice-campaign-agentless.mdx b/ai-for-service/apis/contact-center/create-voice-campaign-agentless.mdx index df0249cea..1ad2b71c7 100644 --- a/ai-for-service/apis/contact-center/create-voice-campaign-agentless.mdx +++ b/ai-for-service/apis/contact-center/create-voice-campaign-agentless.mdx @@ -31,7 +31,7 @@ Use this API to create a new outbound voice campaign with agentless dialing mode ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign?campaignType=voice' \ --header 'auth: >' \ --header 'Content-Type: application/json' \ @@ -125,7 +125,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign?c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Product Feedback Voice Campaign creation in progress", diff --git a/ai-for-service/apis/contact-center/create-voice-campaign-preview-v2.mdx b/ai-for-service/apis/contact-center/create-voice-campaign-preview-v2.mdx index 048f21887..1d860c328 100644 --- a/ai-for-service/apis/contact-center/create-voice-campaign-preview-v2.mdx +++ b/ai-for-service/apis/contact-center/create-voice-campaign-preview-v2.mdx @@ -31,7 +31,7 @@ Use this API to create a voice campaign that uses Preview dialing mode. In this ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{url}}/campaign/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=voice' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -130,7 +130,7 @@ curl --location 'https://{{url}}/campaign/api/v2/public/{{streamId}}/campaign?ac ## Sample Response -```json +```json expandable=true { "status": "success", diff --git a/ai-for-service/apis/contact-center/create-voice-campaign-progressive-v2.mdx b/ai-for-service/apis/contact-center/create-voice-campaign-progressive-v2.mdx index b8a68cc97..90149b447 100644 --- a/ai-for-service/apis/contact-center/create-voice-campaign-progressive-v2.mdx +++ b/ai-for-service/apis/contact-center/create-voice-campaign-progressive-v2.mdx @@ -28,7 +28,7 @@ Use this API to create a voice campaign with Progressive dialing mode that route ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{url}}/campaign/api/v2/public/{{streamId}}/campaign?accountId={{accountId}}&campaignType=voice' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -125,7 +125,7 @@ curl --location 'https://{{url}}/campaign/api/v2/public/{{streamId}}/campaign?ac ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Service Renewal Outreach Campaign61 creation in progress", diff --git a/ai-for-service/apis/contact-center/create-voice-campaign-progressive.mdx b/ai-for-service/apis/contact-center/create-voice-campaign-progressive.mdx index e63ec92a7..63daf498e 100644 --- a/ai-for-service/apis/contact-center/create-voice-campaign-progressive.mdx +++ b/ai-for-service/apis/contact-center/create-voice-campaign-progressive.mdx @@ -28,7 +28,7 @@ Use this API to create a voice campaign with Progressive dialing mode that route ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign?campaignType=voice' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -122,7 +122,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign?c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Service Renewal Outreach Campaign creation in progress", diff --git a/ai-for-service/apis/contact-center/delete-a-contact.mdx b/ai-for-service/apis/contact-center/delete-a-contact.mdx index 94b0cb8fc..20bbaf3bb 100644 --- a/ai-for-service/apis/contact-center/delete-a-contact.mdx +++ b/ai-for-service/apis/contact-center/delete-a-contact.mdx @@ -40,7 +40,7 @@ curl --location --request DELETE 'https://{{host}}/agentassist/api/v1/public/{{s ## Sample Response -```json +```json expandable=true { "firstName": "john", "lastName": "doe", diff --git a/ai-for-service/apis/contact-center/delete-a-specific-agent-from-a-particular-agent-group.mdx b/ai-for-service/apis/contact-center/delete-a-specific-agent-from-a-particular-agent-group.mdx index cb34e1c4d..dfaf9a3bd 100644 --- a/ai-for-service/apis/contact-center/delete-a-specific-agent-from-a-particular-agent-group.mdx +++ b/ai-for-service/apis/contact-center/delete-a-specific-agent-from-a-particular-agent-group.mdx @@ -32,7 +32,7 @@ curl --location --request DELETE \ ## Sample Response -```json +```json expandable=true { "status": "ACTIVE", "agentAffinity": false, diff --git a/ai-for-service/apis/contact-center/delete-an-agent-group.mdx b/ai-for-service/apis/contact-center/delete-an-agent-group.mdx index 5694fc095..7e79f6c53 100644 --- a/ai-for-service/apis/contact-center/delete-an-agent-group.mdx +++ b/ai-for-service/apis/contact-center/delete-an-agent-group.mdx @@ -32,7 +32,7 @@ curl --location --request DELETE \ ## Sample Response -```json +```json expandable=true { "id": "ag-9d1d5db-06b5-43a5-8a7c-87b12d93xxxx", "name": "US West Coast team", diff --git a/ai-for-service/apis/contact-center/delete-contact-list-details-v2.mdx b/ai-for-service/apis/contact-center/delete-contact-list-details-v2.mdx index eef08b365..94cd392ae 100644 --- a/ai-for-service/apis/contact-center/delete-contact-list-details-v2.mdx +++ b/ai-for-service/apis/contact-center/delete-contact-list-details-v2.mdx @@ -41,7 +41,7 @@ curl --location --request DELETE 'https://{{host}}/campaign/api/v2/public/{{stre ## Sample Response -``` +```json expandable=true { "status": "success", "message": "Contact list Renewal Due - May/June 2025 deleted successfully", diff --git a/ai-for-service/apis/contact-center/delete-contact-list-details.mdx b/ai-for-service/apis/contact-center/delete-contact-list-details.mdx index 0b8410a44..fbcff12ba 100644 --- a/ai-for-service/apis/contact-center/delete-contact-list-details.mdx +++ b/ai-for-service/apis/contact-center/delete-contact-list-details.mdx @@ -41,7 +41,7 @@ curl --location --request DELETE 'https://{{host}}/agentassist/api/v1/public/{{I ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contact list Renewal Due - August 2025 deleted successfully", diff --git a/ai-for-service/apis/contact-center/delete-sms-campaign-v2.mdx b/ai-for-service/apis/contact-center/delete-sms-campaign-v2.mdx index e54afbfa2..6156e98fb 100644 --- a/ai-for-service/apis/contact-center/delete-sms-campaign-v2.mdx +++ b/ai-for-service/apis/contact-center/delete-sms-campaign-v2.mdx @@ -46,7 +46,7 @@ curl --location --request DELETE 'https://{{host}}/campaign/api/v2/public/{{stre ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Billing Alert Template Campaign-21212 deleted successfully", diff --git a/ai-for-service/apis/contact-center/delete-sms-campaign.mdx b/ai-for-service/apis/contact-center/delete-sms-campaign.mdx index ba6f866bc..64163e3c5 100644 --- a/ai-for-service/apis/contact-center/delete-sms-campaign.mdx +++ b/ai-for-service/apis/contact-center/delete-sms-campaign.mdx @@ -46,7 +46,7 @@ curl --location --request DELETE 'https://{{host}}/agentassist/api/v1/public/{{b ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign deleted successfully", diff --git a/ai-for-service/apis/contact-center/delete-voice-campaign-v2.mdx b/ai-for-service/apis/contact-center/delete-voice-campaign-v2.mdx index 272050296..dd8eaef0e 100644 --- a/ai-for-service/apis/contact-center/delete-voice-campaign-v2.mdx +++ b/ai-for-service/apis/contact-center/delete-voice-campaign-v2.mdx @@ -46,7 +46,7 @@ curl --location --request DELETE 'https://{{host}}/campaign/api/v2/public/{{stre ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Service Renewal Outreach Campaign61 deleted successfully", diff --git a/ai-for-service/apis/contact-center/delete-voice-campaign.mdx b/ai-for-service/apis/contact-center/delete-voice-campaign.mdx index e40976d49..c09aebd4d 100644 --- a/ai-for-service/apis/contact-center/delete-voice-campaign.mdx +++ b/ai-for-service/apis/contact-center/delete-voice-campaign.mdx @@ -46,7 +46,7 @@ curl --location --request DELETE 'https://{{host}}/agentassist/api/v1/public/{{b ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Billing Reminder Voice Campaign2 deleted successfully", diff --git a/ai-for-service/apis/contact-center/enable-voice-or-sms-campaign-schedule-weekly.mdx b/ai-for-service/apis/contact-center/enable-voice-or-sms-campaign-schedule-weekly.mdx index 80191af65..9d5dca56d 100644 --- a/ai-for-service/apis/contact-center/enable-voice-or-sms-campaign-schedule-weekly.mdx +++ b/ai-for-service/apis/contact-center/enable-voice-or-sms-campaign-schedule-weekly.mdx @@ -29,7 +29,7 @@ Use this API to schedule a recurring weekly Voice or SMS campaign. ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/schedule?enableSchedule=true&campaignName={{campaignName}}' \ --header 'auth: {{jwt_token}}' \ --header 'Content-Type: application/json' \ diff --git a/ai-for-service/apis/contact-center/export-data-by-giving-details-v2.mdx b/ai-for-service/apis/contact-center/export-data-by-giving-details-v2.mdx index 96633246b..8ab128864 100644 --- a/ai-for-service/apis/contact-center/export-data-by-giving-details-v2.mdx +++ b/ai-for-service/apis/contact-center/export-data-by-giving-details-v2.mdx @@ -45,7 +45,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/analytics/{{botId}}/ ## Sample Response -```json +```json expandable=true [ { "_id": "6656d350463a7e1fc890xxxx", diff --git a/ai-for-service/apis/contact-center/export-data-by-giving-details.mdx b/ai-for-service/apis/contact-center/export-data-by-giving-details.mdx index 917cfe556..2584e65eb 100644 --- a/ai-for-service/apis/contact-center/export-data-by-giving-details.mdx +++ b/ai-for-service/apis/contact-center/export-data-by-giving-details.mdx @@ -31,7 +31,7 @@ To get exported data which is one of (skillsGroups, Queues, StandardResponses, W ## Sample Request -```bash +```bash expandable=true curl --location --request GET 'https://{{host}}/agentassist/api/v1/public/analytics/{{botId}}/importSmartAssistFunctionalities?{{accountId}}&orgId={{orgId}}&type=skillGroups' \ --header 'Accept: application/json, text/plain, */*' --header 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' @@ -55,7 +55,7 @@ curl --location --request GET 'https://{{host}}/agentassist/api/v1/public/analyt ## Sample Response -```json +```json expandable=true [ { "_id": "6666a49c085d6b9b1905xxxx", diff --git a/ai-for-service/apis/contact-center/fetch-voicemail-recording.mdx b/ai-for-service/apis/contact-center/fetch-voicemail-recording.mdx index 854ce1b23..bf79dbb6a 100644 --- a/ai-for-service/apis/contact-center/fetch-voicemail-recording.mdx +++ b/ai-for-service/apis/contact-center/fetch-voicemail-recording.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/api/public/bot/{{botId}}/voicemail?sessionId=6 ## Sample Response -```json +```json expandable=true { "status": "success", "voicemail recording": [ diff --git a/ai-for-service/apis/contact-center/get-a-list-of-agents-or-queues.mdx b/ai-for-service/apis/contact-center/get-a-list-of-agents-or-queues.mdx index b6fad0f02..5dd88a8bf 100644 --- a/ai-for-service/apis/contact-center/get-a-list-of-agents-or-queues.mdx +++ b/ai-for-service/apis/contact-center/get-a-list-of-agents-or-queues.mdx @@ -55,7 +55,7 @@ curl --location 'http://{{host}}/agentassist/api/v1/public/{{botId}}/queues/agen When `queueIds` are passed: -```json +```json expandable=true [ { "userId": "u-950c89ba-0526-5876-8394-af02bb34xxxx", @@ -80,7 +80,7 @@ When `queueIds` are passed: When `agentIds` are passed: -```json +```json expandable=true [ "qu-49ed316-c2b1-4459-8b63-7b97b5e3xxxx", "qu-50dbd8b-8660-4839-a4e9-d9ebc66axxxx", diff --git a/ai-for-service/apis/contact-center/get-a-list-of-queues.mdx b/ai-for-service/apis/contact-center/get-a-list-of-queues.mdx index c36f30f6c..ac0e8be62 100644 --- a/ai-for-service/apis/contact-center/get-a-list-of-queues.mdx +++ b/ai-for-service/apis/contact-center/get-a-list-of-queues.mdx @@ -36,7 +36,7 @@ curl --location 'http://{{host}}/agentassist/api/v1/public/{{streamId}}/queues' ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/get-a-particular-skill.mdx b/ai-for-service/apis/contact-center/get-a-particular-skill.mdx index 36e023b2a..6889af085 100644 --- a/ai-for-service/apis/contact-center/get-a-particular-skill.mdx +++ b/ai-for-service/apis/contact-center/get-a-particular-skill.mdx @@ -33,7 +33,7 @@ curl --location --request GET \ ## Sample Response -```json +```json expandable=true { "status": "ACTIVE", "name": "Account Management23", diff --git a/ai-for-service/apis/contact-center/get-a-specific-agent.mdx b/ai-for-service/apis/contact-center/get-a-specific-agent.mdx index bd779329a..d2262b6a2 100644 --- a/ai-for-service/apis/contact-center/get-a-specific-agent.mdx +++ b/ai-for-service/apis/contact-center/get-a-specific-agent.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/agents/ ## Sample Response -```json +```json expandable=true { "firstName": "John", "lastName": "Doe", diff --git a/ai-for-service/apis/contact-center/get-a-specific-conversation.mdx b/ai-for-service/apis/contact-center/get-a-specific-conversation.mdx index 2f08c6b5b..222f8c032 100644 --- a/ai-for-service/apis/contact-center/get-a-specific-conversation.mdx +++ b/ai-for-service/apis/contact-center/get-a-specific-conversation.mdx @@ -43,7 +43,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/convers ## Sample Response -```json +```json expandable=true { "participants": [ { diff --git a/ai-for-service/apis/contact-center/get-a-specific-queue.mdx b/ai-for-service/apis/contact-center/get-a-specific-queue.mdx index dcc016bd6..07a4a09d3 100644 --- a/ai-for-service/apis/contact-center/get-a-specific-queue.mdx +++ b/ai-for-service/apis/contact-center/get-a-specific-queue.mdx @@ -36,7 +36,7 @@ curl --location 'http://{{host}}/agentassist/api/v1/public/{{streamId}}/queues/{ When `queueIds` are passed: -```json +```json expandable=true { "isActive": true, "isDefault": true, diff --git a/ai-for-service/apis/contact-center/get-all-agent-groups.mdx b/ai-for-service/apis/contact-center/get-all-agent-groups.mdx index d051264c9..f7cb2d0a5 100644 --- a/ai-for-service/apis/contact-center/get-all-agent-groups.mdx +++ b/ai-for-service/apis/contact-center/get-all-agent-groups.mdx @@ -31,7 +31,7 @@ curl --location --request GET \ ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/get-all-campaigns-v2.mdx b/ai-for-service/apis/contact-center/get-all-campaigns-v2.mdx index 36384d8dc..b16619687 100644 --- a/ai-for-service/apis/contact-center/get-all-campaigns-v2.mdx +++ b/ai-for-service/apis/contact-center/get-all-campaigns-v2.mdx @@ -27,7 +27,7 @@ Use this API to retrieve all SMS campaign configurations associated with a speci Below is a sample request to retrieve all voice campaigns: -```bash +```bash expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/getAllCampaignDetails?accountId={{accountId}}' \ --header 'auth: ' \ --header 'accountid: 67777ce93e25326494exxxxx' \ @@ -55,7 +55,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/g Below is a sample request to retrieve all SMS campaigns: -```json +```json expandable=true curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/getAllCampaignDetails?accountId={{accountId}}' \ --header 'auth: ' \ --header 'accountid: 67777ce93e25326494exxxxx' \ @@ -108,7 +108,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/g The response provides all voice campaigns matching the request criteria. -```json +```json expandable=true { "status": "success", "message": "Campaign retrieved successfully", @@ -278,7 +278,7 @@ The response provides all voice campaigns matching the request criteria. The response provides all SMS campaigns matching the request criteria. -```json +```json expandable=true { "status": "success", "message": "Campaign retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-all-campaigns.mdx b/ai-for-service/apis/contact-center/get-all-campaigns.mdx index 7aede2715..cba79f218 100644 --- a/ai-for-service/apis/contact-center/get-all-campaigns.mdx +++ b/ai-for-service/apis/contact-center/get-all-campaigns.mdx @@ -25,7 +25,7 @@ Use this API to retrieve all SMS campaign configurations associated with a speci ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/getAllCampaignDetails' \ --header 'auth: ' \ --header 'iid: st-0603182c-7ffb-53c3-b307-47ca14b9xxxx' \ @@ -76,7 +76,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/get ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns-v2.mdx b/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns-v2.mdx index 11c5c073c..d40f0c8ee 100644 --- a/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns-v2.mdx +++ b/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns-v2.mdx @@ -60,7 +60,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/{ ## Sample Response -```json expandable +```json expandable=true { "status": "success", "data": { diff --git a/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns.mdx b/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns.mdx index 4fc066399..8a881b82f 100644 --- a/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns.mdx +++ b/ai-for-service/apis/contact-center/get-all-contact-details-voice-campaigns.mdx @@ -62,7 +62,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/{{c ## Sample Response -```json expandable +```json expandable=true { "status": "success", "data": { diff --git a/ai-for-service/apis/contact-center/get-all-contact-lists-v2.mdx b/ai-for-service/apis/contact-center/get-all-contact-lists-v2.mdx index d273ed1ec..83b6ba0a0 100644 --- a/ai-for-service/apis/contact-center/get-all-contact-lists-v2.mdx +++ b/ai-for-service/apis/contact-center/get-all-contact-lists-v2.mdx @@ -49,7 +49,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "", diff --git a/ai-for-service/apis/contact-center/get-all-contact-lists.mdx b/ai-for-service/apis/contact-center/get-all-contact-lists.mdx index 105dbb2f7..afa5f8ca1 100644 --- a/ai-for-service/apis/contact-center/get-all-contact-lists.mdx +++ b/ai-for-service/apis/contact-center/get-all-contact-lists.mdx @@ -48,7 +48,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/con ## Sample Response -```json +```json expandable=true { "status": "success", "message": "", diff --git a/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist-v2.mdx b/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist-v2.mdx index 09c6d72e7..01f8ae250 100644 --- a/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist-v2.mdx +++ b/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist-v2.mdx @@ -43,7 +43,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contacts retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist.mdx b/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist.mdx index f79356a44..b5bd6e280 100644 --- a/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist.mdx +++ b/ai-for-service/apis/contact-center/get-all-contacts-of-a-contactlist.mdx @@ -41,7 +41,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/campaig ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contacts retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-all-contacts.mdx b/ai-for-service/apis/contact-center/get-all-contacts.mdx index 0c50576d7..b2d1b0423 100644 --- a/ai-for-service/apis/contact-center/get-all-contacts.mdx +++ b/ai-for-service/apis/contact-center/get-all-contacts.mdx @@ -42,7 +42,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/contact ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v1.mdx b/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v1.mdx index fd990b377..768393af4 100644 --- a/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v1.mdx +++ b/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v1.mdx @@ -75,7 +75,7 @@ curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{acc ## Sample Response -```json +```json expandable=true { "numResults": 14, "data": [ diff --git a/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v2.mdx b/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v2.mdx index 728cc2572..ec17d08a7 100644 --- a/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v2.mdx +++ b/ai-for-service/apis/contact-center/get-all-conversations-data-call-details-v2.mdx @@ -32,7 +32,7 @@ To retrieve the raw data for all conversations in a detailed view. The days' ran ## Sample Request (Interaction Details) -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{accountId}}/v2/interactionDetails?offset=0&limit=100' \ --header 'accept: application/json' \ --header 'content-type: application/json;charset=UTF-8' \ @@ -58,7 +58,7 @@ curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{acc ## Sample Request (Call Details) -```bash +```bash expandable=true curl --location --request POST 'https://{{host}}/agentassist/api/public/analytics/account/{{accountId}}/v2/callDetails?offset=0&limit=100' \ --header 'accept: application/json, text/plain, /' \ --header 'content-type: application/json;charset=UTF-8' \ diff --git a/ai-for-service/apis/contact-center/get-all-skills-from-a-skill-group.mdx b/ai-for-service/apis/contact-center/get-all-skills-from-a-skill-group.mdx index 554e8a682..bf01410c6 100644 --- a/ai-for-service/apis/contact-center/get-all-skills-from-a-skill-group.mdx +++ b/ai-for-service/apis/contact-center/get-all-skills-from-a-skill-group.mdx @@ -42,7 +42,7 @@ curl --location --request GET 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/get-an-agent-group.mdx b/ai-for-service/apis/contact-center/get-an-agent-group.mdx index b6900b855..26353377d 100644 --- a/ai-for-service/apis/contact-center/get-an-agent-group.mdx +++ b/ai-for-service/apis/contact-center/get-an-agent-group.mdx @@ -34,7 +34,7 @@ curl --location --request GET 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "id": "ag-9d1d5db-06b5-43a5-8a7c-87b12d93xxxx", "name": "US West Coast team", diff --git a/ai-for-service/apis/contact-center/get-contact-list-details-v2.mdx b/ai-for-service/apis/contact-center/get-contact-list-details-v2.mdx index 902ce006c..69c515ed8 100644 --- a/ai-for-service/apis/contact-center/get-contact-list-details-v2.mdx +++ b/ai-for-service/apis/contact-center/get-contact-list-details-v2.mdx @@ -43,7 +43,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/c ## Sample Response -```json +```json expandable=true { "status": "success", "message": "", diff --git a/ai-for-service/apis/contact-center/get-contact-list-details.mdx b/ai-for-service/apis/contact-center/get-contact-list-details.mdx index 88f6b4722..ac844fd46 100644 --- a/ai-for-service/apis/contact-center/get-contact-list-details.mdx +++ b/ai-for-service/apis/contact-center/get-contact-list-details.mdx @@ -43,7 +43,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/con ## Sample Response -```json +```json expandable=true { "status": "success", "message": "", diff --git a/ai-for-service/apis/contact-center/get-conversation-details.mdx b/ai-for-service/apis/contact-center/get-conversation-details.mdx index 82d481935..072a3937c 100644 --- a/ai-for-service/apis/contact-center/get-conversation-details.mdx +++ b/ai-for-service/apis/contact-center/get-conversation-details.mdx @@ -60,7 +60,7 @@ curl --location --request GET 'https://{{host}}/agentassist/api/v1/public/{{botI ## Sample Response -```json +```json expandable=true { "_id": "c-ab4eb09-8dba-4db8-9176-b0ee670dxxxx", "participants": [ diff --git a/ai-for-service/apis/contact-center/get-intent-real-time-data.mdx b/ai-for-service/apis/contact-center/get-intent-real-time-data.mdx index 93046e6b3..7e9862903 100644 --- a/ai-for-service/apis/contact-center/get-intent-real-time-data.mdx +++ b/ai-for-service/apis/contact-center/get-intent-real-time-data.mdx @@ -45,7 +45,7 @@ curl --location --request POST 'https://{{host}}/api/public/bot/{{botId}}/intent ## Sample Response -```json +```json expandable=true [ { intent : [Book a Ticket, Book a Flight], diff --git a/ai-for-service/apis/contact-center/get-sms-campaign-by-id-v2.mdx b/ai-for-service/apis/contact-center/get-sms-campaign-by-id-v2.mdx index 8115168de..5bb0362d8 100644 --- a/ai-for-service/apis/contact-center/get-sms-campaign-by-id-v2.mdx +++ b/ai-for-service/apis/contact-center/get-sms-campaign-by-id-v2.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/{ ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign1212 retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-sms-campaign-by-id.mdx b/ai-for-service/apis/contact-center/get-sms-campaign-by-id.mdx index 85da5d5b3..83186a856 100644 --- a/ai-for-service/apis/contact-center/get-sms-campaign-by-id.mdx +++ b/ai-for-service/apis/contact-center/get-sms-campaign-by-id.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign/{ ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-the-agent-id-using-custom-id.mdx b/ai-for-service/apis/contact-center/get-the-agent-id-using-custom-id.mdx index d6d620390..b9791900d 100644 --- a/ai-for-service/apis/contact-center/get-the-agent-id-using-custom-id.mdx +++ b/ai-for-service/apis/contact-center/get-the-agent-id-using-custom-id.mdx @@ -41,7 +41,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/agents/ ## Sample Response -```json +```json expandable=true [ { "firstName": "fdsa", diff --git a/ai-for-service/apis/contact-center/get-voice-campaign-by-id-v2.mdx b/ai-for-service/apis/contact-center/get-voice-campaign-by-id-v2.mdx index 277d32126..02b4feaa6 100644 --- a/ai-for-service/apis/contact-center/get-voice-campaign-by-id-v2.mdx +++ b/ai-for-service/apis/contact-center/get-voice-campaign-by-id-v2.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/{ ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Product Feedback Voice Campaign-3.41 retrieved successfully", diff --git a/ai-for-service/apis/contact-center/get-voice-campaign-by-id.mdx b/ai-for-service/apis/contact-center/get-voice-campaign-by-id.mdx index e44d28735..6381a05b6 100644 --- a/ai-for-service/apis/contact-center/get-voice-campaign-by-id.mdx +++ b/ai-for-service/apis/contact-center/get-voice-campaign-by-id.mdx @@ -40,7 +40,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign/{ ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign retrieved successfully", diff --git a/ai-for-service/apis/contact-center/historical-agent-status-summary.mdx b/ai-for-service/apis/contact-center/historical-agent-status-summary.mdx index 2e88dd04a..9fe237312 100644 --- a/ai-for-service/apis/contact-center/historical-agent-status-summary.mdx +++ b/ai-for-service/apis/contact-center/historical-agent-status-summary.mdx @@ -67,7 +67,7 @@ curl --location --request POST 'https://{{host}}/agentassist/api/public/analytic ## Sample Response -```json +```json expandable=true { "hasMore": true, "limit": 50, diff --git a/ai-for-service/apis/contact-center/hours-of-operation.mdx b/ai-for-service/apis/contact-center/hours-of-operation.mdx index e83c30d91..50659a361 100644 --- a/ai-for-service/apis/contact-center/hours-of-operation.mdx +++ b/ai-for-service/apis/contact-center/hours-of-operation.mdx @@ -41,7 +41,7 @@ curl --location --request GET 'https://{{host}}/agentassist/api/public/organizat ## Sample Response -```json +```json expandable=true { "name": "Default Hours of Operation(Auto Created)1", "standardDays": { diff --git a/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details-v2.mdx b/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details-v2.mdx index 7c4624b8a..4c4fde0b5 100644 --- a/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details-v2.mdx +++ b/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details-v2.mdx @@ -33,7 +33,7 @@ To save/import data, which is one of (skillsGroups, Queues, StandardResponses, W ## Sample Request -```bash +```bash expandable=true curl --location 'https://{{host}}/agentassist/api/v1/public/analytics/{{IId}}/storeSmartAssistFunctionalities?accountId={{accountId}}&orgId={{orgId}}&type=skillGroups' \ --header 'auth: ' \ --header 'accountId: {{accountId}}' \ diff --git a/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details.mdx b/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details.mdx index cfaf13dd0..96be6a12e 100644 --- a/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details.mdx +++ b/ai-for-service/apis/contact-center/import-or-save-data-by-giving-details.mdx @@ -20,7 +20,7 @@ To save/import data which is one of (skillsGroups, Queues, StandardResponses, Wa ## Sample Request -```bash +```bash expandable=true curl --location 'http://{{host}}/agentassist/api/v1/public/{{botId}}/queues' \ --header 'accept: application/json' \ --header 'accountId: {{accountId}}' \ @@ -82,7 +82,7 @@ curl --location 'http://{{host}}/agentassist/api/v1/public/{{botId}}/queues' \ ## Sample Response -```json expandable +```json expandable=true [ { "status": "ACTIVE", diff --git a/ai-for-service/apis/contact-center/list-all-agents.mdx b/ai-for-service/apis/contact-center/list-all-agents.mdx index bfe1150bc..a968f6c95 100644 --- a/ai-for-service/apis/contact-center/list-all-agents.mdx +++ b/ai-for-service/apis/contact-center/list-all-agents.mdx @@ -41,7 +41,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/organiz ## Sample Response -```json expandable +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/list-of-conversations.mdx b/ai-for-service/apis/contact-center/list-of-conversations.mdx index 482042f1e..a63f3233a 100644 --- a/ai-for-service/apis/contact-center/list-of-conversations.mdx +++ b/ai-for-service/apis/contact-center/list-of-conversations.mdx @@ -51,7 +51,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/convers ## Sample Response -```json expandable +```json expandable=true { "results": [ { diff --git a/ai-for-service/apis/contact-center/outbound-calling-vg-v2.mdx b/ai-for-service/apis/contact-center/outbound-calling-vg-v2.mdx index 682f84eb3..a1eea63fc 100644 --- a/ai-for-service/apis/contact-center/outbound-calling-vg-v2.mdx +++ b/ai-for-service/apis/contact-center/outbound-calling-vg-v2.mdx @@ -75,7 +75,7 @@ The application triggers an outbound call using an HTTP POST request to the endp ### Outbound Calling API Sample Request -```bash +```bash expandable=true curl --location --request POST '{{host}}/api/1.1/public/bot/{{botId}}/v2/smartassist/dialout' \ --header 'Format: application/json' \ --header 'auth: {{JWT_TOKEN}}' \ @@ -141,7 +141,7 @@ Previously, the API supported notifications only for two call events: **Answered ### NotifyURL Sample Response -```json +```json expandable=true { "conversationId": "433a9a58-44eb-4c56-bb3e-ab2415f0xxxx", "reason": "200 OK", diff --git a/ai-for-service/apis/contact-center/outbound-calling-vg.mdx b/ai-for-service/apis/contact-center/outbound-calling-vg.mdx index 2ceb2985d..fa7651e16 100644 --- a/ai-for-service/apis/contact-center/outbound-calling-vg.mdx +++ b/ai-for-service/apis/contact-center/outbound-calling-vg.mdx @@ -75,7 +75,7 @@ The application triggers an outbound call using an HTTP POST request to the endp ### Outbound Calling API Sample Request -```bash +```bash expandable=true curl --location --request POST '{{host}}/api/1.1/public/bot/{{botId}}/smartassist/dialout' \ --header 'Format: application/json' \ --header 'auth: {{JWT_TOKEN}}' \ @@ -140,7 +140,7 @@ Previously, the API supported notifications only for two call events: **Answered ### NotifyURL Sample Response -```json +```json expandable=true { "conversationId": "433a9a58-44eb-4c56-bb3e-ab2415f0xxxx", "reason": "200 OK", diff --git a/ai-for-service/apis/contact-center/queue-size.mdx b/ai-for-service/apis/contact-center/queue-size.mdx index 240e58470..b96391e62 100644 --- a/ai-for-service/apis/contact-center/queue-size.mdx +++ b/ai-for-service/apis/contact-center/queue-size.mdx @@ -54,7 +54,7 @@ curl --location 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/monitor ## Sample Response -```json +```json expandable=true [ { "queueId": "qu-aa16c29-08b2-4948-aa00-a6a3547exxxx", diff --git a/ai-for-service/apis/contact-center/queues.mdx b/ai-for-service/apis/contact-center/queues.mdx index 918cd34ac..92865158f 100644 --- a/ai-for-service/apis/contact-center/queues.mdx +++ b/ai-for-service/apis/contact-center/queues.mdx @@ -9,23 +9,23 @@ sidebarTitle: Queues API To get the Queues/Skills associated with an `accountId`. -| Method | GET | -| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | -| **Endpoint** | `https://{{host}}/agentassist/api/public/analytics/account/{{accountId}}/queues` | -| **Content-Type** | `application/json` | -| **Authorization** | `auth: {{JWT}}` See [How to generate the JWT Token.](/ai-for-service/apis/automation/api-introduction#generating-the-jwt-token) | -| **API Scope** | WFM Integration | +| Method | GET | +|:------------------|:--------------------------------------------------------------------------------------------------------------------------------| +| **Endpoint** | `https://{{host}}/agentassist/api/public/analytics/account/{{accountId}}/queues` | +| **Content-Type** | `application/json` | +| **Authorization** | `auth: {{JWT}}` See [How to generate the JWT Token.](/ai-for-service/apis/automation/api-introduction#generating-the-jwt-token) | +| **API Scope** | WFM Integration | ## Path Parameters -| Parameter | Description | Type | -| :------------- | :----------------------------------------------------------------------------------------------- | :----------------- | -| `host` | The environment URL. Example: `https://platform.kore.ai` | string (required) | -| `accountId` | The unique identifier for the account. | string (required) | +| Parameter | Description | Type | +|:------------|:---------------------------------------------------------|:------------------| +| `host` | The environment URL. Example: `https://platform.kore.ai` | string (required) | +| `accountId` | The unique identifier for the account. | string (required) | ## Sample Request -``` bash +```bash curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{accountId}}/queues' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -34,11 +34,11 @@ curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{acc ## Header Parameters -| Header | Description | Optional/Required | -|:-------------------|:-------------------------------------------------------------|:-----------------------| -| `content-type` | Request body format (application/json;charset=UTF-8) | Required | -| `auth` | JWT authentication token | Required | -| `iId` | Stream or application id | Required | +| Header | Description | Optional/Required | +|:---------------|:-----------------------------------------------------|:------------------| +| `content-type` | Request body format (application/json;charset=UTF-8) | Required | +| `auth` | JWT authentication token | Required | +| `iId` | Stream or application id | Required | ## Sample Response @@ -54,8 +54,8 @@ curl --location 'https://{{host}}/agentassist/api/public/analytics/account/{{acc ## Body Parameters -| Parameter | Description | Type | -| :------------------- | :----------------------------------------------------------------------------------------------------------------- | :-------- | -| `accountId` | Unique identifier for the account. Example: `63fb9a0f90425b644d3exxxx`. | String | -| `collectionPointId` | Unique identifier for the collection point (queue). Example: `qu-59bb17e-0cae-46b0-8d80-a8a8ac34xxxx`. | String | -| `description` | Description of the collection point or queue. Example: `Default Queue`. | String | +| Parameter | Description | Type | +|:--------------------|:-------------------------------------------------------------------------------------------------------|:-------| +| `accountId` | Unique identifier for the account. Example: `63fb9a0f90425b644d3exxxx`. | String | +| `collectionPointId` | Unique identifier for the collection point (queue). Example: `qu-59bb17e-0cae-46b0-8d80-a8a8ac34xxxx`. | String | +| `description` | Description of the collection point or queue. Example: `Default Queue`. | String | diff --git a/ai-for-service/apis/contact-center/update-a-contact.mdx b/ai-for-service/apis/contact-center/update-a-contact.mdx index 4abadaec6..638edde77 100644 --- a/ai-for-service/apis/contact-center/update-a-contact.mdx +++ b/ai-for-service/apis/contact-center/update-a-contact.mdx @@ -54,7 +54,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "firstName": "john", "lastName": "doe", diff --git a/ai-for-service/apis/contact-center/update-a-particular-skill.mdx b/ai-for-service/apis/contact-center/update-a-particular-skill.mdx index 30f3d1ab6..9f0ad683c 100644 --- a/ai-for-service/apis/contact-center/update-a-particular-skill.mdx +++ b/ai-for-service/apis/contact-center/update-a-particular-skill.mdx @@ -27,7 +27,7 @@ To update the particular skill with the given `streamId`, `skillGroupId`, and `s ## Sample Request -```bash +```bash expandable=true curl --location --request PUT \ 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/skill-groups/{{skillGroupId}}/skills/{skillId}' \ --header 'auth: {jwt-code}' \ diff --git a/ai-for-service/apis/contact-center/update-a-specific-agent.mdx b/ai-for-service/apis/contact-center/update-a-specific-agent.mdx index b357d3091..a9c48a8d8 100644 --- a/ai-for-service/apis/contact-center/update-a-specific-agent.mdx +++ b/ai-for-service/apis/contact-center/update-a-specific-agent.mdx @@ -25,7 +25,7 @@ To update the details of a particular agent with the given `streamId` and `agent ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/agents/{{agentId}}' \ --header 'accept: application/json' \ --header 'auth: ' \ @@ -156,7 +156,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "status": "ACTIVE", "agentAffinity": false, diff --git a/ai-for-service/apis/contact-center/update-a-specific-queue.mdx b/ai-for-service/apis/contact-center/update-a-specific-queue.mdx index c179528ef..5f33565ba 100644 --- a/ai-for-service/apis/contact-center/update-a-specific-queue.mdx +++ b/ai-for-service/apis/contact-center/update-a-specific-queue.mdx @@ -35,7 +35,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "isActive": true, "isDefault": true, diff --git a/ai-for-service/apis/contact-center/update-bulk-contacts.mdx b/ai-for-service/apis/contact-center/update-bulk-contacts.mdx index 536bd9690..ef3b4c91a 100644 --- a/ai-for-service/apis/contact-center/update-bulk-contacts.mdx +++ b/ai-for-service/apis/contact-center/update-bulk-contacts.mdx @@ -24,7 +24,7 @@ Use this API to update multiple contacts by IDs. ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/contacts/bulk-update' \ --header 'Content-Type: application/json' \ --header 'accountId: {{accountId}}' \ @@ -79,7 +79,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{stre ## Sample Response -```json +```json expandable=true { "totalRequested": 2, "successful": 2, diff --git a/ai-for-service/apis/contact-center/update-contact-list-v2.mdx b/ai-for-service/apis/contact-center/update-contact-list-v2.mdx index aec1252b1..d0e5be12f 100644 --- a/ai-for-service/apis/contact-center/update-contact-list-v2.mdx +++ b/ai-for-service/apis/contact-center/update-contact-list-v2.mdx @@ -54,7 +54,7 @@ curl --location --request PUT 'https://{{host}}/campaign/api/v2/public/{{streamI ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Contact list Renewal Due - May/June 2025 updated successfully", diff --git a/ai-for-service/apis/contact-center/update-queue-priority.mdx b/ai-for-service/apis/contact-center/update-queue-priority.mdx index dcc1dea80..e99316f18 100644 --- a/ai-for-service/apis/contact-center/update-queue-priority.mdx +++ b/ai-for-service/apis/contact-center/update-queue-priority.mdx @@ -25,7 +25,7 @@ Use this endpoint to update the queue priorities on a scale of 1 to 10. ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{streamId}}/queues/dynamicqueues/priorities' \ --header 'accept: application/json, text/plain, /' \ --header 'accept-language: en-US,en;q=0.9' \ diff --git a/ai-for-service/apis/contact-center/update-sms-campaign-v2.mdx b/ai-for-service/apis/contact-center/update-sms-campaign-v2.mdx index cb7b62c03..23ce81efb 100644 --- a/ai-for-service/apis/contact-center/update-sms-campaign-v2.mdx +++ b/ai-for-service/apis/contact-center/update-sms-campaign-v2.mdx @@ -31,7 +31,7 @@ Use this API to update an existing SMS campaign using the format, contact lists, ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/{{campaignId}}?accountId={{accountId}}&campaignType=sms' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -115,7 +115,7 @@ curl --location --request PUT 'https://{{host}}/campaign/api/v2/public/{{streamI ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign details updated successfully", diff --git a/ai-for-service/apis/contact-center/update-sms-campaign.mdx b/ai-for-service/apis/contact-center/update-sms-campaign.mdx index 15c2f2e2d..80547cfb6 100644 --- a/ai-for-service/apis/contact-center/update-sms-campaign.mdx +++ b/ai-for-service/apis/contact-center/update-sms-campaign.mdx @@ -31,7 +31,7 @@ Use this API to update an existing SMS campaign using the format, contact lists, ## Sample Request -```bash expandable +```bash expandable=true curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{IID}}/campaign/{{campaignID}}?campaignType=sms' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -115,7 +115,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{IID} ## Sample Response -```json expandable +```json expandable=true { "status": "success", "message": "Campaign Interactive Support SMS Campaign details updated successfully", diff --git a/ai-for-service/apis/contact-center/update-voice-campaign-v2.mdx b/ai-for-service/apis/contact-center/update-voice-campaign-v2.mdx index 15cdb4a09..9ecf99e60 100644 --- a/ai-for-service/apis/contact-center/update-voice-campaign-v2.mdx +++ b/ai-for-service/apis/contact-center/update-voice-campaign-v2.mdx @@ -31,7 +31,7 @@ Use this API to update the configuration details of an existing voice campaign u ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/campaign/api/v2/public/{{streamId}}/campaign/{{campaignId}}?accountId={{accountId}}&campaignType=sms' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -129,7 +129,7 @@ curl --location --request PUT 'https://{{host}}/campaign/api/v2/public/{{streamI ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Product Feedback Voice Campaign-3.5 details updated successfully", diff --git a/ai-for-service/apis/contact-center/update-voice-campaign.mdx b/ai-for-service/apis/contact-center/update-voice-campaign.mdx index 335b9cd17..734653777 100644 --- a/ai-for-service/apis/contact-center/update-voice-campaign.mdx +++ b/ai-for-service/apis/contact-center/update-voice-campaign.mdx @@ -31,7 +31,7 @@ Use this API to update the configuration details of an existing voice campaign u ## Sample Request -```bash +```bash expandable=true curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{botId}}/campaign/{{campaignId}}?campaignType=voice' \ --header 'auth: ' \ --header 'Content-Type: application/json' \ @@ -127,7 +127,7 @@ curl --location --request PUT 'https://{{host}}/agentassist/api/v1/public/{{botI ## Sample Response -```json +```json expandable=true { "status": "success", "message": "Campaign Billing Reminder Voice Campaign details updated successfully", diff --git a/ai-for-service/assets/nice-agent-desktop-digital-chat-messaging-sample.json b/ai-for-service/assets/nice-agent-desktop-digital-chat-messaging-sample.json new file mode 100644 index 000000000..1430a23a1 --- /dev/null +++ b/ai-for-service/assets/nice-agent-desktop-digital-chat-messaging-sample.json @@ -0,0 +1,766 @@ +{ + "scriptContent": { + "header": { + "scriptName": "Digital_Chat_Messaging_Sample", + "busNo": 4606881, + "mediaType": 9, + "mediaTypeName": "digital", + "purposeType": "General", + "variableRedaction": "", + "nextActionId": 14, + "status": "Active", + "lastSavedIn": "cxs", + "wasLayoutAlgorithmRun": true + }, + "actions": { + "1": { + "actionId": 1, + "libraryId": "B2F794C5-0232-40E7-9830-76D573BF57D7", + "name": "BEGIN", + "version": 1, + "label": "Begin", + "dependencyOrder": "0", + "implType": "0", + "x": 824, + "y": 624, + "xws": 824, + "yws": 624 + }, + "2": { + "actionId": 2, + "libraryId": "7DA9B743-98F4-4899-A5CE-62C9CD414B5B", + "name": "REQAGENT_DIGITAL", + "version": 1, + "label": "Reqagent", + "dependencyOrder": "1", + "implType": "0", + "x": 1064, + "y": 632, + "xws": 1064, + "yws": 632 + }, + "3": { + "actionId": 3, + "libraryId": "CDDC91CC-F363-4E31-A13A-D742A81A68A3", + "name": "ONASSIGNMENTCHANGED_DIGITAL", + "version": 1, + "label": "OnAssignment", + "dependencyOrder": "2", + "implType": "0", + "x": 744, + "y": 748, + "xws": 744, + "yws": 748 + }, + "6": { + "actionId": 6, + "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", + "name": "SNIPPET", + "version": 1, + "label": "Snippet", + "dependencyOrder": "3", + "implType": "0", + "x": 1064, + "y": 720, + "xws": 1064, + "yws": 720 + }, + "13": { + "actionId": 13, + "libraryId": "FF08B4CD-1AC1-D8F4-B52A-85FB86E7A824", + "name": "POPURL", + "version": 1, + "label": "", + "dependencyOrder": "4", + "implType": "0", + "x": 1344, + "y": 748, + "xws": 1344, + "yws": 748 + } + }, + "properties": { + "1": { + "0": { + "name": "RootFolder", + "value": "" + }, + "1": { + "name": "Application", + "value": "" + }, + "2": { + "name": "ParamCount", + "value": "0" + }, + "3": { + "name": "Parameters", + "value": [ + "" + ] + } + }, + "2": { + "0": { + "name": "Skill", + "value": "Default", + "description": "Default" + }, + "1": { + "name": "InitialPriority", + "value": "0" + }, + "2": { + "name": "HighProficiency", + "value": "1" + }, + "3": { + "name": "LowProficiency", + "value": "20" + }, + "4": { + "name": "TargetAgent", + "value": "" + }, + "5": { + "name": "RoutingAttribute", + "value": "" + }, + "6": { + "name": "PriorityManagement", + "value": "" + }, + "7": { + "name": "Acceleration", + "value": "" + }, + "8": { + "name": "MaxPriority", + "value": "" + } + }, + "3": { + "0": { + "name": "SkillID", + "value": "SKLID" + }, + "1": { + "name": "SkillName", + "value": "SKLNAME" + }, + "2": { + "name": "AgentFirstName", + "value": "FIRST" + }, + "3": { + "name": "AgentLastName", + "value": "LAST" + }, + "4": { + "name": "UserID", + "value": "USERID" + }, + "5": { + "name": "AgentID", + "value": "AGENTID" + }, + "6": { + "name": "PriorAgentFirstName", + "value": "PRIORFIRST" + }, + "7": { + "name": "PriorAgentLastName", + "value": "PRIORLAST" + }, + "8": { + "name": "PriorUserID", + "value": "PRIORUSERID" + }, + "9": { + "name": "PriorAgentID", + "value": "PRIORAGENTID" + }, + "10": { + "name": "IsTransfer", + "value": "ISTRANSFER" + } + }, + "6": { + "0": { + "name": "Data", + "value": "ASSIGN global:clientSecret=\"\"\nASSIGN global:clientId=\"\"\nASSIGN global:botId=\"\"\nASSIGN global:baseUrl=\"https://platform.kore.ai/koreagentassist-sdk-v3/UI/agentassist-iframe.html\"\nASSIGN global:language=\"en\"\n\n// 'customdata' object can be utilized to pass additional information to Agent AI Bot for better context\nDYNAMIC customdata\ncustomdata.agentName=\"John Doe\"\n\nDYNAMIC scriptparams\nscriptparams.clientId=\"{clientId}\"\nscriptparams.clientSecret=\"{clientSecret}\"\nscriptparams.botId=\"{botId}\"\nscriptparams.conversationId=\"{contactid}\"\nscriptparams.threadIdOnExternalPlatform=\"{__threadidonexternalplatform}\"\nscriptparams.channelId=\"{__channelid}\"\nscriptparams.source=\"nice\"\nscriptparams.isCall=false\nscriptparams.channel=\"chat\"\nscriptparams.baseUrl=\"{baseUrl}\"\nscriptparams.interactiveLanguage=\"{language}\"\nscriptparams.customdata=\"{customdata.asJSON()}\"\nASSIGN scriptparamsjson=\"{scriptparams.asJSON()}\"\n\nscriptparamsjson = scriptparamsjson.urlencode()" + }, + "1": { + "name": "MaxStringSize", + "value": "Limit2K" + } + }, + "13": { + "0": { + "name": "AgentID", + "value": "{agentID}" + }, + "1": { + "name": "URL", + "value": "https://nice-sdk-integrations.kore.ai/latest/index.html?params={scriptparamsjson}" + }, + "2": { + "name": "TabTitle", + "value": "Agent AI" + }, + "3": { + "name": "PopDestination", + "value": "ContactPanel" + }, + "4": { + "name": "PopoutWindowHeight", + "value": "0" + }, + "5": { + "name": "PopoutWindowWidth", + "value": "0" + }, + "6": { + "name": "ClosePopoutUponTermination", + "value": "False" + }, + "7": { + "name": "CachePopURL", + "value": "False" + } + } + }, + "branches": { + "1": [ + { + "to": 2, + "label": "", + "type": "default", + "labelDistance": null, + "index": 0, + "ports": "c,c", + "lineType": "straight", + "elbows": [] + } + ], + "3": [ + { + "to": 6, + "label": "", + "type": "default", + "labelDistance": null, + "index": 0, + "ports": "c,c", + "lineType": "straight", + "elbows": [] + } + ], + "6": [ + { + "to": 13, + "label": "", + "type": "default", + "labelDistance": null, + "index": 0, + "ports": "c,c", + "lineType": "straight", + "elbows": [] + } + ] + }, + "isDataLoaded": true, + "isDataLoading": false, + "isDataSaving": false, + "isNewScript": false, + "isViewOnlyMode": false, + "isLockOverride": false, + "isVersionHistoryMode": false, + "dataLoadingProgress": { + "key": "reset" + }, + "error": null, + "issues": { + "totalErrors": "0", + "totalWarnings": "2", + "actions": { + "2": { + "actionType": "REQAGENT_DIGITAL", + "errors": [], + "warnings": [ + { + "key": "Warning! The Default branch for Reqagent is not wired up!", + "localizationKey": "default-branch-is-not-wired-up", + "interpolationValues": [ + "Reqagent" + ] + } + ] + }, + "13": { + "actionType": "POPURL", + "errors": [], + "warnings": [ + { + "key": "Warning! The Default branch for is not wired up!", + "localizationKey": "default-branch-is-not-wired-up", + "interpolationValues": [ + "" + ] + } + ] + } + }, + "script": {} + }, + "startTraceOptions": { + "skill": "", + "skillDescription": "", + "simulateInboundCall": false, + "phone": "", + "dnis": "", + "ani": "", + "simulateDateTime": false, + "dateTime": null, + "timezone": "(Business Unit Default)", + "parameters": [] + }, + "versionHistory": null, + "scriptVersions": {}, + "lastVersionEdited": null, + "traceWindowCount": 0, + "variables": { + "__channelid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "__threadidonexternalplatform": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "agentid": [ + { + "name": "PopURL", + "label": "", + "shape": { + "type": "rectangle", + "icon": { + "color": "#0F6099", + "url": "#browser-cursor" + }, + "width": 128, + "height": 32 + }, + "actionId": 13 + } + ], + "baseurl": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "botid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "clientid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "clientsecret": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "contactid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "customdata": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "customdata.agentname": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "global:baseurl": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "global:botid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "global:clientid": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "global:clientsecret": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "global:language": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "language": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparams": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparams.channel": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparams.customdata": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparams.iscall": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparams.source": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + } + ], + "scriptparamsjson": [ + { + "name": "Snippet", + "label": "", + "shape": { + "type": "rectangle-editor", + "icon": { + "color": "#CCCC00", + "url": "#code" + }, + "editorIcon": { + "url": "#browser" + }, + "width": 128, + "height": 80 + }, + "actionId": 6 + }, + { + "name": "PopURL", + "label": "", + "shape": { + "type": "rectangle", + "icon": { + "color": "#0F6099", + "url": "#browser-cursor" + }, + "width": 128, + "height": 32 + }, + "actionId": 13 + } + ] + }, + "compareScript": {}, + "customConnectorIdentifier": null, + "schemaVersion": "1.0.0" + } +} \ No newline at end of file diff --git a/ai-for-service/drafts/digital-skills/configure-digital-forms.mdx b/ai-for-service/automation/digital-skills/configure-digital-forms.mdx similarity index 72% rename from ai-for-service/drafts/digital-skills/configure-digital-forms.mdx rename to ai-for-service/automation/digital-skills/configure-digital-forms.mdx index dd779b849..4646966b9 100644 --- a/ai-for-service/drafts/digital-skills/configure-digital-forms.mdx +++ b/ai-for-service/automation/digital-skills/configure-digital-forms.mdx @@ -1,10 +1,12 @@ --- title: Configure Digital Forms +noindex: true +hidden: true --- -In this How-To, we will explore a scenario in a Banking App, where the user can create an additional account. We will see how Digital Forms can be used to gather all the required information from the user and create the account. +In this how-to, we'll walk through a Banking App scenario where a user creates an additional account, using Digital Forms to gather the required information. -For details on what Digital Forms are and how it is implemented in the XO Platform, click [here](../digital-skills/digital-forms.md){:target="_blank"}. +For details on what Digital Forms are and how they're implemented in the Platform, see [Digital Forms](/ai-for-service/automation/digital-skills/digital-forms). ## Illustration with an Example @@ -16,7 +18,7 @@ Consider a Banking App trying to address the following scenarios: * Checking Account with an option to opt for a Cash Card and set the minimum balance. * Credit Card with an option to choose the type of card to be Platinum, Gold, Silver or Basic. - banking form + ![banking form](/ai-for-service/automation/digital-skills/images/banking-form.png) ### Prerequisites @@ -25,7 +27,7 @@ Consider a Banking App trying to address the following scenarios: ## Configurations -Let us consider each of the following scenarios: +Let's consider each of the following scenarios: 1. Digital Form to gather input from the user; 2. Dialog Task to: @@ -60,14 +62,12 @@ Create a form to gather the following information: Click the card to select the style. If it has a logo, you can upload an image file (png or jpg) for the logo. - !!! Note +During the Export of the App, the logo isn't exported along with Digital Forms. So, while importing this App, you need to separately copy the logo image file and then manually reupload the logo. - During the Export of the App, the logo is not exported along with Digital Forms. So, while importing this App, you need to separately copy the logo image file and then manually reupload the logo. - 4. **Description**: Turn on the toggle to show a description of the form in the header. 5. **Save & Proceed** to the next step. - form creation next step + ![form creation next step](/ai-for-service/automation/digital-skills/images/form-creation-next-step.png) ### Form Editor @@ -80,19 +80,17 @@ Create a form to gather the following information: * **Name** used for internal reference, set as _accountname._ * **Description** of the field. * **Placeholder** value to be displayed in the field when blank, set as, _Enter the name of the account holder_. - form editor panel + ![form editor panel](/ai-for-service/automation/digital-skills/images/form-editor-panel.png) * **Mask User Input/Secure Field Data** is a toggle under **Data Settings** that enables securing of the input data. The label of this toggle varies as below: * If **Secure Form Data** is enabled, the caption of this toggle is **Mask User Input**. At runtime, the input data is masked. * If **Secure Form Data** is disabled, the caption of this toggle is **Secure Field Data**. At runtime, the data of this field will be redacted. This would be a component level setting for data redaction. - * **Transient Input** is a toggle under **Data Settings** which, if enabled, ensures that the data provided in this field is not stored anywhere after the session ends. This would mean that the data won't be available in the database or logs as well. - - Field data securing and Transient data + * **Transient Input** is a toggle under **Data Settings** which, if enabled, ensures that the data provided in this field isn't stored anywhere after the session ends. This would mean that the data won't be available in the database or logs as well. - !!! Note + ![Field data securing and Transient data](/ai-for-service/automation/digital-skills/images/mask-data-and-transient-input.png) - **Mask User Input/Secure Field Data** and **Transient Input** toggles are available for all the components, and need to be set on component level. Settings of one component will have no impact on others. +**Mask User Input/Secure Field Data** and **Transient Input** toggles are available for all the components, and need to be set on component level. Settings of one component will have no impact on others. 6. Next, a selection box for the type of account to be opened. Drag and drop a **Dropdown** component onto the form and set the following values: * **Display Name** set as _Account Type._ @@ -102,7 +100,7 @@ Create a form to gather the following information: 7. Scroll and locate **Data Settings**, and deselect **Multi Select** option. 8. Against **Dropdown values** click **Add Values** to enter the values – _Checking, Savings, Credit Card, Trading._ You can mark one value, _Savings_, as default. This would be selected by default at the time of execution. - data settings add value + ![data settings add value](/ai-for-service/automation/digital-skills/images/data-settings-add-value.png) 9. Next, for the Cash Card option when the account type is selected to be a Checkings account. Drag and drop a **Toggle** component onto the form and set the following values: * **Display Name** set as _Cash Card._ @@ -113,7 +111,7 @@ Create a form to gather the following information: 10. Scroll and locate **Visibility Settings.** This component should be visible only when the account type is set to Checkings. 11. Add **Visibility Rules – Rule 1** for the field to be **Visible**, select **accounttype** field, _=(Equal To)_ operator, _Value_ comparison with, _Checkings_ value. - visibility rules + ![visibility rules](/ai-for-service/automation/digital-skills/images/visibility-rules.png) 12. If the user opts for cash card, then the withdrawal limit needs to be set on the same. Drag and drop a **Range Slider** component onto the form and set the following values: * **Display Name** set as _Withdrawal Limit._ @@ -129,7 +127,7 @@ Create a form to gather the following information: 18. Add **Visibility Rules – Rule 1** field to be visible when, select, **accounttype** field, _=(Equal To)_ operator, _Value_ comparison with _Checkings_ value AND selecting _cashcard_ field, _=(Equal To)_ operator, _Value_ comparison with _Yes_ value. 19. Switch to **Advanced Mode** to enter the visibility rules. - switch to advanced mode + ![switch to advanced mode](/ai-for-service/automation/digital-skills/images/switch-to-advanced-mode.png) 20. For the Credit Card option,you need to further select the type of card. Drag and drop a **Radio Button** component onto the form and set the following values: * **Display Name** set as _Card Type._ @@ -143,7 +141,7 @@ Create a form to gather the following information: * Set **Is visible** flag to _Yes_. * Add **Visibility Rules – Rule 1** for the filed to be **Visible**, select **accounttype** _field, _=(Equal To)_ operator, _Value_ comparison with, _Credit Card_ value. - data settings + ![data settings](/ai-for-service/automation/digital-skills/images/data-settings.png) 23. Finally, the Pro-Tip, when user selects a Platinum card. Drag and drop a **Pro Tip** component onto the form and set the following values: * Set **Display Name** as _Platinum Tip._ @@ -154,33 +152,33 @@ Create a form to gather the following information: * Set **Is visible** flag to _Yes_ * Add **Visibility Rules – Rule 1** for the field to be **Visible** select **accounttype** field, _=(Equal To)_ operator, _Value_ comparison with, _Credit Card_ value AND selecting **cardtype** field, _=(Equal To)_ operator, _Value_ comparison with, _Platinum_ value. - visibility settings + ![visibility settings](/ai-for-service/automation/digital-skills/images/view-visibility-settings.png) Your form is ready. You can toggle between Desktop View and Mobile View to see how it looks in those devices. - toggle views + ![toggle views](/ai-for-service/automation/digital-skills/images/toggle-views.png) 25. You can select how the AI Agent handles the conversation when the user cancels the form. You can choose from two options: * **Discard the task and trigger End of Task Event**: This is the default option. - discard task + ![discard task](/ai-for-service/automation/digital-skills/images/discard-task.png) * **Continue with this task and transition to this node**: In the **Select Node** drop-down list, you can select any node present in the current dialog task. - select node dropdown + ![select node dropdown](/ai-for-service/automation/digital-skills/images/select-node-dropdown.png) - !!! Note - - The target node has to be in the same dialog, you cannot make a jump to a target node outside the current dialog. The list of target nodes only shows the local nodes. + +The target node has to be in the same dialog, you can't make a jump to a target node outside the current dialog. The list of target nodes only shows the local nodes. - If the target node is not present during runtime, the platform presents the error in continuing the conversation, and the task should get discarded. +If the target node isn't present during runtime, the platform presents the error in continuing the conversation, and the task should get discarded. + 26. Use the **Test** button to see a preview. ### Dialog Task Configuration -We will be creating a dialog task and adding a form node to trigger the Digital Form created in the above step and use a service node to make a service call to add the new account from the form data. +We'll be creating a dialog task and adding a form node to trigger the Digital Form created in the above step and use a service node to make a service call to add the new account from the form data. ### Create Dialog Task @@ -194,12 +192,12 @@ We will be creating a dialog task and adding a form node to trigger the Digital 5. Retain the Root Intent Node's default settings. 6. Click the **+** next to the Root intent node and select the form (_OpenNewAccount_) that we created earlier from the list. Note that the form name will contain numeric suffix in the form of 001, 002 and so on depending on the number of its instances already added to the AI Agent. - select created form + ![select created form](/ai-for-service/automation/digital-skills/images/select-created-form.png) -7. You will be prompted to select the **Form Experience**. XO Platform allows you to gather user input both from the form and through conversation based on the channel. +7. You'll be prompted to select the **Form Experience**. ThePlatform allows you to gather user input both from the form and through conversation based on the channel. 8. For this use case, select _Only Form UI_ experience. 9. A New sequence containing the Form Node would be added, you can customize the form name, etc. -10. We are changing the **Name** to _OpenAccountForm_ and **Display Name** to _Form to open account_. +10. We're changing the **Name** to _OpenAccountForm_ and **Display Name** to _Form to open account_. ### Capture Form Node Values @@ -209,7 +207,7 @@ Next, to capture the values returned by the Form Node using a Script node and di 2. Set the **Name** to _FormDataMessage_ and **Display Name** to _Form Data Message_. 3. Hover on the **Sample Bot Response for All Channels** and **Edit** icon to open the message editor. - select js + ![select js](/ai-for-service/automation/digital-skills/images/click-manage-responses.png) 4. Select the **Custom JavaScript** option and enter the following code. This code would capture from the context object, the data submitted by the user in the Form and display it accordingly. @@ -223,11 +221,17 @@ Next, to capture the values returned by the Form Node using a Script node and di print(message); ``` - select js + ![select js](/ai-for-service/automation/digital-skills/images/select-javascript.png) Your dialog with form is ready! **Test** and trigger the above dialog. The form will be displayed, enter the values and click Submit, the message would be displayed. -talk to bot +![talk to bot](/ai-for-service/automation/digital-skills/images/talk-to-bot.png) You can use the context object as shown above it a **Script** or **Service** nodes for further processing. +## Related Articles + +* [Digital Forms](/ai-for-service/automation/digital-skills/digital-forms) +* [Configure Digital Views](/ai-for-service/automation/digital-skills/configure-digital-views) +* [Digital Skills Overview](/ai-for-service/automation/digital-skills/digital-skills-overview) + diff --git a/ai-for-service/drafts/digital-skills/configure-digital-views.mdx b/ai-for-service/automation/digital-skills/configure-digital-views.mdx similarity index 58% rename from ai-for-service/drafts/digital-skills/configure-digital-views.mdx rename to ai-for-service/automation/digital-skills/configure-digital-views.mdx index f180d721d..50fcce996 100644 --- a/ai-for-service/drafts/digital-skills/configure-digital-views.mdx +++ b/ai-for-service/automation/digital-skills/configure-digital-views.mdx @@ -1,19 +1,18 @@ --- -title: Configure Digital Views (Draft) +title: Configure Digital Views +noindex: true +hidden: true --- -In this help document, we will explore how a user can view his/her account details using digital views. We will see how a Digital View can be presented using Panels and Widgets. Widgets can be used to trigger Dialog Tasks and display appropriate messages and Panel can be used to hold these Widgets. +In this how-to, we'll walk through a Banking App scenario where a user views account details through Digital Views — presented via Panels and Widgets, and hosted on a Web/Mobile Client using the Widget SDK. -We will also see how the Panel can be hosted on Web/Mobile Client using the Widget SDK. - -For details on what Digital Views are and how it is implemented on the XO Platform, click [here](digital-views.md){:target="_blank"}. +For details on what Digital Views are and how they're implemented on the Platform, see [Digital Views](/ai-for-service/automation/digital-skills/digital-views). ## Illustration with an Example Consider a Banking App trying to address the following scenarios: - + This document gives a detailed step-by-step approach to achieving all the above-mentioned scenarios using – Digital Views (Panels, Widgets), Widget SDK and Web/Mobile Client. @@ -23,11 +22,11 @@ This document gives a detailed step-by-step approach to achieving all the above- * A Banking App with a **Get Balance** dialog as mentioned below. * Get Balance – Dialog task prompting the user for their Account Number and Account Type and displaying the available balance in the account. - get balance + ![get balance](/ai-for-service/automation/digital-skills/images/get-balance-dialog-task.png) ## Configurations -Let us consider each of the following configuration scenarios: +Let's consider each of the following configuration scenarios: 1. Dialog Task to display balance in a given account using Widget SDK channel. 2. Widgets to trigger the above dialog task and a Panel set with the widgets. @@ -37,7 +36,7 @@ Let us consider each of the following configuration scenarios: First, the Dialog task which would be triggered from the Widget should have a message definition for the Widget SDK channel. -message template +![message template](/ai-for-service/automation/digital-skills/images/message-template.png) We use the following message to display the account details: @@ -48,7 +47,7 @@ var message = { { "title": "Account View", "sub_title": output, - "icon": "https://kore.ai/uploads/banking-home.png", + "icon": `https://kore.ai/uploads/banking-home.png`, } ] }; @@ -61,16 +60,16 @@ You can configure the following widget types: #### Dialog Task Widgets -We will be creating two Widgets to trigger a Dialog Task. +We'll be creating two Widgets to trigger a Dialog Task. **Current Account:** -First, let us see how to configure a Widget to display balance from the current account of the user with the steps below: +First, let's see how to configure a Widget to display balance from the current account of the user with the steps below: 1. Navigate to **Automation AI > Digital Skills > Digital Views**. 2. Click the **Create Widget** button. 3. Give a Widget Name and a Display Name. -4. Set the **Source**, we are triggering Dialog Task, hence select _Dialog Task_. +4. Set the **Source**, we're triggering Dialog Task, hence select _Dialog Task_. * **Select Dialog Task** as _Get Balance_, as per our use case. * In the **Entity Assignment**, set the following entities (you can select from the drop box that appears as you type) as per the Dialog Task requirement: @@ -79,7 +78,7 @@ First, let us see how to configure a Widget to display balance from the current You can use the **Open Dialog Task** icon, next to the select Dialog Task drop down, to open the dialog and check the entities needed. - open dialog task + ![open dialog task](/ai-for-service/automation/digital-skills/images/open-dialog-task.png) 5. **Save** the widget. 6. **Edit** the widget and click **Run & Preview** to see the widget output. @@ -89,7 +88,7 @@ First, let us see how to configure a Widget to display balance from the current Repeat the above steps for Account View from _savings_ account of the same account number. -account view +![account view](/ai-for-service/automation/digital-skills/images/account-view.png) ### Panel Configuration @@ -98,33 +97,33 @@ The Widgets thus created need to be attached to a Panel for runtime display and 1. Click the **Create Panel** button to create a Panel. 2. In the **New Panel** window, enter Panel Name, Display Name and a URL for Icon. - add panel name + ![add panel name](/ai-for-service/automation/digital-skills/images/add-panel-name.png) 3. Click the **Add Widget** button to open the **Panel Management** window. - Panel Management - Add Widget + ![Panel Management - Add Widget](/ai-for-service/automation/digital-skills/images/panel-management.png) 4. Use the **Add Widget** to select and add the Widgets that we want to display, in this case Account Balance and Current Account widgets. - add widget to panel + ![add widget to panel](/ai-for-service/automation/digital-skills/images/add-widget-to-panel.png) 5. Click the 3-dot menu icon on the panel, and select the **Test** option from the menu to see the widgets in action. - test widget + ![test widget](/ai-for-service/automation/digital-skills/images/test-widget.png) ### Panel with JSON Widgets -We will see how to create Widgets with static JSON content. We will use a JSON to display a pie chart. +We'll see how to create Widgets with static JSON content. We'll use a JSON to display a pie chart. 1. Click **Create Panel** to create a new panel and name it **JSON Example**. -2. Use the **3-dot** icon and select **Panel Management** from the menu, there you will find the option to **Add Widget**. Click on that. +2. Use the **3-dot** icon and select **Panel Management** from the menu, there you'll find the option to **Add Widget**. Click on that. - 3-dot menu for the new panel + ![3-dot menu for the new panel](/ai-for-service/automation/digital-skills/images/panel-3-dot-menu.png) - New widget - JSON + ![New widget - JSON](/ai-for-service/automation/digital-skills/images/new-widget-json.png) -3. Enter the following in the JavaScript Editor. This is a message template to display a pie chart with a break up for amounts spent under various heads like travel, food, and accommodation. For more on supported message templates, [refer here](../../../sdk/widget-sdk-message-formatting-and-templates.md){:target="_blank"}. +3. Enter the following in the JavaScript Editor. This is a message template to display a pie chart with a break up for amounts spent under various heads like travel, food, and accommodation. For more on supported message templates, [refer here](/ai-for-service/sdk/widget-sdk-message-formatting-and-templates). ``` var message = @@ -158,26 +157,26 @@ We will see how to create Widgets with static JSON content. We will use a JSON t 5. Click on **Create Panel** to create a new panel and name it _JSON Example_. 6. Click the **3-dot menu** icon on the panel. Select the **Add Widget** or **Panel Management** option and add the above created _Pie Chart_ widget. - Add widget to panel + ![Add widget to panel](/ai-for-service/automation/digital-skills/images/panel-3-dot-menu.png) -7. **Test** the panel and you will see the panel icons, click on each to see the widgets within them in action. +7. **Test** the panel and you'll see the panel icons, click on each to see the widgets within them in action. - test panel + ![test panel](/ai-for-service/automation/digital-skills/images/test-panel.png) ## Publish To publish the App first enable channels: -1. From left navigation menu, select **Channel** for publishing. For our use case we will select both Web/Mobile Client and Widget SDK channels. +1. From left navigation menu, select **Channel** for publishing. For our use case we'll select both Web/Mobile Client and Widget SDK channels. 2. Select the channels and from **Configurations** tab, make a note of the **Bot Name**, **Bot Id**, **Client Id** and **Client Secret**. 3. From left navigation menu, select **Publish** option. Under Tasks & languages section, ensure that the Widget and Panels we developed are selected for publication. 4. **Proceed** with the Publish. ## Hosting -We will be hosting the Panels in the web/mobile client. Click [here](../../../app-settings/dev-tools/kore-ai-web-sdk.md){:target="_blank"} for more details on the Widget SDK usage. +We'll be hosting the Panels in the web/mobile client. Click [here](/ai-for-service/app-settings/dev-tools/kore-ai-web-sdk) for more details on the Widget SDK usage. -1. Download the Kore.ai Widget SDK, go to this [link](https://github.com/Koredotcom/web-kore-sdk){:target="_blank"}, and then click **Download**. +1. Download the Kore.ai Widget SDK, go to this [link](https://github.com/Koredotcom/web-kore-sdk), and then click **Download**. 2. Extract all files to the _…/SDKApp/sdk_ folder. 3. Open the above SDK folder, and traverse to _UI_ folder. 4. Open the `kore-config.js` @@ -189,7 +188,7 @@ We will be hosting the Panels in the web/mobile client. Click [here](../../../ap 6. Make other changes as per your requirements. - configure bot actions + ![configure bot actions](/ai-for-service/automation/digital-skills/images/configure-bot-actions.png) 7. Open the `kore-widgets-config.js` 8. Configure your `botOptionsWiz` with the ‘_Widget SDK_’ channel configurations copied in above section. @@ -200,10 +199,16 @@ We will be hosting the Panels in the web/mobile client. Click [here](../../../ap 9. Make other changes as per your requirements. - configure bot actions + ![configure bot actions](/ai-for-service/automation/digital-skills/images/configure-bot-actions-2.png) 10. Open the `index_widgets_chat.html` file in the browser and see the chat window along with the widgets. - open index widget chart + ![open index widget chart](/ai-for-service/automation/digital-skills/images/open-index-widget-chat.png) + +11. If you want to host the Panels individually use the `index_widgets.html` file. See the GitHub for hosting the same in your web site. + +## Related Articles -11. If you want to host the Panels individually use the `index_widgets.html` file. See the GitHub for hosting the same in your web site. \ No newline at end of file +* [Digital Views](/ai-for-service/automation/digital-skills/digital-views) +* [Configure Digital Forms](/ai-for-service/automation/digital-skills/configure-digital-forms) +* [Digital Skills Overview](/ai-for-service/automation/digital-skills/digital-skills-overview) \ No newline at end of file diff --git a/ai-for-service/automation/digital-skills/digital-forms.mdx b/ai-for-service/automation/digital-skills/digital-forms.mdx new file mode 100644 index 000000000..b33ba0015 --- /dev/null +++ b/ai-for-service/automation/digital-skills/digital-forms.mdx @@ -0,0 +1,1026 @@ +--- +title: Digital Forms +noindex: true +hidden: true +--- + +AI Agents primarily engage end-users through a conversational, message-by-message interface. But often you need to gather several pieces of information at once — a delivery address for an eCommerce agent, issue details for an ITSM agent, opportunity details for a CRM, or customer details to book a flight. + +Asking for each value one at a time via a chain of Entity Nodes in a Dialog Task is tedious for the user. **Digital Forms** solve this by presenting an interactive form that captures all the required details from end-users in a single interaction, then submits the input to the AI Agent to proceed with the task at hand. + +In this article, we discuss the features and implementation of Digital Forms in the Platform. For a use case example and a step-by-step implementation of a Digital Form click [here](/ai-for-service/automation/digital-skills/configure-digital-forms). + +## Features + +* Improved user experience with a single interface for input collection. +* Easy form creation using simple drag and drop actions. +* Vast component library to cater to all your form requirements. +* Provision to define rules for input validations and visibility suiting your use case. +* Automatic dialog task generation from the _Form_ enabling switching between Form or Conversation experience based on the channel of interaction. + +## General Setup + +You can access **Digital Forms** from **Automation AI > Digital Skills**. + +![Access Digital Forms](/ai-for-service/automation/digital-skills/images/access-digital-forms.png) + +Here's the overall usage process for Digital Forms within the Platform + +* **Form Creation**: Define a Digital Form by adding components and configuring their properties. +* **Form Invocation**: Forms are invoked from inside a task or process: + * A form is included as a component in the task. The dialog task offers a Form Experience and Conversation Experience based on the channel of interaction. + * A Digital Form is added to a Digital View with a dialog task triggered when a form is submitted from there. + +* **Form Submission**: When it's submitted, the component values are validated and any errors are highlighted. Based on the mode of invocation, post successful validation: + * The AI Agent execution proceeds as per dialog flow in case of dialog task invocation. + * The selected task is triggered. + +## Create a Form + +A Digital Form includes a definition and various components to capture user input. + +To create forms, follow the steps below: + +1. Under **Automation AI > Digital Skills**, select **Digital Forms**. +2. On the **Digital Forms** screen, click **New Form**. +3. On the **New Form** page, enter the following: + + * **Name** of the Form. + * **Display Name** for the Form. + * **Description** of the Form. + + ![Create New Form](/ai-for-service/automation/digital-skills/images/create-new-form.png) + +4. **Select form’s Header Style**: You can choose a specific header style from the listed illustrations – the circle indicates the position of logo/icon with respect to the title of the form in the header. Click the card to select the style. If it has a logo, you can upload an image file (jpg or png) for the logo. + +During the Export of the app, the logo isn't exported along with Digital Forms. So, when importing this App, you need to separately copy the logo image file and then manually reupload the logo. + +5. Turn on the **Description** toggle if you want to show a description of the form in the header. + + ![Description Toggle](/ai-for-service/automation/digital-skills/images/description-toggle-turn-on.png) + +6. **Form Security** – Enable **Secure Form Data** to redact form data from the App Context, Debug Logs, Service Calls, Agent Transfer, and the Bot Kit. + + ![secure form data](/ai-for-service/automation/digital-skills/images/secure-form-data.png) + + While enabling, you can also choose whether to display the **Secure Form icon** to your end users. + + ![enable redact form data](/ai-for-service/automation/digital-skills/images/enable-redact-form-data.png) + + Once enabled, the Platform will replace the user input with a unique random system-generated alphanumeric value in all the modules. Also, the **Secure Form** icon and a tip will be displayed, notifying the user that the form is secure. + + ![secure form icon](/ai-for-service/automation/digital-skills/images/secure-form-icon.png) + + Secure Form feature ensures data security at form level. You can achieve securing data at component level too. [Read here](/ai-for-service/automation/digital-skills/configure-digital-forms#form-editor) to know more. + +7. **Pre-Processor script**—The Pre-Processor script in the form settings can be used by the developer to manipulate all the data required for the form that can't be customized from the UI design view. + + For example, in the case of a multilingual AI Agent, the user can customize the form UI & standard responses of the components in the digital form so that they appear based on the selected app language. + + Moreover, you can provide dynamic variables to replace the static content in the pre-processor script for use in the form using environment, content, and context variables. + + The platform processes and resolves the pre-processor script as the first step in the form node execution. The same can be seen in the debug log. As part of this, the updated definition from the pre-processor script is passed to webUI to render the form. + + **Example:** + + Suppose you want to change the standard response of a field of URL type in a digital form based on the app language. You've added English, Spanish, German, and Japanese as your app languages. + + ``` + let formDef = koreUtil.getFormDefinition(); + if(context.currentLanguage === 'en'){ + formDef.formMsgMeta.URL_INVALID_FORMAT = 'Invalid URL'; + } + elseif(context.currentLanguage === 'de'){ + formDef.formMsgMeta.URL_INVALID_FORMAT = 'ungültige URL'; + } + elseif(context.currentLanguage === 'es'){ + formDef.formMsgMeta.URL_INVALID_FORMAT = 'URL invalida'; + } + else{ + formDef.formMsgMeta.URL_INVALID_FORMAT = '無効なURL'; + } + ``` + + ![Digital form - Pre processor script](/ai-for-service/automation/digital-skills/images/xop-8553-pre-processor-script.png) + + +* This field will be available **only while updating** the form and not at the creation time. +* Defining a pre-processor script is **not mandatory**. The default standard responses will always be present. +* This feature is available **only for Automation AI**. + + + Please click here to learn more about the digital form’s pre-processor script. + +8. Click **Save & Proceed**. + + ![save digital form](/ai-for-service/automation/digital-skills/images/save-digital-form.png) + + +### Configuration setup using Pre-Processor script + +Earlier, our digital forms can be created only in one language and hence multiple forms need to be created to provide the flexibility to render the forms in different languages for multi lingual app. Also the messages and errors were available only in English and can't be customized. This posed a limitation as it didn't support all app languages. Additionally, users lacked the ability to customize the forms using the dynamic data from context. + +The pre-processor script has been introduced to counter the above limitations. You can provide values to the relevant keys based on the app language or any other condition that requires customization of aspects like field labels or standard responses. + +To get the form definition that's provided as a response in the `koreUtil.getFormDefinition` and keys that need to be customized, refer to the digital form's **JSON view**. Navigate to **Automation AI > Digital Skills > Digital forms** and open the form that you wish to configure. Click **Test** on the Form Design view, then select the **JSON** tab. + +![Digital Form Preview - JSON](/ai-for-service/automation/digital-skills/images/xop-8553-json-preview.png) + +The pre-processor script allows you to: + +* Make Language specific customizations +* Populate Dynamic data from external sources (Eg: data file or API) +* Populate Dynamic data using variables +* Pre-fill the form with static or dynamic data (default value using value or context variable) + + +Remember that you must create a form definition object using `koreUtil.getFormDefinition` before adding any code to customize any field’s property or standard response. This object consists of the form meta, form components & form messages. Make sure that this is the first line in your javascript code, with the syntax: + +``` +let formDef = koreUtil.getFormDefinition(); +``` + + +The below sections contain the keys that you may need to manipulate: + +* **Components**: for field and form level customizations like Form Header, Description, Field Names, Descriptions, Default Text, Validation rules etc. +* **formMsgMeta**: for customizing Standard Messages and Standard Error Responses + +The entire JSON is usually large, and it may be a challenge to find out the keys that need to be manipulated. You may consider copying the entire JSON, pasting it in any JSON Viewer application wherein you can collapse and expand the sections. You can expand only the components and formMsgMeta sections for convenience. + +![Components and Metadata sections in the JSON viewer](/ai-for-service/automation/digital-skills/images/xop-8553-json-sections-collapsed.png) + +#### Components + +The **Components** section is a container for all the fields on the form and the keys that can be manipulated in the pre-processor script for customization. + +Upon expanding the **components** section, which appears as an array in the JSON viewer, you see an indexed sub-sections that indicates the number of fields in the form. For example, the components section in the below screenshot shows that there are 12 fields in the form. + +![JSON - Components section](/ai-for-service/automation/digital-skills/images/xop-8553-components.png) + +You can see any field’s keys and their values by expanding the sub-section, and then expanding **metaData**. Usually the index of sub-sections represents the sequence of the fields on the form. + +![JSON - Component sub section expanded](/ai-for-service/automation/digital-skills/images/xop-8553-expanded-sub-section.png) + +You can customize the properties of a field by referencing it using its index number within the array using the below syntax: + +``` +formDef.components[<>].metaData.<> = '<>'; +``` +**Example:** to customize the **displayName** of the first field in the form, below is the code: + +``` +formDef.components[0].metaData.displayName = '名前'; +``` + +Here’s a list of keys and their purpose: + +| Key | Form Setting | Purpose | +| --- | --- | --- | +| metaData.displayName | Display Name | The field name visible to the user | +| metaData.placeHolder | Placeholder | The text pre-populated in the field, but isn't captured as field data | +| metaData.toolTip | Tooltip Text | The tooltip text associated with the field | +| metaData.isVisible | Is visible | To change the visibility setting; it can be true or false. | +| metaData.required | Required | To establish whether the field is a mandatory one | +| metaData.defaultvalueInput | Default Value | To provide a default value to the field | +| metaData.validateOn | Validate | To mention the event that would trigger validation. Can be onChange or onBlur. | +| metaData.description | Description | Description of the field | +| metaData.disabled | Read-only | To establish whether the field is read only. | +| metaData.options.locale.format (Only for **Date** fields) | Date Format and Time Format | To choose the format of date and time | +| metaData.options.timePicker (Only for **Date** fields) | Time | To show/hide the time picker within the date picker | +| metaData.options.timePicker24Hour (Only for **Date** fields) | Time Format | To choose the time format between 12 Hour or 24 Hour | +| metaData.options.locale.applyLabel (Only for **Date** fields) | – | The label of **Apply** button on the date-time picker; visible only if timePicker is set to true | +| metaData.options.locale.cancelLabel (Only for **Date** fields) | – | The label of **Cancel** button on the date-time picker; visible only if timePicker is set to true | +| metaData.countryCode (Only for **Phone Number** fields) | Default Country Code | The Default Country code Eg: +1 | +| metaData.countryName (Only for **Phone Number** fields) | Default Country Code | The default Country Name (Eg: United States) | +| metaData.enableDropDownSearch (Only for **Dropdown** fields) | – | To establish whether search box is available in the dropdown | +| metaData.isMultiSelect (Only for **Dropdown** and **Radio Button** fields) | Multi Select | To establish whether multiple items can be selected from the dropdown | +| metaData.minSelection (Only for **Dropdown** fields) | – | To establish the minimum number of items to be selected. If metaData.isMultiSelect is **false** , this value will be ignored. | +| metaData.maxSelection (Only for **Dropdown** fields) | – | To establish the maximum number of items that can be selected. Works only if metaData.isMultiSelect is **true.** | +| metaData.values (Only for **Dropdown** and **Radio Button** fields) | Dropdown values | An array containing the items in the dropdown. Every item is represented by an index number. | +| metaData.values[< >].value (Only for **Dropdown** and **Radio Button** fields) | Dropdown values > Edit Values > Value | The dropdown item | +| metaData.values[< >].selected (Only for **Dropdown, Checkbox** and **Radio Button** fields) | Dropdown values > Edit Values > Default | To establish whether the dropdown item is selected by default | +| metadata.toggleDefaultValue (Only for **Toggle** fields) | – | Default state of the toggle, can be **true** or **false** | +| metaData.toggleEnabledValue (Only for **Toggle** fields) | Value > Yes | Value to be read by platform if the toggle is enabled | +| metaData.toggleDisabledValue (Only for **Toggle** fields) | Value > No | Value to be read by platform if the toggle is disabled | +| metaData.minRange (Only for **Range Slider** fields) | Value > Min | Minimum value of the range slider | +| metaData.maxRange (Only for **Range Slider** fields) | Value > Max | Maximum value of the range slider | +| metaData.defaultvalueInput (Only for **Range Slider** fields) | Default value | Default value of the range slider | +| metaData.buttonAction (Only for **Button** component) | Button Action | The action triggered on clicking the button. Can be **submit, cancel, reset or goToUrl** | +| metaData.url (Only for **Button** component) | URL | URL to navigate to when user clicks the button if Button Action is goToUrl. | + +#### formMsgMeta + +The formMsgMeta section contains the keys that contain the Standard Responses and Error Messages. If you want to customize these messages and responses, or customize them based on the AI Agent’s language, you can do so in the pre-processor script by manipulating the values of these keys. + +These messages and responses can't be customized from the form design UI. The pre-processor script provides you the required mechanism to create status or dynamic responses based on your requirements. + +Upon expanding the **formMsgMeta** section, you can see the keys that you can customize. + +![Digital Form JSON - formMsgMeta Keys](/ai-for-service/automation/digital-skills/images/xop-8553-formmsgmeta-keys.png) + + +You'll need to set useFormMsgMeta to **yes** to ensure that the customized formMsgMeta values are passed on to WebUI for rendering the form. This is an optional key, but not mentioning it'll make the form display the system default responses and error messages. + +The syntax to set it is `formDef.formMsgMeta.useFormMsgMeta = 'yes';` + + +The syntax to provide value to a key of the formMsgMeta section is `formDef.formMsgMeta.<> = '<>';` + +The response message customizations are at the form level, that is, a response message of a particular nature will be applicable to all the fields across the form. For example, the customized response message for invalid URL will be the same for all the fields of URL type within the form. + +**Example:** Suppose you want to customize the system response for mandatory fields. The default system response is ‘This field is required’, but you want the response to be ‘This is a mandatory field; please provide a value’. This is how you can do it: + +``` +formDef.formMsgMeta.FIELD_MANDATORY = 'This is a mandatory field; please provide a value'; +``` + +Here’s a list of keys and their purpose: + +| Key | Purpose | +| --- | --- | +| formMsgMeta.FIELD_MANDATORY | Response message if no data is provided in a mandatory field | +| formMsgMeta.FIELD_INVALID_FORMAT | Response message if the data provided in the field isn't valid. | +| formMsgMeta.URL_INVALID_FORMAT | Response message if the url entered in the field is of invalid format. | +| formMsgMeta.FIELD_TOO_LONG | Response message if the data entered in the field exceeds the maximum permitted length.. | +| formMsgMeta.FIELD_TOO_SHORT | Response message if the data entered in the field falls below the required minimum length. | +| formMsgMeta.EMAIL_INVALID_FORMAT | Response message if the data entered in an Email type field in invalid format. | +| formMsgMeta.ERROR_PREVIEW | Response message if error occurs in preview. | +| formMsgMeta.ERROR_DOWNLOAD_ATTACHMENT | Response message if error occurs while downloading attachment. | +| formMsgMeta.FILE_SIZE_EXCEED | Response message if file size exceeds the maximum limit. | +| formMsgMeta.FILE_UPLOAD_EXISTING | Response message if the file has already been uploaded. | +| formMsgMeta.FILE_UPLOAD_ERROR | Response message if error occurs while uploading a file. | +| formMsgMeta.FILE_TYPES_SUPPORTED | Response message if user tries to upload a file of unsupported type. | +| formMsgMeta.INVALID_PHONE_NUMBER | Response message if user enters an invalid phone number in a field of Phone Number type. | +| formMsgMeta.ERROR_PROCESS_APP.PUBLISH | Response message when process app isn't published | +| formMsgMeta.ERROR_PROCESS_APP.EXPIRE_INVALID | Response message when the process app being accessed has expired or is invalid. | +| formMsgMeta.FORM_DISCARD.CONFIRM | Header text of the popup that appears on discarding a form | +| formMsgMeta.FORM_DISCARD.DESC | Text within the popup that appears on discarding the form | +| formMsgMeta.FORM_DISCARD.SUBMIT | Caption of the ‘Confirm’ button of the popup. Confirms the action. | +| formMsgMeta.FORM_DISCARD.CLOSE | Caption of the ‘Close’ button of the popup. Closes the popup without discarding the form. | +| formMsgMeta.FORM_SUBMISSION_CONFIRMATION.HEADER | Header text of the popup that appears on submitting a form | +| formMsgMeta.FORM_SUBMISSION_CONFIRMATION.DESC | Text within the popup that appears on submitting the form | +| formMsgMeta.FORM_SUBMISSION_CONFIRMATION.CLOSE | Caption of the ‘Confirm’ button of the popup. Confirms the action. | +| formMsgMeta.FORM_SUBMISSION_CONFIRMATION.CONFIRM | Caption of the ‘Close’ button of the popup. Closes the popup without submitting the form. | +| formMsgMeta.FORM_SUBMISSION_FAILED | Message that's displayed when form submission fails | +| formMsgMeta.FORM_LINK_EXPIRY | Message that's displayed when the form link expires. **Note** : The expiry message of the digital form can't be customized. The expiry message will be displayed according to the app's language settings. | +| formMsgMeta.FORM_CANCEL | Message that's displayed when the form is canceled. | +| formMsgMeta.DROPDOWN_MESSAGE | Message displayed on dropdown | +| formMsgMeta.FORM_LOADING | Message displayed when the form is loading | +| formMsgMeta.FORM_DATE_PICKER.FORMAT | The format in which the date entered in the date picker will be saved | +| formMsgMeta.FORM_DATE_PICKER.CONFIRM | Caption of the Confirm button on date picker | +| formMsgMeta.FORM_DATE_PICKER.CANCEL | Caption of the Cancel button of the date picker | +| formMsgMeta.FORM_DATE_PICKER.DAYS_OF_WEEK[ ] | Array containing the names of weekdays. They can be customized using the array index based on language or which day does the user want to be the start of the week on the form. | +| formMsgMeta.FORM_DATE_PICKER.MONTHS[ ] | Array containing the names of months. | +| formMsgMeta.FORM_DATE_PICKER.TIME | Caption of the ‘Time’ part of date picker | +| formDef.formMsgMeta.FORM_SUBMIT_SUCCESS | Message displayed when form submission is successful | +| formDef.formMsgMeta.FORM_SUBMIt_FAILURE | Message displayed when form submission fails | +| formMsgMeta.FORM_CLOSE_MESSAGE | Message displayed when form is closed | +| formMsgMeta.FORM_CLOSE_BUTTON | Caption of the Form Closing button | + +The below use cases explain the steps to make various customizations using the pre-processor script. The digital form to gather data for opening a bank account is being used as an example. Japanese and German languages have been added to the AI Agent. + +![formMetaData - Case study form](/ai-for-service/automation/digital-skills/images/xop-8553-case-study-form.png) + +#### Use Case 1: Language specific customizations + +**Components:** + +Suppose you want to customize the display names of the Name and Date of Birth fields based on the selected App language. + +Since these are the first two fields on the form, their index values are 0 and 1, respectively. + +Below is the code to customize the display names: + +``` +let formDef = koreUtil.getFormDefinition(); +if(context.currentLanguage === 'en'){ + formDef.components[0].metaData.displayName = 'Name'; +formDef.components[1].metaData.displayName = 'Date of Birth'; +} +else if(context.currentLanguage=== 'de'){ + formDef.components[0].metaData.displayName = 'Name'; +formDef.components[1].metaData.displayName = 'Geburtsdatum'; +} +else{ + formDef.components[0].metaData.displayName = '名前'; +formDef.components[1].metaData.displayName = '生年月日'; +} +``` + +Let’s assume that currently the App language is Japanese. This is how the form would look in the run-time: + +![formMetaData - Customized field labels](/ai-for-service/automation/digital-skills/images/xop-8553-form-fields-in-japanese.png) + +**formMsgMeta:** + +Suppose you want to customize the standard response for mandatory fields based on the App language. Below is the pre-processor script for that: + +``` +let formDef = koreUtil.getFormDefinition(); +if(context.currentLanguage === 'en'){ + formDef.formMsgMeta.FIELD_MANDATORY = 'This is a mandatory field. Please provide a value'; +} +else if(context.currentLanguage === 'de'){ + formDef.formMsgMeta.FIELD_MANDATORY = 'Dies ist ein Pflichtfeld. Bitte geben Sie einen Wert ein'; +} +else{ + formDef.formMsgMets.FIELD_MANDATORY = 'これは必須フィールドです。値を入力してください'; +} +``` + +This is how the standard message would look if the app language is Japanese: + +![formMetaData - Customized field level response messages](/ai-for-service/automation/digital-skills/images/xop-8553-field-level-standard-response-japanese.png) + +#### Use case 2: Dynamically generating form text and data using Variables + +**Component** + +Suppose you want to ask the user’s name and pre-fill it in the form fields and labels. In this example, the user’s name is captured in an entity node, and that name is used to: + +* Pre-fill the **name** field +* Personalize the labels of the other fields + +![Component - Creating context variable](/ai-for-service/automation/digital-skills/images/xop-8553-creating-context-var.png) + +You can use the value captured in the entity node using the context variable in the pre-processor script to pre-populate the **Name** field using the below code: + +``` +formDef.components[0].metaData.defaultvalueInput = context.entities.entName; +``` + +This is how it would look at the time of run: + +![Component - Getting the value for context variable through entity node](/ai-for-service/automation/digital-skills/images/xop-8553-enter-name-open-account.png) + +![Component - Pre-populating field using context variable](/ai-for-service/automation/digital-skills/images/xop-8553-name-field-pre-populated-using-variable.png) + +To personalize the labels of other fields like Date of Birth, Phone Number, Email etc. as well, you can add the below code to manipulate the **displayName**: + +``` +formDef.components[1].metaData.displayName = context.entities.entName + ''s Date of Birth'; +formDef.components[2].metaData.displayName = context.entities.entName + ''s Phone Number'; +formDef.components[3].metaData.displayName = context.entities.entName + ''s E-Mail'; +formDef.components[4].metaData.displayName = context.entities.entName + ''s Address for Correspondence'; +``` + +This is how it would look at run time: + +![Component - Field labels customized using context variable](/ai-for-service/automation/digital-skills/images/xop-8553-field-labels-customized-using-variable.png) + +**formMsgMeta:** + +Suppose, in addition to personalizing the field labels and pre-filling the Name field, you want to personalize the form’s Response Message text for Mandatory fields by adding the user’s name so that it becomes `User's Name`, this is a mandatory field. Please provide a value**. You can achieve this by adding the below code: + +``` +formDef.formMsgMeta.useFormMsgMeta = 'yes'; +formDef.formMsgMeta.FIELD_MANDATORY = context.entities.entName + ', this is a mandatory field. Please provide a value.'; +``` + +This is how it would look at run time: + +![Component - Field level response customized using context variable](/ai-for-service/automation/digital-skills/images/xop-8553-response-message-customized-using-variable.png) + +#### Use Case 3: Dynamically generating form data from external sources + +You can use external sources of data, like data tables, data fetched from API etc to dynamically generate form data. + +The syntax to do that is: + +``` +var resultSet = context.<>.response.body.queryResult; +for (var i=0; i>].metaData.<> = context.<>.response.body.queryResult[i].<> +} +``` + +Please note that in such scenarios you'll need to add a service node prior to the digital form node, that will fetch the data to be used for dynamically generating the form data. + +### Add Components + +Once you configure the basic details for your form, the Platform takes you to the form builder, where you can add the components you require. + +You can drag and drop the components available on the left pane to the canvas and configure their properties to build the form. For details of the available components & their properties [see here](/ai-for-service/automation/digital-skills/configure-digital-forms#form-editor). + +![Drag and drop component](/ai-for-service/automation/digital-skills/images/drag-component.gif) + +You can search for a given component, or scroll through the list to find what you require. + +![search component](/ai-for-service/automation/digital-skills/images/search-component.gif) + +You can view the components list in a grid format by clicking the icon on the top right of the list. + +If you hover in-between components within the form itself, you can find an in-form **Add Component** button which also allows you to search and add new components without having to navigate to the left-side list. + +![add component](/ai-for-service/automation/digital-skills/images/add-component-in-form.png) + +### Add Form Sections + +If you're working with a longer and more complex form, you can split it into sections. Hover your cursor in-between form components to reveal an **Add Section** button. Clicking it'll add a title and description to your form, which you can use to organize the other fields into sections. + +![add form section](/ai-for-service/automation/digital-skills/images/add-section.png) + +### Form Actions + +From the Forms Listing page, you can: + +* Create a **New Form**, as seen above. +* **[Edit](#edit)** the Form. +* Use the **[Branding](#branding)** option to customize a form. +* **[Test](#test)** forms. +* **Delete** forms. + +![form actions](/ai-for-service/automation/digital-skills/images/form-actions.png) + +#### Edit + +You can use the **Edit** option from the form listing to edit the form. The following actions are performed on the Form in edit mode: + +![form editor](/ai-for-service/automation/digital-skills/images/form-editor.png) + +* **The Component Listing** is used for selecting and adding components to the Form by simple drag and drop action. +* Use the **View Toggler** to switch between **Desktop View** and **Mobile View**. +* Use the Move Component _Handle Bar_ against each of the components to change its location by a simple drag and drop action; +* Use *Form Actions* to: + + * **Test** the form to see the preview of the Digital Form in the Platform. + * **Delete** the Form. Please keep in mind that deleted forms can't be restored. + * Change the Form **Settings** such as name, display name, and description. + +* Use the **Component Actions** to access the **Settings**, **Duplicate,** and **Delete** options for each of the form’s components. +* You can change the components’ properties from the **Component Settings** popup: + + * Use the **Component Docker** to dock/undock the settings pane to the screen. + * Use the **Component Selector** to navigate through the components on the Form. + +#### Branding + +Use the **Branding** option to change the look and feel of the form to reflect your organization’s standards. + +![branding](/ai-for-service/automation/digital-skills/images/digital-form-branding.png) + +Change the colors and click **Save**. To restore the original appearance, click **Restore Default**. + +![branding](/ai-for-service/automation/digital-skills/images/branding-appearance.png) + +#### Test + +**Test** the form to see a preview of what it would look like to the end user. You can do this at any point while you work on the form. + +![test preview](/ai-for-service/automation/digital-skills/images/test-preview.png) + +## Invoke a Form + +A digital form can be invoked as follows: + +1. **From a Task**: You may include a form as a component in a dialog task for defining the task. The dialog task offers _Form Experience_ and the usual _Conversation Experience_ for filling the form data. You can choose the preference based on the _channel of interaction_ or any other criteria based on your requirements. +2. **From a UI flow**: You can add a Digital Form to a pane and choose a dialog task to trigger when the form is submitted from the pane. + +In the following sections, we discuss each of the above invocation processes. + +### Invocation from Dialog Tasks + +Digital Forms are used inside Dialog Tasks for capturing user inputs through a Form Node. + +To invoke a form from a dialog task, follow the below steps: + +1. Create/open the dialog from where you want to invoke the Digital Form. +2. Click the **+** icon next to the node where you want to add the Form. +3. Select the **Digital Form** option and then the form from the list. You can choose to add a Digital Form directly or use an existing Form Node. +4. You're prompted to select the **Form Experience**, it can be: + + ![configure form node](/ai-for-service/automation/digital-skills/images/configuration-form-node.png) + + * **Only Form UI** – This creates a Form Node and associates it with the Digital Form selected. This is the default option. + + ![only form ui](/ai-for-service/automation/digital-skills/images/only-ui.png) + + * **Both Form UI and Conversation Experience (DRAFT)** – This further prompts you to choose a channel. When a user is using one of the selected channels they're presented with a Form UI, the rest of the channel users get a conversation experience. + + This option creates: + + * A **Bot Action Node** to determine the transitions to the Form Node and the Sub-dialog Node based on the channels selected. + * A **Form Node** for the Digital Form, same as was generated for the Only Form UI above. + * A **Sub-dialog Node** to capture the required entities (as defined in the Digital Form using components) for the conversational experience. + * A **Group** encompassing the following nodes. This grouping can be renamed and/or deleted. [Learn more](/ai-for-service/automation/dialogs/manage-dialogs#manage-node-groups). + + ![form experience node](/ai-for-service/automation/digital-skills/images/form-experience-nodes.png) + +5. You can set the **Properties** for each of the nodes added. + + * The [Form Node](/ai-for-service/automation/dialogs/node-types/form-node). Following Component Properties are of special interest: + * **Submit Message** – Message displayed to the end-user on successful submission of the form + * **Web/Mobile SDK Form Behavior** – Using this option you can either have the form displayed *inline* the chat window or *open on a full page*. Also, you can either go ahead with the default submit prompt or configure the setting to display a custom and more specific message to be shown in chat. [Learn more](/ai-for-service/automation/dialogs/node-types/form-node#component-properties). + + * **Bot Action Node,** in case of the conversation experience flow, can also be configured in the [Logic Node](/ai-for-service/automation/dialogs/node-types/logic-node) as follows: + + * **Manage Context Variables** is used to create and set values for the context variables. Remember to use the full path of the variable in the _key_ field ie. ```context.BotUserSession.``` + +We urge you not to make changes to the connection settings as this affects the AI Agent's performance. + + * **Sub-dialog Node** is configured as a normal [Dialog Node](/ai-for-service/automation/dialogs/node-types/dialog-node) as follows: + + * Use the **Entity Post-assignment** to capture the user input. + * In case you modify the sub-dialog or the source form, you're presented with an option to **Regenerate Dialog**. This ensures that the changes are reflected in the task without having to rebuild the entire task. Be aware that the changes are reflected in all places this sub-dialog is used. + + ![sub dialog node](/ai-for-service/automation/digital-skills/images/subdialog-node-configuration.png) + +6. The user input can be accessed as follows: + + * Form component values are accessed from the Context Object using ```{{context.forms.form_name.component_name}}``` + * In the case of the sub-dialog, the variables used in the post-assignment settings as ```{{context.}}``` + +7. You can continue with the Dialog Task as per your business needs. For example, you can use the Form Component values as input to a **Service Node** to update the data or use the **Script Node** to process it further. If you're using the conversation experience too, remember to connect the auto-generated sub-dialog to the process flow. + +### Invocation from Panels + +Digital Forms are rendered in Digital Views by configuring Widgets & Panels. [Learn more](/ai-for-service/automation/digital-skills/digital-views). + +To invoke a form using Widgets and Panels, follow the below steps: + +1. **Create a widget** to invoke the Digital Form within **Digital Views** from **Automation AI > Digital Skills**. +2. Enter the name. +3. Select _Digital Forms_ as the **Source.** +4. **Add a Form** by selecting it from the drop-down list. +5. Select the **Dialog to Invoke on Submit** from the drop-down list. +6. Click **Save**. + + ![invoke form in widget](/ai-for-service/automation/digital-skills/images/invoke-form-in-widget.png) + +7. **Add the Widget** to an existing panel or create a new panel. +You can add a form directly to a panel, it creates a widget by default. +8. You can **Test** the panel. +9. Follow the steps provided [here](/ai-for-service/app-settings/dev-tools/kore-ai-web-sdk) to publish and host the panels. + +While a Digital Form is used to define multiple Widgets and also add to multiple panels, it'll be associated with a single Dialog Task across all Widgets and Panels. + +## The User Experience + +When the end-user initiates the dialog and reaches the node connecting to the Form node, the following events take place. Depending upon the experience selected at design time and the channel of invocation, the flow is the following: + +### Form Experience + +A **link to the form** is presented to the user. Note that for a synchronous WebHook channel, instead of a link the complete form definition is sent [here](/ai-for-service/channels/add-webhook-channel). + +![link to form message](/ai-for-service/automation/digital-skills/images/uiforms-linkmessage1.png) + +Clicking the link opens the form in either full-screen or inline mode, based on the selection. Please note the following details about the link: + +* The link is active only for a certain duration of time, it becomes inactive after that. +* Even within the active period, it can be used only a limited number of times. + +End-users can fill in the values for the components/fields. + +![test preview](/ai-for-service/automation/digital-skills/images/test-preview-fill-form.png) + +Every form comes with a default **Submit** button. This validates the form entries, prompts for any missing values. + +![form validation](/ai-for-service/automation/digital-skills/images/validation-form.png) + +Once the form is validated and submitted, the values are available in the context variable and accessed using the following code: `context.forms..` + +Here we're capturing the user entry and displaying it using a message node. + +![form experience](/ai-for-service/automation/digital-skills/images/user-bot-form-experience.png) + +### Conversation Experience + +From the channel of operation, the end-user is prompted to enter values for every component in the form. + +The values are available in the sub-dialog context and are captured using Entity Post Assignment as mentioned above. + +Following is the user experience in Conversation mode: + +![user experience](/ai-for-service/automation/digital-skills/images/conversation-experience.png) + +### Exceptions + +When exceptions are encountered during the dialog execution with a Form Node, they're handled as follows: + +| EXCEPTION | EXCEPTION BEHAVIOR | +| --- | --- | +| The user tries to continue the conversation without opening the form link. | The AI Agent asks if the user wants to switch to a new task. | +| The user tries to continue the conversation (in the chat window) without submitting the form responses. | The AI Agent asks if the user wants to switch to a new task. | +| The user closes the form or browser without submitting responses. | If the app is configured to cancel the ongoing task, the form displays a warning message that the task will be canceled. If the user accepts, the form will be closed, and a message is displayed saying that the previous task is canceled. Otherwise, the ongoing task goes on, and based on the configuration, the user is taken to the next step of the task. | +| The user tries to relaunch the form while the form is already open. | The form link won't open the form and a message will be displayed saying that the form link is no longer valid. | +| The user tries to relaunch the form after moving ahead in the conversation. | The form link won't open the form and a message will be displayed saying that the form link is no longer valid. | + +### Panel Flow + +Users can access the form using **Panels & Widgets**. The experience is the same as for the Process Flow with Form experience. + +Once the form is validated and submitted, the values are available in the context variable and accessed using the following code: `context.forms..`. + +## Manage AI Agents with Digital Forms + +### Publish + +The publishing flow for an App with Digital Forms has the following special cases: + +As with any AI Agent, the Digital Forms exist in the following states: + +* **In-development** when a form is created. +* **Awaiting approval** when a form is submitted to Publish and the request is waiting for the admin to take action. +* **Rejected** when the Publish request is rejected by the admin. +* **Published** In the Platform, the status of a Digital Form remains In Development even after publishing. + + ![publish status](/ai-for-service/automation/digital-skills/images/publish-status.png) + + On publishing the form, you can see the form listed under **Publish Status → View Publishing Summary**, but the status on the Digital Forms main page remains as _In Development_. + + ![form status](/ai-for-service/automation/digital-skills/images/form-status.png) + + The _In Development_ and _Published_ versions of the AI Agent can be viewed by toggling between the respective statuses in the top search-bar. + + ![va status search](/ai-for-service/automation/digital-skills/images/va-status-search.png) + + +If any edits are done to the Digital Form while it's In Development, the changes would be reflected in the Published version as soon as you publish the form. + +* **Suspended** when a published form is suspended by the admin. + +### Pre-publishing Validations + +The following validations are performed before a Publish request is processed: + +A Dialog Task that contains a Digital Form can be published only if: + +* The corresponding Digital Form is already published, or +* The corresponding Digital Form is also selected for publishing. + +A Digital Form that's configured to trigger a Dialog Task is published only if: + +* The corresponding Dialog Task is already published, or +* The corresponding Dialog Task is selected for publishing. + +While the dependencies are published together, chances are that all the dependencies might not be available at run-time, in such cases: + +* If the Dialog Task is in a published state, but the Digital Form isn't in a published state this triggers: +* The Task Failure Event and the corresponding behavior is invoked or +* A relevant Standard Response is displayed and +* Logged as Failed Task in Analytics. + + * Digital Form is in a published state, but the Dialog Task isn't available then on Form submission, the end-user is presented with the Form’s Error Message. + +### Import + +Digital Forms are included in the full and incremental import of the AI Agent. + +For Full Import: + +* As with all other AI Agent components, the full import replaces the entire Digital Forms and form details. + +For Incremental Import: + +* You can choose to include/exclude the Digital Forms in the import. +* This import fully replaces the Digital Forms that are common to the import file and the AI Agent. +* Additional forms in the file are imported into the AI Agent. +* Additional forms in the AI Agent are retained. +* Post import, any invalid Digital Form integration details are disassociated with the corresponding forms. + +### Export + +The App Export option is available for Digital Forms with a status of *In Development* or *Published*. + +* Digital Forms can be selected/deselected from the **App Export** page under the **Bot Tasks** category. +* Choose the option to _Include dependent dialogs_ to export Dialog Tasks that are integrated with the selected Digital Forms to define widgets. +**Note that this doesn't include the Sub-dialog Tasks generated using Digital Forms.** +* Complete information for each of the selected forms are available in the export file and this includes: + + * Fields + * Field properties + * Form integrations + +## Form Component Details + +### Components List + +Following is a list of the available components. + +**BASIC** + +* **Text Field** – used for single-line input. + + ![text field](/ai-for-service/automation/digital-skills/images/text-field-input.png) + +* **Text Area** – used for multi-line entry. + + ![text area](/ai-for-service/automation/digital-skills/images/text-area.png) + +* **Number** – used for numerical entries. + + ![number field](/ai-for-service/automation/digital-skills/images/number-field.png) + +* **Radio Button** – used as a selection option from a given list. + + ![radio button](/ai-for-service/automation/digital-skills/images/radio-button.png) + +* **Dropdown** – Used as a selection option from a given list; can be multi-select. + + ![dropdown list](/ai-for-service/automation/digital-skills/images/dropdown-list.png) + +* **Checkbox** – Used for multi-select option from a given list. + + ![checkbox](/ai-for-service/automation/digital-skills/images/checkbox.png) + +* **Date** – Used for date entries, gives a date picker for the user to choose the date. + + ![date](/ai-for-service/automation/digital-skills/images/date-calendar.png) + + **Note** : The Date picker displays the month and week names in Japanese characters if the app language is Japanese. This support will be extended to more languages in the future. + + ![date picker - Japanese](/ai-for-service/automation/digital-skills/images/digital-forms-date-picker-japanese.png) + +* **Date & Time** – Used for date & time entries. The system displays a date and time picker for the user to choose the date and time. +Use the **Date component** and set the _Time option_ to _yes_; choose from _12_ or _24-hour_ format. + + ![date and time](/ai-for-service/automation/digital-skills/images/date-time.png) + +* **Phone Number** – Used for phone number entries, allows the user to choose the country code. + + ![phone number](/ai-for-service/automation/digital-skills/images/phone-number.png) + +* **Email** – Used for email address entries, validates for _xxx@uuu.com_ format. + + ![email](/ai-for-service/automation/digital-skills/images/email-field.png) + +* **Toggle** – Used for switching between two values, ideal for yes/no type of inputs. + + ![toggle](/ai-for-service/automation/digital-skills/images/toggle-field.png) + +* **Address** – Used for address entries. + + ![address](/ai-for-service/automation/digital-skills/images/address-field.png) + +* **URL** – Used for web URL entries, validates for _xxx.com_ format. + + ![url](/ai-for-service/automation/digital-skills/images/url-field.png) + +* **Range Slider** – Value selection between specified min and max values; can be represented as a percentage. + + ![range slider](/ai-for-service/automation/digital-skills/images/range-slider.png) + +* **Password** - Used to display passwords in their masked form ```*****``` + +**ADVANCED** + +* **Button** – Used as a clickable component to submit reset, or open an external URL the form. Choose from _Primary_, _Secondary_, _Tertiary_, _Ghost,_ or _Danger_. + + ![button](/ai-for-service/automation/digital-skills/images/button-field.png) + +* **Label** – Used to display a static text box, no action required from the user. + + ![label](/ai-for-service/automation/digital-skills/images/label-field.png) + +* **Protip** – Used to mark important information for the end-user, no user action required. + + ![protip](/ai-for-service/automation/digital-skills/images/protip-field.png) + +* **Note** - Used to mark information for the end-user, no user action required. + + ![note](/ai-for-service/automation/digital-skills/images/note-field.png) + +### Component Properties + +The following are the properties that can be set for each of the components. + +Not all the properties are valid for all the components, refer to the [Property Matrix](#component-properties) for the mapping. + +| PROPERTY | DESCRIPTION | +| --- | --- | +| **Display Name** | This is the text which appears against the component for the end-users. | +| **Name** | This is the reference name that can be used for referencing the component in the other components of the form and form level operations | +| **Description** | Help information about a field to be displayed to the end-user. | +| **Placeholder Text** | A prompt message for the end-user | +| **Button Style** | For button component, can be: Primary, Secondary, Tertiary, Ghost, or Danger | +| **Button Action** | For button component, can be: Submit, Reset, or Go to URL – in this case, you need to enter a URL in the corresponding field. | +| **Read Only** | To mark the component value isn't changeable | +| **Required** | To define whether input for this field is necessary or optional for the end-user entry. | +| **Tool-tip** | Additional information about a field to be shown on demand to the end-user. Has three entries: Tip Text – text message for the additional information about the component Tool-tip Type – whether the tip appears on hover or click Tool-tip Position – where the tooltip should be displayed | +| **Date Format** | Time format to be presented to the end-user can be mm/dd/yyyy – default dd/mm/yyyy yyyy/mm/dd yyyy/dd/mm | +| **Time** | To enable the end-user to enter Time along with Date | +| **Time Format** Used in conjunction with the above Time property | Time format to be presented to the end-user can be 12 hrs or 24 hrs | +| **Default Country Code** | Choose the desired default country code that should be shown to the end-user. Default is United States +1 | +| **Secure Field Data** | To Secure the user information collected by this field. | +| **Masking Type** Available only when Secure Field Data is enabled | Choose how to display the redacted data in the App Context, Debug Logs, Service Calls, Agent Transfer and the Bot Kit. Following actions are available: Redaction – The platform will replace the user input with a unique random system-generated alphanumeric value. This is the default setting when the Secure Field Data is enabled Replacement – The platform will replace the user input with a static value or reference to a context object as entered in the replacement value field. Mask with Character – The platform will replace the first few and last few characters of the user input with symbols. You can specify the number and position of characters to mask, symbol for masking (+ or #). | +| **Mask Input** Available only when Secure Field Data is enabled | Enable this option to mask the end-user’s input for this field in the chat window. | +| **Checkbox Layout** | Choose the number of columns to present the checkbox values in the grid view. You can select a minimum of 1 and a maximum of 4 columns, with 4 columns being the default selection. | +| **Data Settings** | | +| **Default Value** | In case the component needs to be pre-populated with a default value | +| **Values** | For Radio Button, Dropdown and Checkbox, add values to be given for selection by the end-user. You can mark one value as a default value | +| **Multi-Select** | For Dropdown, if the user can select multiple values. | +| **Validation Settings** | | +| **Default Error Message** | To be displayed in case user entry fails validation | +| **Validate** | To define when the validations defined for a field are to be checked. Options are: On blur – Validations would be done when the end-user moves away from the component On change – Validations would be done when the component value is changed | +| **Validation Rule** | Rules in the following format can be added **Operator** – Choose the required option based on the validation condition you want to set for the input field. Each component type supports specific operators that enable the validation. Note The Platform now supports **Regular Expression (Regex)** for more complex validations. It provides a powerful and flexible pattern-matching capability, allowing for precise validation of input formats. Regex checks the input field against the specified pattern, which includes the format and conditions that the input must meet. For example, if the age limit should be 18 and above for vaccination, the regular expression is /^(1[89]\|[2-9]\d)$/gm . **Comparison Type** – Set to either value or field/component or value type. **Comparison With** – The value or component name or type, as per the above selection. Multiple rules added to an existing rule would be taken as an AND condition, whereas a new rule would be an OR condition. You can add multiple Simple rules or a single Advanced rule by toggling between Simple and Advanced Modes. | +| **Custom Error Message** | This would be displayed when a particular validation fails | +| **Visibility Settings** | | +| **Is Visible** | Whether the given component is visible to the end-user or not | +| **Visibility Rules** | You can define conditions when a particular component would be visible or hidden Hide or Visible Add Visibility Rules by defining the following: Component/Field which determines this component behavior- choose from the list Operator – choose from the list Comparison Type – set to either value or field/component or value type Comparison With – the value or component name or type, as per the above selection Multiple rules added to an existing rule would be taken as an AND condition, whereas a new rule would be an OR condition. You can add multiple Simple rules or a single Advanced rule by toggling between Simple and Advanced Modes | +| **Auto Populate** | | +| **Auto Population** | Whether the given component should be auto-populated or not | +| **Auto population rules** | Field or Value from which to auto-populate Field name or the actual value based on the above selection | +| **Custom Validation** | | +| **Custom Validation** | Perform complex field and form level validations on dynamic variables by defining a JavaScript code for the Post Processor script. When the **Submit** button is clicked, the script runs to perform custom validations on multiple form fields before the form submission. For example, create a script that ensures the phone number field accepts only 10-digit numbers and rejects any alphabets or special characters. **Failure Scenario** If the defined Post-Processor script fails, a task failure event is triggered, and the reason for the failure is logged under **Task Execution Logs** > **Debug Log** for the **Form** node. When a field-level validation error occurs, the specific error field is highlighted, and the error message defined in the script is displayed below the field and above the **Submit** button. | + +### Component Mapping Properties + +#### Basic + +| Property | Text Field | Text Area | Number | Radio Button | Check Box | Drop Down | Date | Phone Number | Email | Address | Url | Toggle | Range Slider | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| **General Settings** | | | | | | | | | | | | | | +| **Display Name** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Name** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Description** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Placeholder Text** | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | +| **Read Only** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Required** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Tool-tip** | | | | | | | | | | | | | | +| **Tip Text** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Tool-tip Type** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Tool-tip Position** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Date Format** | No | No | No | No | No | No | Yes | No | No | No | No | No | No | +| **Time &** **Time Format** | No | No | No | No | No | No | Yes | No | No | No | No | No | No | +| **Default Country Code** | No | No | No | No | No | No | No | Yes | No | No | No | No | No | +| **Checkbox Layout** | No | No | No | No | Yes | No | No | No | No | No | No | No | No | +| **Secure Data** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Masking Type** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Mask Input** | Yes | No | Yes | No | No | No | No | No | No | No | No | No | No | +| **Data Settings** | | | | | | | | | | | | | | +| **Data Source** | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | +| **Default Value** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Multiselect** | No | No | No | No | No | Yes | No | No | No | No | No | No | No | +| **Auto Fill** | | | | | | | | | | | | | | +| **Auto Populate** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Auto Populate Settings** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Visibility Settings** | | | | | | | | | | | | | | +| **Is Visible** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Visibility Settings** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Validations** | | | | | | | | | | | | | | +| **Default Error Message** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Validate** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Equals To** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | TBD | Yes | Yes | Yes | +| **Not equal to** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | | Yes | Yes | Yes | +| **Contains** | Yes | Yes | No | No | No | No | No | No | No | No | No | No | No | +| **Doesn't contain** | Yes | Yes | No | No | No | No | No | No | No | | No | No | No | +| **Regex** | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Max Length** | Yes | Yes | No | No | No | No | No | Yes | Yes | | Yes | No | No | +| **Min Length** | Yes | Yes | No | No | No | No | No | Yes | Yes | | Yes | No | No | +| **Part of** | Yes | No | No | No | No | No | No | No | No | | No | No | No | +| **Not part of** | Yes | No | No | No | No | No | No | No | No | | No | No | No | +| **Greater than** | No | No | Yes | No | No | No | Yes | No | No | | No | No | Yes | +| **Less than** | No | No | Yes | No | No | No | Yes | No | No | | No | No | Yes | +| **Greater than or equal to** | No | No | Yes | No | No | No | Yes | No | No | | No | No | Yes | +| **Less than or equal to** | No | No | Yes | No | No | No | Yes | No | No | | No | No | Yes | + +#### Advanced + +| PROPERTY | BUTTON | RICHTEXT | PRO-TIP | +| --- | --- | --- | --- | +| **General Settings** | | | | +| **Display Name** | Yes | Yes | Yes | +| **Name** | Yes | Yes | Yes | +| **Description** | Yes | No | Yes | +| **Placeholder Text** | No | No | No | +| **Tool-tip** | Yes | Yes | No | +| **Error Message** | Yes | No | No | +| **Required** | No | No | No | +| **Validate** | Yes | No | No | +| **Read Only** | Yes | No | No | +| **Action Type** (Submit, Reset, Clear) | Yes | No | No | +| **Data Settings** | | | | +| **Data Source** | No | No | No | +| **Default Value** | No | No | No | +| **Auto Fill** | | | | +| **Auto-Populate** | No | No | No | +| **Auto-Populate Settings** | No | No | No | +| **Visibility Settings** | | | | +| **Is Visible** | Yes | Yes | Yes | +| **Visibility Settings** | Yes | Yes | Yes | + +#### Dialog Node + +The following mapping gives the type of entities included in the sub-dialog when it's auto-generated from a Digital Form. + +| Form Component Property | Dialog Task Node Property | +| --- | --- | +| Name | Name | +| Display Name | Display Name | +| Placeholder Text | Entity Prompt | +| Error Message | Error Prompt | + + +| Digital Form Component Type | Dialog Task Node Type | +| --- | --- | +| Text Field | String | +| Text Area | Description | +| Number | Number | +| Radio Button | LoI (Enum) with each of the options in the radio button group copied as list items | +| Dropdown | LoI (Enum) with each of the values in the dropdown list copied as list items. Multi-select would be enabled based on the ‘is multi-select’ option of the Form Component | +| Checkbox | LoI (Enum) with each of the options in the checkbox group copied as list items Multi-select is enabled by default | +| Date | Date | +| Phone Number | Phone Number | +| Email | Email | +| Address | Address | +| URL | URL | +| Toggle | LoI (Enum) with each of the options in the toggle copied as list items | +| **Advanced** | | +| Button | Not Applicable | +| Label | Not Applicable | +| Protip | Not Applicable | +| Note | Not Applicable | + +#### Context Object + +The following mapping gives the context object to capture the component value along with a sample context object. + +| COMPONENT TYPE | CONTEXT OBJECT | +| --- | --- | +| Text Field | context.forms. . | +| Text Area | context.forms. . | +| Number | context.forms. . | +| Radio Button | context.forms. . | +| Dropdown | context.forms. . [ ] | +| Checkbox | context.forms. . [ ] | +| Date | context.forms. . In mm/dd/yyyy format | +| Date & Time | context.forms. . In mm/dd/yyyy hh:mm AM/PM format | +| Phone Number | context.forms. . prefixed with the area code of the country selected by the user | +| Email | context.forms. . | +| Address | context.forms. . | +| URL | context.forms. . | +| Toggle | context.forms. . Yes/No values | +| Range Slider | context.forms. . | + +**SAMPLE CONTEXT OBJECT** + +```js +"forms": { + "basicpropertieslist": { + "TextField": "text", + "Textarea": "text area", + "Number": 123, + "Radio": "Male", + "Dropbox": [ + "UnderGrad", + "Other" + ], + "Checkbox": [ + "Education", + "Technology" + ], + "Date": "07/08/2020", + "Date&Time": "07/08/2020 19:00 PM", + "PhoneNumber": "+919999999999", + "Email": "john.doe@example.com", + "toggle": "Yes", + "Address": "Address", + "Url": "test.com", + "rangeSlider": 26.1 + } + } +``` + +### Prefill Form + +You can specify data that can be used to pre-populate the form fields. Platform will check for the availability of any form prefill information before launching the form. If any information is available, then the corresponding fields in the form are pre-populated before presenting the form to the user. The values can be static or from a context object. + +You can specify pre-fill form data using the following context object: `context.prefillForms`. + +You can use the following in Javascript to populate the above-mentioned context object: + +```js +context.prefillForms = { + : { + fields: { + : "", + : , + : [ + Kore.ai’s GitHub profile. +* [Digital Forms](/ai-for-service/automation/digital-skills/digital-forms) +* [Digital Views](/ai-for-service/automation/digital-skills/digital-views) +* [Configure Digital Forms](/ai-for-service/automation/digital-skills/configure-digital-forms) +* [Configure Digital Views](/ai-for-service/automation/digital-skills/configure-digital-views) \ No newline at end of file diff --git a/ai-for-service/automation/digital-skills/digital-views.mdx b/ai-for-service/automation/digital-skills/digital-views.mdx new file mode 100644 index 000000000..19471c286 --- /dev/null +++ b/ai-for-service/automation/digital-skills/digital-views.mdx @@ -0,0 +1,171 @@ +--- +title: Digital Views +noindex: true +hidden: true +--- + + + +AI Agents typically interact through chat, voice, or messaging channels, responding only when users ask for something — usually with a short reply, confirmation, or acknowledgment. As demand grows for more proactive updates and richer, less input-heavy interfaces, a visual layer becomes essential. + +Using **Digital Views** from the Platform, you can design and launch rich visual experiences through interactive components, panels, and widgets, to proactively present relevant information to your users or customers. **Panels** hold one or more **Widgets**, which are individual components that display information to end-users. Users can interact with your AI Agent either in conversation mode or directly through the widgets. + +This article gives an overview on the working and implementation of **Panels & Widgets**. For step-by-step usage instructions, click [here](/ai-for-service/automation/digital-skills/configure-digital-views). + + +## How It Works + +1. Using Digital Views, an organization offers to its AI Agent end-users a single interface for various activities. +2. Multiple panels constitute a Digital View. +3. Each of the panels gives access to various functions. +4. The end-user accesses these panels for information pertaining to each of the functions and performs follow-up actions. +5. As an example, a Panel within a travel App could have multiple widgets showing: + + * Upcoming Trips + * Completed Bookings + * Canceled Bookings + + ![access digital views](/ai-for-service/automation/digital-skills/images/access-digitalviews.png) + +You can access Digital Views by selecting the App you want to work with then going to **Automation AI > Digital Skills > Digital Views**. + +## Setup Process + +You can enable Digital Views for your AI Agent by designing the required widgets, adding them to relevant panels, and publishing them on the Widget SDK channel: + +1. **Configure Widgets**: Define widgets by connecting them either to a Dialog Task or another source, such as a JavaScript-generated JSON file. If connecting to a Dialog Task, use a Message node to present the required information via a supported widget template. +2. **Preview the Widgets**: Preview your widgets from the Platform to review how the information will be presented. +3. **Set up Panels**: Create one or more panels, each hosting the widgets relevant to that panel's purpose. +4. **Test the Panels**: Test how the panels and widgets render in the chat window. +5. **Publish**: Publish the App, and enable the Widget SDK channel, to make the panels and widgets available to end-users. +6. **Host**: Host your widgets independently or co-host them with the Web SDK. Download the SDKs from the [Kore.ai GitHub page](https://github.com/Koredotcom/web-kore-sdk). + + +## Configure Widgets + +Widgets are individual components that can communicate with the App for presenting information to the end-users. The source of information for widgets is from a Dialog Task or a JSON using any of the predefined widget templates. + +To configure widgets, follow the below steps: + +1. Click **Create Widget** to create a widget. + + ![create widget](/ai-for-service/automation/digital-skills/images/create-widget.png) + +2. The New Widget dialog opens. + + ![new widget dialog](/ai-for-service/automation/digital-skills/images/new-widget-dialog.png) + +3. On the **New Widget** window, enter the following details: + + * **Name** of the widget + * **Display Name** for the widget + * **Auto Refresh** to set the frequency with which this widget needs a poll for fresh data. The refresh is applicable only when the panel containing the widget is active. + * **Source** for a widget can be set either from the execution of Dialog Task, from JavaScript by defining a JSON, or by linking an existing Digital Form. + +4. Click **Save**. + +### Configure Widget Sources + +For the widget input data, you must configure one of the following sources and complete the configuration. + +### Dialog Task + +The **Dialog Task** option allows you to trigger a task and present the output in the widget. + +The **Select Dialog Task** drop-down will list all available tasks in the current AI Agent. Select the task you want to trigger using this widget. + +In the connected Dialog Task make sure to use a Message node to present the required information in the widget using any of the supported widget templates. + +You can use the icon next to the Dialog Task to open the Dialog Task for checking the task details like entity names etc. + +Any entities used by the selected Dialog Task need to be pre-populated with values by mapping **Entity Name** with **Entity Values**. + +If the selected Dialog Task has any **Authorization Profile** defined, it's displayed here. + +![dialog task source](/ai-for-service/automation/digital-skills/images/dialog-task-source.png) + +### JSON + +When selecting JSON as the source, you'll be presented with a Javascript editor, where you can add your code, as shown below: + +![json file upload](/ai-for-service/automation/digital-skills/images/json-source-file.png) + +### Digital Form + +When selecting **Digital Form** as a widget source, you can select the Digital Form, and the Dialog Task to trigger on submission. + +A Digital Form can be used to define multiple Widgets and can also be added to multiple Panels. However, it'll be associated with the same Dialog Task across all Widgets and Panels. + +![digital form as source](/ai-for-service/automation/digital-skills/images/digital-form-as-source.png) + +### Edit, Run & Preview a Widget + +After you save, the widget will be **In Development** state. You can **Edit** or **Delete** the widget. + +![widget saved](/ai-for-service/automation/digital-skills/images/widget-saved.png) + +When you select **Edit** widget, apart from being able to modify any of the above fields, you'll have the option to **Run & Preview** the widget. You can save the preview as the thumbnail display for the widget. + +![widget preview](/ai-for-service/automation/digital-skills/images/run-widget-preview.png) + +## Configure Panels + +Panel refers to containers that hold one or more widgets. You can add an existing widget to the panel or create new widgets within it. + +### Create a Panel + +To create a panel, follow the steps below: + +1. Click **Create Panel** on the Digital Views screen to create a panel. +2. On the **New Panel** window, enter the following details: + + * **Name** of the Panel. + * **Display Name** for the Panel. + * **Panel Icon** to display in the chat window (URL to the location). + * **Save** the Panel. + + ![create new digital view panel](/ai-for-service/automation/digital-skills/images/create-new-digital-view-panel.png) + +3. After you save, the panel will be **In Development** and will be displayed on your Digital Views screen. + +### Add Widgets + +1. Click **Add Widget** to add widgets to the panel. + + ![add widget to panel](/ai-for-service/automation/digital-skills/images/panel-add-widget.png) + +2. Select widgets from the drop-down list and click **Add**. You can add multiple widgets to the same panel. + + ![select widgets from dropdown](/ai-for-service/automation/digital-skills/images/select-widgets-from-dropdown-list.png) + +### Panel Options + +You have the following options for a given panel: + +1. **Edit** the panel details; +2. **Add Form** to add existing forms to the Panel. Once added, forms will behave as a widget with the source set to Digital Form; + + * **Add Widget** to add existing widgets; + * **Panel Management** to add existing forms/widgets, or remove already added forms/widgets from the panel. + * **Test** the individual panel – this opens the **Talk to App** window along with the panel listing with the current panel active and data presented. You can interact with the AI Agent and test the panel. + * **Delete** the Panel. + + ![panel options for digital views](/ai-for-service/automation/digital-skills/images/panel-options-for-digital-views.png) + +## Publish + +When you publish your App, please ensure that the panels and widgets you want to include are selected. + +[Learn more](/ai-for-service/automation/digital-skills/configure-digital-views#publish) about publishing an App. + +![publish digital view](/ai-for-service/automation/digital-skills/images/publish-digitalview.png) + +## Host + +The Platform provides the Widget SDK for hosting and managing panels and widgets. You can choose to host your widgets independently or co-host them along with the WebSDK. You can download the SDKs from the Kore.ai GitHub page. Do ensure to enable WidgetSDK as a channel. [Learn more](/ai-for-service/channels/add-widget-sdk-channel). + +## Related Articles + +* [Configure Digital Views](/ai-for-service/automation/digital-skills/configure-digital-views) +* [Digital Forms](/ai-for-service/automation/digital-skills/digital-forms) +* [Digital Skills Overview](/ai-for-service/automation/digital-skills/digital-skills-overview) \ No newline at end of file diff --git a/ai-for-service/automation/digital-skills/images/access-digital-forms.png b/ai-for-service/automation/digital-skills/images/access-digital-forms.png new file mode 100644 index 000000000..59dc40ef5 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/access-digital-forms.png differ diff --git a/ai-for-service/automation/digital-skills/images/access-digitalviews.png b/ai-for-service/automation/digital-skills/images/access-digitalviews.png new file mode 100644 index 000000000..5a30c491d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/access-digitalviews.png differ diff --git a/ai-for-service/automation/digital-skills/images/access-feedback-survey.png b/ai-for-service/automation/digital-skills/images/access-feedback-survey.png new file mode 100644 index 000000000..e3e070709 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/access-feedback-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/access-using-a-connector.png b/ai-for-service/automation/digital-skills/images/access-using-a-connector.png new file mode 100644 index 000000000..8d465aab5 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/access-using-a-connector.png differ diff --git a/ai-for-service/automation/digital-skills/images/account-view.png b/ai-for-service/automation/digital-skills/images/account-view.png new file mode 100644 index 000000000..bd69f99e3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/account-view.png differ diff --git a/ai-for-service/automation/digital-skills/images/acknowledge-message-modify.png b/ai-for-service/automation/digital-skills/images/acknowledge-message-modify.png new file mode 100644 index 000000000..cfa01b13c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/acknowledge-message-modify.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-additional-fields.png b/ai-for-service/automation/digital-skills/images/add-additional-fields.png new file mode 100644 index 000000000..d1afb8428 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-additional-fields.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-and-continue.png b/ai-for-service/automation/digital-skills/images/add-and-continue.png new file mode 100644 index 000000000..7a66b55e3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-and-continue.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-and-exit.png b/ai-for-service/automation/digital-skills/images/add-and-exit.png new file mode 100644 index 000000000..18ad65a97 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-and-exit.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-api-dialog.png b/ai-for-service/automation/digital-skills/images/add-api-dialog.png new file mode 100644 index 000000000..ed5d6be2d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-api-dialog.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-api-window.png b/ai-for-service/automation/digital-skills/images/add-api-window.png new file mode 100644 index 000000000..545950b2d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-api-window.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-auth-field-api-key.png b/ai-for-service/automation/digital-skills/images/add-auth-field-api-key.png new file mode 100644 index 000000000..c413ae6ac Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-auth-field-api-key.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-auth-field-v2.png b/ai-for-service/automation/digital-skills/images/add-auth-field-v2.png new file mode 100644 index 000000000..6545a7ad0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-auth-field-v2.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-auth-field.png b/ai-for-service/automation/digital-skills/images/add-auth-field.png new file mode 100644 index 000000000..a5bc12837 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-auth-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-component-in-form.png b/ai-for-service/automation/digital-skills/images/add-component-in-form.png new file mode 100644 index 000000000..6372a577e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-component-in-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-feedback.png b/ai-for-service/automation/digital-skills/images/add-feedback.png new file mode 100644 index 000000000..3dcb39818 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-feedback.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-form-field.png b/ai-for-service/automation/digital-skills/images/add-form-field.png new file mode 100644 index 000000000..0cb4e2cb8 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-form-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-form-fields-v2.png b/ai-for-service/automation/digital-skills/images/add-form-fields-v2.png new file mode 100644 index 000000000..d18ebda5f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-form-fields-v2.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-kg-node.gif b/ai-for-service/automation/digital-skills/images/add-kg-node.gif new file mode 100644 index 000000000..a9c1103ef Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-kg-node.gif differ diff --git a/ai-for-service/automation/digital-skills/images/add-new-smalltalk-group.png b/ai-for-service/automation/digital-skills/images/add-new-smalltalk-group.png new file mode 100644 index 000000000..a45779f39 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-new-smalltalk-group.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-panel-name.png b/ai-for-service/automation/digital-skills/images/add-panel-name.png new file mode 100644 index 000000000..b9ccc798e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-panel-name.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-password-field-api.png b/ai-for-service/automation/digital-skills/images/add-password-field-api.png new file mode 100644 index 000000000..72e513f85 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-password-field-api.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-password-field.png b/ai-for-service/automation/digital-skills/images/add-password-field.png new file mode 100644 index 000000000..d18ebda5f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-password-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-pre-processor-rss.png b/ai-for-service/automation/digital-skills/images/add-pre-processor-rss.png new file mode 100644 index 000000000..7829ff6d2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-pre-processor-rss.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-pre-processor.png b/ai-for-service/automation/digital-skills/images/add-pre-processor.png new file mode 100644 index 000000000..8af000e1b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-pre-processor.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-query-response.gif b/ai-for-service/automation/digital-skills/images/add-query-response.gif new file mode 100644 index 000000000..cd999565d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-query-response.gif differ diff --git a/ai-for-service/automation/digital-skills/images/add-section.png b/ai-for-service/automation/digital-skills/images/add-section.png new file mode 100644 index 000000000..c25d8a598 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-section.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-smalltalk-group-name.png b/ai-for-service/automation/digital-skills/images/add-smalltalk-group-name.png new file mode 100644 index 000000000..3c91acac9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-smalltalk-group-name.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-term-traits.png b/ai-for-service/automation/digital-skills/images/add-term-traits.png new file mode 100644 index 000000000..c37f7e2a6 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-term-traits.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-user-utterance-app-response-pairs.png b/ai-for-service/automation/digital-skills/images/add-user-utterance-app-response-pairs.png new file mode 100644 index 000000000..05c9912eb Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-user-utterance-app-response-pairs.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-user-utterance-bot-response-pairs1.png b/ai-for-service/automation/digital-skills/images/add-user-utterance-bot-response-pairs1.png new file mode 100644 index 000000000..d3133d645 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-user-utterance-bot-response-pairs1.png differ diff --git a/ai-for-service/automation/digital-skills/images/add-widget-to-panel.png b/ai-for-service/automation/digital-skills/images/add-widget-to-panel.png new file mode 100644 index 000000000..5600f1ed2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/add-widget-to-panel.png differ diff --git a/ai-for-service/automation/digital-skills/images/address-field.png b/ai-for-service/automation/digital-skills/images/address-field.png new file mode 100644 index 000000000..c3ec00233 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/address-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/adjust-feedback-score-counter.png b/ai-for-service/automation/digital-skills/images/adjust-feedback-score-counter.png new file mode 100644 index 000000000..47250bc85 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/adjust-feedback-score-counter.png differ diff --git a/ai-for-service/automation/digital-skills/images/advanced-settings-rest-api.png b/ai-for-service/automation/digital-skills/images/advanced-settings-rest-api.png new file mode 100644 index 000000000..8b2145d3e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/advanced-settings-rest-api.png differ diff --git a/ai-for-service/automation/digital-skills/images/advanced-settings-rss.png b/ai-for-service/automation/digital-skills/images/advanced-settings-rss.png new file mode 100644 index 000000000..a57632e65 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/advanced-settings-rss.png differ diff --git a/ai-for-service/automation/digital-skills/images/alert-task-advanced-setting.png b/ai-for-service/automation/digital-skills/images/alert-task-advanced-setting.png new file mode 100644 index 000000000..459eea961 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alert-task-advanced-setting.png differ diff --git a/ai-for-service/automation/digital-skills/images/alert-task-associate-namespace.png b/ai-for-service/automation/digital-skills/images/alert-task-associate-namespace.png new file mode 100644 index 000000000..2691f7aea Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alert-task-associate-namespace.png differ diff --git a/ai-for-service/automation/digital-skills/images/alert-task-filter.png b/ai-for-service/automation/digital-skills/images/alert-task-filter.png new file mode 100644 index 000000000..9c6d97888 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alert-task-filter.png differ diff --git a/ai-for-service/automation/digital-skills/images/alert-tasks-path.png b/ai-for-service/automation/digital-skills/images/alert-tasks-path.png new file mode 100644 index 000000000..c556b802c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alert-tasks-path.png differ diff --git a/ai-for-service/automation/digital-skills/images/alert-tasks-settings.png b/ai-for-service/automation/digital-skills/images/alert-tasks-settings.png new file mode 100644 index 000000000..d138d4cc7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alert-tasks-settings.png differ diff --git a/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.jpg b/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.jpg new file mode 100644 index 000000000..ca5c9ae49 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.jpg differ diff --git a/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.png b/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.png new file mode 100644 index 000000000..2ee7f6fec Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alerts-advanced-settings.png differ diff --git a/ai-for-service/automation/digital-skills/images/alerts-authorization.jpg b/ai-for-service/automation/digital-skills/images/alerts-authorization.jpg new file mode 100644 index 000000000..fdba1c115 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alerts-authorization.jpg differ diff --git a/ai-for-service/automation/digital-skills/images/alerts-authorization.png b/ai-for-service/automation/digital-skills/images/alerts-authorization.png new file mode 100644 index 000000000..8d557959e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alerts-authorization.png differ diff --git a/ai-for-service/automation/digital-skills/images/alternate-responses.png b/ai-for-service/automation/digital-skills/images/alternate-responses.png new file mode 100644 index 000000000..62d3ec74a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/alternate-responses.png differ diff --git a/ai-for-service/automation/digital-skills/images/annotate-and-extract-demo.gif b/ai-for-service/automation/digital-skills/images/annotate-and-extract-demo.gif new file mode 100644 index 000000000..19a611a42 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/annotate-and-extract-demo.gif differ diff --git a/ai-for-service/automation/digital-skills/images/api-request-add.png b/ai-for-service/automation/digital-skills/images/api-request-add.png new file mode 100644 index 000000000..c223da261 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/api-request-add.png differ diff --git a/ai-for-service/automation/digital-skills/images/auth-fields-oauth.png b/ai-for-service/automation/digital-skills/images/auth-fields-oauth.png new file mode 100644 index 000000000..6545a7ad0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/auth-fields-oauth.png differ diff --git a/ai-for-service/automation/digital-skills/images/auth-headers.png b/ai-for-service/automation/digital-skills/images/auth-headers.png new file mode 100644 index 000000000..9539c44e5 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/auth-headers.png differ diff --git a/ai-for-service/automation/digital-skills/images/auth-parameters-rss.png b/ai-for-service/automation/digital-skills/images/auth-parameters-rss.png new file mode 100644 index 000000000..c46b301a1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/auth-parameters-rss.png differ diff --git a/ai-for-service/automation/digital-skills/images/auth-type-api-key.png b/ai-for-service/automation/digital-skills/images/auth-type-api-key.png new file mode 100644 index 000000000..a17ed5626 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/auth-type-api-key.png differ diff --git a/ai-for-service/automation/digital-skills/images/authorization-fields.png b/ai-for-service/automation/digital-skills/images/authorization-fields.png new file mode 100644 index 000000000..53db252e2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/authorization-fields.png differ diff --git a/ai-for-service/automation/digital-skills/images/authorize-an-ap-key.png b/ai-for-service/automation/digital-skills/images/authorize-an-ap-key.png new file mode 100644 index 000000000..98f113d4b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/authorize-an-ap-key.png differ diff --git a/ai-for-service/automation/digital-skills/images/authorize-to-use-account.png b/ai-for-service/automation/digital-skills/images/authorize-to-use-account.png new file mode 100644 index 000000000..e5a30664b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/authorize-to-use-account.png differ diff --git a/ai-for-service/automation/digital-skills/images/automatic-training.png b/ai-for-service/automation/digital-skills/images/automatic-training.png new file mode 100644 index 000000000..2a6c66a08 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/automatic-training.png differ diff --git a/ai-for-service/automation/digital-skills/images/bank-bot.mp4 b/ai-for-service/automation/digital-skills/images/bank-bot.mp4 new file mode 100644 index 000000000..6c9ea3b6f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/bank-bot.mp4 differ diff --git a/ai-for-service/automation/digital-skills/images/banking-form.png b/ai-for-service/automation/digital-skills/images/banking-form.png new file mode 100644 index 000000000..71f0d498b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/banking-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/branding-appearance.png b/ai-for-service/automation/digital-skills/images/branding-appearance.png new file mode 100644 index 000000000..7609f5cb0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/branding-appearance.png differ diff --git a/ai-for-service/automation/digital-skills/images/branding-flight-search.png b/ai-for-service/automation/digital-skills/images/branding-flight-search.png new file mode 100644 index 000000000..d9813348d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/branding-flight-search.png differ diff --git a/ai-for-service/automation/digital-skills/images/button-field.png b/ai-for-service/automation/digital-skills/images/button-field.png new file mode 100644 index 000000000..4fe2fc7fa Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/button-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/checkbox.png b/ai-for-service/automation/digital-skills/images/checkbox.png new file mode 100644 index 000000000..e0a532f0e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/checkbox.png differ diff --git a/ai-for-service/automation/digital-skills/images/child-item.gif b/ai-for-service/automation/digital-skills/images/child-item.gif new file mode 100644 index 000000000..a6f2b4018 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/child-item.gif differ diff --git a/ai-for-service/automation/digital-skills/images/click-manage-responses.png b/ai-for-service/automation/digital-skills/images/click-manage-responses.png new file mode 100644 index 000000000..b78b8a002 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/click-manage-responses.png differ diff --git a/ai-for-service/automation/digital-skills/images/click-new-survey.png b/ai-for-service/automation/digital-skills/images/click-new-survey.png new file mode 100644 index 000000000..af35e1d5e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/click-new-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/click-next-add-feedback-survey.png b/ai-for-service/automation/digital-skills/images/click-next-add-feedback-survey.png new file mode 100644 index 000000000..9efee27a9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/click-next-add-feedback-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/click-test-auth-v2.png b/ai-for-service/automation/digital-skills/images/click-test-auth-v2.png new file mode 100644 index 000000000..f14a77bb3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/click-test-auth-v2.png differ diff --git a/ai-for-service/automation/digital-skills/images/click-test-authorization.png b/ai-for-service/automation/digital-skills/images/click-test-authorization.png new file mode 100644 index 000000000..645c368c0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/click-test-authorization.png differ diff --git a/ai-for-service/automation/digital-skills/images/configuration-form-node.png b/ai-for-service/automation/digital-skills/images/configuration-form-node.png new file mode 100644 index 000000000..6f482b512 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configuration-form-node.png differ diff --git a/ai-for-service/automation/digital-skills/images/configure-bot-actions-2.png b/ai-for-service/automation/digital-skills/images/configure-bot-actions-2.png new file mode 100644 index 000000000..66bdab496 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configure-bot-actions-2.png differ diff --git a/ai-for-service/automation/digital-skills/images/configure-bot-actions.png b/ai-for-service/automation/digital-skills/images/configure-bot-actions.png new file mode 100644 index 000000000..3d1c72a0a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configure-bot-actions.png differ diff --git a/ai-for-service/automation/digital-skills/images/configure-if-condition.png b/ai-for-service/automation/digital-skills/images/configure-if-condition.png new file mode 100644 index 000000000..3a02d733c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configure-if-condition.png differ diff --git a/ai-for-service/automation/digital-skills/images/configure-schedule-for-a-task.png b/ai-for-service/automation/digital-skills/images/configure-schedule-for-a-task.png new file mode 100644 index 000000000..8a5492a0b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configure-schedule-for-a-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/configure-test-authorization.png b/ai-for-service/automation/digital-skills/images/configure-test-authorization.png new file mode 100644 index 000000000..741ce56fb Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/configure-test-authorization.png differ diff --git a/ai-for-service/automation/digital-skills/images/content-type.png b/ai-for-service/automation/digital-skills/images/content-type.png new file mode 100644 index 000000000..f4a2fb8a0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/content-type.png differ diff --git a/ai-for-service/automation/digital-skills/images/conversation-experience.png b/ai-for-service/automation/digital-skills/images/conversation-experience.png new file mode 100644 index 000000000..42146962d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/conversation-experience.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-alert-task-settings.jpg b/ai-for-service/automation/digital-skills/images/create-alert-task-settings.jpg new file mode 100644 index 000000000..f0e4de855 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-alert-task-settings.jpg differ diff --git a/ai-for-service/automation/digital-skills/images/create-alert-task-settings.png b/ai-for-service/automation/digital-skills/images/create-alert-task-settings.png new file mode 100644 index 000000000..73762d6e7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-alert-task-settings.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-alert-task.jpg b/ai-for-service/automation/digital-skills/images/create-new-alert-task.jpg new file mode 100644 index 000000000..9d220b389 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-alert-task.jpg differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-alert-task.png b/ai-for-service/automation/digital-skills/images/create-new-alert-task.png new file mode 100644 index 000000000..de8c0a603 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-alert-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-api-request.png b/ai-for-service/automation/digital-skills/images/create-new-api-request.png new file mode 100644 index 000000000..98f113d4b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-api-request.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-authorization.png b/ai-for-service/automation/digital-skills/images/create-new-authorization.png new file mode 100644 index 000000000..98f113d4b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-authorization.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-digital-view-panel.png b/ai-for-service/automation/digital-skills/images/create-new-digital-view-panel.png new file mode 100644 index 000000000..9b7e33472 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-digital-view-panel.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-new-form.png b/ai-for-service/automation/digital-skills/images/create-new-form.png new file mode 100644 index 000000000..6b124a598 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-new-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/create-widget.png b/ai-for-service/automation/digital-skills/images/create-widget.png new file mode 100644 index 000000000..f666edd2b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/create-widget.png differ diff --git a/ai-for-service/automation/digital-skills/images/csat-survey.png b/ai-for-service/automation/digital-skills/images/csat-survey.png new file mode 100644 index 000000000..aaa096b4c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/csat-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/data-settings-add-value.png b/ai-for-service/automation/digital-skills/images/data-settings-add-value.png new file mode 100644 index 000000000..925c2b0fa Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/data-settings-add-value.png differ diff --git a/ai-for-service/automation/digital-skills/images/data-settings.png b/ai-for-service/automation/digital-skills/images/data-settings.png new file mode 100644 index 000000000..16e09f5f6 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/data-settings.png differ diff --git a/ai-for-service/automation/digital-skills/images/date-calendar.png b/ai-for-service/automation/digital-skills/images/date-calendar.png new file mode 100644 index 000000000..a67f15552 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/date-calendar.png differ diff --git a/ai-for-service/automation/digital-skills/images/date-time.png b/ai-for-service/automation/digital-skills/images/date-time.png new file mode 100644 index 000000000..ae1243e68 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/date-time.png differ diff --git a/ai-for-service/automation/digital-skills/images/default-primary-question.png b/ai-for-service/automation/digital-skills/images/default-primary-question.png new file mode 100644 index 000000000..0a2b8c971 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/default-primary-question.png differ diff --git a/ai-for-service/automation/digital-skills/images/define-and-initializer.png b/ai-for-service/automation/digital-skills/images/define-and-initializer.png new file mode 100644 index 000000000..8fa9e8d66 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/define-and-initializer.png differ diff --git a/ai-for-service/automation/digital-skills/images/define-content-type.png b/ai-for-service/automation/digital-skills/images/define-content-type.png new file mode 100644 index 000000000..9b86963ce Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/define-content-type.png differ diff --git a/ai-for-service/automation/digital-skills/images/define-wsdl-url.png b/ai-for-service/automation/digital-skills/images/define-wsdl-url.png new file mode 100644 index 000000000..08a9ed0e1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/define-wsdl-url.png differ diff --git a/ai-for-service/automation/digital-skills/images/defining-filters.png b/ai-for-service/automation/digital-skills/images/defining-filters.png new file mode 100644 index 000000000..0e3ab71e7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/defining-filters.png differ diff --git a/ai-for-service/automation/digital-skills/images/delete-faq-intent.png b/ai-for-service/automation/digital-skills/images/delete-faq-intent.png new file mode 100644 index 000000000..ea03420d4 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/delete-faq-intent.png differ diff --git a/ai-for-service/automation/digital-skills/images/delete-qr-pair-child.png b/ai-for-service/automation/digital-skills/images/delete-qr-pair-child.png new file mode 100644 index 000000000..95c0f4f2e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/delete-qr-pair-child.png differ diff --git a/ai-for-service/automation/digital-skills/images/delete-query-or-response.png b/ai-for-service/automation/digital-skills/images/delete-query-or-response.png new file mode 100644 index 000000000..a07b04b1b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/delete-query-or-response.png differ diff --git a/ai-for-service/automation/digital-skills/images/description-toggle-turn-on.png b/ai-for-service/automation/digital-skills/images/description-toggle-turn-on.png new file mode 100644 index 000000000..5c3351408 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/description-toggle-turn-on.png differ diff --git a/ai-for-service/automation/digital-skills/images/dialog-task-source.png b/ai-for-service/automation/digital-skills/images/dialog-task-source.png new file mode 100644 index 000000000..2a3fc0fc0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/dialog-task-source.png differ diff --git a/ai-for-service/automation/digital-skills/images/digital-form-as-source.png b/ai-for-service/automation/digital-skills/images/digital-form-as-source.png new file mode 100644 index 000000000..f0609185c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/digital-form-as-source.png differ diff --git a/ai-for-service/automation/digital-skills/images/digital-form-branding.png b/ai-for-service/automation/digital-skills/images/digital-form-branding.png new file mode 100644 index 000000000..e274088b8 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/digital-form-branding.png differ diff --git a/ai-for-service/automation/digital-skills/images/digital-forms-date-picker-japanese.png b/ai-for-service/automation/digital-skills/images/digital-forms-date-picker-japanese.png new file mode 100644 index 000000000..d2fcb31e9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/digital-forms-date-picker-japanese.png differ diff --git a/ai-for-service/automation/digital-skills/images/discard-task.png b/ai-for-service/automation/digital-skills/images/discard-task.png new file mode 100644 index 000000000..029714723 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/discard-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/drag-and-drop-file.png b/ai-for-service/automation/digital-skills/images/drag-and-drop-file.png new file mode 100644 index 000000000..b1c7e6087 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/drag-and-drop-file.png differ diff --git a/ai-for-service/automation/digital-skills/images/drag-and-drop-smalltalk-file.png b/ai-for-service/automation/digital-skills/images/drag-and-drop-smalltalk-file.png new file mode 100644 index 000000000..c981b2aa0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/drag-and-drop-smalltalk-file.png differ diff --git a/ai-for-service/automation/digital-skills/images/drag-component.gif b/ai-for-service/automation/digital-skills/images/drag-component.gif new file mode 100644 index 000000000..0433d1e92 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/drag-component.gif differ diff --git a/ai-for-service/automation/digital-skills/images/drag-question-answer-pair-to-kg.gif b/ai-for-service/automation/digital-skills/images/drag-question-answer-pair-to-kg.gif new file mode 100644 index 000000000..a899be23f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/drag-question-answer-pair-to-kg.gif differ diff --git a/ai-for-service/automation/digital-skills/images/dropdown-list.png b/ai-for-service/automation/digital-skills/images/dropdown-list.png new file mode 100644 index 000000000..a57fd42cb Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/dropdown-list.png differ diff --git a/ai-for-service/automation/digital-skills/images/edit-default-follow-up-question.png b/ai-for-service/automation/digital-skills/images/edit-default-follow-up-question.png new file mode 100644 index 000000000..c3ac84cb1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/edit-default-follow-up-question.png differ diff --git a/ai-for-service/automation/digital-skills/images/email-field.png b/ai-for-service/automation/digital-skills/images/email-field.png new file mode 100644 index 000000000..e3be3795a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/email-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/enable-alert-reminder.gif b/ai-for-service/automation/digital-skills/images/enable-alert-reminder.gif new file mode 100644 index 000000000..9ef608544 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/enable-alert-reminder.gif differ diff --git a/ai-for-service/automation/digital-skills/images/enable-redact-form-data.png b/ai-for-service/automation/digital-skills/images/enable-redact-form-data.png new file mode 100644 index 000000000..28b74e58a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/enable-redact-form-data.png differ diff --git a/ai-for-service/automation/digital-skills/images/enter-the-dialog-name.png b/ai-for-service/automation/digital-skills/images/enter-the-dialog-name.png new file mode 100644 index 000000000..e48148eea Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/enter-the-dialog-name.png differ diff --git a/ai-for-service/automation/digital-skills/images/extraction-complete.png b/ai-for-service/automation/digital-skills/images/extraction-complete.png new file mode 100644 index 000000000..27a600138 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/extraction-complete.png differ diff --git a/ai-for-service/automation/digital-skills/images/feedback-as-sub-dialog.png b/ai-for-service/automation/digital-skills/images/feedback-as-sub-dialog.png new file mode 100644 index 000000000..ecf746d75 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/feedback-as-sub-dialog.png differ diff --git a/ai-for-service/automation/digital-skills/images/feedback-service-type.png b/ai-for-service/automation/digital-skills/images/feedback-service-type.png new file mode 100644 index 000000000..cb6acd7d9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/feedback-service-type.png differ diff --git a/ai-for-service/automation/digital-skills/images/follow-up-enable.png b/ai-for-service/automation/digital-skills/images/follow-up-enable.png new file mode 100644 index 000000000..dcd7edcd4 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/follow-up-enable.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-actions.png b/ai-for-service/automation/digital-skills/images/form-actions.png new file mode 100644 index 000000000..e333d5051 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-actions.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-creation-next-step.png b/ai-for-service/automation/digital-skills/images/form-creation-next-step.png new file mode 100644 index 000000000..b37e69a0b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-creation-next-step.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-editor-panel.png b/ai-for-service/automation/digital-skills/images/form-editor-panel.png new file mode 100644 index 000000000..cede837ef Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-editor-panel.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-editor.png b/ai-for-service/automation/digital-skills/images/form-editor.png new file mode 100644 index 000000000..5bf08da58 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-editor.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-experience-nodes.png b/ai-for-service/automation/digital-skills/images/form-experience-nodes.png new file mode 100644 index 000000000..ea381cb0c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-experience-nodes.png differ diff --git a/ai-for-service/automation/digital-skills/images/form-status.png b/ai-for-service/automation/digital-skills/images/form-status.png new file mode 100644 index 000000000..185b2aa78 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/form-status.png differ diff --git a/ai-for-service/automation/digital-skills/images/format-response.png b/ai-for-service/automation/digital-skills/images/format-response.png new file mode 100644 index 000000000..9e1a74c1b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/format-response.png differ diff --git a/ai-for-service/automation/digital-skills/images/get-balance-dialog-task.png b/ai-for-service/automation/digital-skills/images/get-balance-dialog-task.png new file mode 100644 index 000000000..e5801cf2c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/get-balance-dialog-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/import-smalltalk-file.png b/ai-for-service/automation/digital-skills/images/import-smalltalk-file.png new file mode 100644 index 000000000..930447359 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/import-smalltalk-file.png differ diff --git a/ai-for-service/automation/digital-skills/images/initial-polling.png b/ai-for-service/automation/digital-skills/images/initial-polling.png new file mode 100644 index 000000000..15ebe9c83 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/initial-polling.png differ diff --git a/ai-for-service/automation/digital-skills/images/invoke-form-in-widget.png b/ai-for-service/automation/digital-skills/images/invoke-form-in-widget.png new file mode 100644 index 000000000..fa519e4e3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/invoke-form-in-widget.png differ diff --git a/ai-for-service/automation/digital-skills/images/json-source-file.png b/ai-for-service/automation/digital-skills/images/json-source-file.png new file mode 100644 index 000000000..fc0d1c799 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/json-source-file.png differ diff --git a/ai-for-service/automation/digital-skills/images/label-field.png b/ai-for-service/automation/digital-skills/images/label-field.png new file mode 100644 index 000000000..da78528be Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/label-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/launch-survey-after-end-of-task.png b/ai-for-service/automation/digital-skills/images/launch-survey-after-end-of-task.png new file mode 100644 index 000000000..5c3152a0e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/launch-survey-after-end-of-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/like-dislike-survey.png b/ai-for-service/automation/digital-skills/images/like-dislike-survey.png new file mode 100644 index 000000000..7b5ae80b6 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/like-dislike-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/manage-interruptions-behaviour.png b/ai-for-service/automation/digital-skills/images/manage-interruptions-behaviour.png new file mode 100644 index 000000000..ebfa242c4 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/manage-interruptions-behaviour.png differ diff --git a/ai-for-service/automation/digital-skills/images/manage-variable-namespaces.png b/ai-for-service/automation/digital-skills/images/manage-variable-namespaces.png new file mode 100644 index 000000000..edce0fbe3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/manage-variable-namespaces.png differ diff --git a/ai-for-service/automation/digital-skills/images/mask-data-and-transient-input.png b/ai-for-service/automation/digital-skills/images/mask-data-and-transient-input.png new file mode 100644 index 000000000..b55f34961 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/mask-data-and-transient-input.png differ diff --git a/ai-for-service/automation/digital-skills/images/message-response-channel.png b/ai-for-service/automation/digital-skills/images/message-response-channel.png new file mode 100644 index 000000000..e02360312 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/message-response-channel.png differ diff --git a/ai-for-service/automation/digital-skills/images/message-template.png b/ai-for-service/automation/digital-skills/images/message-template.png new file mode 100644 index 000000000..056573837 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/message-template.png differ diff --git a/ai-for-service/automation/digital-skills/images/more-panel-management.png b/ai-for-service/automation/digital-skills/images/more-panel-management.png new file mode 100644 index 000000000..baff8e921 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/more-panel-management.png differ diff --git a/ai-for-service/automation/digital-skills/images/move-to-new-node.gif b/ai-for-service/automation/digital-skills/images/move-to-new-node.gif new file mode 100644 index 000000000..e950ea6e9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/move-to-new-node.gif differ diff --git a/ai-for-service/automation/digital-skills/images/multiple-filters.png b/ai-for-service/automation/digital-skills/images/multiple-filters.png new file mode 100644 index 000000000..9e5b2b43d Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/multiple-filters.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-auth-mechanism-password.png b/ai-for-service/automation/digital-skills/images/new-auth-mechanism-password.png new file mode 100644 index 000000000..759df2575 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-auth-mechanism-password.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-auth-mechanism.png b/ai-for-service/automation/digital-skills/images/new-auth-mechanism.png new file mode 100644 index 000000000..2a8771604 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-auth-mechanism.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-oauth-mechanism.png b/ai-for-service/automation/digital-skills/images/new-oauth-mechanism.png new file mode 100644 index 000000000..b31047023 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-oauth-mechanism.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-widget-data-entry.png b/ai-for-service/automation/digital-skills/images/new-widget-data-entry.png new file mode 100644 index 000000000..087172a12 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-widget-data-entry.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-widget-dialog.png b/ai-for-service/automation/digital-skills/images/new-widget-dialog.png new file mode 100644 index 000000000..7f6c56339 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-widget-dialog.png differ diff --git a/ai-for-service/automation/digital-skills/images/new-widget-json.png b/ai-for-service/automation/digital-skills/images/new-widget-json.png new file mode 100644 index 000000000..c4757943c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/new-widget-json.png differ diff --git a/ai-for-service/automation/digital-skills/images/note-field.png b/ai-for-service/automation/digital-skills/images/note-field.png new file mode 100644 index 000000000..aff5780ef Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/note-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/nps-survey.png b/ai-for-service/automation/digital-skills/images/nps-survey.png new file mode 100644 index 000000000..df8c61d22 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/nps-survey.png differ diff --git a/ai-for-service/automation/digital-skills/images/number-field.png b/ai-for-service/automation/digital-skills/images/number-field.png new file mode 100644 index 000000000..e350af0a1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/number-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/only-ui.png b/ai-for-service/automation/digital-skills/images/only-ui.png new file mode 100644 index 000000000..64e6f9257 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/only-ui.png differ diff --git a/ai-for-service/automation/digital-skills/images/open-dialog-task.png b/ai-for-service/automation/digital-skills/images/open-dialog-task.png new file mode 100644 index 000000000..3b338aecd Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/open-dialog-task.png differ diff --git a/ai-for-service/automation/digital-skills/images/open-index-widget-chat.png b/ai-for-service/automation/digital-skills/images/open-index-widget-chat.png new file mode 100644 index 000000000..fb74986e2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/open-index-widget-chat.png differ diff --git a/ai-for-service/automation/digital-skills/images/panel-3-dot-menu.png b/ai-for-service/automation/digital-skills/images/panel-3-dot-menu.png new file mode 100644 index 000000000..6d7a58e00 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/panel-3-dot-menu.png differ diff --git a/ai-for-service/automation/digital-skills/images/panel-add-widget.png b/ai-for-service/automation/digital-skills/images/panel-add-widget.png new file mode 100644 index 000000000..51510b26c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/panel-add-widget.png differ diff --git a/ai-for-service/automation/digital-skills/images/panel-management.png b/ai-for-service/automation/digital-skills/images/panel-management.png new file mode 100644 index 000000000..ee8ae0c87 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/panel-management.png differ diff --git a/ai-for-service/automation/digital-skills/images/panel-options-for-digital-views.png b/ai-for-service/automation/digital-skills/images/panel-options-for-digital-views.png new file mode 100644 index 000000000..ba64be018 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/panel-options-for-digital-views.png differ diff --git a/ai-for-service/automation/digital-skills/images/parameters-section.png b/ai-for-service/automation/digital-skills/images/parameters-section.png new file mode 100644 index 000000000..5cf570901 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/parameters-section.png differ diff --git a/ai-for-service/automation/digital-skills/images/phone-number.png b/ai-for-service/automation/digital-skills/images/phone-number.png new file mode 100644 index 000000000..723892a38 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/phone-number.png differ diff --git a/ai-for-service/automation/digital-skills/images/preview-response.png b/ai-for-service/automation/digital-skills/images/preview-response.png new file mode 100644 index 000000000..3f4786f3b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/preview-response.png differ diff --git a/ai-for-service/automation/digital-skills/images/preview-website-link-soap.png b/ai-for-service/automation/digital-skills/images/preview-website-link-soap.png new file mode 100644 index 000000000..84bebbf17 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/preview-website-link-soap.png differ diff --git a/ai-for-service/automation/digital-skills/images/preview-website-link.png b/ai-for-service/automation/digital-skills/images/preview-website-link.png new file mode 100644 index 000000000..84bebbf17 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/preview-website-link.png differ diff --git a/ai-for-service/automation/digital-skills/images/preview-website-rss.png b/ai-for-service/automation/digital-skills/images/preview-website-rss.png new file mode 100644 index 000000000..368ffa8a0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/preview-website-rss.png differ diff --git a/ai-for-service/automation/digital-skills/images/protip-field.png b/ai-for-service/automation/digital-skills/images/protip-field.png new file mode 100644 index 000000000..34f4249be Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/protip-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/publish-digitalview.png b/ai-for-service/automation/digital-skills/images/publish-digitalview.png new file mode 100644 index 000000000..f22e50287 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/publish-digitalview.png differ diff --git a/ai-for-service/automation/digital-skills/images/publish-status.png b/ai-for-service/automation/digital-skills/images/publish-status.png new file mode 100644 index 000000000..98764020c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/publish-status.png differ diff --git a/ai-for-service/automation/digital-skills/images/radio-button.png b/ai-for-service/automation/digital-skills/images/radio-button.png new file mode 100644 index 000000000..9648d2e52 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/radio-button.png differ diff --git a/ai-for-service/automation/digital-skills/images/range-slider.png b/ai-for-service/automation/digital-skills/images/range-slider.png new file mode 100644 index 000000000..377ff8561 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/range-slider.png differ diff --git a/ai-for-service/automation/digital-skills/images/rearrange-questions-order.gif b/ai-for-service/automation/digital-skills/images/rearrange-questions-order.gif new file mode 100644 index 000000000..f4eb426b4 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/rearrange-questions-order.gif differ diff --git a/ai-for-service/automation/digital-skills/images/report-keys.png b/ai-for-service/automation/digital-skills/images/report-keys.png new file mode 100644 index 000000000..c628d096b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/report-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/report-template-definition.png b/ai-for-service/automation/digital-skills/images/report-template-definition.png new file mode 100644 index 000000000..02d8d449c Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/report-template-definition.png differ diff --git a/ai-for-service/automation/digital-skills/images/request-response-variable-keys.png b/ai-for-service/automation/digital-skills/images/request-response-variable-keys.png new file mode 100644 index 000000000..c9ca0bee7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/request-response-variable-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/response-keys.png b/ai-for-service/automation/digital-skills/images/response-keys.png new file mode 100644 index 000000000..324b60f8f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/response-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/response-sample-rss.png b/ai-for-service/automation/digital-skills/images/response-sample-rss.png new file mode 100644 index 000000000..9e1a74c1b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/response-sample-rss.png differ diff --git a/ai-for-service/automation/digital-skills/images/response-sample.png b/ai-for-service/automation/digital-skills/images/response-sample.png new file mode 100644 index 000000000..de1533bef Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/response-sample.png differ diff --git a/ai-for-service/automation/digital-skills/images/rss-api-request.png b/ai-for-service/automation/digital-skills/images/rss-api-request.png new file mode 100644 index 000000000..9eaa00f43 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/rss-api-request.png differ diff --git a/ai-for-service/automation/digital-skills/images/run-widget-preview.png b/ai-for-service/automation/digital-skills/images/run-widget-preview.png new file mode 100644 index 000000000..845720268 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/run-widget-preview.png differ diff --git a/ai-for-service/automation/digital-skills/images/sample-response-soap.png b/ai-for-service/automation/digital-skills/images/sample-response-soap.png new file mode 100644 index 000000000..1c6daff49 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/sample-response-soap.png differ diff --git a/ai-for-service/automation/digital-skills/images/save-digital-form.png b/ai-for-service/automation/digital-skills/images/save-digital-form.png new file mode 100644 index 000000000..8b68fc126 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/save-digital-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/search-component.gif b/ai-for-service/automation/digital-skills/images/search-component.gif new file mode 100644 index 000000000..5c4058eb7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/search-component.gif differ diff --git a/ai-for-service/automation/digital-skills/images/search-in-answer.png b/ai-for-service/automation/digital-skills/images/search-in-answer.png new file mode 100644 index 000000000..8baa3d945 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/search-in-answer.png differ diff --git a/ai-for-service/automation/digital-skills/images/secure-form-data.png b/ai-for-service/automation/digital-skills/images/secure-form-data.png new file mode 100644 index 000000000..c29d47835 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/secure-form-data.png differ diff --git a/ai-for-service/automation/digital-skills/images/secure-form-icon.png b/ai-for-service/automation/digital-skills/images/secure-form-icon.png new file mode 100644 index 000000000..b8739df6a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/secure-form-icon.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-auth-headers.png b/ai-for-service/automation/digital-skills/images/select-auth-headers.png new file mode 100644 index 000000000..605f59705 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-auth-headers.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-content-type.png b/ai-for-service/automation/digital-skills/images/select-content-type.png new file mode 100644 index 000000000..1eba9e1b4 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-content-type.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-created-form.png b/ai-for-service/automation/digital-skills/images/select-created-form.png new file mode 100644 index 000000000..a0d3c8d4e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-created-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-javascript.png b/ai-for-service/automation/digital-skills/images/select-javascript.png new file mode 100644 index 000000000..8f5d7fe7e Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-javascript.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-node-dropdown.png b/ai-for-service/automation/digital-skills/images/select-node-dropdown.png new file mode 100644 index 000000000..168faf788 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-node-dropdown.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-soap-request.png b/ai-for-service/automation/digital-skills/images/select-soap-request.png new file mode 100644 index 000000000..8e67ab674 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-soap-request.png differ diff --git a/ai-for-service/automation/digital-skills/images/select-widgets-from-dropdown-list.png b/ai-for-service/automation/digital-skills/images/select-widgets-from-dropdown-list.png new file mode 100644 index 000000000..1ca6f2ebe Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/select-widgets-from-dropdown-list.png differ diff --git a/ai-for-service/automation/digital-skills/images/session-keys.png b/ai-for-service/automation/digital-skills/images/session-keys.png new file mode 100644 index 000000000..9785bbc35 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/session-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/set-parameters-api-request.png b/ai-for-service/automation/digital-skills/images/set-parameters-api-request.png new file mode 100644 index 000000000..9921c1076 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/set-parameters-api-request.png differ diff --git a/ai-for-service/automation/digital-skills/images/set-task-parameter-rest-api.png b/ai-for-service/automation/digital-skills/images/set-task-parameter-rest-api.png new file mode 100644 index 000000000..ac32ad3a0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/set-task-parameter-rest-api.png differ diff --git a/ai-for-service/automation/digital-skills/images/set-tenancy.png b/ai-for-service/automation/digital-skills/images/set-tenancy.png new file mode 100644 index 000000000..ce9d2c315 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/set-tenancy.png differ diff --git a/ai-for-service/automation/digital-skills/images/set-up-alert-task-soap.png b/ai-for-service/automation/digital-skills/images/set-up-alert-task-soap.png new file mode 100644 index 000000000..477089c2a Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/set-up-alert-task-soap.png differ diff --git a/ai-for-service/automation/digital-skills/images/set-up-task-parameter.png b/ai-for-service/automation/digital-skills/images/set-up-task-parameter.png new file mode 100644 index 000000000..ae05f9646 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/set-up-task-parameter.png differ diff --git a/ai-for-service/automation/digital-skills/images/small-talk-navigation.png b/ai-for-service/automation/digital-skills/images/small-talk-navigation.png new file mode 100644 index 000000000..8debe5315 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/small-talk-navigation.png differ diff --git a/ai-for-service/automation/digital-skills/images/soap-alert-task-fields.png b/ai-for-service/automation/digital-skills/images/soap-alert-task-fields.png new file mode 100644 index 000000000..fb69be4d2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/soap-alert-task-fields.png differ diff --git a/ai-for-service/automation/digital-skills/images/standard-keys.png b/ai-for-service/automation/digital-skills/images/standard-keys.png new file mode 100644 index 000000000..149fc0d5f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/standard-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/standard-responses-greeting-group.png b/ai-for-service/automation/digital-skills/images/standard-responses-greeting-group.png new file mode 100644 index 000000000..04eed254f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/standard-responses-greeting-group.png differ diff --git a/ai-for-service/automation/digital-skills/images/standard-text-editor.png b/ai-for-service/automation/digital-skills/images/standard-text-editor.png new file mode 100644 index 000000000..ee4c8b391 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/standard-text-editor.png differ diff --git a/ai-for-service/automation/digital-skills/images/subdialog-node-configuration.png b/ai-for-service/automation/digital-skills/images/subdialog-node-configuration.png new file mode 100644 index 000000000..5d3e0c28b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/subdialog-node-configuration.png differ diff --git a/ai-for-service/automation/digital-skills/images/survey-creation-success-message.png b/ai-for-service/automation/digital-skills/images/survey-creation-success-message.png new file mode 100644 index 000000000..eb14cceaa Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/survey-creation-success-message.png differ diff --git a/ai-for-service/automation/digital-skills/images/survey-without-dialog.png b/ai-for-service/automation/digital-skills/images/survey-without-dialog.png new file mode 100644 index 000000000..e79f81be9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/survey-without-dialog.png differ diff --git a/ai-for-service/automation/digital-skills/images/switch-to-advanced-mode.png b/ai-for-service/automation/digital-skills/images/switch-to-advanced-mode.png new file mode 100644 index 000000000..1fb16ebaf Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/switch-to-advanced-mode.png differ diff --git a/ai-for-service/automation/digital-skills/images/talk-to-bot.png b/ai-for-service/automation/digital-skills/images/talk-to-bot.png new file mode 100644 index 000000000..764f1d0f9 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/talk-to-bot.png differ diff --git a/ai-for-service/automation/digital-skills/images/task-initializer.png b/ai-for-service/automation/digital-skills/images/task-initializer.png new file mode 100644 index 000000000..45d702ae7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/task-initializer.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-auth-parameters.png b/ai-for-service/automation/digital-skills/images/test-auth-parameters.png new file mode 100644 index 000000000..960bd34be Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-auth-parameters.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-auth-url.png b/ai-for-service/automation/digital-skills/images/test-auth-url.png new file mode 100644 index 000000000..5f0b116b8 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-auth-url.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-auth-window-api-key.png b/ai-for-service/automation/digital-skills/images/test-auth-window-api-key.png new file mode 100644 index 000000000..37fa66913 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-auth-window-api-key.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-authorization-window.png b/ai-for-service/automation/digital-skills/images/test-authorization-window.png new file mode 100644 index 000000000..8bf842085 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-authorization-window.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-authorization-yes.png b/ai-for-service/automation/digital-skills/images/test-authorization-yes.png new file mode 100644 index 000000000..75616e61f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-authorization-yes.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-panel.png b/ai-for-service/automation/digital-skills/images/test-panel.png new file mode 100644 index 000000000..671e085f1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-panel.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-preview-fill-form.png b/ai-for-service/automation/digital-skills/images/test-preview-fill-form.png new file mode 100644 index 000000000..37e706780 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-preview-fill-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-preview.png b/ai-for-service/automation/digital-skills/images/test-preview.png new file mode 100644 index 000000000..019e5e1dd Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-preview.png differ diff --git a/ai-for-service/automation/digital-skills/images/test-widget.png b/ai-for-service/automation/digital-skills/images/test-widget.png new file mode 100644 index 000000000..c05c282e3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/test-widget.png differ diff --git a/ai-for-service/automation/digital-skills/images/text-area.png b/ai-for-service/automation/digital-skills/images/text-area.png new file mode 100644 index 000000000..aa024bc1f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/text-area.png differ diff --git a/ai-for-service/automation/digital-skills/images/text-field-input.png b/ai-for-service/automation/digital-skills/images/text-field-input.png new file mode 100644 index 000000000..4f480bc32 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/text-field-input.png differ diff --git a/ai-for-service/automation/digital-skills/images/toggle-field.png b/ai-for-service/automation/digital-skills/images/toggle-field.png new file mode 100644 index 000000000..303fc778f Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/toggle-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/toggle-views.png b/ai-for-service/automation/digital-skills/images/toggle-views.png new file mode 100644 index 000000000..784989420 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/toggle-views.png differ diff --git a/ai-for-service/automation/digital-skills/images/uiforms-linkmessage1.png b/ai-for-service/automation/digital-skills/images/uiforms-linkmessage1.png new file mode 100644 index 000000000..d62b7efc6 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/uiforms-linkmessage1.png differ diff --git a/ai-for-service/automation/digital-skills/images/url-field.png b/ai-for-service/automation/digital-skills/images/url-field.png new file mode 100644 index 000000000..b6c0009e2 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/url-field.png differ diff --git a/ai-for-service/automation/digital-skills/images/user-bot-form-experience.png b/ai-for-service/automation/digital-skills/images/user-bot-form-experience.png new file mode 100644 index 000000000..75fccb624 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/user-bot-form-experience.png differ diff --git a/ai-for-service/automation/digital-skills/images/va-status-search.png b/ai-for-service/automation/digital-skills/images/va-status-search.png new file mode 100644 index 000000000..80c547cb1 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/va-status-search.png differ diff --git a/ai-for-service/automation/digital-skills/images/validation-form.png b/ai-for-service/automation/digital-skills/images/validation-form.png new file mode 100644 index 000000000..ac5a88e31 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/validation-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/version-history.png b/ai-for-service/automation/digital-skills/images/version-history.png new file mode 100644 index 000000000..e2875a7cb Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/version-history.png differ diff --git a/ai-for-service/automation/digital-skills/images/version-namespaces.png b/ai-for-service/automation/digital-skills/images/version-namespaces.png new file mode 100644 index 000000000..030072701 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/version-namespaces.png differ diff --git a/ai-for-service/automation/digital-skills/images/view-visibility-settings.png b/ai-for-service/automation/digital-skills/images/view-visibility-settings.png new file mode 100644 index 000000000..b23af5290 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/view-visibility-settings.png differ diff --git a/ai-for-service/automation/digital-skills/images/visibility-rules.png b/ai-for-service/automation/digital-skills/images/visibility-rules.png new file mode 100644 index 000000000..7485d8412 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/visibility-rules.png differ diff --git a/ai-for-service/automation/digital-skills/images/web-service-general-set-up.png b/ai-for-service/automation/digital-skills/images/web-service-general-set-up.png new file mode 100644 index 000000000..43792aca0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/web-service-general-set-up.png differ diff --git a/ai-for-service/automation/digital-skills/images/widget-added-to-panel.png b/ai-for-service/automation/digital-skills/images/widget-added-to-panel.png new file mode 100644 index 000000000..1ca6f2ebe Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/widget-added-to-panel.png differ diff --git a/ai-for-service/automation/digital-skills/images/widget-saved.png b/ai-for-service/automation/digital-skills/images/widget-saved.png new file mode 100644 index 000000000..054d6cd10 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/widget-saved.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-case-study-form.png b/ai-for-service/automation/digital-skills/images/xop-8553-case-study-form.png new file mode 100644 index 000000000..075a67ccd Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-case-study-form.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-components.png b/ai-for-service/automation/digital-skills/images/xop-8553-components.png new file mode 100644 index 000000000..8d667d029 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-components.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-creating-context-var.png b/ai-for-service/automation/digital-skills/images/xop-8553-creating-context-var.png new file mode 100644 index 000000000..da04cb821 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-creating-context-var.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-enter-name-open-account.png b/ai-for-service/automation/digital-skills/images/xop-8553-enter-name-open-account.png new file mode 100644 index 000000000..504a5a5d3 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-enter-name-open-account.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-expanded-sub-section.png b/ai-for-service/automation/digital-skills/images/xop-8553-expanded-sub-section.png new file mode 100644 index 000000000..400cb62a0 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-expanded-sub-section.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-field-labels-customized-using-variable.png b/ai-for-service/automation/digital-skills/images/xop-8553-field-labels-customized-using-variable.png new file mode 100644 index 000000000..cf9eb9599 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-field-labels-customized-using-variable.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-field-level-standard-response-japanese.png b/ai-for-service/automation/digital-skills/images/xop-8553-field-level-standard-response-japanese.png new file mode 100644 index 000000000..51be3f71b Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-field-level-standard-response-japanese.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-form-fields-in-japanese.png b/ai-for-service/automation/digital-skills/images/xop-8553-form-fields-in-japanese.png new file mode 100644 index 000000000..5412f2bf7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-form-fields-in-japanese.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-formmsgmeta-keys.png b/ai-for-service/automation/digital-skills/images/xop-8553-formmsgmeta-keys.png new file mode 100644 index 000000000..944bbc9fc Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-formmsgmeta-keys.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-json-preview.png b/ai-for-service/automation/digital-skills/images/xop-8553-json-preview.png new file mode 100644 index 000000000..eaee60323 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-json-preview.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-json-sections-collapsed.png b/ai-for-service/automation/digital-skills/images/xop-8553-json-sections-collapsed.png new file mode 100644 index 000000000..dfbce0821 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-json-sections-collapsed.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-name-field-pre-populated-using-variable.png b/ai-for-service/automation/digital-skills/images/xop-8553-name-field-pre-populated-using-variable.png new file mode 100644 index 000000000..925e3c447 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-name-field-pre-populated-using-variable.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-pre-processor-script.png b/ai-for-service/automation/digital-skills/images/xop-8553-pre-processor-script.png new file mode 100644 index 000000000..8e62844b7 Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-pre-processor-script.png differ diff --git a/ai-for-service/automation/digital-skills/images/xop-8553-response-message-customized-using-variable.png b/ai-for-service/automation/digital-skills/images/xop-8553-response-message-customized-using-variable.png new file mode 100644 index 000000000..55e9e31cf Binary files /dev/null and b/ai-for-service/automation/digital-skills/images/xop-8553-response-message-customized-using-variable.png differ diff --git a/ai-for-service/drafts/digital-skills/digital-forms.mdx b/ai-for-service/drafts/digital-skills/digital-forms.mdx deleted file mode 100644 index 6f4d4c212..000000000 --- a/ai-for-service/drafts/digital-skills/digital-forms.mdx +++ /dev/null @@ -1,3459 +0,0 @@ ---- -title: Digital Forms ---- - -AI Agents engage end-users primarily using a conversational interface that typically includes an exchange of a series of messages. But oftentimes, there is a need to gather information from the end-user to proceed further. Examples include providing delivery address while interacting with an eCommerce agent, details of an issue while reporting to ITSM agent, opportunity details while creating a CRM opportunity, capturing customer details to book a flight, etc. - -In a standard Dialog Task, this scenario is designed by placing a series of Entity Nodes connected back-to-back and the user is asked for values for each of these entities sequentially, which is quite tedious and frustrating. Digital Forms mitigate this issue by presenting users with an interactive interface that they can use to provide the information they are asked for in one go. - -**Digital Forms** provide a range of input fields that allow your AI Agent to capture the required details from end-users. After the users complete the form, the input is submitted to the AI Agent to proceed with the task at hand. - -In this article, we discuss the features and implementation of Digital Forms in the Platform. For a use case example and a step-by-step implementation of a Digital Form click [here](configure-digital-forms.md){:target="_blank"}. - -## Features - -* Improved user experience with a single interface for input collection. -* Easy form creation using simple drag and drop actions. -* Vast component library to cater to all your form requirements. -* Provision to define rules for input validations and visibility suiting your use case. -* Automatic dialog task generation from the _Form_ enabling switching between Form or Conversation experience based on the channel of interaction. - -## General Setup - -You can access **Digital Forms** from **Automation AI > Digital Skills**. - -Access Digital Forms - -Here is the overall usage process for Digital Forms within the Platform - -* **Form Creation**: Define a Digital Form by adding components and configuring their properties. -* **Form Invocation**: Forms are invoked from inside a task or process: - * A form is included as a component in the task. The dialog task offers a Form Experience and Conversation Experience based on the channel of interaction. Learn more by reading about the [Form Node](../dialogs/node-types/working-with-the-form-node.md){:target="_blank"}. - * A Digital Form is added to a Digital View with a dialog task triggered when a form is submitted from there. - -* **Form Submission**: When it is submitted, the component values are validated and any errors are highlighted. Based on the mode of invocation, post successful validation: - * The AI Agent execution proceeds as per dialog flow in case of dialog task invocation. - * The selected task is triggered. - -## Create a Form - -A Digital Form includes a definition and various components to capture user input. - -To create forms, follow the steps below: - -1. Under **Automation AI > Digital Skills**, select **Digital Forms**. -2. On the **Digital Forms** screen, click **New Form**. -3. On the **New Form** page, enter the following: - - * **Name** of the Form. - * **Display Name** for the Form. - * **Description** of the Form. - - Create New Form - -4. **Select form’s Header Style**: You can choose a specific header style from the listed illustrations – the circle indicates the position of logo/icon with respect to the title of the form in the header. Click the card to select the style. If it has a logo, you can upload an image file (jpg or png) for the logo. - - !!! Note - - During the Export of the app, the logo is not exported along with Digital Forms. So, when importing this App, you need to separately copy the logo image file and then manually reupload the logo. - -5. Turn on the **Description** toggle if you want to show a description of the form in the header. - - Description Toggle - -6. **Form Security** – Enable **Secure Form Data** to redact form data from the App Context, Debug Logs, Service Calls, Agent Transfer, and the Bot Kit. - - secure form data - - While enabling, you can also choose whether to display the **Secure Form icon** to your end users. - - enable redact form data - - Once enabled, the Platform will replace the user input with a unique random system-generated alphanumeric value in all the modules. Also, the **Secure Form** icon and a tip will be displayed, notifying the user that the form is secure. - - secure form icon - - Secure Form feature ensures data security at form level. You can achieve securing data at component level too. [Read here](configure-digital-forms.md#form-editor){:target="_blank"} to know more. - -7. **Pre-Processor script**—The Pre-Processor script in the form settings can be used by the developer to manipulate all the data required for the form that cannot be customized from the UI design view. - - For example, in the case of a multilingual AI Agent, the user can customize the form UI & standard responses of the components in the digital form so that they appear based on the selected app language. - - Moreover, you can provide dynamic variables to replace the static content in the pre-processor script for use in the form using environment, content, and context variables. - - The platform processes and resolves the pre-processor script as the first step in the form node execution. The same can be seen in the debug log. As part of this, the updated definition from the pre-processor script is passed to webUI to render the form. - - **Example:** - - Suppose you want to change the standard response of a field of URL type in a digital form based on the app language. You have added English, Spanish, German, and Japanese as your app languages. - - ``` - let formDef = koreUtil.getFormDefinition(); - if(context.currentLanguage === 'en'){ - formDef.formMsgMeta.URL_INVALID_FORMAT = 'Invalid URL'; - } - elseif(context.currentLanguage === 'de'){ - formDef.formMsgMeta.URL_INVALID_FORMAT = 'ungültige URL'; - } - elseif(context.currentLanguage === 'es'){ - formDef.formMsgMeta.URL_INVALID_FORMAT = 'URL invalida'; - } - else{ - formDef.formMsgMeta.URL_INVALID_FORMAT = '無効なURL'; - } - ``` - - Digital form - Pre processor script - - !!! Note - - * This field will be available **only while updating** the form and not at the creation time. - * Defining a pre-processor script is **not mandatory**. The default standard responses will always be present. - * This feature is available **only for Automation AI**. - - Please click here to learn more about the digital form’s pre-processor script. - -8. Click **Save & Proceed**. - - save digital form - - -### Configuration setup using Pre-Processor script - -Earlier, our digital forms can be created only in one language and hence multiple forms need to be created to provide the flexibility to render the forms in different languages for multi lingual app. Also the messages and errors were available only in English and cannot be customized. This posed a limitation as it didn't support all app languages. Additionally, users lacked the ability to customize the forms using the dynamic data from context. - -The pre-processor script has been introduced to counter the above limitations. You can provide values to the relevant keys based on the app language or any other condition that requires customization of aspects like field labels or standard responses. - -To get the form definition that is provided as a response in the `koreUtil.getFormDefinition` and keys that need to be customized, refer to the digital form's **JSON view**. Navigate to **Automation AI > Digital Skills > Digital forms** and open the form that you wish to configure. Click **Test** on the Form Design view, then select the **JSON** tab. - -Digital Form Preview - JSON - -The pre-processor script allows you to: - -* Make Language specific customizations -* Populate Dynamic data from external sources (Eg: data file or API) -* Populate Dynamic data using variables -* Pre-fill the form with static or dynamic data (default value using value or context variable) - -!!! Important - - Remember that you must create a form definition object using `koreUtil.getFormDefinition` before adding any code to customize any field’s property or standard response. This object consists of the form meta, form components & form messages. Make sure that this is the first line in your javascript code, with the syntax: - - ``` - let formDef = koreUtil.getFormDefinition(); - ``` - -The below sections contain the keys that you may need to manipulate: - -* **Components**: for field and form level customizations like Form Header, Description, Field Names, Descriptions, Default Text, Validation rules etc. -* **formMsgMeta**: for customizing Standard Messages and Standard Error Responses - -!!! Tip - - The entire JSON is usually large, and it may be a challenge to find out the keys that need to be manipulated. You may consider copying the entire JSON, pasting it in any JSON Viewer application wherein you can collapse and expand the sections. You can expand only the components and formMsgMeta sections for convenience. - -Components and Metadata sections in the JSON viewer - -#### Components - -The **Components** section is a container for all the fields on the form and the keys that can be manipulated in the pre-processor script for customization. - -Upon expanding the **components** section, which appears as an array in the JSON viewer, you see an indexed sub-sections that indicates the number of fields in the form. For example, the components section in the below screenshot shows that there are 12 fields in the form. - -JSON - Components section - -You can see any field’s keys and their values by expanding the sub-section, and then expanding **metaData**. Usually the index of sub-sections represents the sequence of the fields on the form. - -JSON - Component sub section expanded - -You can customize the properties of a field by referencing it using its index number within the array using the below syntax: - -``` -formDef.components[<>].metaData.<> = '<>'; -``` -**Example:** to customize the **displayName** of the first field in the form, below is the code: - -``` -formDef.components[0].metaData.displayName = '名前'; -``` - -Here’s a list of keys and their purpose: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - - Form Setting - - Purpose - -
metaData.displayName - - Display Name - - The field name visible to the user - -
metaData.placeHolder - - Placeholder - - The text pre-populated in the field, but is not captured as field data - -
metaData.toolTip - - Tooltip Text - - The tooltip text associated with the field - -
metaData.isVisible - - Is visible - - To change the visibility setting; it can be true or false. - -
metaData.required - - Required - - To establish whether the field is a mandatory one - -
metaData.defaultvalueInput - - Default Value - - To provide a default value to the field - -
metaData.validateOn - - Validate - - To mention the event that would trigger validation. Can be onChange or onBlur. - -
metaData.description - - Description - - Description of the field - -
metaData.disabled - - Read-only - - To establish whether the field is read only. - -
metaData.options.locale.format -
-(Only for Date fields) - -
Date Format and Time Format - - To choose the format of date and time - -
metaData.options.timePicker -
-(Only for Date fields) - -
Time - - To show/hide the time picker within the date picker - -
metaData.options.timePicker24Hour -
-(Only for Date fields) - -
Time Format - - To choose the time format between 12 Hour or 24 Hour - -
metaData.options.locale.applyLabel -
-(Only for Date fields) - -
– - - The label of Apply button on the date-time picker; visible only if timePicker is set to true - -
metaData.options.locale.cancelLabel -
-(Only for Date fields) - -
– - - The label of Cancel button on the date-time picker; visible only if timePicker is set to true - -
metaData.countryCode -
-(Only for Phone Number fields) - -
Default Country Code - - The Default Country code Eg: +1 - -
metaData.countryName -
-(Only for Phone Number fields) - -
Default Country Code - - The default Country Name (Eg: United States) - -
metaData.enableDropDownSearch -
-(Only for Dropdown fields) - -
– - - To establish whether search box is available in the dropdown - -
metaData.isMultiSelect -
-(Only for Dropdown and Radio Button fields) - -
Multi Select - - To establish whether multiple items can be selected from the dropdown - -
metaData.minSelection -
-(Only for Dropdown fields) - -
– - - To establish the minimum number of items to be selected. If metaData.isMultiSelect is false, this value will be ignored. - -
metaData.maxSelection -
-(Only for Dropdown fields) - -
– - - To establish the maximum number of items that can be selected. Works only if metaData.isMultiSelect is true. - -
metaData.values -
-(Only for Dropdown and Radio Button fields) - -
Dropdown values - - An array containing the items in the dropdown. Every item is represented by an index number. - -
metaData.values[<>].value -
-(Only for Dropdown and Radio Button fields) - -
Dropdown values > Edit Values > Value - - The dropdown item - -
metaData.values[<>].selected -
-(Only for Dropdown, Checkbox and Radio Button fields) - -
Dropdown values > Edit Values > Default - - To establish whether the dropdown item is selected by default - -
metadata.toggleDefaultValue -
-(Only for Toggle fields) - -
– - - Default state of the toggle, can be true or false - -
metaData.toggleEnabledValue -
-(Only for Toggle fields) - -
Value > Yes - - Value to be read by platform if the toggle is enabled - -
metaData.toggleDisabledValue -
-(Only for Toggle fields) - -
Value > No - - Value to be read by platform if the toggle is disabled - -
metaData.minRange -
-(Only for Range Slider fields) - -
Value > Min - - Minimum value of the range slider - -
metaData.maxRange -
-(Only for Range Slider fields) - -
Value > Max - - Maximum value of the range slider - -
metaData.defaultvalueInput -
-(Only for Range Slider fields) - -
Default value - - Default value of the range slider - -
metaData.buttonAction -
-(Only for Button component) - -
Button Action - - The action triggered on clicking the button. Can be submit, cancel, reset or goToUrl - -
metaData.url -
-(Only for Button component) - -
URL - - URL to navigate to when user clicks the button if Button Action is goToUrl. - -
- -#### formMsgMeta - -The formMsgMeta section contains the keys that contain the Standard Responses and Error Messages. If you want to customize these messages and responses, or customize them based on the AI Agent’s language, you can do so in the pre-processor script by manipulating the values of these keys. - -These messages and responses cannot be customized from the form design UI. The pre-processor script provides you the required mechanism to create status or dynamic responses based on your requirements. - -Upon expanding the **formMsgMeta** section, you can see the keys that you can customize. - -Digital Form JSON - formMsgMeta Keys - -!!! Note - - You will need to set useFormMsgMeta to **yes** to ensure that the customized formMsgMeta values are passed on to WebUI for rendering the form. This is an optional key, but not mentioning it will make the form display the system default responses and error messages. - - The syntax to set it is `formDef.formMsgMeta.useFormMsgMeta = 'yes';` - -The syntax to provide value to a key of the formMsgMeta section is `formDef.formMsgMeta.<> = '<>';` - -The response message customizations are at the form level, that is, a response message of a particular nature will be applicable to all the fields across the form. For example, the customized response message for invalid URL will be the same for all the fields of URL type within the form. - -**Example:** Suppose you want to customize the system response for mandatory fields. The default system response is ‘This field is required’, but you want the response to be ‘This is a mandatory field; please provide a value’. This is how you can do it: - -``` -formDef.formMsgMeta.FIELD_MANDATORY = 'This is a mandatory field; please provide a value'; -``` - -Here’s a list of keys and their purpose: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - Purpose -
formMsgMeta.FIELD_MANDATORY - Response message if no data is provided in a mandatory field -
formMsgMeta.FIELD_INVALID_FORMAT - Response message if the data provided in the field is not valid. -
formMsgMeta.URL_INVALID_FORMAT - Response message if the url entered in the field is of invalid format. -
formMsgMeta.FIELD_TOO_LONG - Response message if the data entered in the field exceeds the maximum permitted length.. -
formMsgMeta.FIELD_TOO_SHORT - Response message if the data entered in the field falls below the required minimum length. -
formMsgMeta.EMAIL_INVALID_FORMAT - Response message if the data entered in an Email type field in invalid format. -
formMsgMeta.ERROR_PREVIEW - Response message if error occurs in preview. -
formMsgMeta.ERROR_DOWNLOAD_ATTACHMENT - Response message if error occurs while downloading attachment. -
formMsgMeta.FILE_SIZE_EXCEED - Response message if file size exceeds the maximum limit. -
formMsgMeta.FILE_UPLOAD_EXISTING - Response message if the file has already been uploaded. -
formMsgMeta.FILE_UPLOAD_ERROR - Response message if error occurs while uploading a file. -
formMsgMeta.FILE_TYPES_SUPPORTED - Response message if user tries to upload a file of unsupported type. -
formMsgMeta.INVALID_PHONE_NUMBER - Response message if user enters an invalid phone number in a field of Phone Number type. -
formMsgMeta.ERROR_PROCESS_APP.PUBLISH - Response message when process app is not published -
formMsgMeta.ERROR_PROCESS_APP.EXPIRE_INVALID - Response message when the process app being accessed has expired or is invalid. -
formMsgMeta.FORM_DISCARD.CONFIRM - Header text of the popup that appears on discarding a form -
formMsgMeta.FORM_DISCARD.DESC - Text within the popup that appears on discarding the form -
formMsgMeta.FORM_DISCARD.SUBMIT - Caption of the ‘Confirm’ button of the popup. Confirms the action. -
formMsgMeta.FORM_DISCARD.CLOSE - Caption of the ‘Close’ button of the popup. Closes the popup without discarding the form. -
formMsgMeta.FORM_SUBMISSION_CONFIRMATION.HEADER - Header text of the popup that appears on submitting a form -
formMsgMeta.FORM_SUBMISSION_CONFIRMATION.DESC - Text within the popup that appears on submitting the form -
formMsgMeta.FORM_SUBMISSION_CONFIRMATION.CLOSE - Caption of the ‘Confirm’ button of the popup. Confirms the action. -
formMsgMeta.FORM_SUBMISSION_CONFIRMATION.CONFIRM - Caption of the ‘Close’ button of the popup. Closes the popup without submitting the form. -
formMsgMeta.FORM_SUBMISSION_FAILED - Message that is displayed when form submission fails -
formMsgMeta.FORM_LINK_EXPIRY - Message that is displayed when the form link expires. - - Note: -
    -
  • The expiry message of the digital form cannot be customized.
  • -
  • The expiry message will be displayed according to the app's language settings. -
  • -
-
formMsgMeta.FORM_CANCEL - Message that is displayed when the form is canceled. -
formMsgMeta.DROPDOWN_MESSAGE - Message displayed on dropdown -
formMsgMeta.FORM_LOADING - Message displayed when the form is loading -
formMsgMeta.FORM_DATE_PICKER.FORMAT - The format in which the date entered in the date picker will be saved -
formMsgMeta.FORM_DATE_PICKER.CONFIRM - Caption of the Confirm button on date picker -
formMsgMeta.FORM_DATE_PICKER.CANCEL - Caption of the Cancel button of the date picker -
formMsgMeta.FORM_DATE_PICKER.DAYS_OF_WEEK[ ] - Array containing the names of weekdays. They can be customized using the array index based on language or which day does the user want to be the start of the week on the form. -
formMsgMeta.FORM_DATE_PICKER.MONTHS[ ] - Array containing the names of months. -
formMsgMeta.FORM_DATE_PICKER.TIME - Caption of the ‘Time’ part of date picker -
formDef.formMsgMeta.FORM_SUBMIT_SUCCESS - Message displayed when form submission is successful -
formDef.formMsgMeta.FORM_SUBMIt_FAILURE - Message displayed when form submission fails -
formMsgMeta.FORM_CLOSE_MESSAGE - Message displayed when form is closed -
formMsgMeta.FORM_CLOSE_BUTTON - Caption of the Form Closing button -
- -The below use cases explain the steps to make various customizations using the pre-processor script. The digital form to gather data for opening a bank account is being used as an example. Japanese and German languages have been added to the AI Agent. - -formMetaData - Case study form - -#### Use Case 1: Language specific customizations - -**Components:** - -Suppose you want to customize the display names of the Name and Date of Birth fields based on the selected App language. - -Since these are the first two fields on the form, their index values are 0 and 1, respectively. - -Below is the code to customize the display names: - -``` -let formDef = koreUtil.getFormDefinition(); -if(context.currentLanguage === 'en'){ - formDef.components[0].metaData.displayName = 'Name'; -formDef.components[1].metaData.displayName = 'Date of Birth'; -} -else if(context.currentLanguage=== 'de'){ - formDef.components[0].metaData.displayName = 'Name'; -formDef.components[1].metaData.displayName = 'Geburtsdatum'; -} -else{ - formDef.components[0].metaData.displayName = '名前'; -formDef.components[1].metaData.displayName = '生年月日'; -} -``` - -Let’s assume that currently the App language is Japanese. This is how the form would look in the run-time: - -formMetaData - Customized field labels - -**formMsgMeta:** - -Suppose you want to customize the standard response for mandatory fields based on the App language. Below is the pre-processor script for that: - -``` -let formDef = koreUtil.getFormDefinition(); -if(context.currentLanguage === 'en'){ - formDef.formMsgMeta.FIELD_MANDATORY = 'This is a mandatory field. Please provide a value'; -} -else if(context.currentLanguage === 'de'){ - formDef.formMsgMeta.FIELD_MANDATORY = 'Dies ist ein Pflichtfeld. Bitte geben Sie einen Wert ein'; -} -else{ - formDef.formMsgMets.FIELD_MANDATORY = 'これは必須フィールドです。値を入力してください'; -} -``` - -This is how the standard message would look if the app language is Japanese: - -formMetaData - Customized field level response messages - -#### Use case 2: Dynamically generating form text and data using Variables - -**Component** - -Suppose you want to ask the user’s name and pre-fill it in the form fields and labels. In this example, the user’s name is captured in an entity node, and that name is used to: - -* Pre-fill the **name** field -* Personalize the labels of the other fields - -Component - Creating context variable - -You can use the value captured in the entity node using the context variable in the pre-processor script to pre-populate the **Name** field using the below code: - -``` -formDef.components[0].metaData.defaultvalueInput = context.entities.entName; -``` - -This is how it would look at the time of run: - -Component - Getting the value for context variable through entity node - -Component - Pre-populating field using context variable - -To personalize the labels of other fields like Date of Birth, Phone Number, Email etc. as well, you can add the below code to manipulate the **displayName**: - -``` -formDef.components[1].metaData.displayName = context.entities.entName + ''s Date of Birth'; -formDef.components[2].metaData.displayName = context.entities.entName + ''s Phone Number'; -formDef.components[3].metaData.displayName = context.entities.entName + ''s E-Mail'; -formDef.components[4].metaData.displayName = context.entities.entName + ''s Address for Correspondence'; -``` - -This is how it would look at run time: - -Component - Field labels customized using context variable - -**formMsgMeta:** - -Suppose, in addition to personalizing the field labels and pre-filling the Name field, you want to personalize the form’s Response Message text for Mandatory fields by adding the user’s name so that it becomes **<<User’s Name>>, this is a mandatory field. Please provide a value**. You can achieve this by adding the below code: - -``` -formDef.formMsgMeta.useFormMsgMeta = 'yes'; -formDef.formMsgMeta.FIELD_MANDATORY = context.entities.entName + ', this is a mandatory field. Please provide a value.'; -``` - -This is how it would look at run time: - -Component - Field level response customized using context variable - -#### Use Case 3: Dynamically generating form data from external sources - -You can use external sources of data, like data tables, data fetched from API etc to dynamically generate form data. - -The syntax to do that is: - -``` -var resultSet = context.<>.response.body.queryResult; -for (var i=0; i>].metaData.<> = context.<>.response.body.queryResult[i].<> -} -``` - -Please note that in such scenarios you will need to add a service node prior to the digital form node, that will fetch the data to be used for dynamically generating the form data. - -### Add Components - -Once you configure the basic details for your form, the Platform takes you to the form builder, where you can add the components you require. - -You can drag and drop the components available on the left pane to the canvas and configure their properties to build the form. For details of the available components & their properties [see here](configure-digital-forms.md#form-editor){:target="_blank"}. - -Drag and drop component - -You can search for a given component, or scroll through the list to find what you require. - -search component - -You can view the components list in a grid format by clicking the icon on the top right of the list. - -If you hover in-between components within the form itself, you can find an in-form **Add Component** button which also allows you to search and add new components without having to navigate to the left-side list. - -add component - -### Add Form Sections - -If you are working with a longer and more complex form, you can split it into sections. Hover your cursor in-between form components to reveal an **Add Section** button. Clicking it will add a title and description to your form, which you can use to organize the other fields into sections. - -add form section - -### Form Actions - -From the Forms Listing page, you can: - -* Create a **New Form**, as seen above. -* **[Edit](#edit)** the Form. -* Use the **[Branding](#branding)** option to customize a form. -* **[Test](#test)** forms. -* **Delete** forms. - -form actions - -#### Edit - -You can use the **Edit** option from the form listing to edit the form. The following actions are performed on the Form in edit mode: - -form editor - -* **_The Component Listing_** is used for selecting and adding components to the Form by simple drag and drop action. -* Use the **View Toggler** to switch between **Desktop View** and **Mobile View**. -* Use the Move Component _Handle Bar_ against each of the components to change its location by a simple drag and drop action; -* Use *Form Actions* to: - - * **Test** the form to see the preview of the Digital Form in the Platform. - * **Delete** the Form. Please keep in mind that deleted forms cannot be restored. - * Change the Form **Settings** such as name, display name, and description. - -* Use the **Component Actions** to access the **Settings**, **Duplicate,** and **Delete** options for each of the form’s components. -* You can change the components’ properties from the **Component Settings** popup: - - * Use the **Component Docker** to dock/undock the settings pane to the screen. - * Use the **Component Selector** to navigate through the components on the Form. - -#### Branding - -Use the **Branding** option to change the look and feel of the form to reflect your organization’s standards. - -branding - -Change the colors and click **Save**. To restore the original appearance, click **Restore Default**. - -branding - -#### Test - -**Test** the form to see a preview of what it would look like to the end user. You can do this at any point while you work on the form. - -test preview - -## Invoke a Form - -A digital form can be invoked as follows: - -1. **From a Task**: You may include a form as a component in a dialog task for defining the task. The dialog task offers _Form Experience_ and the usual _Conversation Experience_ for filling the form data. You can choose the preference based on the _channel of interaction_ or any other criteria based on your requirements. -2. **From a UI flow**: You can add a Digital Form to a pane and choose a dialog task to trigger when the form is submitted from the pane. - -In the following sections, we discuss each of the above invocation processes. - -### Invocation from Dialog Tasks - -Digital Forms are used inside Dialog Tasks for capturing user inputs through a Form Node. - -To invoke a form from a dialog task, follow the below steps: - -1. Create/open the dialog from where you want to invoke the Digital Form. -2. Click the **+** icon next to the node where you want to add the Form. -3. Select the **Digital Form** option and then the form from the list. You can choose to add a Digital Form directly or use an existing Form Node. -4. You are prompted to select the **Form Experience**, it can be: - - configure form node - - * **Only Form UI** – This creates a Form Node and associates it with the Digital Form selected. This is the default option. - - only form ui - - * **Both Form UI and Conversation Experience (DRAFT)** – This further prompts you to choose a channel. When a user is using one of the selected channels they are presented with a Form UI, the rest of the channel users get a conversation experience. - - This option creates: - - * A **Bot Action Node** to determine the transitions to the Form Node and the Sub-dialog Node based on the channels selected. - * A **Form Node** for the Digital Form, same as was generated for the Only Form UI above. - * A **Sub-dialog Node** to capture the required entities (as defined in the Digital Form using components) for the conversational experience. - * A **Group** encompassing the following nodes. This grouping can be renamed and/or deleted. [Learn more](../dialogs/node-connections/grouping-nodes.md#add-a-node-group){:target="_blank"}. - - form experience node - -5. You can set the **Properties** for each of the nodes added. - - * The [Form Node](../dialogs/node-types/working-with-the-form-node.md){:target="_blank"}. Following Component Properties are of special interest: - * **Submit Message** – Message displayed to the end-user on successful submission of the form - * **Web/Mobile SDK Form Behavior** – Using this option you can either have the form displayed *inline* the chat window or *open on a full page*. Also, you can either go ahead with the default submit prompt or configure the setting to display a custom and more specific message to be shown in chat. [Learn more](../dialogs/node-types/working-with-the-form-node.md#component-properties){:target="_blank"}. - - * **Bot Action Node,** in case of the conversation experience flow, can also be configured in the [Logic Node](../dialogs/node-types/working-with-the-logic-node.md){:target="_blank"} as follows: - - * **Manage Context Variables** is used to create and set values for the context variables. Remember to use the full path of the variable in the _key_ field ie. ```context.BotUserSession.``` - - !!! Note - - We urge you not to make changes to the connection settings as this affects the AI Agent's performance. - - * **Sub-dialog Node** is configured as a normal [Dialog Node](../dialogs/node-types/working-with-the-dialog-node.md){:target="_blank"} as follows: - - * Use the **Entity Post-assignment** to capture the user input. - * In case you modify the sub-dialog or the source form, you are presented with an option to **Regenerate Dialog**. This ensures that the changes are reflected in the task without having to rebuild the entire task. Be aware that the changes are reflected in all places this sub-dialog is used. - - sub dialog node - -6. The user input can be accessed as follows: - - * Form component values are accessed from the Context Object using ```{{context.forms.form_name.component_name}}``` - * In the case of the sub-dialog, the variables used in the post-assignment settings as ```{{context.}}``` - -7. You can continue with the Dialog Task as per your business needs. For example, you can use the Form Component values as input to a **Service Node** to update the data or use the **Script Node** to process it further. If you are using the conversation experience too, remember to connect the auto-generated sub-dialog to the process flow. - -### Invocation from Panels - -Digital Forms are rendered in Digital Views by configuring Widgets & Panels. [Learn more](digital-views.md){:target="_blank"}. - -To invoke a form using Widgets and Panels, follow the below steps: - -1. **Create a widget** to invoke the Digital Form within **Digital Views** from **Automation AI > Digital Skills**. -2. Enter the name. -3. Select _Digital Forms_ as the **Source.** -4. **Add a Form** by selecting it from the drop-down list. -5. Select the **Dialog to Invoke on Submit** from the drop-down list. -6. Click **Save**. - - invoke form in widget - -7. **Add the Widget** to an existing panel or create a new panel. -You can add a form directly to a panel, it creates a widget by default. -8. You can **Test** the panel. -9. Follow the steps provided [here](../../../app-settings/dev-tools/kore-ai-web-sdk.md){:target="_blank"} to publish and host the panels. - - !!! Note - - While a Digital Form is used to define multiple Widgets and also add to multiple panels, it will be associated with a single Dialog Task across all Widgets and Panels. - -## The User Experience - -When the end-user initiates the dialog and reaches the node connecting to the Form node, the following events take place. Depending upon the experience selected at design time and the channel of invocation, the flow is the following: - -### Form Experience - -A **link to the form** is presented to the user. Note that for a synchronous WebHook channel, instead of a link the complete form definition is sent [here](../../../channels/add-webhook-channel.md){:target="_blank"}. - -link to form message - -Clicking the link opens the form in either full-screen or inline mode, based on the selection. Please note the following details about the link: - -* The link is active only for a certain duration of time, it becomes inactive after that. -* Even within the active period, it can be used only a limited number of times. - -End-users can fill in the values for the components/fields. - -test preview - -Every form comes with a default **Submit** button. This validates the form entries, prompts for any missing values. - -form validation - -Once the form is validated and submitted, the values are available in the context variable and accessed using the following code: `context.forms..` - -Here we are capturing the user entry and displaying it using a message node. - -form experience - -### Conversation Experience - -From the channel of operation, the end-user is prompted to enter values for every component in the form. - -The values are available in the sub-dialog context and are captured using Entity Post Assignment as mentioned above. - -Following is the user experience in Conversation mode: - -user experience - -### Exceptions - -When exceptions are encountered during the dialog execution with a Form Node, they are handled as follows: - - - - - - - - - - - - - - - - - - - - - - - - - - -
EXCEPTION - EXCEPTION BEHAVIOR -
The user tries to continue the conversation without opening the form link. - The AI Agent asks if the user wants to switch to a new task. -
The user tries to continue the conversation (in the chat window) without submitting the form responses. - The AI Agent asks if the user wants to switch to a new task. -
The user closes the form or browser without submitting responses. - If the app is configured to cancel the ongoing task, the form displays a warning message that the task will be canceled. If the user accepts, the form will be closed, and a message is displayed saying that the previous task is canceled. -
-Otherwise, the ongoing task goes on, and based on the configuration, the user is taken to the next step of the task. -
The user tries to relaunch the form while the form is already open. - The form link will not open the form and a message will be displayed saying that the form link is no longer valid. -
The user tries to relaunch the form after moving ahead in the conversation. - The form link will not open the form and a message will be displayed saying that the form link is no longer valid. -
- -### Panel Flow - -Users can access the form using **Panels & Widgets**. The experience is the same as for the Process Flow with Form experience. - -Once the form is validated and submitted, the values are available in the context variable and accessed using the following code: context.forms.. - -## Manage AI Agents with Digital Forms - -### Publish - -The publishing flow for an App with Digital Forms has the following special cases: - -As with any AI Agent, the Digital Forms exist in the following states: - -* **_In-development_** when a form is created. -* **_Awaiting approval_** when a form is submitted to Publish and the request is waiting for the admin to take action. -* **_Rejected_** when the Publish request is rejected by the admin. -* **_Published_** In the Platform, the status of a Digital Form remains In Development even after publishing. - - publish status - - On publishing the form, you can see the form listed under **Publish Status → View Publishing Summary**, but the status on the Digital Forms main page remains as _In Development_. - - form status - - The _In Development_ and _Published_ versions of the AI Agent can be viewed by toggling between the respective statuses in the top search-bar. - - va status search - - - !!! Note - - If any edits are done to the Digital Form while it is In Development, the changes would be reflected in the Published version as soon as you publish the form. - -* **_Suspended_** when a published form is suspended by the admin. - -### Pre-publishing Validations - -The following validations are performed before a Publish request is processed: - -A Dialog Task that contains a Digital Form can be published only if: - -* The corresponding Digital Form is already published, or -* The corresponding Digital Form is also selected for publishing. - -A Digital Form that is configured to trigger a Dialog Task is published only if: - -* The corresponding Dialog Task is already published, or -* The corresponding Dialog Task is selected for publishing. - -While the dependencies are published together, chances are that all the dependencies might not be available at run-time, in such cases: - -* If the Dialog Task is in a published state, but the Digital Form is not in a published state this triggers: -* The Task Failure Event and the corresponding behavior is invoked or -* A relevant Standard Response is displayed and -* Logged as Failed Task in Analytics. - - * Digital Form is in a published state, but the Dialog Task is not available then on Form submission, the end-user is presented with the Form’s Error Message. - -### Import - -Digital Forms are included in the full and incremental import of the AI Agent. - -For Full Import: - -* As with all other AI Agent components, the full import replaces the entire Digital Forms and form details. - -For Incremental Import: - -* You can choose to include/exclude the Digital Forms in the import. -* This import fully replaces the Digital Forms that are common to the import file and the AI Agent. -* Additional forms in the file are imported into the AI Agent. -* Additional forms in the AI Agent are retained. -* Post import, any invalid Digital Form integration details are disassociated with the corresponding forms. - -### Export - -The App Export option is available for Digital Forms with a status of *In Development* or *Published*. - -* Digital Forms can be selected/deselected from the **App Export** page under the **Bot Tasks** category. -* Choose the option to _Include dependent dialogs_ to export Dialog Tasks that are integrated with the selected Digital Forms to define widgets. -**_Note that this does not include the Sub-dialog Tasks generated using Digital Forms._** -* Complete information for each of the selected forms are available in the export file and this includes: - - * Fields - * Field properties - * Form integrations - -## Form Component Details - -### Components List - -Following is a list of the available components. - -**BASIC** - -* **Text Field** – used for single-line input. - - text field - -* **Text Area** – used for multi-line entry. - - text area - -* **Number** – used for numerical entries. - - number field - -* **Radio Button** – used as a selection option from a given list. - - radio button - -* **Dropdown** – Used as a selection option from a given list; can be multi-select. - - dropdown list - -* **Checkbox** – Used for multi-select option from a given list. - - checkbox - -* **Date** – Used for date entries, gives a date picker for the user to choose the date. - - date - - **Note** : The Date picker displays the month and week names in Japanese characters if the app language is Japanese. This support will be extended to more languages in the future. - - date picker - Japanese - -* **Date & Time** – Used for date & time entries. The system displays a date and time picker for the user to choose the date and time. -Use the **Date component** and set the _Time option_ to _yes_; choose from _12_ or _24-hour_ format. - - date and time - -* **Phone Number** – Used for phone number entries, allows the user to choose the country code. - - phone number - -* **Email** – Used for email address entries, validates for _xxx@uuu.com_ format. - - email - -* **Toggle** – Used for switching between two values, ideal for yes/no type of inputs. - - toggle - -* **Address** – Used for address entries. - - address - -* **URL** – Used for web URL entries, validates for _xxx.com_ format. - - url - -* **Range Slider** – Value selection between specified min and max values; can be represented as a percentage. - - range slider - -* **Password** - Used to display passwords in their masked form ```*****``` - -**ADVANCED** - -* **Button** – Used as a clickable component to submit reset, or open an external URL the form. Choose from _Primary_, _Secondary_, _Tertiary_, _Ghost,_ or _Danger_. - - button - -* **Label** – Used to display a static text box, no action required from the user. - - label - -* **Protip** – Used to mark important information for the end-user, no user action required. - - protip - -* **Note** - Used to mark information for the end-user, no user action required. - - note - -### Component Properties - -The following are the properties that can be set for each of the components. - -!!! Note - - Not all the properties are valid for all the components, refer to the [Property Matrix](#component-properties) for the mapping. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PROPERTY - DESCRIPTION -
Display Name - This is the text which appears against the component for the end-users. -
Name - This is the reference name that can be used for referencing the component in the other components of the form and form level operations -
Description - Help information about a field to be displayed to the end-user. -
Placeholder Text - A prompt message for the end-user -
Button Style - For button component, can be: -
    - -
  • Primary, - -
  • Secondary, - -
  • Tertiary, - -
  • Ghost, or - -
  • Danger -
  • -
-
Button Action - For button component, can be: -
    - -
  • Submit, - -
  • Reset, or - -
  • Go to URL – in this case, you need to enter a URL in the corresponding field. -
  • -
-
Read Only - To mark the component value is not changeable -
Required - To define whether input for this field is necessary or optional for the end-user entry. -
Tool-tip - Additional information about a field to be shown on demand to the end-user. Has three entries: -
    - -
  • Tip Text – text message for the additional information about the component - -
  • Tool-tip Type – whether the tip appears on hover or click - -
  • Tool-tip Position – where the tooltip should be displayed -
  • -
-
Date Format - Time format to be presented to the end-user can be -
    - -
  • mm/dd/yyyy – default - -
  • dd/mm/yyyy - -
  • yyyy/mm/dd - -
  • yyyy/dd/mm -
  • -
-
Time - To enable the end-user to enter Time along with Date -
Time Format -
-Used in conjunction with the above Time property -
Time format to be presented to the end-user can be 12 hrs or 24 hrs -
Default Country Code - Choose the desired default country code that should be shown to the end-user. Default is United States +1 -
Secure Field Data - To Secure the user information collected by this field. -
Masking Type -
-Available only when Secure Field Data is enabled -
Choose how to display the redacted data in the App Context, Debug Logs, Service Calls, Agent Transfer and the Bot Kit. Following actions are available: -
    - -
  • Redaction – The platform will replace the user input with a unique random system-generated alphanumeric value. This is the default setting when the Secure Field Data is enabled - -
  • Replacement – The platform will replace the user input with a static value or reference to a context object as entered in the replacement value field. - -
  • Mask with Character – The platform will replace the first few and last few characters of the user input with symbols. You can specify the number and position of characters to mask, symbol for masking (+ or #). -
  • -
-
Mask Input -
-Available only when Secure Field Data is enabled -
Enable this option to mask the end-user’s input for this field in the chat window. -
Checkbox Layout - Choose the number of columns to present the checkbox values in the grid view. You can select a minimum of 1 and a maximum of 4 columns, with 4 columns being the default selection. -
Data Settings -
Default Value - In case the component needs to be pre-populated with a default value -
Values - For Radio Button, Dropdown and Checkbox, add values to be given for selection by the end-user. You can mark one value as a default value -
Multi-Select - For Dropdown, if the user can select multiple values. -
Validation Settings -
Default Error Message - To be displayed in case user entry fails validation -
Validate - To define when the validations defined for a field are to be checked. Options are: -
    - -
  • On blur – Validations would be done when the end-user moves away from the component - -
  • On change – Validations would be done when the component value is changed -
  • -
-
Validation Rule - Rules in the following format can be added -
    - -
  • Operator – Choose the required option based on the validation condition you want to set for the input field. Each component type supports specific operators that enable the validation. - -
    -

    Note

    -
    • The Platform now supports Regular Expression (Regex) for more complex validations. It provides a powerful and flexible pattern-matching capability, allowing for precise validation of input formats.
    • -
    • Regex checks the input field against the specified pattern, which includes the format and conditions that the input must meet. For example, if the age limit should be 18 and above for vaccination, the regular expression is /^(1[89]|[2-9]\d)$/gm.
      • -
  • -
  • Comparison Type – Set to either value or field/component or value type.
  • -
  • Comparison With – The value or component name or type, as per the above selection.
-

-Multiple rules added to an existing rule would be taken as an AND condition, whereas a new rule would be an OR condition. You can add multiple Simple rules or a single Advanced rule by toggling between Simple and Advanced Modes.

- - -
Custom Error Message - This would be displayed when a particular validation fails -
Visibility Settings -
Is Visible - Whether the given component is visible to the end-user or not -
Visibility Rules - You can define conditions when a particular component would be visible or hidden -
    - -
  • Hide or Visible - -
  • Add Visibility Rules by defining the following: -
      - -
    • Component/Field which determines this component behavior- choose from the list - -
    • Operator – choose from the list - -
    • Comparison Type – set to either value or field/component or value type - -
    • Comparison With – the value or component name or type, as per the above selection - -
      -Multiple rules added to an existing rule would be taken as an AND condition, whereas a new rule would be an OR condition. You can add multiple Simple rules or a single Advanced rule by toggling between Simple and Advanced Modes -
    • -
    -
  • -
-
Auto Populate -
Auto Population - Whether the given component should be auto-populated or not -
Auto population rules - -
    -
  • Field or Value from which to auto-populate - -
  • Field name or the actual value based on the above selection -
  • -
-
Custom Validation -
Custom Validation -

Perform complex field and form level validations on dynamic variables by defining a JavaScript code for the Post Processor script. When the Submit button is clicked, the script runs to perform custom validations on multiple form fields before the form submission.

- -

For example, create a script that ensures the phone number field accepts only 10-digit numbers and rejects any alphabets or special characters.

-

Failure Scenario

-
  • If the defined Post-Processor script fails, a task failure event is triggered, and the reason for the failure is logged under Task Execution Logs > Debug Log for the Form node.
  • -
  • When a field-level validation error occurs, the specific error field is highlighted, and the error message defined in the script is displayed below the field and above the Submit button.

-
- -### Component Mapping Properties - -#### Basic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PROPERTY - TEXT FIELD - TEXT AREA - NUMBER - RADIO BUTTON - CHECK -
-BOX -
DROP -
-DOWN -
DATE - PHONE NUMBER - EMAIL - ADDRESS - URL - TOGGLE - RANGE SLIDER -
General Settings - - -
Display Name - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Name - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Description - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Placeholder Text - Yes - Yes - Yes - No - No - Yes - Yes - Yes - Yes - Yes - Yes - No - Yes -
Read Only - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Required - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Tool-tip - - -
Tip Text - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Tool-tip Type - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Tool-tip Position - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Date Format - No - No - No - No - No - No - Yes - No - No - No - No - No - No -
Time & -
-Time Format -
No - No - No - No - No - No - Yes - No - No - No - No - No - No -
Default Country Code - No - No - No - No - No - No - No - Yes - No - No - No - No - No -
Checkbox Layout - No - No - No - No - Yes - No - No - No - No - No - No - No - No -
Secure Data - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Masking Type - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Mask Input - Yes - No - Yes - No - No - No - No - No - No - No - No - No - No -
Data Settings - - -
Data Source - No - No - No - Yes - Yes - Yes - No - No - No - No - No - No - No -
Default Value - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Multiselect - No - No - No - No - No - Yes - No - No - No - No - No - No - No -
Auto Fill - - -
Auto Populate - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Auto Populate Settings - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Visibility Settings - - -
Is Visible - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Visibility Settings - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Validations - - -
Default Error Message - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Validate - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Equals To - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - TBD - Yes - Yes - Yes -
Not equal to - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - - Yes - Yes - Yes -
ContainsYes - Yes - No - No - No - No - No - No - No - No - No - No - No -
Does not contain - Yes - Yes - No - No - No - No - No - No - No - - No - No - No -
Regex - Yes - Yes - Yes - No - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes - Yes -
Max Length - Yes - Yes - No - No - No - No - No - Yes - Yes - - Yes - No - No -
Min Length - Yes - Yes - No - No - No - No - No - Yes - Yes - - Yes - No - No -
Part of - Yes - No - No - No - No - No - No - No - No - - No - No - No -
Not part of - Yes - No - No - No - No - No - No - No - No - - No - No - No -
Greater than - No - No - Yes - No - No - No - Yes - No - No - - No - No - Yes -
Less than - No - No - Yes - No - No - No - Yes - No - No - - No - No - Yes -
Greater than or equal to - No - No - Yes - No - No - No - Yes - No - No - - No - No - Yes -
Less than or equal to - No - No - Yes - No - No - No - Yes - No - No - - No - No - Yes -
- -#### Advanced - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PROPERTY - BUTTON - RICHTEXT - PRO-TIP
General Settings -
Display Name - Yes - Yes - Yes -
Name - Yes - Yes - Yes -
Description - Yes - No - Yes -
Placeholder Text - No - No - No -
Tool-tip - Yes - Yes - No -
Error Message - Yes - No - No -
Required - No - No - No -
Validate - Yes - No - No -
Read Only - Yes - No - No -
Action Type (Submit, Reset, Clear) - Yes - No - No -
Data Settings -
Data Source - No - No - No -
Default Value - No - No - No -
Auto Fill -
Auto-Populate - No - No - No -
Auto-Populate Settings - No - No - No -
Visibility Settings -
Is Visible - Yes - Yes - Yes -
Visibility Settings - Yes - Yes - Yes -
- -#### Dialog Node - -The following mapping gives the type of entities included in the sub-dialog when it is auto-generated from a Digital Form. - - - - - - - - - - - - - - - - - - - - - - -
FORM COMPONENT PROPERTY - DIALOG TASK NODE PROPERTY -
Name - Name -
Display Name - Display Name -
Placeholder Text - Entity Prompt -
Error Message - Error Prompt -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < - - - -
DIGITAL FORM COMPONENT TYPE - DIALOG TASK -
-NODE TYPE -
Text Field - String -
Text Area - Description -
Number - Number -
Radio Button - LoI (Enum) with each of the options in the radio button group copied as list items -
Dropdown - LoI (Enum) with each of the values in the dropdown list copied as list items. -
-Multi-select would be enabled based on the ‘is multi-select’ option of the Form Component -
Checkbox - LoI (Enum) with each of the options in the checkbox group copied as list items -
-Multi-select is enabled by default -
Date - Date -
Phone Number - Phone Number -
Email - Email -
Address - Address -
URL - URL -
Toggle - LoI (Enum) with each of the options in the toggle copied as list items -
Advanced -
Button - Not Applicable -
Label - Not Applicable -
Protip - Not Applicable -
Note - Not Applicable -
- -#### Context Object - -The following mapping gives the context object to capture the component value along with a sample context object. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
COMPONENT TYPE - CONTEXT OBJECT -
Text Field - context.forms.. -
Text Area - context.forms.. -
Number - context.forms.. -
Radio Button - context.forms.. -
Dropdown - context.forms..[] -
Checkbox - context.forms..[] -
Date - context.forms.. -
-In mm/dd/yyyy format -
Date & Time - context.forms.. -
-In mm/dd/yyyy hh:mm AM/PM format -
Phone Number - context.forms.. -
-prefixed with the area code of the country selected by the user -
Email - context.forms.. -
Address - context.forms.. -
URL - context.forms.. -
Toggle - context.forms.. -
-Yes/No values -
Range Slider - context.forms.. -
- -**SAMPLE CONTEXT OBJECT** - -```js -"forms": { - "basicpropertieslist": { - "TextField": "text", - "Textarea": "text area", - "Number": 123, - "Radio": "Male", - "Dropbox": [ - "UnderGrad", - "Other" - ], - "Checkbox": [ - "Education", - "Technology" - ], - "Date": "07/08/2020", - "Date&Time": "07/08/2020 19:00 PM", - "PhoneNumber": "+919999999999", - "Email": "john.doe@example.com", - "toggle": "Yes", - "Address": "Address", - "Url": "test.com", - "rangeSlider": 26.1 - } - } -``` - -### Prefill Form - -You can specify data that can be used to pre-populate the form fields. Platform will check for the availability of any form prefill information before launching the form. If any information is available, then the corresponding fields in the form are pre-populated before presenting the form to the user. The values can be static or from a context object. - -You can specify pre-fill form data using the following context object: `context.prefillForms`. - -You can use the following in Javascript to populate the above-mentioned context object: - -```js -context.prefillForms = { - : { - fields: { - : "", - : , - : [ - - -You can access Digital Views by selecting the App you want to work with then going to **Automation AI > Digital Skills > Digital Views**. - -## How to use Digital Views? - -You can enable Digital Views for your AI Agent by designing the required widgets, adding them to the relevant panels and publishing them on the WidgetSDK channel. - -Here are the steps we recommend for efficient design of Digital Views: - -1. **Set up**: Panels are containers to host one or more widgets. You may create multiple panels and each panel can host widgets that present relevant information. Widgets are the interactive components that can contain information to be presented to the end-users and allow them to perform actions and follow-ups. -2. **Configure**: Define widgets by connecting them either to your tasks or by directly defining the widget. If you have connected your widget to a Dialog Task, make sure to use a Message node to present the required information in the widget using any of the supported widget templates. -3. **Preview & Publish**: Preview your widgets from the Platform to review the visual representation of the information. Enable the WidgetSDK channel and publish your panels and widgets to make them available for your end-users. -4. **Host with Kore.ai SDK / Host Independently**: You can choose to host your widgets independently or co-host them along with the WebSDK. You can download the SDKs from the [Kore.ai GitHub page](https://github.com/Koredotcom/web-kore-sdk){:target="_blank"}. - -## General Setup - -Here is the general setup process to follow when you want to configure Panels and Widgets for Digital Views: - -1. **Configure Widgets**: Define widgets by connecting them either to your tasks or any other source like JavaScript generating JSON file. In cases where you are using a task as a source, ensure that the message is formatted properly for the Widget SDK channel. -2. **Preview the Widgets**: Preview your widgets from the Platform. -3. **Set up Panels**: You may create multiple panels and each panel can host widgets that present relevant information. You can use the predefined widgets or create new ones. -4. **Test the Panels** to see how the Panels and Widgets are rendered in the chat window. -5. **Publish the App**: Publish the App so that the panels and widgets are made available for your end-users. -6. **Host the Panel**: You can choose to host your widgets independently or co-host them along with the web SDK. You can download the SDKs from the Kore.ai GitHub page. Do ensure to enable WidgetSDK as a channel. - - -## Configure Widgets - -Widgets are individual components that can communicate with the App for presenting information to the end-users. The source of information for widgets is from a Dialog Task or a JSON using any of the predefined widget templates. - -To configure widgets, follow the below steps: - -1. Click **Create Widget** to create a widget. - - create widget - -2. The New Widget dialog opens. - - new widget dialog - -3. On the **New Widget** window, enter the following details: - - * **Name** of the widget - * **Display Name** for the widget - * **Auto Refresh** to set the frequency with which this widget needs a poll for fresh data. The refresh is applicable only when the panel containing the widget is active. - * **Source** for a widget can be set either from the execution of Dialog Task, from JavaScript by defining a JSON, or by linking an existing Digital Form. - -4. Click **Save**. - -### Configure Widget Sources - -For the widget input data, you must configure one of the following sources and complete the configuration. - -### Dialog Task - -The **Dialog Task** option allows you to trigger a task and present the output in the widget. - -The **Select Dialog Task** drop-down will list all available tasks in the current AI Agent. Select the task you want to trigger using this widget. - -!!! Note - - In the connected Dialog Task make sure to use a Message node to present the required information in the widget using any of the supported widget templates. - -You can use the icon next to the Dialog Task to open the Dialog Task for checking the task details like entity names etc. - -Any entities used by the selected Dialog Task need to be pre-populated with values by mapping **Entity Name** with **Entity Values**. - -If the selected Dialog Task has any **Authorization Profile** defined, it is displayed here. - -dialog task source - -### JSON - -When selecting JSON as the source, you will be presented with a Javascript editor, where you can add your code, as shown below: - -json file upload - -### Digital Form - -When selecting **Digital Form** as a widget source, you can select the Digital Form, and the Dialog Task to trigger on submission. - -!!! Note - - A Digital Form can be used to define multiple Widgets and can also be added to multiple Panels. However, it will be associated with the same Dialog Task across all Widgets and Panels. - -digital form as source - -### Edit, Run & Preview a Widget - -After you save, the widget will be **In Development** state. You can **Edit** or **Delete** the widget. - -widget saved - -When you select **Edit** widget, apart from being able to modify any of the above fields, you will have the option to **Run & Preview** the widget. You can save the preview as the thumbnail display for the widget. - -widget preview - -## Configure Panels - -Panel refers to containers that hold one or more widgets. You can add an existing widget to the panel or create new widgets within it. - -### Create a Panel - -To create a panel, follow the steps below: - -1. Click **Create Panel** on the Digital Views screen to create a panel. -2. On the **New Panel** window, enter the following details: - - * **Name** of the Panel. - * **Display Name** for the Panel. - * **Panel Icon** to display in the chat window (URL to the location). - * **Save** the Panel. - - create new digital view panel - -3. After you save, the panel will be **In Development** and will be displayed on your Digital Views screen. - -### Add Widgets - -1. Click **Add Widget** to add widgets to the panel. - - add widget to panel - -2. Select widgets from the drop-down list and click **Add**. You can add multiple widgets to the same panel. - - select widgets from dropdown - -### Panel Options - -You have the following options for a given panel: - -1. **Edit** the panel details; -2. **Add Form** to add existing forms to the Panel. Once added, forms will behave as a widget with the source set to Digital Form; - - * **Add Widget** to add existing widgets; - * **Panel Management** to add existing forms/widgets, or remove already added forms/widgets from the panel. - * **Test** the individual panel – this opens the **Talk to App** window along with the panel listing with the current panel active and data presented. You can interact with the AI Agent and test the panel. - * **Delete** the Panel. - - panel options for digital views - -## Publish - -When you publish your App, please ensure that the panels and widgets you want to include are selected. - -[Learn more](configure-digital-views.md#publish){:target="_blank"} about publishing an App. - -publish digital view - -## Host - -The Platform provides the Widget SDK for hosting and managing panels and widgets. You can choose to host your widgets independently or co-host them along with the WebSDK. You can download the SDKs from the Kore.ai GitHub page. Do ensure to enable WidgetSDK as a channel. [Learn more](../../../channels/add-widget-sdk-channel.md){:target="_blank"}. \ No newline at end of file diff --git a/ai-for-service/generative-ai-tools/genai-features-agentai.mdx b/ai-for-service/generative-ai-tools/genai-features-agentai.mdx index 045d61e61..32b673bc6 100644 --- a/ai-for-service/generative-ai-tools/genai-features-agentai.mdx +++ b/ai-for-service/generative-ai-tools/genai-features-agentai.mdx @@ -10,14 +10,32 @@ LLM-powered features for Agent AI that enhance agent productivity, utterance gen (✅ Supported | ❌ Not supported) -| Feature | Azure OpenAI | OpenAI | Custom LLM | XO GPT | -|---------|-------------|--------|:----------:|:------:| -| Agent Coaching | GPT-4o | GPT-4o, GPT-4o mini | ✅ | ❌ | -| Conversation Summary | ❌ | ❌ | ✅ | ✅ | -| Generating Opposite Utterance Suggestions | GPT-3.5 Turbo | GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini | ✅ | ❌ | -| Generating Similar Answer Suggestions | ❌ | GPT-3.5 Turbo, GPT-4, GPT-4o mini | ❌ | ❌ | -| Generating Similar Utterance Suggestions | GPT-3.5 Turbo | GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini | ✅ | ❌ | -| Sentiment Analysis | GPT-4o | GPT-4o, GPT-4o mini | ✅ | ❌ | +**Azure OpenAI and OpenAI** + +| Feature | Azure OpenAI Model(s) | OpenAI Model(s) | +|---|---|---| +| Agent Coaching | GPT-4o
GPT-4o-mini
GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | GPT-4o
GPT-4o-mini | +| Agent Playbook | GPT-4o
GPT-4o-mini
GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | GPT-4o
GPT-4o-mini | +| Conversation Summary | GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | ❌ | +| Generating Opposite Utterance Suggestions | GPT-3.5 Turbo
GPT-4
GPT-4o-mini
GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | GPT-3.5 Turbo
GPT-4
GPT-4 Turbo
GPT-4o
GPT-4o-mini | +| Generating Similar Answer Suggestions | GPT-3.5
GPT-4
GPT-4o-mini | GPT-3.5 Turbo
GPT-4
GPT-4o-mini | +| Generating Similar Utterance Suggestions | GPT-3.5 Turbo
GPT-4
GPT-4o-mini
GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | GPT-3.5 Turbo
GPT-4
GPT-4 Turbo
GPT-4o
GPT-4o-mini | +| Sentiment Analysis | GPT-4o
GPT-4o-mini
GPT-5.4
GPT-5-mini
GPT-5.1
GPT-5.2
GPT-5.4 Mini
GPT-5.4 Nano | GPT-4o
GPT-4o-mini | + + + +**Anthropic, Google Gemini, Custom LLM, and XO GPT** + + +| Feature | Anthropic
Claude Opus 4.6
Claude Sonnet 4.6
Claude Sonnet 4.5
Claude Haiku 4.5
| Google Gemini
Gemini 2.5 Pro
Gemini 2.5 Flash
Gemini 2.5 Flash-Lite
Gemini 3.1 Pro Preview
Gemini 3 Flash Preview
| Custom LLM | XO GPT | +|---|:---:|:---:|:---:|:---:| +| Agent Coaching | ✅ | ✅ | ✅ | ❌ | +| Agent Playbook | ✅ | ✅ | ✅ | ❌ | +| Conversation Summary | ✅ | ❌ | ✅ | ✅ | +| Generating Opposite Utterance Suggestions | ✅ | ✅ | ✅ | ❌ | +| Generating Similar Answer Suggestions | ❌ | ❌ | ❌ | ❌ | +| Generating Similar Utterance Suggestions | ✅ | ✅ | ✅ | ❌ | +| Sentiment Analysis | ✅ | ✅ | ✅ | ❌ | ---