Developing for PeopleSoft MultiChannel Framework

This chapter discusses how to:

Note. Applications use the PeopleCode built-in function GenerateComponentContentRelURL() to build the relative URLs of the pages that appear when the agent accepts a task. This built-in function takes the portal node as a parameter. This node must have a content URI configured in the PeopleSoft Portal administration pages to ensure that the correct URL is generated.

Click to jump to top of pageClick to jump to parent topicWorking with Sample Pages

To demonstrate MCF tools and functionality, use the MCF Sample Pages (MCF_DEMO_CMP) component.

This section discusses how to:

Click to jump to top of pageClick to jump to parent topicPages Used to Work with Sample Pages

Page Name

Object Name

Navigation

Usage

Customer Chat

MCF_DEMO_PG

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Customer Chat

View a customer chat session and built-in functions.

Generic Event

MCF_DEMO_NOTIFY_PG

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Generic Event

View a generic event notification and built-in functions.

Email

MCF_DEMOEM_NTFY_PG

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Email

View email retrieval, built-in functions, and application package classes.

Click to jump to top of pageClick to jump to parent topicUsing the Customer Chat Sample Page

Access the Customer Chat page.

This page demonstrates the InitChat() built-in function, including required and optional parameters.

This page is not intended for production use. On a typical application page, the developer includes a Live Help or Customer Chat button that calls the InitChat() built-in function and passes required parameters, including the context of the chat request. The sample customer chat page demonstrates values that can be included in the InitChat() parameters. The user may not be prompted for any information.

To run a sample chat:

  1. Access the MultiChannel Console.

  2. Open the Customer Chat page.

  3. Open the Queue ID drop-down list box and select the queue that you are logged on to.

    The other fields are automatically populated with values that generate a sample chat session. You can change the values as long as valid required values are included.

    The User URL is a required field that contains the application page URL to send to the agent chat browser.

    The optional Wizard URL field represents a grab URL; the actual page that appears is determined by InitChat() parameters.

    The text box displays error messages and additional information for using the sample page.

  4. Click Customer Chat.

    The customer chat window appears.

  5. On the MultiChannel Console, click the flashing chat notification icon to accept the chat session.

    The agent chat window appears.

    You can input text as both agent and customer to demonstrate chat functionality.

Click to jump to top of pageClick to jump to parent topicUsing the URL Wizard

Click Select from the agent chat window during a chat session to open the URL wizard:

Use the wizard to form a URL to send to the customer. The URL Wizard page is a template that demonstrates constructing a URL and sending it to a customer. The URL wizard can be used as-is or as the basis for developing URL generation for your application.

URL Type

Select the type of URL being grabbed:

  • Component: Generates a PeopleSoft Pure Internet Architecture component URL.

    Component URL generation uses the PeopleCode built-in function GenerateComponentContentRelURL.

    See PeopleCode Built-in Functions.

  • External: Not currently used.

  • Gen URL: Not currently used.

  • iScript: Generates a PeopleSoft Pure Internet Architecture iScript URL.

    iScript URL generation uses the PeopleCode built-in function GenerateScriptContentRelURL.

    See PeopleCode Built-in Functions.

Fields not required by the selected URL type are not available.

Show Relative URL

Click to display the relative URL generated by the values that you have entered into the page's fields.

URL

Displays the generated relative URL.

Push

Click to send the generated relative URL to the customer's chat window.

The Push button demonstrates functionality that must be included in an application-specific URL wizard.

Push and Close

Click to send the generated relative URL to the customer's chat window and close the URL wizard.

The Push and Close button demonstrates functionality that must be included in an application-specific URL wizard.

Click to jump to top of pageClick to jump to parent topicUsing the Generic Event Sample Page

Access the Generic Event page.

This page demonstrates a generic persistent event using the EnQueue() and NotifyQ() built-in functions, including required and optional parameters.

This page is not intended for production use. On a typical application page, the developer includes an Enqueue or similar button that calls the EnQueue() built-in function and passes required parameters, including the context of the request. The sample customer chat page demonstrates values that can be included in the EnQueue() parameters. The user may not be prompted for any information.

To run a sample generic event:

  1. Access the MultiChannel Console.

  2. Open the Generic Event page.

  3. Open the Queue ID drop-down list box and select the queue that you are logged on to.

  4. Open the Agent ID drop-down list box and select the agent ID that you are logged on with.

  5. Select Generic for the task type.

  6. Click Notify.

  7. On the MultiChannel Console, click the flashing event notification icon to accept the event.

    The Generic Event window appears.

Click to jump to top of pageClick to jump to parent topicUsing the Generic Event Window

The format of the generic event window is determined by application developers. PeopleSoft supplies a sample generic event window to demonstrate the available functionality, including the DeQueue() built-in.

Configure the size and initial location of the generic event window on the Agent Window Configuration page:

Description

Displays text from the generic event.

To Queue ID

Select a queue to which the generic event will be forwarded.

Task ID

Select the task ID of the generic event to forward.

To Agent ID

Select the agent ID to whom the generic event will be forwarded.

Task Type

Select the task type of the generic event to be forwarded.

Forward

Click to send the generic event to the selected agent or queue.

The Forward button demonstrates the functionality of the Forward() built-in function.

Done

Click to notify the real-time event notification (REN) server that you are done with this task. A message asks if you want to close the window.

The Done button demonstrates the functionality of the DeQueue() built-in function.

See Also

PeopleCode Built-in Functions

Click to jump to top of pageClick to jump to parent topicUsing the Email Sample Page

Access the Email page.

The email sample pages are intended for demonstration purposes and should not be used in production.

EnQueue() and NotifyQ() may also be called from PeopleSoft Application Engine batch programs.

See PeopleCode Built-in Functions.

Note. To fully demonstrate the functionality of the Email sample page, an email must be read and written to the email database using the GetMail - Server sample page.

To process a sample email:

  1. Access the MultiChannel Console.

  2. Open the Email page.

  3. Open the Queue ID drop-down list box and select the queue that you are logged on to.

  4. Open the Agent ID drop-down list box and select the agent ID that you are logged on with.

  5. Click Notify.

  6. On the MultiChannel Console, click the flashing email notification icon to accept the email.

    The email window appears.

Click to jump to top of pageClick to jump to parent topicUsing the Email Window

The format of the email window is determined by application developers. PeopleSoft supplies a sample email event window to demonstrate available functionality.

Configure the size and initial location of the email event window on the agents Window Configuration page.

The following example shows an email window:

To Queue ID

To forward the email to another queue, select a queue ID from the drop-down list box and click Forward.

To Agent ID

To forward the email to another agent, select an agent ID from the drop-down list box and click Forward.

Forward

Click to forward the email to the specified queue or agent.

This Forward button demonstrates the functionality of the Forward() built-in function.

Done

Click to exit the email and remove it from the queue.

The Done button demonstrates the functionality of the DeQueue() built-in.

Email Parts

If an email has been broken into parts stored in the email database, or has an attachment, they can be accessed here.

See Also

Demonstrating the Email Channel

Mail Classes

PeopleCode Built-in Functions

Click to jump to top of pageClick to jump to parent topicUsing and Demonstrating JSMCAPI

To demonstrate MCF consoles and tools that use JSMCAPI, use the CTI Sample Pages (PT_CTI_DEMOOUTB) and MCF Sample Pages (MCF_DEMO_CMP) components.

This section provides an overview of JSMCAPI and discusses how to:

Click to jump to top of pageClick to jump to parent topicUnderstanding JSMCAPI

The JavaScript MultiChannel Application Programming Interface (JSMCAPI) enables custom configuration of MCF consoles (including the CTI console), MCF functionality on a PeopleSoft Pure Internet Architecture page, and queue and agent monitoring. For example, developers can create supervisor dashboards with which to monitor activity on their channels of interest, or developers can modify consoles according to their company's business requirements. The JSMCAPI builds on the real-time event notification (REN) JavaScript client. JSMCAPI uses standard JavaScript.

PeopleSoft provides sample pages demonstrating the functionality enabled by JSMCAPI. These pages are for demonstration purposes only, and should not be used in a production environment.

JSMCAPI is delivered with PeopleTools; there is no need for a separate installation. The jsmcapi.js file is located in the <PS_HOME>\webserv\<domain>\applications\peoplesoft\PORTAL\ps\pMCF folder.

See Also

Pages Used to Demonstrate JSMCAPI

JSMCAPI Classes

JSMCAPI Quick Reference

Click to jump to top of pageClick to jump to parent topicCommon Elements Used in this Section

This section discusses common elements used on the CTI sample pages.

Common Elements Used in CTI Sample Pages

The following common elements are used in CTI sample pages.

Agent Id

Specify the CTI or MCF agent's agent ID.

In the case of a CTI agent, the agent ID may be different from the agent's user ID.

g/e/c

Represents three task types: generic, email, chat.

Click to initiate the action selected in the associated drop-down list box.

MCF Cluster ID

Specify the MCF cluster to be monitored or on which to test the sample console.

Physical Queue

Specify the physical queue to be monitored.

Each MCF logical queue can comprise one or more physical queues. Because each physical queue is associated with an MCF cluster, only physical queues can be monitored.

State

The State field displays a value indicating the state of the associated element.

Statistics

The Statistics fields display statistics generated by the CTI server.

User Id

The CTI agent's PeopleSoft user ID.

Click to jump to top of pageClick to jump to parent topicPages Used to Demonstrate JSMCAPI

Page Name

Object Name

Navigation

Usage

Agent Console

PT_SAMPLEAGNTCONSL

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Agent Console

View a sample MultiChannel Console generated using JSMCAPI

CTI Sample Console

CTI_SAMPLECONSOLE

PeopleTools, MultiChannel Framework, CTI Configuration, Sample Pages, CTI Sample Console

View a sample CTI console generated using JSMCAPI.

Monitor Agents

PT_UQSAMPLECNSL

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Monitor Agents

View a sample agent statistics monitoring page.

Monitor Queues

PT_UQSAMPLECNSQ

PeopleTools, MultiChannel Framework, Universal Queue, Sample Pages, Monitor Queues

View a sample queue statistics monitoring page.

Click to jump to top of pageClick to jump to parent topicUsing the CTI Sample Console

Access the CTI Sample Console page.

REN Server Cluster ID

Specify the REN server cluster on which to test the sample console.

CTI Sample Console

Click to initiate the sample console.

Note. To demonstrate the CTI sample console, you must have a CTI server running and communicating with the specified REN server cluster.

After clicking CTI Sample Console, a new browser window appears that displays the sample console.

Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.

Open/Close Session

Access the Open/Close Session group box.

The Open/Close Session group box displays information about the session.

CTI Session Id

The CTI Session Id field displays a value identifying the session.

If no session ID is displayed, check to ensure that the CTI server and REN server are both running.

You can close an active session by clicking the Go button. You cannot make a selection from the drop-down list box.

Register User to Session

Access the Register User to Session group box.

Register a user to the session in the Register User to Session group box.

Because a CTI agent can have an agent ID different from the agent's user ID, both values are required. If the agent has a password, the password is also required.

Language

Reserved for future use.

The default language is English.

You can register or unregister an agent by clicking the Go button. You cannot make a selection from the drop-down list box.

Register Group, Login User to Group, and User-Group States

Access the Register Group, Login User to Group, and User-Group States group box.

Group Id

Enter the group ID to which the agent will be registered.

To register the agent with the specified group, click the Go button. You cannot make a selection from the drop-down list box.

Login

Click the Go button to log in if Login appears in the drop-down list box.

Click the Go button to log out if Logout appears in the drop-down list box.

Note. The agent cannot receive calls until the agent is in the Ready state.

Presence

Enter a presence description to associate with the state selected in the drop-down list box.

This presence value is different from any presence values pre-defined in the agent configuration. The agent cannot select from the pre-defined values.

State

Select an agent state.

State options are:

  • Ready

  • Not Ready

  • Work Ready

  • Work Not Ready

Each state value has an associated state code that appears in the State field.

To enable incoming calls, select Ready from the drop-down list box and click the Go button.

Media Type

Reserved for future use.

The sample console only supports the telephone (voice) channel. However, JSMCAPI can support other channels.

Register Extension to Session, and Extension Operations

Access the Register Extension to Session, and Extension Operations group box.

Extension

Specify a valid telephone extension number.

Phone Number

Specify a valid telephone number for use in subsequent operations, such as dial, forward, or do-not-disturb (DND).

Forward

Select to forward incoming calls to the specified number.

DND (do not disturb)

Select to put the selected extension in do-not-disturb status.

Line 1 or Line 2

Displays a name or value for each line.

On the sample console, the value will either be 1 or 2.

User Data

Specify name-value pairs representing user data to be attached to a call.

Call Data

Specify any call data to be attached to the call.

Call data includes:

  • ANI

  • DNIS

  • THISDN

  • OTHERDN

Buddies

Access the Buddies group box.

Before an agent can chat with a buddy, the buddy must be registered in the Buddies group box.

Because a CTI agent can have an agent ID different from the agent's user ID, both values are required.

Server State and Broadcasts

Access the Server State and Broadcasts group box.

CTI State

Displays the status of the CTI server.

REN State

Displays the status of the REN server.

Info (information)

Displays the text of a broadcast message from the CTI server.

Tracer

The tracer displays all requests between the CTI server and the console, which can be useful for debugging.

Click to jump to top of pageClick to jump to parent topicUsing the Agent Console Page

Access the Agent Console page.

 

MCF Sample Console

Click to initiate the sample console.

Note. To demonstrate the MCF sample console, you must have an MCF cluster running and communicating with the specified REN server cluster.

After clicking MCF Sample Console, a new browser window appears that displays the sample console.

Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.

Open/Close Session

Access the Open/Close Session group box.

 

UQ Session Id

The universal queue session ID.

Register User to Session

Access the Register User to Session group box.

Register Group, Login User to Group, and User-Group States

Access the Register Group, Login User to Group, and User-Group States group box.

Address Operations

Access the Address Operations group box.

 

Buddies

Access the Buddies group box.

 

Click to initiate an agent-to-agent chat session.

Server State and Broadcasts

Access the Server State and Broadcasts group box.

UQ State

Displays the state of the queue server.

REN State

Displays the state of the REN server.

Click to jump to top of pageClick to jump to parent topicUsing the Monitor Agents Page and Sample Monitor - Agent States Page

Access the Monitor Agents page.

Specify the MCF cluster, physical queue on that cluster, and up to five agents on that queue to be monitored.

After clicking Monitor Agent States, a new browser window appears.

Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.

Physical Queue

The ID of the physical queue being monitored appears in the first table.

Agent Statistics Table 1

The first agent statistics table displays information published by the JSMCAPI user.onStat1 event..

Time in Current State

Displays the duration of the agent's current state.

Returned by timeInCurrentState.

Time Since Login

Denotes the duration since the agent logged in.

Returned by timeLogin.

Num. Tasks Accepted: g/e/c (number of tasks accepted)

Displays the number of tasks in each task type that the agent has accepted since login.

Returned by numTaskAccepted.

Num. Tasks Unassigned: g/e/c (number of tasks unassigned)

Displays the number of tasks in each task type that have been unassigned from the agent.

Returned by numTasksUnassigned.

Num. Tasks Done: g/e/c (number of tasks done)

Displays the number of tasks in each task type that the agent has completed.

Returned by numTasksDone.

Most Recent Task: g/e/c

Identifies the most recent task accepted since login for each task type.

Returned by mostRecentTaskId.

Most Recent Task Data: g/e/c

Displays data on the most recent task accepted since login for each task type.

Returned by mostRecentTaskInfo

Agent Statistics Table 2

The second agent statistics table displays information published by the JSMCAPI user.onStat2 event.

Time Idle

Displays the duration of time during which the agent has been idle.

An agent is considered to be idle from the time the agent logs on until the agent accepts a task, and during the time between completing the last accepted task and accepting another task.

Returned by timeIdle.

Time not Ready

Displays the duration of time during which the queue could not assign tasks to the agent because the agent's maximum workload has been reached.

Returned by timeNotReady.

Total Time Available

Displays the total amount of time the agent has been in an available status.

Returned by totalTimeAvailable.

Total Time Unavailable

Displays the total amount of time the agent has been in an unavailable status.

Returned by totalTimeUnavailable.

Click to jump to top of pageClick to jump to parent topicUsing the Monitor Queues Page and Sample Monitor - Queue Statistics Page

Access the Monitor Queues Page.

Specify the MCF cluster and up to five physical queues on that cluster to be monitored.

After clicking Monitor Queue Statistics, a new browser window appears.

Note. To enable the new browser window to appear, disable any pop-up blocking software for your browser.

 

Queue Statistics 1

The first queue statistics table displays data that does not change frequently. The table displays information published by the JSMCAPI group.onStat1 event.

Queue

Displays an identifier for this queue.

Returned by Queue_Id.

Time Since Start

The duration since this queue was started (application server domain start).

Returned by timeSinceStart.

Num. Agents in Queue (number of agents in queue)

The number of agents currently logged in to this queue.

Returned by numAgentsLoggedIn.

Num. Agents Available (number of agents available)

The number of agents currently logged in to this queue with an available status.

Returned by numAgentsAvail.

Num. Tasks in Queue: g/e/c (number of tasks in queue)

The number of tasks currently on this queue, by task type.

Returned by numTasksQueued.

Num. Tasks Accepted: g/e/c (number of tasks accepted)

The number of accepted tasks currently on this queue, by task type.

Returned by numTaskAccepted.

Num. Tasks Done: g/e/c (number of tasks done)

The number of tasks on this queue that have been completed, by task type.

Returned by numTaskDone.

Num. Escalation: g/e/c (number of escalation)

The number of escalated tasks on this queue, by task type.

Returned by numEscalation.

Num. Overflow: g/e/c (number of overflow)

The number of overflow tasks on this queue, by task type.

Returned by numOverflow.

Task Total Time in System: g/e/c

Displays the total duration of the most recently completed task in the system. The total time is the difference between the time the task was enqueued and the time at which it was marked done.

Returned by taskTotalTimeInSystem.

Queue Statistics 2

The second queue statistics table displays data that changes frequently. The table displays information published by the JSMCAPI group.onStat1 event.

Most Recent Task Enqueued: g/e/c

Identifies the task most recently enqueued on this queue, by task type.

Returned by mostRecentTaskEnqueued.

Most Recent Task Enqueued Data: g/e/c

Displays data for the most recently enqueued task on this queue, by task type.

Returned by mostRecentTasksEnqueuedData.

Most Recent Tasks Done: g/e/c

Identifies the task most recently completed, by task type.

Returned by mostRecentTaskDone.

Most Recent Task Done Data: g/e/c

Displays data for the most recently completed tasks, by task type.

Returned by mostRecentTaskDoneData.

Queue Statistics 3

The table displays information published by the JSMCAPI group.onStat2 event.

Oldest Task: g/e/c

Identifies the oldest enqueued and accepted task on this queue, by task type.

Returned by oldestTask.

Time Elapsed for Oldest Task: g/e/c

Displays the duration that the oldest task on this queue has been enqueued, by task type.

Returned by timeElapsedOldestTask.

Recent Task: g/e/c

Identifies the most recent task enqueued and accepted on this queue, by task type.

Returned by recentTask.

Time Elapsed for Recent Task: g/e/c

Displays the duration that the most recent task on this queue has been enqueued, by task type.

Returned by timeElapsedRecentTask.

Avg. Wait Time: g/e/c (average wait time)

Displays the average time between a task being enqueued and being accepted, by task type.

Returned by averageWaitTime.

Avg. Task Duration: g/e/c (average task duration)

Displays the average duration before a task is completed.

Returned by averageTaskDuration.

The average task duration is calculated by referencing a list of completed tasks. The size of that list is determined by the donelistsize parameter set on the Cluster Tuning page.

See Tuning Cluster Parameters.

Click to jump to top of pageClick to jump to parent topicUsing PeopleCode Built-in Functions with PeopleSoft MultiChannel Framework

PeopleSoft MultiChannel Framework uses several PeopleCode built-in functions. Application developers use these functions to communicate task requests and parameters to the queue server. For example, use InitChat code behind a button on an application page to initiate a chat session with an agent.

The built-in function are:

See PeopleCode Built-in Functions.

Click to jump to top of pageClick to jump to parent topicUsing Universal Queue Classes

The universal queue classes provide the means by which applications can inspect objects that are processed by the queue server, such as tasks, agents, and queues. The classes also enable tasks to reenter the queue with their original task ID, as well as keep task times based on their original entry into the system.

See Universal Queue Classes.