You can copy the formulas as they are; just replace names such as “Support” with your own. The language is described in Formulas, the fields in Data for formulas.
Agents
| Label | Formula |
|---|---|
| logged-in agents | Agents.Count(IsLogin) |
| free agents | Agents.Count(IsLogin and Idle) |
| agents in a call | Agents.Count(IsTalking) |
| in wrap-up or an activity | Agents.Count(Wrapup or Activity) |
| in the activity “Lunch break” | Agents.Count(Activity and ActivityType.Name = "Lunch break") |
An agent table with the row formula IsLogin only shows logged-in
agents. Suitable columns:
| Column | Formula |
|---|---|
| Name | Name |
| State | EffectiveState |
| logged in for | LoginTimeSpan |
| in wrap-up for | iif(Wrapup, WrapupTimeSpan, TimeSpan.Zero) |
| accepted conversations | AgentStatistics.UniqueConnected(Row) |
Queue
| Label | Formula |
|---|---|
| waiting calls | InboundCalls.Count(State = "Waiting") |
| waiting conversations of all channels | Conversations.Count(State = "Waiting") |
| longest wait time | InboundCalls.Where(State = "Waiting").Max(QueuedTimeSpan) |
| text with number | "Waiting: " & InboundCalls.Count(State = "Waiting") |
A gauge needs a number — the longest wait time in seconds:
Math.Round(InboundCalls.Where(State = "Waiting").Max(QueuedTimeSpan).TotalSeconds)
A conversation table with the row formula State = "Waiting" lists the
queue:
| Column | Formula |
|---|---|
| Caller | CallerNumber |
| Skill | SkillName |
| waiting for | QueuedTimeSpan |
| Start | StartTime.ToLocalTime() with the format pattern HH:mm:ss |
Traffic light colors
On the Ranges page of a label with the waiting calls:
| Lower bound | Upper bound | Color |
|---|---|---|
| 0 | 3 | Green |
| 3 | 6 | Orange |
| 6 | 10000 | Red |
A row applies from the lower bound up to just below the upper bound: 0 to 2 waiting calls appear green, 3 to 5 orange, 6 and more red.
Skills
A skill table shows one row per skill:
| Column | Formula |
|---|---|
| Skill | Name |
| waiting | Conversations.Count(Skill.Id = Row.Id and State = "Waiting") |
| logged in | ACDs.First(Id = Row.Id).LoggedInAgents |
| free | ACDs.First(Id = Row.Id).AvailableAgents |
| open | ACDs.First(Id = Row.Id).Open |
For a single skill in a label:
ACDs.First(Name = "Support").WaitingCalls
ACDs.First(Name = "Support").CallAVGWait
Real-time statistics
| Label | Formula |
|---|---|
| received calls | ConversationStatistics.Received("InboundCall") |
| accepted calls | ConversationStatistics.Connected("InboundCall") |
| abandoned | ConversationStatistics.Abandoned("InboundCall") |
| talk time, added up | ConversationStatistics.Duration("Connected", "InboundCall") |
| average talk time in the skill | ACDs.First(Name = "Support").CallAVGHandling |
The service level — the percentage of calls that were connected in less than 20 seconds — requires 20 to be one of the bins of the statistics, see Real-time statistics:
iif(ConversationStatistics.Received("InboundCall") = 0, 100.0,
100.0 * ConversationStatistics.Connected("InboundCall", 20) /
ConversationStatistics.Received("InboundCall"))
A time table shows the progression per interval:
| Column | Formula |
|---|---|
| Time of day | Row.Time with the format pattern HH:mm |
| received | ConversationStatistics.Received(Row, "InboundCall") |
| abandoned | ConversationStatistics.Abandoned(Row, "InboundCall") |
As series of a chart of the Time type, the same formulas show the progression as bars or a line.
Alarms
An alarm table shows the active alarms:
| Column | Formula |
|---|---|
| Performance indicator | Name |
| Concerns | SourceName |
| Severity | Severity.Name |
| State | State |
| Duration | Now - RaiseTime |
The number of raised alarms in a label:
Alarms.Count(State = "Raised").
Header lines
| Label | Formula |
|---|---|
| name of the display element | Configuration.Name |
| time of day | Now with the format pattern HH:mm |
| date | Now with the format pattern dddd, d MMMM yyyy |