NextGen Consulting

IT Consulting CRM BSS OSS

Controlling Menu Bar Accessability


Q:   How to enable/disable menu bar in workspace?

Is there any way to enable/disable menu bar in the workspace programmatically?

 

A:   You can selectively enable / disable specific menus.   
 

Use the following code to disable the entire menu bar.

 

You can also selectively display or hide each menu
( replace the setEnabled() with setVisible() )

 

25/01/2011 Posted by | Amdocs, CRM, Development, Front End, Smart Client, Technology | 1 Comment

Contact Resolution Management


Numerous managers have gotten “First Call Resolution Forever” and/or “Done in One” tattooed on their necks.

The majority of conversations about FCR center around two things:

  1. The huge potential impact of First Call Resolution (on operational costs, customer satisfaction and agent satisfaction / retention);
  2. How to measure this mega-metric accurately

See the original full discussion in Greg Levin’s Rev Up Your FCR Rate.

In his article, Greg discusses the following list of tactics to increase First Call Resolution efficiently:

  • Excellent agent training and tools
  • World-class workforce management processes
  • No conflicting performance objectives
  • Incentives around FCR goal achievement
  • Agents empowered to improve FCR-related processes

Amdocs Customer Interaction Manager (CIM) provides an excellent platform for achieving these goals.

 

Contact Management 

Contact management (or CIM – Customer Interaction Manager in Amdocs terminology) refers to a unified desktop application that enables customer facing agent (or CSRs -Customer Service Representatives) to effectively manage media exchanges with their customers.

The user interface is context-driven, and provides agents with immediate access to all relevant information to assist them end up the interaction in timely manner while having satisfied customers.

Relevant information refers to customer information (personal and / or organizational), interaction history (previous contacts) and service history (previous case handling), products and subscribed services, usage of services, service level agreement(s), likes, habits, social behavior, billing information etc.

Customer Interaction Manager combines with Multimedia Integrator to provide a multimedia interface for variety of communication channels such as interactive voice response (IVR), computer telephony interface (CTI), email, and smartphones applications (not provided with core product – requires customization).  The Multimedia Integrator displays an application toolbar that agents can use to efficiently manage inbound and outbound voice, and other media exchanges.

 

Contact Management Concepts

The contact management, focused on the interaction paradigm, is based on the following key Concepts:

Interaction    
Interaction is defined as an exchange of information between a single customer and the agent (or CSR – Customer Service Representative), using one or more channels. The interaction provides a full view of the customer data.

 

Unified Desktop:                
The desktop UI seamlessly provides one front end used by customer facing agents (front of house) which is shared among several applications, covering variety of domains such as CRM, Billing, Ordering, Product Catalogue, Installed Repository Management, and Social Behavior Analysis.

 

Increased Efficiency:         
The shared front end desktop provides an immediate access to any required information during customer interaction. Immediate information access is achieved by minimized key strokes, reduced eye and mouse movement and focus on actionable data. These facilities allow agents to focus on customer service and quickly address raided issues.

 

Toolboxes:                        
Common persistent desktop areas which keep important information always available and enable easier navigation.

 

Contact Management Components

Find Caller

The Find Caller module is used to help the agent quickly identify the source of an incoming call and effectively link it with the relevant contact, service and product.

Depending on the context of the exchange, the agent can seamlessly employ, within the shared desktop, variety of complementary backend services to assist them quickly complete the interaction.

The Find Caller performs different database queries according to the context of the interaction. If the Multimedia Integrator is enabled, it automatically launches the Find Caller feature for inbound calls. If this application is not enabled, the agent can enter contact details and activate the search manually.

A manual search can also be used for outbound calls, for example when used in conjunction with a predictive dialing application.

Find Caller functions in Contact Manager in the same way as in other CRM Smart Client applications, and posts the Search: Contact and Account window as the default search option.

When a valid Billing Manager Client license is installed, Find Caller provides extended search functions for billing, subscription and mobile phone information.

  • Each CRM Smart Client application that deploys Find Caller uses its own server side search (i.e. Worker Bean) to launch the function. For Amdocs Customer Interaction Manager, the generic Find Caller worker bean FindCallerWB is extended by the application-specific worker bean FindCallerCIMWB.
  • Multiple applications can launch their special version of the Find Caller form. For example, Billing Manager, FindCallerWB is extended (by the Billing Manager worker bean FindCallerBMWB) to load its Find Caller version.

 

The following UI forms are commonly used by the contact manager module:

  • FindCallerToolbar.             Displays the current contact and account information on the application bar.
  • FindCallerCimSearch.        Contains the UI controls used for extended searches.

 

Find Caller Search Criteria

As discussed above, the Find Caller module provides two core search types:

  • Customer Interaction Manager Search
  • Billing Search

Each search type has two presentations, one for basic searches and one for extended searches.

 

The default Customer Interaction Manager search form contains the following search fields:

  • Phone
  • Account ID
  • First Name
  • Last Name
  • Email
  • Account Name
  • Customer ID
  • Customer Alias
  • Alternate Contact Method
  • Mobile
  • Serial Number
  • Billing Arrangement ID
  • Financial Arrangement ID

 

Automatic Find Caller

When the Multimedia Integrator is enabled, Find Caller is conducted automatically for incoming calls, and populates mobile phone number and subscription fields accordingly, when the details exist in the database.

 

 Anonymous Caller

Anonymous Caller is a caller who cannot be identified.

In the case where the initial Find Caller search does not find contact details in the database, Customer Interaction Manager allows the agent to assign the caller as Anonymous Caller. Details are then set to anonymous data and the agent enters new information for this caller.

 

Reason Codes

Reason codes refer to a three level hierarchical attributes structure which systematically describe the reason for the call and resulted action. These attributes can be later used for BI analysis.

Reason codes drive downstream processes and can launch relevant activities if necessary

Few reason codes examples are:

 

Visually, above reason codes are implemented as drop down lists, as shown in the following pictures:

   

 

Reason Codes Selection Flow

The Reason1, Reason2, and Result drop-down menus are formed by a hierarchical, user defined pop-up list (UDPL). When an CSR selects a Reason 1 topic, the application updates the list in the Reason 2 drop-down menu. The CSR can then select a Reason 2 topic that is specific to requirements.

 

In addition to the predefined lists of reason codes provided with the application, customized combinations of reason codes can be customized to implement any specific business logic requirements.

 

Topics

A topic represents set of reason codes, their result action and a possible linked object. An interaction may have one or multiple issues raised from one customer enquiry. Each issue represented by a topic. A Topic comprised of two reason codes and a result action code. Topic Tracks the issue(s) for the interaction.

 

Context Manager

An important part of the contact management is the Context Manager. The context manager allows handling several open interactions concurrently by providing the agent the ability for quick context switching between callers while they are on the line.

Interaction context gathers all information presented to the agent during the course of an interaction. Context switching refers to the ability to serve several calls simultaneously while keeping their complete interaction information immediately available by merely selecting the caller name.

The instant context switching (less than 1 sec) is technically achieved by caching all information in memory once it is retrieved from its persistent storage.

In the following pictures, the following two contexts are displayed:

 

Visually, above contexts are implemented in the UI as follows:

                                                                        Context 1

 

                                                                        Context 2

 

Action

Action specifies a result activity which is part of a topic. An action can be a single, short-duration activity, presenting a form, creation of a workflow object for a long duration handling process, or a complex business process which may drive one or more workflow objects.

 

Workflow Objects  

 Known also as workflow tasks, these objects represent continues task which may involve more than one owner during their life time. A workflow object represents any type of long duration task. Example for long duration tasks could be service assurance issues (cases), scheduled activities (Action Item), Change process (Change Request), Opportunity, Sales Quotation (Quote), Order, etc.  

A workflow object has a lifecycle, starting from its creation until it is closed. At any point of time a workflow object is owned by single owner. Ownership can be transferred between owners via intermediate parking lots named Queues.

Ownership is transferred only by mutual handshake process known as ‘Dispatch – Accept’.

A workflow object has several attributes which are continuously updated either explicitly or implicitly to reflect its handling position. The most notably attributes are ‘Condition’ and ‘Status’.

 

Only owners are allowed to change the workflow object’s status. Status changes must follow specific rules known as ‘Status Transition Map’. This map comprised of pre-defined set of rules which specify, for each status, one or more allowed target status values and the allowed role to perform the change.

 

Contact Management Implementation

Contact Management (or Customer Interaction Manager) UI is implemented using Amdocs Smart Client, a rich client architecture which provides flexibility of a Web application. Smart Client applications are deployed over the web and require minimal client-side installation. The front end UI is automatically updated without user intervention while providing the look and feel of a native desktop application.

Contact Manager UI provides the agent with the following operational areas:

  • Find Caller form
  • Interaction Home
  • Customer Overview toolbar
  • Multimedia Integrator toolbar
  • Interaction toolbox

 

 

Contact Management Events

 The Interaction Home page has Quick Action buttons for the several predefined events, such as Case, Action item, Literature request, Sales Opportunity, Sales Quote, Order, Pending credit and Promotion

The standard CIM implementation provides a number of predefined events.

 

  • The agent can trigger these events either by selecting a combination of reason codes or by clicking a Quick Action button on the Interaction Homepage.
  • Each Quick Action button (or reason code combination) uses a Launch Action function to launch the following sequence of events:
    • It may launch an application form (I.e.  CRM or Ordering applications)
    • It may launch an automation process (backend driven or UI driven)
    • It retrieves attributes from the Context Manager and passes them either to the launched form or process.

 This technique can be used to launch any window from any Amdocs CRM application in the interaction flow.

 

Implementing an Event with Reason Codes

Customization can add more functionality to the application or can tailor the application to meet any specific needs. Some commonly customized items include the following:

  • Launch actions
  • Launch wizard scripts
  • Interaction Home form
  • Toolbars
  • Toolboxes

 

 

 

10/01/2011 Posted by | Amdocs, BSS, CRM, CRM, Customer Interaction Management, Smart Client, Technology | 1 Comment

Interaction Management Process


Process Design Questionnaire

  • Who do your call center agents interact with?
  • Customers only?  Dealers?  Partners?
  • What types of interactions are received / sent out?
  • What is the structure of the call center?
  • What is the number of Agents?
  • Will these users be divided into functional groups?
  • Will users have access to some forms/commands/data and not others?
  • Number of Call centers?
  • Where are they located?
  • How many agents are there at each location?
  • What is the number of interactions handled per agent per day?
  • How do you measure your call center agents?

Generic Interaction Management Process – part 1

Generic Interaction Management Process – part 2

 

Generic Interaction Management Process – part 3

 

Generic Interaction Management Process – part 4

 

 

Generic Interaction Management Process – part 5

 

 

 

Sample Implementation Decisions


04/01/2011 Posted by | Amdocs, BSS, CRM, CRM, Customer Interaction Management | Leave a comment

Implementing Asynchronous UI


When designing an application front end UI, it is always highly desirable to provide friendly, intuitive and pleasant user experience while they are interacting with our application.

One of the most annoying phenomena happens when the UI seems to be freezed while waiting for a lengthy task  to complete.

In order to enhance user experience and avoid possible frustration, it is recommended to provide an interactive visual feedback which continuously updates the human user about the current status of the task, while allowing them to continue free interaction their UI.

In the following example I shall demonstrate how to divert a task to a separate thread and allow the user to continue interacting with the UI for other tasks. I shall also show how two independent front end tasks can interact one with each other without interfering UI operations.

 

 

Read the full story on Implementing Asynchronous UI

 

 

16/12/2010 Posted by | Amdocs, CRM, CRM, Development, Front End, Smart Client, Technology | Leave a comment

Implement Context Menu in Data Grid


Amdocs Smart Client Framework (ASCF) provides a rich set of functionality to allow flexible and attractive UI.

It is often required to allow the user select an option from a context pop-up menu. The context pop-up menu should be displayed when the user right clicks the grid.

Unfortunately, as of Amdocs CRM release 7.5.2, this visual requirement is not directly supported.

 

 

Look at Implement Context Menu in Data Grid to learn how to add this functionality.



20/10/2010 Posted by | Amdocs, CRM, Development, Front End, Smart Client, Technology | Leave a comment

Migrating Amdocs CRM Classic to Smart Client (part 2)


When considering migration of legacy Amdocs Classic client implementation to Smart Client technology, it is important to understand several aspect which might impact such migration.

The first part of this discussion we discussed the business and technical drivers for migration from Amdocs Classic to Smart Client technology . We discussed the preliminary information needed for migration assessment, as well as the required resources for such assessment.

This part further describes the following migration assessment and implementation aspects:

  • Migration Assessment Planning 
  • Migration Project Planning
  • Phasing
  • Migration Techniques

Read more at Migrating Amdocs CRM Classic to Smart Client (Part 2)

 

17/10/2010 Posted by | Amdocs, CRM, CRM, Development, Front End, Smart Client, Technology | Leave a comment

Migrating Amdocs CRM Classic to Smart Client (part 1)


Business justification for migration from classic to smart client technology is a difficult subject.  In some respects migration can be seen as having purely IT benefits, such as reduced deployment costs, reduced maintenance costs etc. 

The main business drivers for migration are often based on leveraging new functionality that is available in the smart client, not available the classic client.  This means that a purely technical migration will likely result in limited or no identifiable business benefits, making the business case very difficult to prove. 

In many cases both technical and business drivers arise during the migration assessment.

It is important to understand that although both technical and business drivers for migration are viewed separately, there is an overlap between the two areas, as improved functionality is enabled through the use of the new architecture.

 

Read the full story Migrating Amdocs CRM Classic to Smart Client (Part 1)

 

09/10/2010 Posted by | Amdocs, BSS, CRM, CRM, Smart Client, Technology | Leave a comment

Implementing ‘Got_focus’ Event in Smart Client


Q: Clear Basic provide ‘got_focus’ event for controls but I can’t find the same event in smart client.
Is there any way to implement this feature in smart client?

   

A: You can add your native contol focus event listeners (lost/gained) as follows:
(assuming your control is a textBox named ‘txtCustomerName’)

// Add the following in the form_Load() event handler:  
// define focus event listeners (lost/gained)  
(    (javax.swing.JComponent)this.txtCustomerName.getNativeControl())
             .addFocusListener(new FocusListener()   
{    
// this is the equivalent to Clear Basic Lost_Focus() 
public void focusLost(FocusEvent focusEvent)
{       
// your logic here... 
System.out.println("focus lost");
}    
// this is the equivalent to Clear Basic Got_Focus() 
public void focusGained(FocusEvent focusEvent)
{
// your logic here... 
System.out.println("got focus");
}   
}   

);

01/10/2010 Posted by | Amdocs, CRM, CRM, Development, Front End, Smart Client, Technology | Leave a comment

Using Contained Core Business Objects


Q. When working with establish relation, I had a problem with a Bo having many parent, like:

1. We have an exist CaseBo object:  caseBo
2. By using XVO, we create 2 new row to insert: emailLogBo and actEntryBo
3. In which: actEntryBo is child of both caseBo and emailLogBo, emailLogBo also is child of caseBo.

=> how can I insert emailLogBo and actEntryBo to database ?

Note that: Both emailLogBo and caseBo are parent of actEntryBo, so we can’t use actEntryBo.setParentBo(..) to set up relation. So, please suggest how to solve this problem.

 

A.  Note that CaseBo object contains all the logic to do it automatically for you.
All you need to do is to add your new emailLog record to the CONTAINED emailLogBo.
When doing so, an actEntry will automatically be added and related with all relevant BO parties (CaseBo, UserBo, EmailLogBo).

About Contained Business Objects

Many BOs Contain other Business Objects. These contained CBOs are exposed as properties of the containing BO. For example, when a Case BO is created, contained BOs are automatically created for the logs related to the cases, the site and contact that reported the cases, and the installed part identified in the case

These contained CBOs are automatically related to the Case BO, usually as child BOs of the parent BO. They are accessed through CaseBO properties.

Field values for contained CBOs are accessed through properties of the containing BO
The following code shows how to get the first name of the contact who logged a case: String firstName=boCase.getContact().toString(“first_name”); 

     
Note:

  1.  Most contained CBOs are Generic BOs.
       
  2. To reduce network traffic and improve response times, many contained BOs set bo.DataFields and bo.QueryMode to minimize the amount of data retrieved. Make sure to modify the DataFields property of the contained Bo to include necessary fields before performing the query.

 

  
Example:

String fields= boCase.getContact().getDataFields() + ",e_mail";
boCase.getContact().setDataFields( fields );
boCase.query();

  

Example of adding email log to a CaseBo: 

  
// Add a new row to the contained EmailLog BO.
boCase.getEmailLog().addNew(); 

// Set the note description for the new row.
boCase.getEmailLog().setValue("description",
  "Customer mailed again to ask about the case status"); 

// Commit changes to the database.
boCase.update();
 

01/10/2010 Posted by | Amdocs, Backend, BSS, CRM, CRM, Development, Smart Client, Technology | Leave a comment

Smart Client Messaging


About Smart Client Messaging

Smart Client messaging is far more flexible than its Classic predecessor. Smart Client forms can communicate with other forms by messaging.

See more about Smart Client Messaging…

22/09/2010 Posted by | Amdocs, CRM, CRM, Development, Smart Client, Technology | Leave a comment