Flow Controls
Overview
Symbee Connect Flow Controls are a set of generic tools to assist you when designing and implementing customer experience in Amazon Connect. They allow you to create settings and switches that can be maintained by Business Operations users without the need for those business users to have to access the AWS Console, update DynamoDB tables, update Lambda Configuration settings, and make on-the-fly changes to Amazon Connect Contact Flows on a daily basis.
All the core concepts of Flow Controls could be implemented using other technologies or AWS services such as an RDS database, DynamoDB tables, Lambda code or configuration file changes, or doing real-time updates to the Amazon Connect Contact Flows. However taking those approaches requires either that Business Users are comfortable with low-level AWS services and concepts and has provisioned access to the AWS Console, or alternatively significant custom development to provide non-technical user-interfaces over those technologies, including basic things like User Access control, permissions, and UI screens.
Symbee Connect Flow Controls are provided to address the following challenges:
-
Provide a place to hold key configuration settings used in your Amazon Connect Customer Experience, and when those settings are changed, the Customer Experience changes accordingly, based on where you inject the usage of the Flow Controls in your Contact Flows and/or custom Lambda implementations
-
A no-code solution that makes it easy to design, configure, and change the set up of your Customer Experience settings, without the need to do (and therefore also maintain) one-off custom development
-
A user- interface your Business Operations personnel can use to make controlled changes to your Customer Experience settings on a day-to-day basis, without having to be comfortable with lower-level technology concepts
-
Limit the number of personnel that require AWS Console access
-
Avoid either Contact Flow sprawl or large Contact flows that have extensive branches that become hard to maintain, when cater for concepts such as multi-language customer experiences, or differing Client Branding.
Two types of Flow Controls are provided:
- Flow Control Points: Flexible Variables you can use in your Amazon Connect Contact Flows to dynamically change flow behavior without making Contact Flow updates, such as on/off toggle switches, updateable Prompt Text for emergency or marketing messages, or settings to control things like call distribution percentages. Flow Control Points are accessed by name in your Customer Experience flows
- Flow Control Tables: A more extensive way to set up your Flexible Variables, having them organized into a table-like structure (think spreadsheet). Flow Control Tables are accessed by row, with each row having up to 3 keys. As a simple example, if you have an inbound call experience that needs to differ (for branding as an example) based in the incoming Dialed Number, you could configure a Flow Table with rows keyed by Dialed number, containing differing greeting prompts for each row.
Flow Control Points
Flow Control Points are flexible Variables you can use in your Amazon Connect Contact Flows to dynamically change flow behavior without making Contact Flow updates.
As simple examples, you could create InclementWeather or DisasterRouting controls with true/false values and have your Contact Flow behave differently based on current control values. You can then provide a separate dial-in Contact Flow to allow Managers to call in, confirm using the Authorization PIN and select options to switch the current values, dynamically changing flow behavior immediately, without needing to make Contact Flow updates.
A Contact Flow Lambda function is provided with an operation for querying current Flow Controls values. An update operation is also provided, along with an Authorization PIN query operation, for use in a Manager flow.
Check out the Step by Step Guide for setting up Flow Control Points.
Configuring Flow Control Points
Flow Control Points are configured within the Symbee Connect Administration Portal, with separation by Symbee Connect Environment. From the main Function menu in the top navigation bar, select Flow Controls located under the Contact Center Configuration section. From the Flow Controls home page, select Flow Control Points from the left navigation bar (this is the default).
Use the Add, Modify, and Delete action buttons to create and maintain the setup of your Control Points.
Each Control Point has a Name, a Value Type, and a current value:
Flow Control Name
The Flow Control Point Name. Use this name to reference the Flow Control Point in your Amazon Connect Contact Flows (via Lambda Invoke), to retrieve the current Flow Control Point value.
Value Type
The type of value the Flow Control Point will hold. This type is used for validation purposes when the Flow Point value is updated, and allows you to restrict what values can be set. Select from one of the following value types:
- String - can be further restricted with a minimum and maximum length
- Number - a simple numeric number - unbounded
- Range - number bounded with a minimum and maximum value
- Picklist - presented as a dropdown picklist with a predefined set of String values
- Picklist Optional - the same as Picklist, but allows a blank/no value to also be chosen
- Picklist Suggested - presented as a dropdown picklist with of predefined values, but allows the user to also enter a customer value
- Prompt Text - the same as String but designed to allow
<ssml>
(Speech Synthesis Markup Language) content if needed, intended to hold prompt text used in Amazon Connect Contact Flow Play Prompt blocks - E.164 Phone Number - validates that input values start with a '+' and contain only numbers, with the E.164 standard minimum and maximum length. For example: +15552123211
- E.164 Country Code - similar to E.164 Phone Number except allows shorter values only declaring the country-code. For example: +1, +61, +44, +351, etc.
Flow Control Value
The current Flow Control Point value. This can only be input once the Flow Control Point has been created. The allowed values are validated based on the configured Value Type for the Flow Control Point (see above). This is the value you can either use, branch on, or check for in you Amazon Connect Contact Flows to dynamically change the flow behavior.
In addition to above, an optional special Authorization PIN can be configured which can be used for security purposes if you are creating a Contact Flow that will allow Operations staff to call in via phone and change some of the Flow Control Points values (for example, to allow enabling Disaster Routing via a phone call, rather than having to log into the AWS / Amazon Connect Console).
Authorization PIN
An optional value you can use to ask a caller to enter, before they are allowed to "update" a Flow Control Point from within a Contact Flow.
Flow Control Tables
Flow Control Tables expand on the Flow Control Point concept, but instead allow you to organize your Business Operational settings used in your Customer Experience, into a table-like structure (think spreadsheet).
Flow Control Tables are customizable data lookup tables intended for use in Amazon Connect Contact Flows to simplify Contact Flow development. An example might be, creating a Brand or Client table, with a key of a Dialed Number - then based on an incoming call's Dialed Number, perform a table lookup to return the values for the row associated with the Dialed Number (e.g. Client-specific greeting prompt text, an associated Client Code, an associated Branding Code, etc.).
Configuration data in Flow Control Tables can be accessed from Contact Flows using the same pre-written Symbee Connect Lambda used for accessing Flow Control Points, installed by the FlowPoint CloudFormation.
Within your Amazon Connect Contact Flows (or via custom developed Lambdas), the settings held in your Flow Control Tables are accessed by row, with each row having up to 3 keys.
Flow Control Tables have the following general concepts:
- Each Flow Control Table has a Table Name - you provide this Table Name as part of the request in a Contact Flow (or Lambda) to retrieve the configured values at runtime.
- Each Table then has key values (a minimum 1, up to 3) that uniquely identify each row in the table. The combination of key values must be unique within each of your table rows. The key values, in conjunction with the table name are how you retrieve your configured table row attribute values at runtime.
- Each table then has attributes. The attributes are the configuration settings returned at runtime when a specific table and row are queried. These are the values you use at runtime to drive your Customer Experience. Think of each individual table attribute like its own Flow Control Point (see previous section). However the organization of these values is row based, with the values being retrieved all at the same time, based on a specified table name and set of row keys.
-
Validation of the input/allowed values of both table keys and table attributes is controlled by predefining values types using the separate Flow Table Attributes screen. Before declaring a table, you need to define Table Attributes (i.e value types) that describe the key and attribute values you will be holding in your table.
-
A Flow Control consists of its table definition, and then its table rows (the table content)
Configuring Flow Table Attribute Definitions
Flow Table Attributes are used to describe and validate the values of both the key and table attribute values used in your Flow Control Tables. A Flow Table Attribute definition defines the validation rules used when data is being added to you Flow Control Tables.
Flow Table Attribute definitions can be re-used multiple times in the same table definition, and can be used in multiple different table definitions. As each table key or attribute is configured on a table, you provide a label for the key or attribute, and then the value type (you select the Flow Table Attribute type).
Flow Table Attribute definitions are configured within the Symbee Connect Administration Portal, with separation by Symbee Connect Environment. From the main Function menu in the top navigation bar, select Flow Controls located under the Contact Center Configuration section. From the Flow Controls home page, select Flow Table Attributes from the left navigation bar.
Use the Add, Modify, and Delete action buttons to create and maintain your reusable Table Attribute definitions.
Each Flow Table Attribute has a Name, and a Value Type:
Attribute Name
The Name of the Attribute definition. A short name for the Flow Table Attribute used in the pick lists on the Flow Table Definition screens. Use upper and lowercase characters, numbers, dashes and underscores only.
Value Type
The type of value the Flow Table key or Attribute will hold. This type is used for validation purposes when rows in a Flow Table are added and updated, and allows you to restrict what values can be set. Select from one of the following value types:
- String - can be further restricted with a minimum and maximum length
- Number - a simple numeric number - unbounded
- Range - number bounded with a minimum and maximum value
- Picklist - presented as a dropdown picklist with a predefined set of String values
- Picklist Optional - the same as Picklist, but allows a blank/no value to also be chosen
- Picklist Suggested - presented as a dropdown picklist with of predefined values, but allows the user to also enter a customer value
- Prompt Text - the same as String but designed to allow
<ssml>
(Speech Synthesis Markup Language) content if needed, intended to hold prompt text used in Amazon Connect Contact Flow Play Prompt blocks - E.164 Phone Number - validates that input values start with a '+' and contain only numbers, with the E.164 standard minimum and maximum length. For example: +15552123211
- E.164 Country Code - similar to E.164 Phone Number except allows shorter values only declaring the country-code. For example: +1, +61, +44, +351, etc.
Creating and Configuring Flow Control Tables - your Table Definitions
Once you have created your Flow Table Attribute definitions, you can create and configure your actual Flow Tables. Then with the table defined, you populate the table rows using the separate Flow Table Content screen.
Flow Table definitions are configured within the Symbee Connect Administration Portal, with separation by Symbee Connect Environment. From the main Function menu in the top navigation bar, select Flow Controls located under the Contact Center Configuration section. From the Flow Controls home page, select Flow Tables from the left navigation bar.
Use the Add, Modify, and Delete action buttons to create and maintain your Flow Table definitions.
Each Table has a Table Name, a Description, and at least one (and up to 3) Table Keys.
Table Name
A short name for the Flow Table. This is the table name used in Contact Flows when performing a table lookup. Use upper and lowercase characters, numbers, dashes and underscores only.
The Flow Table Name can be changed after creation, and this is intentional. This comes in useful if you need to make a copy of your table data, or if you want to stage Flow Table changes to a live system. Use table renaming in conjunction with Table Definition Importing and Exporting, and Table Content Importing and Exporting features.
For example, you can export the definition of a table named ExampleTable, and import it giving a new table name of ExampleTableNew. You can then export the content from ExampleTable, and import that content into ExampleTableNew. Then to to avoid as much downtime as possible, you can rename ExampleTable to ExampleTableOld, and rename ExampleTableNew as ExampleTable.
Table Description
A description of your Flow Table, for your documentation purposes only.
Table Keys - Key 1, Key 2, and Key 3
Each Flow Table must have at least 1 Key, and can optionally have up to 3 keys.
Each key has defined Key Value Type. Select a Value Type from one of those listed in the drop-down. The values in the drop-down are the Flow Table Attribute definitions you have defined. If there are no entries in the drop-down, see the previous section and set up your Flow Table Attribute definitions first.
Each key also has a Key Label. This is the name of the key field when presented to the user during population of your flow table content.
Exporting and Importing Flow Control Table Definitions
Use the Export Definition and Import Definition action buttons on the Flow Table Definitions screen to export and import.
Exporting a Table Definition downloads the definition of the Table including its name, description, keys, and table attributes. The exported file is formatted in JSON.
Importing a Table Definition requires a JSON Table Definition file format (previously created using the Export action). When importing a Table Definition, you select the JSON definition file to import, and provide a name for the new Flow Table being created/imported.
Note
Table Definitions can be exported from one Symbee Connect Company or Environment to another. However, if importing into a different environment, please note that all Flow Table Attribute definitions used by the table definition being imported need to already be pre-created in the new environment first, named EXACTLY as they were defined in the environment you exported the table definition from.
Populating your Flow Control Tables with Content
Once your Flow Control tables are defined, you populate and maintain the rows of the tables via the Flow Table Content screen within the Symbee Connect Administration Portal.
From the main Function menu in the top navigation bar, select Flow Controls located under the Contact Center Configuration section. From the Flow Controls home page, select Flow Table Content from the left navigation bar.
Use the Table selector at the top of the Flow Table Content screen to select which Flow Control Table data to maintain. Once a table is selected, the table's content is displayed.
The content (table rows) can be sorted by any column. Use the Search Filter to quickly filter the row view to only the rows you are interested in.
Use the Add, Modify, and Delete action buttons to create update and remove table rows. You can also select an existing row and save that row using new keys, using the Duplicate Row action button.
Exporting and Importing Flow Control Table Definitions
Use the Export Table and Import Rows action buttons on the Flow Table Content screen to bulk export and import the contents of your Flow tables.
Exporting table content downloads the rows of the table, including column headings. The exported file is formatted in as a UTF-8 Comma Separated Values (CSV) file.
Importing table content requires a UTF-8 formatted Comma Separated Values (CSV) file, that includes column headers named exactly as they are in the Flow Table Definition.
Using your Flow Table Data in Contact Flows
To perform a lookup of your Flow Control Table in Contact Flows and use the resulting values, you use the Invoke AWS Lambda function Contact Flow block, and use the same FlowPoints Lambda that is installed with the Flow Control Point CloudFormation downloaded from the Feature Integrations (CloudFormations) in the Company Environment Configuration section of the Symbee Connect Administration Portal.
See here for instructions on downloading and running the Flow Points CloudFormation, and enabling the resulting Lambda for use in Amazon Connect Contact Flows.
The above linked step-by-step guide walks through configuring an example Flow Control Point and accessing it in the Contact Flow using the Invoke AWS Lambda function block. The steps are similar for accessing Flow Control Table data, except you use the getflowtablerow Lambda Operation. The inputs and outputs of this Lambda operation are described below.
Operation: getflowtablerow
In your Invoke AWS Lambda function block, in the Function ARN drop-down, select the Flow Control Lambda.
Add the first Function Input Parameter, setting Use Text with a Destination Key of Operation and a Value of getFlowTableRow
Then add two (and up to four) additional input parameters with names and values per below:
Parameter | Description |
---|---|
FlowPointTableName | The name of the Flow Control Table to retrieve row data from |
FlowPointValue1 | The value of the first Flow Table Key |
FlowPointValue2 | (Optional, required if the specified Flow Table has 2 or 3 configured keys). The value of the second Flow Table Key. |
FlowPointValue3 | (Optional, required if the specified Flow Table has 3 configured keys). The value of the third Flow Table Key. |
The getflowtablerow Operation returns the following response attributes:
Parameter | Description |
---|---|
IsSuccessful | true indicates the Flow Control Table name was valid false indicates an invalid Flow Control Table name, or a retrieval failure |
RowCount | Only present if IsSuccessful = true. Indicates the number of rows returned (will be 0 or 1). |
Flow Table Attribute Name | If IsSuccessful = true, the value of the first Flow Control Table attribute configured for the row matching the keys provided as input parameters |
... | Per above, the name and value of every additional Flow Control Table attribute configured for the row matching the keys is returned in the one request. |