In this two part series, we look at the fundamentals of Avaya Aura Contact Center Scripting. Scripting design can be classified into four primary components:
- Call Sorting/Filtering
- Closed Condition Check
- Scheduled Closures
- Holidays
- Weekends and after hours
- Unscheduled Closures
- Meeting/Emergency/Issue that arises during business hours
- Weather conditions or circumstances that prevent agents from staffing the contact center
- Skillset closed during regular business hours
- Scheduled Closures
- Basic Treatment
- Queuing
- Initial Announcements
- Loop Function
- Repeat announcements
- Check for changes to the call’s status
Almost all well-written scripts have code that meets the above criteria. You’ll certainly encounter scripts that have more than the above — especially when integrating the Contact Center Manager Server with other systems, but we’ll focus on the basics. It’s astounding how much scripting logic you can extrapolate/create/discover once you understand the fundamentals.
Call Sorting/Filtering
This process takes place in the master script of identifying the purpose of the call and distributing it to the appropriate primary script.
Closed Condition Check
We’ll start with the second point in the outline. The key to understanding scripting logic — the essence of transforming the outline above to actual code — is the IF-THEN-END IF statement and its brother, the IF-THEN-ELSE-END IF statement. Fundamental to mastering the art of script writing is learning how to play the contingency game. Think like a boy scout and be prepared. It’s all well and good if the contact center is open, agents are logged in, there aren’t too many calls waiting, and it’s sunny outside. But what if the contact center is closed, all the agents are logged out, there are lots of calls waiting, or there’s a storm?
Conditions vary in a call center, and we must determine the current conditions for the caller in order to process his call appropriately.
The IF-THEN-END IF is the scripting language method for asking a question and processing the answer. The Contact Center manages all kinds of conditional information in the form of intrinsics. Circumstances continually change, and intrinsics tell us the current state of affairs. Our job as script writers is to know how to ask the right questions and when to ask them. The outline above identifies the “what” and the “when”; let’s address the “how.”
Scheduled Closures
Consider:
IF DATE = JAN 1 THEN
GIVE RAN 30
DISCONNECT
END IF
The question we’re asking here is, “what is the date for the call being processed?” If the system answers that indeed the caller reached our contact center on the first day of the year, the system will execute the THEN statements. In this instance, our caller will hear a recording from RAN 30 and then be disconnected. There is no need to examine any further script instructions because the call center is not open for business.
How about:
IF DAY OF WEEK = SATURDAY..SUNDAY
OR TIME OF DAY <> 8:00..16:59 THEN
GIVE RAN 31
DISCONNECT
END IF
Now we’re asking two questions in one statement: is it the weekend or outside of regular business hours? The “OR” on the second line indicates that either condition is acceptable for identifying a scheduled closure. The business will be closed on the weekend or when the time of day is not (the “<>” means “not equal to”) during normal business hours.
Unscheduled closures
IF NOT LOGGED OUT AGENT 12345 THEN
GIVE RAN 32
DISCONNECT
END IF
If an unplanned closure (e.g., meeting, network problem, building evacuation) needs to occur during regular business hours, there are a variety of ways to address the situation through scripting. The most common approach is to implement the “emergency agent.” An agent profile is created in Contact Center Management that doesn’t belong to an actual person. Instead, the supervisor or administrator logs in the emergency agent when the unscheduled event occurs. There is no intrinsic for “logged in agent;” therefore, we must employ a double negative. If the agent is not logged out, he is logged in.
IF weather_boolean_gv = TRUE THEN
GIVE RAN 33
DISCONNECT
END IF
This works very well when the unscheduled event takes place while the contact center is staffed. We must take a different approach when weather conditions prevent personnel from reaching the contact center in the first place. A variable that can be set to TRUE or FALSE (weather_boolean_gv) is configured and assigned a value of FALSE for regular call processing. When weather or some other event prevents agents from physically staffing the call center, an administrator makes a browser connection to the CCMA (Contact Center Manager Administration) interface (typically via Virtual Private Network) and changes the value of the variable to TRUE. Now callers will hear the announcement in RAN 33.
IF NOT OUT OF SERVICE customer_service_sk THEN
QUEUE TO SKILLSET customer_service_sk
WAIT 2
ELSE
GIVE RAN 34
DISCONNECT
END IF
Whoa! What’s happening here? Now the ELSE clause makes an appearance. Let’s make sense of this. The condition we’re evaluating is the status of the skillset. We checked for scheduled and unscheduled closures. It’s possible that the call arrives during regular business hours and no previous unscheduled closure check is in effect. However, we must determine if one or more agents is staffing the skillset. During a shift change, a faulty Agent to Skillset Assignment or simply tardy agents could cause the skillset to be out of service.
The condition evaluated in our IF statement is whether the skillset is in service (open). Again we must use a double-negative to determine something positive. If the skillset is staffed, we queue the call to the skillset (the THEN statements are executed). When the skillset is not staffed, our IF condition is FALSE, and, as a result, the ELSE statements are executed. Consider how this example varies from the previous examples that lacked an ELSE clause. The issue is what happens when the condition (intrinsic) being evaluated by the IF statement is not met. When there is no ELSE clause, the system follows the next command — that which follows the END IF — provided, of course, that we did not disconnect the call. When there is an ELSE clause, the system follows the instructions that follow the ELSE when the IF condition is not met.
This post is excerpted and reused with permission from Avaya Aura Contact Center Scripting Demystified by Brett Hanson.
Related Courses
Avaya Aura Contact Center
Avaya Aura Contact Center Scripting Series
- The Basics of Avaya Aura Contact Center Scripting
- Avaya Aura Contact Center Scripting Continues