Preview and Progressive Dial Channel

Overview

The Symbee Connect Preview Channel provides the following workflow and functionality:

  • Intake Lists of tasks (e.g. Customers, Contacts, Orders, etc.) into Preview Campaigns.

  • Campaign Tasks are then queued and delivered to appropriately skilled agents logged into Symbee Connect/Amazon Connect.

  • As an alternative to using Intake Task Lists, use the Preview Campaign Realtime API to dynamically inject new Tasks into a Preview/Progressive Campaign in real-time programmatically.

  • A preview task may or may-not result in an outbound phone call being made associated with the task.

  • Optionally, agent delivered tasks can follow either Preview or Progressive behavior.

  • Agents complete the tasks, selecting appropriate Work Codes describing the outcome.

  • Work Codes and task status are updated back to the Campaign as Results and can also be handled as real-time events in the Clients account if needed via Kinesis and Lambda.

  • Campaign Lists with updated results can be exported/downloaded for reporting or for update back within your back-end systems.

  • Intake Lists fully customizable using columns/fields of information to be presented to the Agent at your discretion.

  • Additional records/tasks can be added or merged into an existing running campaign as required.

  • Agents have options to reschedule a preview task for re-attempt at a later time.

  • Preview tasks from a single Campaign can be dispersed/delivered through multiple Skill Queues.

  • Task delivery is controlled through Hours of Operation tables by Skill Queue, with support for Holidays and Exception Days.

(Refer to the Flow Diagram for visual representation of features described above)

All functionality for the Preview Dial channel management and delivery resides in the Symbee Connect SaaS cloud, however for security reasons the actual preview campaign data remains in your own AWS account. An AWS CloudFormation is provided to establish the initial configuration needed in your AWS account for integration with the Symbee Connect SaaS solution. See here.

Additionally, Post CloudFormation Manual Configuration provides the one-time initial manual installation steps to be run after the Symbee Connect Preview Dial AWS.

Preview and Progressive Campaigns

The Symbee Connect Preview Channel provides the following workflow:

  • Intake lists of tasks (for example. Customers, Contacts, Orders, etc.) into Preview Campaigns.
  • And/Or, dynamically add new tasks to the Campaign in real-time using the Preview Campaign Realtime API.
  • Subsequent Campaign Update intake lists can be introduced to an existing running Campaign.
  • Preview tasks from the campaign are then queued and delivered to appropriately skilled agents logged into Symbee Connect/Amazon Connect.
  • Working of a preview task may or may-not result in an outbound phone call being made associated with the task. Preview tasks can be marked for re-attempt at a later point in time.
  • Progressive behavior (auto dial) when tasks are delivered to the agent can be optionally configured.
  • Agents complete the tasks by selecting appropriate Work Codes (often also referred to as Dispositions or Finish Codes) describing the task outcome.
  • Work Codes and task status are then updated back to the Campaign List records as results and can also be handled as real-time events in the clients account if needed.
  • Campaign Lists with updated results can then be exported / downloaded for reporting or for update back within your back-end systems.


Flow from a system perspective:




Preview and Progressive Campaign configuration and administration is made up of the following aspects:

  1. Declaring a new Preview or Progressive Campaign within your Symbee Connect environment.
  2. Configuring Preview Skill Queues to control delivery of tasks to agents.
  3. Configuring Operating Hours Schedules and assigning them to Preview Skill Queues.
  4. Configuring Work Code Groups and Work Codes and assigning them to Preview Skill Queues.
  5. Determining and Customizing what preview task information to present to an agent (how your intake files should look in terms of columns and values).
  6. Uploading Campaign Intake files for processing.

For more information refer to the Preview and Progressive Dial Step by Step Guide.





Preview Agent User Interface

Preview Tasks are presented to the agent in the same uniform experience as all other Omnichannel task types presented to the agent in Symbee Connect. The first screenshot below (blue state) shows the agent actively working a preview task, the second (orange state) shows the agent wrapping up.

Notes:

  • Details presented to the user in the Preview Dial Details section are 100% the result of how your Preview Campaign Intake files are designed. Each file column becomes a field on the screen, with the column heading in the file becoming the field label.

  • Specially named file columns support additional features for providing Buttons or Links, and specific fields to be highlighted.

Specific to Preview tasks, the Schedule Next Attempt section appears in the Work Codes section of the UI that allows a Preview Task to be rescheduled for another attempt using various options.

Viewing Campaign Status, Monitoring, Actions and Notifications

The current state of each campaign is shown within the Symbee Connect Administration Portal, on the Campaign Status view under Preview and Progressive Dial on the main Function menu.

Campaign States

The Campaign Status view shows the current state of each campaign. The following table describes each of the possible Campaign states:

CAMPAIGN STATE DESCRIPTION
CREATING Initial state, only seen as the Campaign is first being built after a new Campaign is added. This may take a few minutes as the required Dynamo tables and S3 directories are created.
ACTIVE The normal running state for a Campaign, indicating work/tasks will be delivered to agents, if agents are appropriately skilled and available, and if there is remaining unworked tasks in the campaign.
SUSPENDING/SUSPENDED The state of a Campaign after a Suspend Action (see section 12.4) has been taken. Current in-progress Skill Queues will be flushed, with work returned to the Campaign Tables (no data is lost), and no further work/tasks will be delivered to agents until the campaign is resumed (see Resume action) back to the ACTIVE state.
PURGING/PURGED The interim state when a Purge Action is being performed. Once the purge is complete, the campaign will return to the ACTIVE state (with the campaign empty).
LOADING The interim state when new data is being added to the campaign due to new Intake files being picked up and processed. LOADING is another form of the ACTIVE state, but simply indicates LOADING is in progress – like ACTIVE, work/tasks will be delivered to agents in this state (assuming both agent and work is available).

During large file loads (> 5000 records), a campaign may toggle between ACTIVE and LOADING, as large files are processed in segments. This is normal.
RECALCULATING The interim state when a Recalculate Action (see section 12.4) has been taken.

During a recalculation, delivery of new work/tasks to agents is briefly suspended, to get an accurate snapshot of the state of all records in the campaign. Once recalculation is complete, the campaign resumes and returns to ACTIVE.
FAILED In this state, a campaign will not be delivering any work/tasks to agents and needs to be Purged and reloaded. A campaign can enter this FAILED state if a file is very badly formatted (beyond individual records being badly formed) or if intake data is received, and there are invalid SkillQueues specified in the data, and there is no Default SkillQueue configured for the campaign.



Preview Task States

The Campaign Status view shows the total tasks currently loaded in each campaign, and a breakdown of the loaded tasks by state.

The following table describes each state for a Preview Task during the campaign lifecycle:

PREVIEW TASK STATE DESCRIPTION
NOTWORKED Initial state after being loaded from an intake file. Indicates the task has not yet been attempted at all yet, and is not in the current in-flight batch waiting to be worked.
INQUEUE The task was selected in the current batch for delivery to an agent for its next attempt, and is loaded in the skill-queue waiting for delivery when the next gent becomes available.
WORKED The task has been worked with at least 1 attempt, was not completed on the last attempt, more attempts remain, and the record is waiting for the next attempt to become due.
DELIVERED The task has been assigned and delivered to an agent, and the agent is currently working an attempt for the task.
COMPLETED No more attempts are needed for the task. The agent either selected a Work Code indicating a final outcome for the task and no more attempts were needed, or the task reached its maximum attempts.
ABANDONED The task was assigned and delivered to an agent, but the agent never took any action to close the task (either to complete the task, or return the task for another attempt) within the default auto-abandon time window (default of 6 hours). The usual reason this state occurs is negative agent behavior, where the User/Agent UI is terminated/closed while a preview task is delivered and active on the agents UI.
REMOVED The task has been worked on at least 1 attempt, then marked as Removed from the campaign due to it either being present in a REMOVE file, or not being present in a REPLACE file. If a task has never been worked, it is completely deleted in these Remove/Replace scenarios – however if its already started being worked it is moved to this REMOVED state instead of being deleted, to preserve work history.
FAILED The task entered the Campaign via an Intake file, was well formed enough to be loaded, had an explicit SkillQueue identified on the task/record (as opposed to no SkillQueue column present and using the Default specified on the Campaign), but the specified task-level SkillQueue did not exist at the time the task was picked up by the Batcher to be put in queue.



Campaign Actions

The Campaign Status view is also how Campaign Actions can be requested for a Preview or Progressive Campaign.

The following Campaign Actions can be taken:

CAMPAIGN ACTION DESCRIPTION
Additional Info Shows further detail about the campaign, recent errors, and Skill Queues being used.
View Recent Log Activity Brings up the Log Viewer showing recent actions and activity that has occurred on the Campaign, including recent File Intake activity.
Import Allows you to perform a one-time ad-hoc import of Campaign Intake data by uploading a Preview data CSV file from your desktop.
Suspend Moves the Campaign into a suspended state, which pauses delivery of tasks to agents, and resets the most recent data loaded into the Skill Queues, pushing it back into the Campaign Dynamo tables.
Resume Reverses a Suspend action and transitions the Campaign back into an active state.
Recalculate Performs a reset and recount of all current tasks loaded in the Campaign, by task state, to recalculate all the totals shown on the Campaign Status view. This action can only be performed when a campaign is Suspended. Therefore, to Recalculate, first Suspend, then Recalculate, then Resume.
Export Exports the complete current contents of the campaign (including all customer provided fields, system fields, and selected work codes) from the campaign Dynamo table, into a CSV file that can then be processed by some external batch process. The export file is also useful for troubleshooting.

The export process does not perform any update, change, or removal of the data held in the campaign, and therefore can be performed at any time.

Upon completion of the Export, the resulting file is saved to the Preview Channel S3 bucket (for security reasons) in your account (the S3 bucket created by the Preview Channel CloudFormation – refer to Section 2).

sc-preview-{environment}-{account}

/{campaign-name}/exported/{campaignname}{unique-timestamp}.csv
Clean up Allows old or completed records to be removed from a campaign, without performing an entire campaign Purge (see action below).

Options allow tasks in either a Completed, Removed, or Failed state to be cleaned up, based on record age in days (for example, remove all Completed records older than 3 days).
Purge Removes all records from the Campaign, including anything unworked, partially worked, completed, or failed, as well as all records in-flight loaded into skill queues. Basically leaves the campaign back in the same state it was in after initial creation, but preserves any configuration setup.


For step by step instructions, also check our Preview and Progressive Dial Step by Step Guide guide.



Creating and Maintaining Preview and Progressive Campaigns

Campaigns represent an over-arching association between Intake Files containing your tasks to be worked, and the Skill Queues that disperse the Campaign’s tasks to available appropriately skilled agents.

The Campaign is where you can set the default Skill Queue to deliver preview tasks to if there is no Skill Queue indication at an individual record-level in your intake files. You can also set the default Time Zone used when Agents schedule future re-attempts for a task, if they select a specific Date and Time on the calendar.

Campaigns and Skill Queues

While the Symbee Connect Preview Channel supports dispersing/routing tasks from a single Campaign out to multiple different Skill Queues (via Skill Queue indication at an individual record level - see Queue Distribution here), configuring multiple different Campaigns to disperse tasks into the same skill queues shared by other campaigns is not supported, and will result in unexpected behavior.

Campaigns can be added and maintained within the Symbee Connect Administration Portal, using Preview and Progressive Campaigns view under Preview and Progressive Dial on the main Function menu. Options are available to Modify, Delete and Add Campaign.


Before you can add your first Campaign, you will need to run the Preview Dial CloudFormation.

Note on Progressive Behavior

Progressive (auto-dial) behavior for Preview Campaigns is optional, and is controlled by the associated Skill Queue used to deliver Preview Tasks in your Campaign to agents. Progressive behavior is off by default, and can be enabled and configured via the settings within the Preview and Progressive Specific Behavior section of the Skill Queue definition view, found under Queues and Skill Assignment.


Add New Campaign Settings

Campaign Name

The name for the Preview or Progressive Campaign. Only A-Z, a-z, 0-9, dashes and underscores. No spaces.

Campaign Description

A short description for the new Campaign.

Maintain Campaign Settings

Campaign Settings

Default Skill Queue

The default Skill Queue the Campaign will deliver preview tasks to if no Queue is specified in the uploaded campaign data. This can be overridden at an individual record level by providing a column named 'SkillQueue' in your input data.

Default Campaign Time Zone

The default Time Zone used when re-scheduling campaign records for another attempt or callback using a specific future Date and Time. This is usually the customers Time Zone. This can be overridden at an individual record level by providing a column named 'ItemTimeZone' in your input data.

Campaign Batch Size

The target number of campaign records to keep loaded "in queue". When the number of records in queue falls below this number, the queue is replenished from the next items to be worked in the Campaign data. A value significantly higher than the number of available agents can impact target scheduled retry attempt times.

Campaign Task Intake File Formatting

Preview tasks can be loaded into Campaigns either from intake files uploaded via S3, and/or dynamically in real-time via the Preview Campaign Realtime API.

For file-based intake, Preview tasks are loaded using intake files uploaded into an S3 bucket in your AWS Account. Refer to Uploading Campaign Intake Files for Processing in the Preview and Progressive Step by Step Guide for more details about file uploads and specific file naming conventions and related File Intake Modes.

Processing of Intake files can be 100% automated, new files can be pushed as often as needed, and can contain as many or few records depending on your needs. For example, new records could be uploaded transactionally or batch files every 10 minutes, hourly, daily, weekly, etc. based on your requirements.

Intake files have the following general characteristics:

  • Currently only the CSV (Comma Separated Values) file format is supported

  • Files should be created using the UTF-8 character-set

  • Per general CSV formatting, if any value contains a comma within the value, the entire value string must be wrapped/surrounded by double-quotes. For example: “12 South Street, East Side”

  • The first row of each file must contain column headings – the column heading strings in the first row are used as Field labels when presenting the data to the Agent

  • The first column (i.e. the first value in each row) is used throughout the Preview Campaign process as the unique identifier for the task, and is used in all “matching” processes related to subsequent file uploads, and reporting of results.

Note: The value of this first column value is purposely not displayed to the Agent. If this value needs to be displayed to the Agent, repeat the value in a second column using a different column heading name.

  • The order of columns is important. The column order determines the order in which each columns value is presented to the Agent. For example, column 2 is presented first, column 3 next, column 4, etc.

Beyond the above general characteristics, the following table formally defines the above and additionally calls out specific column names and/or column naming conventions that have special purposes.

CHARACTERISTIC TREATMENT
Field Presentation Order Information from each column in a List entry is presented to the agent vertically, in the same order as the columns appear in the intake file.
Presentation Labels Each piece of information (column) is presented to the Agent using the column header (on row 1) as the Label.
Unique Matching ID The value of column 1 must be unique within the Campaign – this value is used as the primary key for the item being worked and used for record matching/replacement during subsequent intake of new items into a running Campaign (refer to section 11.3).

The name of this first column can be anything and is not important. This value of this column is hidden and not presented to the user.
Name Column Other than the first Matching ID column, the Name column (named exactly) is the only other required column. There are no restrictions on what the value of this column is, but the value is used as the top banner for the preview task when presented to the agent. Refer to the “Mike Mars” label at the top of the task presented to the user in the example screen shot further below.

There can be (and usually are) other names in the file also, that are presented to the Agent in the Details section of the task as needed. The value of this explicit Name column is not displayed in the Details section of the task to the Agent – it is only used in the banner. If you need the value to be displayed in the Details section as well, repeat the value in another column using a different column label (e.g. Full Name).
Phone Numbers Any column with a name (on row 1) containing the word “phone” (case-insensitive) is treated as a phone number, with a “click to dial” icon added to it. Format of phone number values need to be clean E.164 (e.g. +17202321123, +4472612321)
Highlighting specific fields An optional column named Highlight can be defined in your List files.

If present, this column will be hidden when items are delivered to the Agent. If present, values in each row are optional.

If a row contains a value in the Highlight column, the value is expected to be a pipe-delimited list of column names indicating other values in the row that should be highlighted when presented to the user. As an example: Account Balance|Overdue Amount|Due Date.

A special value in this column of “ALL” is also supported, which results in all fields in the current row being highlighted when presented to the user.
Hiding specific fields An optional column named Hidden can be defined in your List files. This allows you to add data to your file that might be useful when processing exports or results, or for tracking and troubleshooting, but that you don't want/need to be displayed to the user.

If present, this column will be hidden when items are delivered to the Agent. If present, values in each row are optional.

If a row contains a value in the Hidden column, the value is expected to be a pipe-delimited list of column names indicating other values in the row that should be hidden and not presented to the user. As an example: TransactionId|CreateDate|EventId.
_link columns If a column name (first row value) ends with the exact string of “_link”, for example “Account Lookup_link” the value for the column is expected to be a URL.

This results in the field value being presented as a URL link, with the field label being the column name (with the “_link” removed). If the link is clicked by the user, the respective URL will be opened is a separate window outside of the Symbee Connect Agent UI.
_button columns If a column name (first row value) ends with the exact string of “_button”, for example “Account Lookup_button” the value for the column is expected to be a URL.

This results in a button being displayed instead of a normal field. The label on the button is the column name (with the “_button” removed). If the button is clicked by the user, the respective URL will be opened is a separate window outside of the Symbee Connect Agent UI.
Queue Distribution An optional column named SkillQueue can be defined in your List files.

If present, this column will be hidden when items are delivered to the Agent.

If present, the value in each row must contain a valid Skill Queue code (this is the name of the Queue) defined within your Symbee Connect Environment (see Section 6), indicating the item defined by that record should be serviced through the specified Skill Queue.

If not present, all items in the file will be serviced through the Default Skill Queue configured on the Campaign (see Section 5.2)
Time Zone An optional column named ItemTimeZone can be defined in your List files.

If present, this value indicates the Time Zone treatment that should be used for each individual record in the file. The value for this column is a valid Time Zone per the IANA Time Zone Database (TZDB). For reference, refer to the TZ database name column of the following Wikipedia page:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
If not present, all items in the file will be treated using the Default Time Zone configured on the Campaign (see Section 5.3)


The screen shot below has example uses of:

· The Name column (the Mike Mars label at the top).

· Use of the Highlight column – the value in the file is “Open Invoice Total|Account Number”.

· Two Phone fields (Home Phone and Mobile Phone) both being turned into click-to-call fields.

· A _button field, the example being named “Customer Search_button”.

· A _link field, the example being named “Customer Search_link”.

Campaign Intake Error Notifications

Uploading and processing of Campaign Intake files can be set up to be automated. Refer to the Uploading Campaign Intake Files for Processing section of the Step by Step guide for how to do this.

To cater for this, errors that occur during pickup and processing of intake files are notified to an SNS Topic - you can subscribe to this to be notified by Email or SMS if processing errors occur (see details in the step by step guide referenced above).

Notifications are currently sent for the following scenarios:

  • During initial Intake File pickup and segmentation (each intake file is automatically segmented into 5000 record chunks during the load). If there is an error during this initial step, a notification is sent.

Loading Lambda: Campaign - [Campaign Name] failed segmenting...

  • During intake processing of each file segment into the Campaign DynamoDB table. If an error occurs during any of these steps, a notification is sent.

Processing Lambda: Campaign - [Campaign Name] file segment [segment number] failed to process...

  • During normal campaign batcher processing (occurs regularly throughout the day to continuously feed campaign data into the Symbee Connect Skill Queues). If your Intake file format includes the optional special SkillQueue column (to have tasks routed into multiple different skill queues) and it finds a record referencing a Skill Queue that doesn't exist, a notification is sent.

Batch Lambda: Campaign - [Campaign Name] queue is not defined...


Additionally, the same notifications are also visible in the Log Viewer accessed via the Campaign Actions on the Campaign Status view.