Section II – Functional Modules > Queue Interface > Functions         Bottom of Page
Genesys 8.1
SCXML Technical Reference
< Object Model            Parameter Elements >

Functions

_genesys.FMname.reserveTarget

When the <submit> action returns a ready target, the target is always blocked by the functional module during some time in seconds (the value of the platform's transition_time configuration option). The reserveTarget function allows you to override such behavior and change the time interval or even cancel it entirely (time parameter = 0). During the time the target is reserved, the functional module does not distribute any interactions to the target as specified by the target parameter, which is the result of the <submit> action. This function can be used in cases where a target may have additional conditions (except a Stat Server–reported not-ready state) that should prevent the target from being selected as a valid target. This blocking time will be applied to all <submit> action resulting targets until it is changed again by this function.

void _genesys.FMname.reserveTarget(ixnid, target, time)

Parameters:

Returns: void

_genesys.FMname.cCTExtractTargets

This function produces a list of targets in "possible target" format from the supplied arguments and stores target DN information associated to each target for subsequent use in number translation of type [TARGET.CCTN]. These are maintained for the life of the session by the functional module and can be used for any interaction associated with session.

This function supports these target types:

targets _genesys.FMname.cCTExtractTargets(ixnid, statserver, input)

Parameters:

Returns: targets: STRING–The result of the function is a string of the form: TargetID1@StatServer.TargetType1,...,TargetIDN@StatServer.TargetTypeN . Thus, in the targets listed in the result are separated by commas and contain no spaces.

_genesys.FMname.checkAgentState

This function instructs the functional module for the associated session (across all associated interactions) as to whether to take into account the state of an Agent, Place, Agent Group, or Place Group as reported by Stat Server or to look only for free DNs belonging to the Agent, Place, or Agent Group. For example, _genesys.FMname.checkAgentState(false) makes it possible to route a voice interaction to an agent that Stat Server reports as not ready. If agent capacity rules are set, this function has no effect

(as the Genesys Agent Capacity model does not use agent state). To allow an agent to receive multiple voice interactions, this function must be false. However, the side effect is that the functional module distributes interactions so as to occupy all DNs of Agent A before considering Agent B. When this function is set to false, or the function _genesys.FMname.useAgentState is used, the functional module does not apply the verification_time configuration option to agents, but still applies it to agent DNs.

void _genesys.FMname.checkAgentState(ixnid, check)

Parameters:

Returns: void

_genesys.FMname.clearThresholds

This function invalidates all thresholds previously set by <submit> actions for a given interaction. As a result, the functional module now considers all targets that were previously affected by <submit> actions as unconditionally ready for routing.

void _genesys.FMname.clearThresholds(ixnid)

Parameters:

Returns: void

_genesys.FMname.countSkillInGroup

This function determines the number of agents with a skill set or statistical parameters that satisfy the indicated skill expression. It returns the number of the agents belonging to the agent group based on the defined skill expression. You can also just specify a Stat Server and a skill expression without specifying an Agent Group. However, a skill expression and a Stat Server must be specified. The Stat Server is used to query the content of the provided Agent Group (real or virtual).

total _genesys.FMname.countSkillInGroup(ixnid, statserver, group, sexpr)

Parameters:

Returns: total: NUMBER — The result of the function is an integer which represents the number of agents that meet the critieria of the skill expression.

_genesys.FMname.createSkillGroup

This function converts the provided Agent Group, Skill Expression, and StatServer into a normal target format that represents all agents belonging to the Agent Group supplied as a parameter that satisfies the logical condition given by the Skill Expression.

tlist _genesys.FMname.createSkillGroup(ixnid, statserver, group, sexpr)

Parameters:

Returns: tlist: STRING — The result of the function is a string which represents a list of targets (each target is comma-separated in the string) that meet the critieria of the skill expression.

For example, GroupName:SkillExpression@statserver.GA.

_genesys.FMname.excludeAgents

This function instructs the functional module not to route interactions to any agent on the

specified list of agents. This applies across all <submit> actions associated with the session.

prev_agents _genesys.FMname.excludeAgents(ixnid, agents)

Parameters:

Returns: prev_agents: STRING — The result of the function is a string which represents a list of previous excluded agents. Each agent ID is comma-separated in the string.

_genesys.FMname.extRouterError

This function is used to change the default external routing in the case of a failure to get a remote access number. This is only applicable across all interactions associated with the session when the application is using the <submit> action with the route attribute set to true.

void _genesys.FMname.extRouterError(ixnid, enable)

Parameters:

Returns: VOID

_genesys.FMname.extRouteStatus

This function returns true if external routing is possible and false if not.

status _genesys.FMname.extRouteStatus(ixnid, switch)

Parameters:

Returns: status: BOOLEAN — The result of the function is a boolean which indicates whether external routing is possible for the given media server (switch).

_genesys.FMname.findServiceObjective

This function returns a value that is defined in a configuration layer objective table object for a given a Service Objective, which is a unique combination of Customer Segment, Service Type, and Media Type. If the Update parameter is true, the Service Objective with Service Type and Customer Segment are automatically attached to the interaction.

value _genesys.FMname.findServiceObjective(ixnid, table, media, service, segment, update)

Parameters:

Returns: value: NUMBER — The result of the function is an integer which represents the configured value for this service objective. Zero is returned if there are any issues (unsuccessful search — no service objective defined) while processing this function.

_genesys.FMname.incrementPriority

This function results in incrementing the selected interaction priority by the Increment every Interval second. It affects the priority of the interaction for <submit> actions the interaction is already waiting for and those it may be waiting for in the future.

void _genesys.FMname.incrementPriority(ixnid, increment, interval)

Parameters:

Returns: VOID

_genesys.FMname.nMTExtractTargets

This function enables you to track the number of active interactions at a device that is not configured in the Configuration Database. It establishes a counter for all active interactions at the non-configured device. Using this counter, you can compare the number of active interactions to a specified threshold and stop routing interactions to the device when the threshold has been reached.

This function parses a list of targets, which is a comma-separated list of attributes produced by a database query or some outside application (an application on an application server, for example) such as <fetch>. Each target can be described using four attributes: Target Name, Threshold, Speaking Time, and RetryTime. These attributes are explained below:

The following is an example of input and output for this function:

tList = _genesys.FMname.nMTExtractTargets("'1111111,10,22222,20,333333, 30'", 2, 0, 120, 2);

tList will be the following string:

'{RStatCallsInQueue&lt;=10}1111111.DN, {RStatCallsInQueue&lt;=20}22222.DN, {RStatCallsInQueue&lt;=30}333333.DN'

Using the Function

Use of this function to track the number of interactions at non-configured devices usually includes:

Note: The functional module has no information about the current state of the device — only the number of interactions active on it. Active interactions are considered to be the number of interactions the functional module has sent to the target, minus the number of interactions that were terminated. In addition to generating output, this function also

overwrites the default values (15 seconds and 600 seconds) for Retry Time and Speaking Time. Thresholds for non-configured devices set using the _genesys.FMname.SetThresholdEx function, for example, use the current default values for

Retry Time and Speaking Time that were set by the latest invocation of this function.

Note: Changes applied to default settings (RetryTime, Speaking Time) specified in this function work only for non-configured devices that were created after this function was used. Those non-configured devices that were created previously are not affected by any changes made using this function. If the information about the non-configured devices (numbers, threshold values) is retrieved from an outside source (for example, a database), use this function to transform the result of this query into a target list suitable for use by the <submit> action. In this case, the use of this function automatically sets all the specified thresholds and you do not need to call the _genesys.FMname.setThresholdEx function.

Setting Multiple Thresholds

You can set more than one threshold by using this function in more than one logic definition or you can use it multiple times in the same logic. In this way, you can set a different allowable number of concurrent interactions for different situations, as described below.

Note: If you use the same non-configured device in other logic definitions or in multiple places in the same logic, the functional module uses the same counter for that device. So this definition is global across the functional module.

Using NMTExtractTargets to Set Multiple Thresholds — Example:

You can set different thresholds for the same non-configured device to take account of different business conditions. For example, between 9:00 AM and 5:00 PM, an outsourcer with a nonconfigured device can handle 100 concurrent interactions. After 5:00PM, the outsourcer can handle only 50 concurrent interactions on this device.

Here is how it works:

  1. Place this function in two places. You can use it twice in one logic definition or use two separate logic definitions to handle this situation, depending on what is best suited to your environment. A global counter is created for the non-configured device.
  2. Using one instance of this function, set a default threshold value of 100 to be attached as an attribute to all interactions that arrive between 9:00 AM and 5:00 PM.
  3. Using the other instance of the function, set a default threshold value of 50 to be attached as an attribute to all interactions that arrive between 5:00 PM and 9:00 AM.

When an interaction is ready to be routed, the interaction attribute is compared to the global counter, which is incremented or decremented to correspond to the number of active interactions on this non-configured device. If the value on the counter is greater than the interaction's Threshold attribute, the interaction is not routed until the counter's value drops below the appropriate threshold.

Deployment Considerations

Only one orchestration platform can send interactions to the non-monitored device. If you require multiple numbers to distribute to the same non-monitored device, align the SN-to-DN table, the network switch, and platform so that all interactions sent to a nonmonitored device are processed by the same platform. You can use a network-controlling server (for example, T-Server or a SIP Server) as the network switch. To use this function, the platform and functional module must register on a special device (called switch::) in order to receive notification from the controlling server (for example, T-Server) about the termination of interactions. If you do not register, the RStatCallsInQueue statistic is not correctly calculated for non-monitored targets. Registration is not automatic and is controlled by platform (using the call_monitoring configuration option).

tlist _genesys.FMname.nMTExtractTargets(ixnid, targets, dThreshold, dSpeakTime, dRetryTime, recordSize)

Parameters:

Returns: tlist: STRING — The result of the function is a string of the form: {RStatCallsInQueue&lt;=TargetThres1}TargetName1.DN....{RStatCallsInQueue&lt;=TargetThresN}TargetNameN.DN. Thus, the targets are listed in the result separated by commas and contain no spaces.

_genesys.FMname.onRouteError

This function allows you to specify an individual functional module reaction for every type of error. If used, this option overwrites the on_route_error configuration option for all interactions associated with the current session. In the case of an error, the functional module behaves in the following way:

Note: This function should ONLY be used when using the <submit> action with the route attribute set to true.

void _genesys.FMname.onRouteError(ixnid, type, option)

Parameters:

Returns: VOID

_genesys.FMname.priorityTuning

The functional module always puts interactions into waiting queues according to their priorities. This function defines how the functional module handles interactions with the same priorities. By default, interactions with the same priority are ordered according to the time the interaction began to wait for some target. This applies across all <submit> actions.

void _genesys.FMname.priorityTuning(ixnid, useAge,usePredict, useObjective)

Parameters:

Returns: VOID

_genesys.FMname.resetAdjustment

This function cancels any adjustment that may have been set for a statistic for a given target using _genesys.FMname.setAdjustment.

void _genesys.FMname.resetAdjustment(ixnid, target, statistic)

Parameters:

Returns: VOID

_genesys.FMname.routed

This function marks the interaction as routed. When routing functions, such as <submit> actions with the route attribute set to true, are successfully executed, an interaction is implicitly marked as routed. This function explicitly marks the interaction as routed. This function allows the functional module to dispose of the interaction when the strategy is completed and not route the interaction to the default destination.

void _genesys.FMname.routed(ixnid)

Parameters:

Returns: VOID

_genesys.FMname.selectTargets

This function removes from a list of Agent Groups, Place Groups, or Queue Targets those targets that have already received a number of calls in excess of their quota for the interval when the function is called. These types of quotas are specified in the configuration layer in the Statistical Days belonging to Statistical Tables of type Quota Table, associated with each of the Agent Groups or Place Groups. The queue is associated with that Quota Table that is associated with an Agent Group for which the queue is an origination DN. If no agent group is found, the queue is associated with the Quota Table that is associated to an Agent Group named after the alias of the queue. If an Agent Group or Place Group target on the list has no Quota Table associated with it or no Statistical Day in the table matches the current date, the target is retained in the list returned by the function: it has not exceeded its quota since no quota was set for it.

Configuring Quota Tables Associated to Groups of Agents or Places

A Quota Table is configured in the configuration layer as a Statistical Table object of Quota Table type (see the configuration layer documentation for more details on the process of configuration). The Quota Table associated with an Agent Group or a Place Group must be specified inside the Advanced properties of the group. The same Quota Table can be associated with more than one Agent Group or Place Group. The Quota Table must contain Statistical Days. Use the information about Statistical Days, but not the information about Statistical Values. The relevant values for Statistical Values are as follows: Statistical Value 1, Statistical Value 2, and Statistical Value 3 for each Interval of the day — during every interval. Value 1 is used when Quota type has a value of 0 (QuotaMin). Value 2 is used when Quota type has a value of 1 (QuotaTarget). Value 3 is used when Quota type has a value of 2 (QuotaMax). All other properties of Statistical Days are irrelevant for the purpose of setting up quotas. Note: The same Statistical Day can belong to more than one Quota Table.

tlist _genesys.FMname.selectTargets(ixnid, filter, targets)

Parameters:

Returns: tlist: STRING — The result of the function is a string of targets in the possible Target Formats that matches the quota filter criteria. However, if the function encounters a list element in a different format, it does one of the following:

_genesys.FMname.selectTargetsByThreshold

This function finds the best available target(s) from a list of targets by applying a statistic with a threshold comparison against the input target list. This function returns a subset of the Targets List parameter (possibly empty).

tlist _genesys.FMname.selectTargetsByThreshold(ixnid, targets, statistic, value, cond)

Parameters:

Returns: tlist: STRING — The result of the function is a string of targets in the possible Target Formats that matches the threshold filter criteria.

_genesys.FMname.setInteractionAge

This function overrides the default age of an interaction from a routing prespective. This function can be useful if the age of the interaction will be used for placing interactions into waiting queues. The interaction age is the time accumulated since the interaction was known by Genesys (normally set at the very first resource or device the interaction enters).

By default, the interaction age is defined by the time of the last event (for example, EventRouteRequest). However, if an interaction is going to be routed more than once (for example, if an agent transfers an interaction on a routing point for re-routing or if the Voice Callback Universal Callback Server resubmits a callback interaction to URS), the time of the last event (for example,

EventRouteRequest) is not always the best way to define interaction age.

void _genesys.FMname.setInteractionAge(ixnid, keep)

Parameters:

Returns: VOID

_genesys.FMname.setAdjustment

This function enforces an adjustment of the values of a specified statistic for a particular target. The adjustment does not apply to the result of explicit Stat Server queries by the function's _genesys.statistic.sData() function. It is only used for thresholds, statistical interaction distribution, or when a statistic is supplied as an argument to the <submit> actions. Once set, an adjustment can be cleared by invoking the _genesys.FMname.resetAdjustment function. This applies across all interactions and the corresponding <submit> actions for the session.

void _genesys.FMname.setAdjustment(ixnid, target, statistic, sign, value)

Parameters:

Returns: VOID

_genesys.FMname.translationOverride

This function overrides any translation specified in configured Switch Access Codes for routing to remote targets later in the session, and instructs the functional module to use the information specified in the parameters for the purpose of number translation.

void _genesys.FMname.translationOverride(ixnid, source, destination, location, rType, DNIS, reason, extension)

Parameters:

Returns: VOID

_genesys.FMname.targetSelectionTuning

This function activates a configured cost-based routing solution for this session and the associated functional module objects (interactions and so on).

void _genesys.FMname.targetSelectionTuning(ixnid, useCostFactor)

Parameters:

Returns: VOID

_genesys.FMname.useAgentState

This function specifies the agent state the functional module will use instead of the default reported by Stat Server. This will apply to the entire session and all the <submit> actions until the next _genesys.FMname.useAgentState invocation.

To use this option you must first set up URS as follows:

For example, the agent is defined as ready if the agent has no calls on his or her extension or position busy[extension]+busy[acdposition] = 0. An agent in this state will be considered not ready if the agent has at least one call on the extension or position. The agent will be considered ready in all other situations. So, for example, if the agent has the e-mail DN busy, the agent is still considered ready.

Important Information

void _genesys.FMname.useAgentState(ixnid, state)

Parameters:

Returns: VOID

_genesys.FMname.useAgentStatistics

This function makes the functional module apply statistics for target selection at the level of individual Agents or Places even if the targets are groups of corresponding objects, such as Agent Groups or Place Groups.

This function may be used for any appropriate statistic. It can also be used for cost-based routing.

void _genesys.FMname.useAgentStatistics(ixnid, use)

Parameters:

Returns: VOID

_genesys.FMname.useCapacity

This function instructs the functional module on the condition for using configured capacity tables for computing statistical values. If OnStatError is supplied to the parameter, the functional module will compute a statistical value from statistical tables whenever an attempt to obtain the corresponding value from Stat Server results in an error. The other two options are either always use statistical tables for such values or never use them.

void _genesys.FMname.useCapacity(ixnid, use)

Parameters:

Returns: VOID

_genesys.FMname.useCustomType

This function instructs the functional module on the value of a target property that the target must to have to be considered a valid target for the current session and the associated interaction and the <submit> actions that are being used.

void _genesys.FMname.useCustomType(ixnid, tType, property, value)

Parameters:

Returns: VOID

_genesys.FMname.useDNType

This function instructs the functional module on the type of DN to use when routing to a target. Choose the DN-based type of session and interaction being routed. This delivers various sessions and interactions to the correct DN on an agent's desktop.

Important information

void _genesys.FMname.useDNType(ixnid, type)

Parameters:

Returns: VOID

_genesys.FMname.useMediaType

This function instructs the functional module on the media types (for examples, voice, e-mail, or chat) that a target is associated with. In order to accept sessions and interactions of a particular media type, a target must be associated with that media type. If the interaction is not a voice interaction, the functional module sets the initial media type from the Media Type attribute of the trigger event. The UseMediaType function overrides this initial setting. The functional module can pick up for routing either the available media of an agent or a ready DN of an agent.

Important Information

void _genesys.FMname.useMediaType(ixnid, type)

Parameters:

Returns: VOID

_genesys.FMname.expandGroup

This function creates a list of resources associated with a group. This list of (agent) resources can be used for the following purposes:

resourcelist _genesys.FMname.expandGroup(ixnid, group)

Parameters:

Returns: resourcelist: STRING — The result of the function is a string which contains a comma-separated list of Agents or Place resources belonging to the specified Agent Group or Place Group. For example, agent1@StatServer1.A,...,agentN@StatServer1.A

_genesys.FMname.getSkillInGroup

This function returns the list of the agents belonging to the Agent Group based on the defined skill expression. You can also just specify a Stat Server and a skill expression without specifying an Agent Group. However, a skill expression and a Stat Server must be specified. The Stat Server is used to query the content of the provided Agent Group (real or virtual).

resourcelist _genesys.FMname.getSkillInGroup(ixnid, statserver, group, sexpr)

Parameters:

Returns: resourcelist: String — The result of the function is a string which contains a comma-separated list of Agents or Place resources that meet the conditions of the skill expression. For example, agent1@StatServer1.A,...,agentN@StatServer1.A

_genesys.FMname.expandActivity

This function creates a list of resources associated with a workforce management activity. It is intended for use with Genesys Workforce Management. It takes as a parameter a Workforce Management Activity name (defined in the configuration layer) and returns the list of resources assigned to the Activity from the current moment up to the next CutOffTime number of seconds. If a resource assigned to the Activity in the given time interval has a break of any

kind (including assignment to another activity), that resource will not be included in the returned list.

resourcelist _genesys.FMname.expandActivity(ixnid, activity, cutoff)

Parameters:

Returns: resourcelist: STRING — The result of the function is a string which contains a comma-separated list of agent resources belonging to the specified activity and meeting the cutoff time criteria. For example, agent1@StatServer1.A,...,agentN@StatServer1.A If the specified activity is not found, a null will be returned.

_genesys.FMname.setDNIS

This function replaces the DNIS of the interaction by the appropriate value. It will override any previous _genesys.FMname.setDNIS() function invocations.

Important Note: In order to get this DNIS override into the actual interaction on the controlling server (T-Server), the session- and interaction-originating event (for example, EventRouteRequest) must have had the routing type of RouteTypeOverwriteDNIS to make the change in the server. Otherwise, the override is only set within the session and its associated interaction object.

void _genesys.FMname.setDNIS(type, value, ixn)

Parameters:

Returns: void




Section II – Functional Modules > Queue Interface > Functions         Top of Page
Genesys 8.1
SCXML Technical Reference
< Object Model            Parameter Elements >