@cognigy/rest-api-client
Version:
Cognigy REST-Client
278 lines • 11.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CHECK_AGENT_AVAILABILITY = void 0;
/* Custom modules */
const createNodeDescriptor_1 = require("../../createNodeDescriptor");
const constants_1 = require("../../../constants");
/**
* Node name: 'checkAgentAvailability'
*
* Purpose:
* Check if agents are available for handover
*/
exports.CHECK_AGENT_AVAILABILITY = (0, createNodeDescriptor_1.createNodeDescriptor)({
type: "checkAgentAvailability",
defaultLabel: "Check Agent Availability",
summary: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SUMMARY",
appearance: {
showIcon: false,
},
tags: ["service"],
fields: [
{
key: "checkAgentAvailabilityProvider",
label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__LABEL",
type: "checkAgentAvailabilityProvider",
description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__DESCRIPTION",
defaultValue: "legacyEndpoint",
params: {
required: true,
},
},
{
key: "checkAgentAvailabilityConfig",
label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__LABEL",
type: "json",
description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__HANDOVER_PROVIDER__DESCRIPTION",
defaultValue: {},
params: {
required: true,
},
},
{
key: "chatwootInboxId",
type: "cognigyText",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__CHATWOOT_INBOX_ID__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__CHATWOOT_INBOX_ID__DESCRIPTION"
},
{
key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_INBOX_ID,
type: "cognigyText",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__LIVEAGENT_INBOX_ID__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__LIVEAGENT_INBOX_ID__DESCRIPTION"
},
{
key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_SKILLS,
type: "cognigyTextArray",
label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_SKILLS__LABEL",
description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_SKILLS__DESCRIPTION",
},
{
key: constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_LANGUAGES,
type: "cognigyTextArray",
label: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_LANGUAGES__LABEL",
description: "UI__NODE_EDITOR__SERVICE__HANDOVER_TO_AGENT__FIELDS__LIVE_AGENT_LANGUAGES__DESCRIPTION",
},
{
key: "genesysCloudSkills",
type: "textArray",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_SKILLS__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_SKILLS__DESCRIPTION"
},
{
key: "genesysCloudProfileSkills",
type: "textArray",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_PROFILE_SKILLS__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_PROFILE_SKILLS__DESCRIPTION"
},
{
key: "genesysCloudLanguageSkills",
type: "textArray",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_LANGUAGE_SKILLS__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__GENESYS_CLOUD_LANGUAGE_SKILLS__DESCRIPTION"
},
{
key: "storeLocation",
type: "select",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__STORE_LOCATION__LABEL",
params: {
options: [
{
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__STORE_LOCATION__OPTIONS__INPUT__LABEL",
value: "input"
},
{
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__STORE_LOCATION__OPTIONS__CONTEXT__LABEL",
value: "context"
}
],
required: true
},
defaultValue: "input"
},
{
key: "inputKey",
type: "cognigyText",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__INPUT_KEY__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__INPUT_KEY__DESCRIPTION",
defaultValue: "availableAgents",
condition: {
key: "storeLocation",
value: "input"
}
},
{
key: "contextKey",
type: "cognigyText",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__CONTEXT_KEY__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__CONTEXT_KEY__DESCRIPTION",
defaultValue: "availableAgents",
condition: {
key: "storeLocation",
value: "context"
}
},
{
key: "abortOnError",
type: "toggle",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ABORT_ON_ERROR__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ABORT_ON_ERROR__DESCRIPTION",
defaultValue: false
},
{
key: "errorLogging",
type: "select",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ERROR_LOGGING__LABEL",
description: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ERROR_LOGGING__DESCRIPTION",
defaultValue: "none",
params: {
required: true,
options: [
{
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ERROR_LOGGING__OPTIONS__NONE__LABEL",
value: "none"
},
{
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ERROR_LOGGING__OPTIONS__BASIC__LABEL",
value: "basic"
},
{
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__ERROR_LOGGING__OPTIONS__FULL__LABEL",
value: "full"
}
]
}
},
{
key: "logWarning",
type: "description",
label: " ",
params: {
text: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__FIELDS__LOG_WARNING__TEXT"
},
condition: {
key: "errorLogging",
value: "full"
}
},
],
sections: [
{
key: "chatwootSettings",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SECTIONS__CHATWOOT_SETTINGS__LABEL",
defaultCollapsed: true,
fields: [
"chatwootInboxId",
],
condition: {
or: [
{
key: "checkAgentAvailabilityProvider",
value: "legacyEndpoint"
},
{
key: "checkAgentAvailabilityProvider",
// @ts-ignore
value: null
}
]
}
},
{
key: "liveAgentSettings",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SECTIONS__LIVEAGENT_SETTINGS__LABEL",
defaultCollapsed: true,
fields: [
constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_INBOX_ID,
constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_SKILLS,
constants_1.COGNIGY_LIVE_AGENT_DESCRIPTOR_FIELDS.LIVE_AGENT_LANGUAGES,
],
condition: {
or: [
{
key: "checkAgentAvailabilityProvider",
value: "legacyEndpoint"
},
{
key: "checkAgentAvailabilityProvider",
// @ts-ignore
value: null
}
]
}
},
{
key: "genesysCloudSettings",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SECTIONS__GENESYS_CLOUD_SETTINGS__LABEL",
defaultCollapsed: true,
fields: [
"genesysCloudSkills",
"genesysCloudProfileSkills",
"genesysCloudLanguageSkills"
],
condition: {
or: [
{
key: "checkAgentAvailabilityProvider",
value: "legacyEndpoint"
},
{
key: "checkAgentAvailabilityProvider",
// @ts-ignore
value: null
}
]
}
},
{
key: "storage",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SECTIONS__STORAGE__LABEL",
defaultCollapsed: true,
fields: [
"storeLocation",
"inputKey",
"contextKey",
]
},
{
key: "errors",
label: "UI__NODE_EDITOR__SERVICE__CHECK_AGENT_AVAILABILITY__SECTIONS__ERRORS__LABEL",
defaultCollapsed: true,
fields: [
"errorLogging",
"logWarning",
"abortOnError"
]
}
],
form: [
{ type: "field", key: "checkAgentAvailabilityProvider" },
{ type: "section", key: "genesysCloudSettings" },
// only render this field if "live agent" is enabled
process.env.FEATURE_USE_COGNIGY_LIVE_AGENT === "true" && {
type: "section",
key: "liveAgentSettings"
},
{ type: "section", key: "chatwootSettings" },
// { type: "section", key: "salesforceSettings" }, TODO
{ type: "section", key: "storage" },
{ type: "section", key: "errors" },
]
.filter(element => !!element),
function: async ({ cognigy, config }) => {
const { api } = cognigy;
// @ts-ignore
return await api.checkAgentAvailability({ cognigy, config });
}
});
//# sourceMappingURL=checkAgentAvailability.js.map