Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
ShoreTel Contact Center Solution CRM Integration Guide Release 4.32 Robust IP Phone Systems Document and Software Copyrights Copyright © 1998-2004 by ShoreTel, Inc., Sunnyvale, California, U.S.A. All rights reserved. Printed in the United States of America. Contents of this publication may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without prior written authorization of ShoreTel, Inc. ShoreTel, Inc. reserves the right to make changes without notice to the specifications and materials contained herein and shall not be responsible for any damage (including consequential) caused by reliance on the materials presented, including, but not limited to typographical, arithmetic or listing errors. Trademarks ShoreCare, ShoreTel, ShoreWare, ShoreGear, and AnyPhone are registered trademarks of ShoreTel, Inc. in the United States and/or other countries. ShoreTel5 is a trademark of ShoreTel, Inc. in the United States and/or other countries. Microsoft, Windows, Windows NT, and ActiveX are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. VxWorks is a trademark of Wind River Systems. All other copyrights and trademarks herein are the property of their respective owners. Version Information ShoreTel Contact Center CRM Integration Guide Release 4.32 June, 2004 Company Information ShoreTel, Inc. 960 Stewart Drive Sunnyvale, California 94085 (408) 331-3300 (408) 331-3333 fax www.ShoreTel.com Contents PREFACE About This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preface-v Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preface-v Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preface-v Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preface-vi CHAPTER 1: CRM INTEGRATION USING CALL CONTROL SCRIPTS Call Profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Call Control Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integrating to CRM Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Call Routing Based on CRM Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Self-Service Based on CRM Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-3 1-4 1-4 CHAPTER 2: USING DIAL LISTS FOR OUTBOUND CALLING Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring the Dial Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-1 2-2 2-2 CHAPTER 3: AUTOMATING AGENT ACTIVITIES Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 The ShoreWare Agent INI File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Integrating Applications by DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 First Invocation of the ShoreWare Agent Toolbar Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Configuring the ShoreWare Agent Toolbar Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 The ShoreWare Agent Toolbar Software as a DDE Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 The ShoreWare Agent Toolbar Software as a DDE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Integrating Applications by ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Configuring ShoreWare Agent Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Managing ShoreWare Agent Toolbar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 ShoreWare Agent Toolbar Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 ShoreWare Agent Toolbar Software Methods (Services) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Activating Applications by Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Configuring the ShoreWare Agent Toolbar Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Activating an Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 Activation Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15 Command Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15 APPENDIX A: INTEGRATION EXAMPLES Goldmine by DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSAccess by DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Web Application by Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vantive by DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . External Application by ActiveX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code of VbController.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 A-1 A-2 A-2 A-2 A-2 A-5 iii iv Preface About This Guide This guide describes how to integrate the ShoreTel Enterprise Contact Center Solution with external Customer Relationship Management (CRM) applications. It details the available interfaces, and provides necessary reference information including examples. NOTE The options and modules required for CRM integration are only available with the ShoreTel Enterprise Contact Center Solution. This guide provides information for professional services engineers and application programmers who must plan the integration of the ShoreTel Enterprise Contact Center Solution to selected external applications before development begins. This guide assumes that you are familiar with the ShoreTel Enterprise Contact Center Solution architecture, features, and functionality. You should also be familiar with Agent Toolbar, see the ShoreWare Agent Toolbar User Guide for more information. Documentation The following documents are available for the ShoreTel Enterprise Contact Center Solution system: • • • • • ShoreWare Agent Toolbar User Guide ShoreWare Supervisor Applications Guide ShoreTel Contact Center Solution Installation Guide ShoreTel Contact Center Solution Administration Guide ShoreTel Contact Center Solution CRM Integration Guide (this guide) Document Conventions The following conventions are used in this guide: • Data-entry fields, hypertext links, control buttons, keywords, and other items within the system management interface are in a boldface font. • Information that you enter in data fields are in a data_entry font. • NOTE indicates notes to the reader that contain useful information or references. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) Preface – v Preface Disclaimer The illustrations, telephone displays, and screen captures appearing in this manual are examples used to explain more clearly how the features and controls are used. What appears on the display or screen capture in the illustrations may differ from what appears on the actual equipment, and some of the illustrations may represent something impossible in actual operation. The functions that can be used and the information that can be displayed will differ depending on the telephony state and external equipment being connected. The names of companies, products, people, characters, and/or data mentioned in the examples herein are fictitious and are in no way intended to represent any real individual, company, product, or event, unless otherwise noted. Preface – vi ShoreTel, Inc. C H A P T E R 1 CRM Integration Using Call Control Scripts To automate your contact center operation, you can integrate ShoreTel Enterprise Contact Center Solution with your Customer Relationship Management (CRM) using call control scripts. This allows the contact center to be more closely tied to your customer information and to improve your customer service. For example, you can use your CRM database to change skills, priority, call flow, or even to let callers bypass agents and interact directly with the CRM database in a self-service application. Integration requires the interaction of three key components: • Call profiles • Call control scripts • CRM database This chapter explains how these components work together in call routing and selfservice applications. Call Profiles The call profile contains a list of fields, each with a field name and value. There are mandatory fields (fields defined and managed by the ShoreTel Contact Center Solution), and user-definable fields. User fields can be created in the Contact Center Director according to your application needs. The call profile fields can be updated by caller interaction, or from a CRM database using call control scripts. With call control scripts, you can set call actions and decisions based on the contents of select call profile fields. NOTE For detailed information on managing call profile fields, see the ShoreTel Contact Center Solution Administration Guide. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 1–1 CRM Integration Using Call Control Scripts The following table lists the mandatory fields in the call profile. External Name DNIS Calling Called Elapsed Last Redirection Originally Called Status Time Trunk Waiting Time Type Media Priority Service CUSTOMER_NUMB ER CUSTOMER_NAME ACD_ENTER_DATE ACD_ENTER_TIME Q_POSITION AVERAGE_Q_TIME CALLBACK_TIME CALLBACK_DEST LANGUAGE NOTE Description DNIS of the call ANI (caller ID) of caller Agent extension Time since call entered the ShoreTel System (hh:mm:ss) Last device connected to the call Dial Number originally called (typically the IRN) Current state of the call (connected, hold, and so on) Current station time (hh:mm:ss) Dial Number of CO trunk Time the call waited in the queue Call type (1=voice, 2=chat, 3=mail, 4=callback, 5=abandoned, 6=Web_callback, 7=dial from list) Call media (1=voice, 2=chat, 3=email) Priority of call Service that handles the call Identifier number of the customer (if internal, the Customers Table is used) Customer name (if internal the Customers Table is used) Date the call entered the ShoreTel Contact Center Solution Time the call entered the ShoreTel Contact Center Solution Call position in the queue Expected average wait time in the queue Callback time set by caller (if empty, Abandoned Call) Callback destination Language needed for chat-customer The field names in the call profile are case sensitive. Call Control Scripts Call control scripts define the way the system handles ACD calls. The scripts are used to process calls, present information to callers, prompt them for input, collect input digits, query the organization’s database, and so on. Call control scripts can be used to: • • • • • • Make announcements Collect caller information Make routing decisions Provide self-service Provide music-on-hold Read and write information to the database There are two call control script tools available: a graphical call control scripting application called Graphical Call Control Scripts Director (GCC Scripts Director) and Call Control Scripts Director (CC Scripts Director). You can create specific scripts from the set of actions available in the CC Script Director or GCC Script Director. 1–2 ShoreTel, Inc. CRM Integration Using Call Control Scripts A call control script contains a set of actions that are performed on a call. You can change the agent requirements or call flow based on database interactions. Call control scripts can access external databases based on caller-supplied input. Information from the database can be used to modify the call routing or play back information to the caller. The actions that are defined for a script control the flow of a call (that is, its routed destination). They can also update the call profile fields that control the call handling as well as the agent’s display. Some of these actions are logical (for example, Logic Switch), and some are related to telephony (for example, Transfer). Some actions obtain information from the organization’s database (for example, SQL Query), while others require Interactive Voice Response (IVR). When the Contact Center executes IVR actions, such as Menu, Get Digits, and Play File, the call is automatically transferred to an available IVR port. To use call control scripts: • • • • • • • Plan the actions you want the call control script to perform. Identify and connect to an external database and create ODBC queries. Create any new call profile fields needed by the call control script. Record the required announcements. Create the call control scripts using Call Control Scripts Director. Set IVR application parameters from the IVR Application window. Set the call control scripts as IRN or service destinations. Integrating to CRM Databases To integrate your call control scripts with you customer information, you must first identify the database, and the columns within the database, that contain the necessary information. When integrating with an external database, the ShoreTel Contact Center acts as the client and uses an ODBC interface on the Contact Center Server to interact with the database. NOTE You must have the appropriate ODBC drivers installed on the Contact Center Server. To query or do other database interactions, the Contact Center uses Structured Query Language (SQL). External databases must be in SQL format to be accessible by the Contact Center via ODBC. Integrating to external database require the following steps: • Ensure that you have a network connection to the external database by confirming that you can “ping” between the computers. • Install all needed infrastructure software (OBDC drivers and client side processes) and create the OBDC connections on Contact Center server. • Plan the data items you need to gather, define the conditions, and decide where to put data results. • Define the Data Source Name (DSN) of the database to which you want to connect on the Interface tab of the System configuration window. • Create the SQLConnect and SQLExecute actions in your call control script using GCCS Director. — SQLConnect connects to a database in order to make database queries. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 1–3 CRM Integration Using Call Control Scripts — SQLExecute sends a query (written as an SQL statement) to the database to obtain specific information, such as the priority of a caller. For example, the query may be able to find and retrieve the priority of the caller, enter the call profile, and update this value. Call Routing Based on CRM Information You can use the data in your customer database to route calls to agents who can better server a particular customer. The following example routes an incoming call based on a customer type field in the CRM database. In this scenario, a call arrives at a financial institution and is routed by customer type to either a group of agents handling stock trades or to a group specializes in bonds. A field for customer type has been added to the call profile. The incoming call follows these basic stages: 1 The call arrives at the IRN and is sent to a call control script. 2 The call control script uses the Get Digits action to collect the Customer ID number and record it to the call profile. 3 The call control script assesses the database in the following interaction: 4 — Connects to the CRM database using the SQLConnect action. — Uses the Query Database action to identify this customer’s data in the database. — Uses the SQLExecute action to retrieve the customer type from the CRM database and write to the call profile. The call control script uses the Decision action to check the Customer Type field and branch to the correct change profile action that sets the required service in the call profile. Self-Service Based on CRM Information You can use the data in your customer database to provide customers with self-serve options. The application can play back selected .wav files based on the customer status or convert text digits, currency, or dates into speech. The following example provides a balance to a self-service customer. In this scenario, a call arrives at a financial institution and the customer is given the option of checking his or her account balance. A field for customer balance has been added to the call profile. The incoming call follows these basic stages: 1–4 1 The call arrives at the IRN and is sent to a call control script. 2 The call control script uses the Get Digits action to collect the Customer ID number and records it to the call profile. ShoreTel, Inc. CRM Integration Using Call Control Scripts 3 4 The call control script accesses the database in the following interaction: — Connects to the CRM database using the SQLConnect action. — Uses the Query Database action to identify this customer’s data in the database. — Uses the SQLExecute action to retrieve the customer’s account balance from the CRM database and write to the call profile. The call control script uses the Announce action to play back the account balance to the caller. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 1–5 CRM Integration Using Call Control Scripts 1–6 ShoreTel, Inc. C H A P T E R 2 Using Dial Lists for Outbound Calling Overview Enterprise Contact Center can automatically make outbound calls for agents based on lists of numbers. Calls made from the lists are placed by the system and transferred to an agent. Working in a mode called preview dialing, the outbound call is only placed after a free agent is identified to service the call. After the call is placed—while it is proceeding through the network or ringing—it is transferred to a configured destination, either the reserved agent or to a call control script. Since the call is transferred while ringing, ShoreTel recommends that calls only be transferred to an agent since the script will begin playing any prompts immediately and the recipient may not hear the first part of a script's prompt or message. Use the Outbound tab of the System configuration window to define various system parameters for handling outbound calls. Configuring the Dial Lists Dial lists are sets of telephone numbers that are used for outbound calls, according to rules defined in the system. The Dial Lists configuration window enables you to configure the system’s rules for the dial lists. The Contact Center allows dialing from multiple dial lists at the same time. After the agent receives the call, they can mark the call complete (reached a person) or incomplete/try later from a button on Agent Toolbar. To prevent incorrect numbers from staying on the dial list, the agent marks the call incomplete/done. You must define a location in the database for storing the call results. You have the option of defining priority for the inbound calls versus the outbound dialing from a list. You can control the activation of the specific dial list according to: • Simultaneous pending dial numbers in queue—This is used to control the load of each dial list when the agents in the specific group related to the dial list campaign are also active in another group’s activity (such as other dial-lists, inbound or callback calls). ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 2–1 Using Dial Lists for Outbound Calling • Statistical TSF conditions—The system will activate the dial list only if the TSF is equal to or higher than the percentage defined. Calls automatically dialed from the list can be passed to the agent after the party called answers, or while the call is in ringing mode. If the called is passed to the agent while in ring mode, then call status must be set manually by the agent (ring no answer, fax or answering machine). External Databases To use dial lists for outbound dialing campaigns, you must have the dial data in an ODBC/SQL database. Integrating to an external database require the following steps: • Create the physical connection to the external database. Make sure you can ping between the computers and that they can communicate via the network. • Install all needed infrastructure software (OBDC drivers and client side processes) and create the OBDC entries on the ShoreWare Contact Center Server. • Plan which data items you would like to gather, define the conditions, and decide where to put them in the call control script. • Define the Data Source Name (DSN) of the database to which you want to connect on the Interface tab of the System configuration window. • Create the SQLConnect and SQLExecute scripts in Call Control Script Director. — SQLConnect connects to a database in order to make database queries. — SQLExecute sends a query (written as an SQL statement) to the database to obtain specific information, such as the priority of a caller. For example, the query may be able to find and retrieve the priority of the caller, enter the call profile, and update this value. Output Source The system can update the results of the outbound dialing to the external database. The database must be an ODBC/SQL database. The updates can be according to: • Success • Single failure (still under retries) • Final failure To define various parameters for dial lists, use the Interfaces tab of the System configuration window. NOTE 2–2 Dial lists should be in the form of a table in an SQL database. ShoreTel, Inc. C H A P T E R 3 Automating Agent Activities Overview The ShoreTel Contact Center Solution provides interfaces for client-based integrations with external applications. The information related to a call is kept in a table called the “call profile.” The call profile includes all data associated with the call, and is composed of mandatory fields (such as DNIS, ANI, Initiate Time, and Priority), and user fields (fields which can be defined and managed by the implements). The call profile originates when the call enters the ShoreTel system, is accessible and managed during the progress of the call, and is cleared at call completion. When a call is routed to an agent, Agent Toolbar uses call profile values to provide the appropriate notifications to the agent, and offers tools to deliver specific fields to external applications available at the agent station along with executable commands. For example, the system may send a command to display the caller’s screen based on Caller ID (ANI). The ShoreTel Contact Center Solution supports standard interfaces for integration with external applications, including DDE, ActiveX, and basic Microsoft prompt commands (called “triggers”). The ShoreWare Agent INI File Each agent in the ShoreTel Contact Center Solution has an INI file that includes the application setup definitions, and maintains the agent’s personal setup information, along with other valuable data related to features and customization of the agent workstation. The file named ETAS.INI is formatted as a standard Windows INI file, and resides in the agent’s personal folder “XXXX,” where XXXX is the agent ID. All agent personal folders are located on the shared directory named Agents. The INI file contains all information necessary for the setup of the agent station. It also includes information related to actions and data for integrating with external applications. The integration data appears in the DDE and Triggers paragraphs as shown in the following example: ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3–1 Automating Agent Activities [TRIGGERS] OperateTriggers=1 [TRIG_OnIncoming] Command=MyApplication.exe %calling %DNIS %Service %callid [TRIG_OnConnected] Command=notepad.exe %service.txt [DDE] Server=CRM Topic=Events [DDE_OnStarted] Command=started [DDE_OnReStarted] Command=restarted [DDE_OnDenied] Command=denied %cause [DDE_OnStoped] Command=stopped [DDE_OnLoggedIn] Command=loggedin %group [DDE_OnLoggedOut] Command=loggedout %group [DDE_OnHeld] Command=held %callid [DDE_OnRetrieved] Command=retrieved %callid [DDE_OnIncoming] Command=incoming %callid, %Calltyp, %DNIS, %calling, %Service, %Priority, %TimeLn [DDE_OnConnected] Command=connected %callid, %Calltyp, %DNIS, %calling, %Service, %Priority, %TimeLn [DDE_OnConferenced] Command=conferenced %callid [DDE_OnReleased] Command=released [DDE_OnResumed] Command=resumed [DDE_OnWrapUp] Command=wrapup [DDE_OnReady] Command=ready [DDE_OnCleared] Command=cleared %callid For each integration type, there is a list of agent states and the related action (mainly commands) activated at that state. The available states are detailed later on the document. The command may include free text, parameters prefixed by the percentage (%) sign, and control codes. A parameter 3–2 ShoreTel, Inc. Automating Agent Activities can be any call profile field name available in the ShoreWare Agent Toolbar Software, in either the mandatory or user fields. On state changes, the command related to that state is evaluated and all parameters and control codes are substituted by their appropriate values. The following table details the substitution rules: Parameter/Code %call_profile_field \\ \t \b \r \n \f \a \xHH Substitution Value Call profile field value \ (Backslash) TAB BACKSPACE CR Newline Formfeed Alert (Beep) Character HH (HH= hexadecimal value of character) Integrating Applications by DDE the DDE interface provided by the ShoreWare Agent Toolbar Software to external applications, usually CRM applications. Introduction The ShoreWare Agent DDE interface enables external applications to interact with the ShoreWare Agent Toolbar Software. The applications can get notifications from the ShoreWare Agent when some important event occurs, and can control some of the telephony and ACD functions supported by the ShoreWare Agent Toolbar Software. For example, an application working as a DDE server and as a DDE client can perform the following scenario from the application itself: 1 When a call is delivered to an agent and the phone rings, the ShoreWare Agent connects to the application (working as a DDE server) and invokes an EXECUTE command on the DDE protocol. 2 The application gets the information and the parameters from the ShoreWare Agent event. At this time, the application can perform its functions, such as displaying the customer screen, updating the database, and so on. 3 The application provides a button to the agent to answer the call. When the agent clicks the button, the application contacts the ShoreWare Agent Toolbar Software (now working as a DDE server) and invokes an EXECUTE command on the TEL topic requesting to answer the call. 4 The call is answered and the agent handles the call. 5 The application provides another button to the agent to end the call. When the agent clicks the button, the application contacts the ShoreWare Agent Toolbar Software (now working as a DDE server) and invokes an EXECUTE command on the TEL topic requesting to end the call. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3–3 Automating Agent Activities The ShoreTel Contact Center Solution gathers information related to a call from the moment the call enters the system until it is concluded. All these information is stored in the call profile. The ShoreWare Agent Toolbar Software makes all the call profile information available to the external application. The ShoreWare Agent Toolbar Software works as a DDE client and DDE server simultaneously. First Invocation of the ShoreWare Agent Toolbar Software Any Windows application can start the ShoreWare Agent Toolbar Software using the following command line: EPICAgent.exe 0 AgentId AgentPwd Where: 0 = the number zero AgentId = the agent ID number of the agent AgentPwd = the agent’s password Configuring the ShoreWare Agent Toolbar Software The ShoreWare Agent Toolbar Software was designed to provide maximum flexibility during integration. When the ShoreWare Agent Toolbar Software works as a DDE client, you may configure the following general parameters: 1 Server Name of the server application 2 Topic Topic to be used by the ShoreWare Agent Toolbar Software when executing a command on the external application. 3 Command Command and parameters to send to the application when a specific event occurs. This command is defined per event type. The configuration of the commands should be done at the time the system is installed. Typically, the person installing the ShoreTel Contact Center Solution performs this configuration. The ShoreWare Agent Toolbar Software as a DDE Client The ShoreWare Agent Toolbar Software can execute commands on an external application when the following events occur: 3–4 1 DDE_OnIncoming: When the call rings at the agent’s station. 2 DDE_OnConnected: When the call is answered by the agent. 3 DDE_OnCleared: The call was terminated. 4 DDE_OnHeld: The current call was held. 5 DDE_OnRetrieved: The call was retrieved from hold. 6 DDE_OnStarted: ShoreWare Agent Toolbar Software starts to work. 7 DDE_OnRestarted: ShoreWare Agent Toolbar Software restarts. 8 DDE_OnDenied: ShoreWare Agent Toolbar Software cannot work. ShoreTel, Inc. Automating Agent Activities The command is a string that will be sent “as is” to the external application. To provide parameters, the % sign must precede the field name in the Call Profile. Example To indicate to a CRM application that a call has been delivered to the agent (and is ringing), you may use the following command: [DDE_OnIncomng] command=Incoming from=%calling group=%acd_group When a call comes in from number 7410953 to the group called “Sales,” the following command will be sent to the external application: Topic=EPICAgent DDE_Command= DDE_EXECUTE Command= Incoming from=7410953 group=Sales NOTE The following rules apply: 1 All the commands and parameters are not case sensitive. 2 If a parameter requested in the command has no value, a blank will be sent. 3 The structure of the commands and the events is defined for each installation. The person installing the ShoreWare Agent Toolbar Software performs the agent configuration. 4 The configuration file is called ETAS.INI and is stored on the ShoreTel Contact Center Server. DDE Commands Event DDE_OnIncoming Parameters Command DDE_OnConnected Command DDE_OnCleared Command DDE_OnRelease DDE_OnResume DDE_OnWrapUp DDE_OnReady Command Command Command Command Default Incoming %CallId, %Calling,%Service, %Group Connected %CallId, %Calling,%Service, %Group ConnCleared %CallId Released Resumed WrapUp Ready DDE_OnLogin DDE_OnLogout DDE_OnHeld DDE_OnRetrieved DDE_OnStarted Command Command Command Command None LoggedIn LoggedOut Held %CallId, Retrieved %CallId, Started ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) Description A call is ringing at the agent phone The agent answers the call The call terminates Agent was released Agent was resumed Agent goes to wrap-up Agent returns from wrap-up Agent logged in Agent logged out A call was held A call was retrieved Agent Toolbar started 3–5 Automating Agent Activities DDE_OnRestarted None Restarted DDE_OnDenied Cause Denied %cause Agent Toolbar lost connection to the server, and now it is online again Agent Toolbar is unable to work Possible OnDenied Causes: Cause 1 Name LOGGED_ON_TO_ANOTHER_EXT 2 NEW_AGENT_ON_EXT 3 4 5 WRONG_AGENT WRONG_PASSWORD MAX_NUM 6 7 FAILED_TO_READ_FROM_DBS STILL_INITIALIZING NOTE Description Agent already logged in on another extension Another agent logged on current extension Wrong agent ID supplied Wrong password Maximum number of agents in system is exceeded Internal error Agent Toolbar cannot start because the system is still initializing There can be more than one active call at the same time, therefore the values for the call ID are important. The ShoreWare Agent Toolbar Software as a DDE Server When working as a DDE server, the ShoreWare Agent Toolbar Software supports the following topics: 1 ACD For ACD-related functions 2 TEL For all telephony-related functions 3 REQUESTS The application can request information from the ShoreWare Agent Toolbar Software 4 OTHER Miscellaneous commands The ACD Topic The following commands are invoked using DDE_EXECUTE: Command name LoginPrimaryGroups LogoutFromPrimaryG roups LoginGroup LogoutFromGroup Release Resume Wrapup AgentReady 3–6 Parameters None None Description Logs in to all primary groups Logs out from all primary groups Group name Group name None None Wrap-up code None Logs in into a specific group Logs out from a specific group Makes agent enter “release” state Makes agent enter “resume” state Enters wrap-up code Terminates wrap-up time ShoreTel, Inc. Automating Agent Activities Command name TransferToAgent Help SetCallProfile Parameters Agent number None Field name, new field value Description Transfers call to specified agent Help request from supervisor Sets call profile field value The following commands are supported using DDE_REQUEST: Command name CommandList NOTE Parameters None Description Gets a space delimited list of supported commands for the topic The following rules apply: 1 All the parameters are strings. 2 The commands and parameters are not case sensitive. The TEL Topic The following commands are invoked using DDE_EXECUTE: Command name Alternate Parameters None Answer HangUp ClearConnection None None Call ID Divert Destination dial number Hold Retrieve None None MakeCall Destination dial number Destination dial number None TransferCall CompleteTransfer Conference CompleteConference SingleStepTransfer Reconnect Destination dial number None Destination dial number None Description Exchanges between the call on hold and the active call Answers the call that is ringing Terminates the current call Terminates the call with the selected Call ID Diverts the call the desired destination before answering the call Puts the current call on hold Retrieves a call that was previously put on hold Makes an outgoing call Starts the transfer process Removes the agent from the call completing the transfer Begins a conference call Complete the conference call Transfers the current call to another telephone Returns the agent to the original call and terminates the consultation ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3–7 Automating Agent Activities The following commands are supported using DDE_REQUEST: Command name CommandList Parameters None Description Gets a space delimited list of supported commands for the topic The REQUEST Topic The following commands are supported using DDE_REQUEST: Item name TopicItemList Parameters None IsPhoneBusy None Returns (string) GETS A SPACE DELIMITED LIST OF SUPPORTED ITEMS FOR THE TOPIC TRUE or FALSE HeldCallsCo unt GetCpParam None Number of calls on hold Field name Field value IsRelease None TRUE or FALSE IsLoggedIn Group Name None TRUE or FALSE IsWrapUp TRUE or FALSE Description TRUE if the phone is busy Number of calls currently on hold () or 1 Retrieve the value of a specific call profile field TRUE if the agent is in the release state TRUE if the agent is logged in TRUE if the agent is currently in wrap-up time The OTHER Topic The following commands are invoked using DDE_EXECUTE: Command name Terminate Parameters Description None Closes Agent Toolbar The following commands are supported using DDE_REQUEST: Command name CommandList 3–8 Parameters Description None Gets a space delimited list of supported commands for the topic ShoreTel, Inc. Automating Agent Activities Integrating Applications by ActiveX This section provides a simple reference for integrating with the ShoreWare Agent Toolbar Software using the ActiveX control provided with the ShoreTel Contact Center Solution. It describes the interface of the control, the available methods, parameters, and additional information required to perform the integration. This guide assumes that the programmer is familiar with ActiveX specifications and use. The ShoreWare Agent Toolbar Software ActiveX control enables external applications to use the ShoreWare Agent Toolbar Software to perform telephony and ACD functionality. The applications can get events from the ShoreWare Agent Toolbar Software when some telephony, ACD, and management events occur, and can control the telephony, ACD, and management functions supported by ShoreWare Agent Toolbar Software. The following scenario details the process of an incoming call: 1 The moment a call is delivered to an agent and the phone rings, the ShoreWare Agent Toolbar Software initiates an OnIncoming event to the application. Standard parameters (Call ID, Call type, DNIS, ANI, Service, Priority, and Time the call got in) are supplied in the event. Some parameters can be missing. 2 The application can get more call parameters from the ShoreWare Agent Toolbar Software by getting properties (call profile fields). 3 At this time, the application can perform its functions, including displaying the customer screen, updating the database, and so on. 4 The application provides a button to the agent to answer the call. When the agent clicks the button, the application commands the ShoreWare Agent Toolbar Software (using the answer method) to answer the call. 5 The call is answered, the application gets an OnConnected event, and the agent handles the call. 6 The application provides another button to the agent to disconnect the call. When the agent clicks the button, the application commands ShoreWare Agent Toolbar Software to disconnect the call. The ShoreTel Contact Center Solution gathers information about a call from the moment the call enters the system until the call is disconnected. Those parameters are from the caller’s input (in the IVR), read from the organization’s database, or set in the process of handling the call. All these information is stored in the call profile. The ShoreWare Agent Toolbar Software makes all the call profile information available to the external application. The call profile fields are either fixed (for example, priority, required service, time the call entered the system, and so on), or user defined in the ShoreWare Contact Center Director Software. Both can be used to pass parameters that the ShoreTel Contact Center Solution can collect and share with the CRM application. ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3–9 Automating Agent Activities Configuring ShoreWare Agent Toolbar No configuration is required on ShoreWare Agent Toolbar Software side. All events are sent, all call profile information is sent on relevant events, and all commands are enabled. It is the responsibility of the CRM application to ignore what is not required. Managing ShoreWare Agent Toolbar The management includes starting the ShoreWare Agent Toolbar Software, as well as stopping and monitoring the connection state to the ShoreTel Contact Center Server. The application can start the ShoreWare Agent Toolbar Software using the following method: StartEa(AgentNumber AgentPwd) Where: AgentNumber: the agent's number AgentPwd: the agent's password. The application waits for a response event. There are two possible events: Event Started() Description The ShoreWare Agent Toolbar Software started and logged on Denied(Cause number) Log on was denied by the ShoreTel Contact Center Server. For list of causes of denial, see appendix A. The application can stop the ShoreWare Agent Toolbar Software using the following method: StopEa() No parameters are required. The Stopped() is the event indicating a successful action. Monitoring the connection state to the ShoreTel Contact Center Server uses the Connection lost and Restarted events. When Connection is lost (until a Restarted event is received), the ShoreWare Agent is Out of Service. No new calls are received, and all telephony and ACD methods are inoperative while ShoreWare Agent Toolbar Software is Out of Service. 3 – 10 ShoreTel, Inc. Automating Agent Activities ShoreWare Agent Toolbar Events ShoreWare Agent Toolbar Software sends events to the external application when the following events occur: The TEL Events The following are telephony events: Command OnIncoming OnConnected OnCleared OnHeld OnRetrieved Parameters CallId, Calltyp, DNIS, ANI, Service, Priority, TimeIn CallId, Calltyp, DNIS, ANI, Service, Priority, TimeIn CallId CallId CallId Description A call is ringing at the agent phone The agent answers the call The call terminates A call was held A call was retrieved The ACD Events The following are ACD events: Command OnLogin OnLogout OnRelease OnResume OnWrapUp OnReady NOTE Parameters GroupName GroupName Description Agent logged in Agent logged out Agent was released Agent was resumed Agent goes to wrap-up Agent returns from wrap-up The following rules apply: 1 There can be more than one active call at the same time, therefore the values for the call ID are important. 2 Calltyp is always set to 0 (inbound voice call). ShoreWare Agent Toolbar Software Methods (Services) The ShoreWare Agent Toolbar Software supports the following commands: • TEL for all telephony-related functions • ACD for ACD-related functions ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3 – 11 Automating Agent Activities The TEL Methods The following are telephony methods: Command name Answer HangUp MakeCall ClearConnection Parameters None None Destination dial number Call ID Hold Retrieve None None Divert Destination dial number StartTransfer CompleteTransfer Destination dial number None SingleStepTransfer Destination dial number StartConference CompleteConference Alternate Destination dial number None None Reconnect None Description Answers the ringing call Clears the current call Makes an outgoing call Terminates the call with the selected Call ID Puts the current call on hold Retrieves a call that was previously put on hold Diverts the call the desired destination before answering the call Starts the transfer process Removes the agent from the call, completing the transfer Transfers the current call to another telephone Begins a conference call Complete a conference call Exchanges between the call on hold and the active call Returns the agent to the original call and terminates the consultation The ACD Methods The following are ACD commands: 3 – 12 Command name LoginPrimaryGroups LogoutPrimary Groups LoginGroup LogoutFromGroup ReleaseAgent ResumeAgent WrapUpCode ControlledWrapUp Parameters None None Description Logs in to all primary groups Logs out from all primary groups Group name Group name None None WrapUp code None AgentReady TransferToAgent Help None Agent number None Logs in to a specific group Logs out from a specific group Makes agent unavailable Makes agent available Enters wrap-up code Lets the agent continue in wrap-up mode until he or she is finished (otherwise a predetermined period is set by the administrator) Terminates the wrap-up time Transfers call to specified agent Help request from supervisor ShoreTel, Inc. Automating Agent Activities The Properties (Get Only) The following is the list of properties: Item name ISPHONEBUSY Parameters None HeldCallsCount None User or skill CallProfile field IsRelease Call Profile field name None IsLoggedIn Group name None IsWrapUp NOTE Returns TRUE or FALSE (0 or 1 Long) Number of calls on hold (Long) Field value (String) TRUE or FALSE (0 or 1 Long) TRUE or FALSE (0 or 1 Long) TRUE or FALSE (0 or 1 Long) Description TRUE if the phone is busy Number of calls currently on hold Retrieve the value of a specific call profile field TRUE if the agent is in the release state TRUE if the agent is currently in wrap-up state All strings are not case sensitive. Possible OnDenied Causes Cause 1 Name LOGGED_ON_TO_ANOTHER_EXT 2 NEW_AGENT_ON_EXT 3 4 WRONG_AGENT MAX_NUM 5 6 FAILED_TO_READ_FROM_DBS STILL_INITIALIZING Description Agent already logged in on another extension Another agent logged on current extension Wrong agent ID supplied Maximum number of agents in system is exceeded Internal error ShoreWare Agent Toolbar Software can’t start because the system is still initializing Type of All Variables Name AgentNumber AgentPwd Cause number CallId Calltyp DNIS ANI Service Priority TimeIn Type String String Long Long Long String String String Long String (HH:MM:SS) Comment ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3 – 13 Automating Agent Activities Name GroupName Destination Dial number WrapUp code Any User field Any Skill field Type String String String String String Comment Fields can be defined in administration Fields can be defined in administration All strings are VB strings / BSCR in C language, and are not case sensitive. Activating Applications by Triggers This chapter describes the interface, called triggers, provided by the ShoreWare Agent Toolbar Software to activate external applications available at the agent environment. Introduction The ShoreWare Agent Toolbar Software triggers interface enables the activation of external applications at events (mainly states) of the ShoreWare Agent Toolbar Software. When receiving an event (a state change or activity performed by the agent), the command line related to that event on the INI file is activated. Configuring the ShoreWare Agent Toolbar Software The configuration of the ShoreWare Agent Toolbar Software to activate triggers is done on the triggers area of the ETAS.INI file for the appropriate agent. Initially, the triggers area appears as follows: [TRIGGERS] OperateTriggers=1 To activate the triggers option, OperateTriggers should be set to 1. Activating an Application You can activate an application at a specific event by configuring the command for the appropriate event. For example, if you wanted to activate an application called “MyApplication.exe” at a call ringing on the agent station, and then pass the application several parameters related to the call, such as an ANI number, DNIS, and the called extension, you would set the following commands: [TRIG_OnIncoming] Command=MyApplication.exe %calling %DNIS %Service %called 3 – 14 ShoreTel, Inc. Automating Agent Activities Activation Events ShoreWare Agent Toolbar Software can activate a command when the following events occur: TRIG_OnStarted TRIG_OnReStarted TRIG_OnDenied TRIG_OnStopped TRIG_OnLoggedIn TRIG_OnLoggedOut TRIG_OnHeld TRIG_OnRetrieved TRIG_OnIncoming TRIG_OnConnected TRIG_OnConferenced TRIG_OnReleased TRIG_OnResumed TRIG_OnWrapUp TRIG_OnReady TRIG_OnCleared Command Substitution The command line can include free text and call profile parameters (mandatory and user fields). For more information, see Chapter 1, “CRM Integration Using Call Control Scripts.” ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) 3 – 15 Automating Agent Activities 3 – 16 ShoreTel, Inc. A P P E N D I X A Integration Examples The following examples show possible integrations of ShoreTel Contact Center Solution with external applications. Goldmine by DDE The following example displays the caller file on a Goldmine application once the phone rings at the agent workstation: [DDE] Server=GOLDMINE ActivateServer=TRUE Topic=DATA [DDE_OnIncoming] Command=[CallerID(%calling,"EpicAgent",1)] MSAccess by DDE The following example starts the MSAcess application, activating a database called “MYDB” when the ShoreWare Agent Toolbar Software starts. On each arriving call, it opens the caller’s file: [DDE] Server=MsAccess Topic=System Database=D:\MYDB.mdb [DDE_OnIncoming] Command=[OpenForm cust,,, phone = %calling] [DDE_OnStarted] Command=[OpenDatabase D:\MYDB.mdb] ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) A–1 Integration Examples Web Application by Triggers The following is an example of activating a web application using the Triggers interface. The application is started in a new Internet Explorer window and shows all activities related to the calling customer. [TRIGGERS] OperateTriggers=1 [TRIG_OnIncoming] command=start c:\\Program files\\internet explorer\\iexplore.exe http://www.company.com/HomePages/CmaInternalPage/ 1,1564,11,FF.html?EZRu n=1&PersonalID=%calling Vantive by DDE The following is an example of displaying the file for the calling customer on a Vantive application: [DDE] Server=Vantive Topic=System [DDE_OnIncoming] Command=maEaXIncoming X%calling External Application by ActiveX The following example is the implementation, in Visual Basic 6, of a console that enables the user to activate the controls of the ShoreWare Agent Toolbar Software. Events are received in the List window of the console, shown below. Code of VbController.exe Private Sub Button_Alternate_Click() EaX.Alternate End Sub Private Sub Button_Answer_Click() EaX.Answer End Sub Private Sub cClearConn_Click() End Sub Private Sub Button_CompTrans_Click() EaX.CompleteTransfer End Sub Private Sub Button_Divert_Click() EaX.Divert Edit_Divert.Text End Sub Private Sub Button_Exit_Click() End End Sub Private Sub Button_GetCp_Click() Edit_CallProfileValue.Text = EaX.CallProfile(Edit_CallProfileName.Text) End Sub A–2 ShoreTel, Inc. Integration Examples Private Sub Button_HangUp_Click() EaX.HangUp End Sub Private Sub Button_Hold_Click() EaX.Hold End Sub Private Sub Button_IsLoggedIn_Click() If EaX.IsLoggedIn(Edit_IsLogInGroupName.Text) = 1 Then Shape_IsLoggedIn.BackColor = &H80000003 Else Shape_IsLoggedIn.BackColor = &HFF& End If End Sub Private Sub Button_LogIn_Click() EaX.LoginGroup Edit_LogInGroupName.Text End Sub Private Sub Button_LoginPrim_Click() EaX.LoginPrimaryGroups End Sub Private Sub Button_LogOut_Click() EaX.LogoutFromGroup eLoGroup.Text End Sub Private Sub Button_LogoutPrim_Click() EaX.LogOutFromPrimaryGroups End Sub Private Sub Button_MakeCall_Click() EaX.MakeCall Edit_MakeCallDestination.Text End Sub Private Sub Button_LogOff_Click() EaX.StopEa End Sub Private Sub Button_LogOn_Click() EaX.StartEa Edit_AgentId.Text, Edit_Password.Text End Sub Private Sub Button_CompConf_Click() EaX.CompleteConference End Sub Private Sub Button_Ready_Click() EaX.AgentReady End Sub Private Sub Button_Reconnect_Click() EaX.Reconnect End Sub Private Sub Button_Release_Click() EaX.ReleaseAgent End Sub Private Sub Button_Resume_Click() EaX.ResumeAgent End Sub ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) A–3 Integration Examples Private Sub Button_Retrive_Click() EaX.Retrieve End Sub Private Sub AddToLog(ByVal line As String) If List.ListCount > 20 Then List.Clear End If List.AddItem line End Sub Private Sub Button_SingleStepTransfer_Click() EaX.SingleStepTransfer Edit_SingleStepTransfer.Text End Sub Private Sub Button_StartConf_Click() EaX.StartConferrence Edit_Conferrence.Text End Sub Private Sub Button_StartTrans_Click() EaX.StartTransfer Edit_Transfer.Text End Sub Private Sub Button_TransferToAgent_Click() EaX.TransferToAgent Edit_TransferTyAgendId.Text End Sub Private Sub Button_Wrapup_Click() EaX.WpapUp Edit_WrapupCode.Text End Sub Private Sub EaX_OnCleared(ByVal callid As Long) AddToLog "Cleared: " + Str(callid) End Sub Private Sub EaX_OnConnected(ByVal callid As Long) AddToLog "Connected: " + Str(callid) End Sub Private Sub EaX_OnHeld(ByVal callid As Long) AddToLog "Held:" + Str(callid) End Sub Private Sub EaX_OnIncoming(ByVal callid As Long) AddToLog "Incoming: " + Str(callid) End Sub Private Sub EaX_OnLoggedIn(ByVal group As String) AddToLog "LoggedIn " + group End Sub Private Sub EaX_OnLoggedOut(ByVal group As String) AddToLog "LoggedOut " + group End Sub Private Sub EaX_OnReady() AddToLog "Ready " End Sub Private Sub EaX_OnReleased() AddToLog "Released" End Sub A–4 ShoreTel, Inc. Integration Examples Private Sub EaX_OnResumed() AddToLog "Resumed" End Sub Private Sub EaX_OnRetrieved(ByVal callid As Long) AddToLog "Retrieved " + Str(callid) End Sub Private Sub EaX_OnWrapUp() AddToLog "WrapUp" End Sub Private Sub EaX_Started() AddToLog "Started" End Sub Private Sub EaX_Stopped() AddToLog "Stopped" End Sub Private Sub Form_Load() EaX.Init "Temp" End Sub The Control Panel ShoreTel Contact Center Solution CRM Integration Guide (CCCIG-4.32-01) A–5 Integration Examples A–6 ShoreTel, Inc.