Skip to main content

Operational Parameters

Operational Parameters allow contact centres to parameterise and store configurations for complex flows in Amazon Connect. This is handled by setting specific key/value pairs and data types via Admin. These are separate from the actual call flows, which gives you the opportunity to make your contact flows data-driven, more efficient and easier to manage.

These parameters can then be called from within Amazon Connect Contact Flows via a Lambda call.

Parameters can be configured on the Contact Centre > Customise > Operations > Operational Parameters page.

The operational parameters admin page below will show configuration about integrating Amazon Connect with our Lambda when one or more parameters are created. If no parameters are created, this information will be viewable in the Create Parameter wizard.

info

When using any of the below configuration fields, if any used are incorrect, or your parameter doesn't exist, your contact flow will receive an error response.

Adding a New Parameter

To add a new parameters click the New Parameter button on the operational parameters page above. If you have not added any other parameters, this button will be in the middle of the page, otherwise, the top right.

  • Provide a name, description (optional) and type for your parameter and click Save.
  • The following types are available:
    • Text - simple string
    • Number - number
    • Queue - stores the Amazon Connect Queue ARN
    • True|False - simple boolean, returned as "true" or "false" back to connect
    • Phone Number - an E164 phone number
    • Custom - custom enumerations can be created, allowing for predefined values. For example, AvalancheAlertLevel=OFF|1|2|3
    • Table - a tabular structure, allowing for efficient storage and management of data. Tables can use all other data types, including Custom
info

Parameter name must be unique and can only contain letters, numbers and – _ +

  • Your new parameter will appear in the parameters list on the operational parameters list page.

  • Use the 3 dot action menu to edit, delete or disable/enable any parameters

Custom Types

Custom data types can be created within the 'Create A new Parameter' modal. Within the modal, select the gear icon next to the 'Type' drop down.

This will open up the 'Manage Custom Types' modal. Select 'Add a Custom Type'.

Enter the Name, Description and values. Use Control+Enter if on Microsoft Windows, to terminate values.

Operational Parameter Tables

CX supports Tables as Operational Parameter Types, allowing for data table lookups. A typical use-case for this is to build out data-driven Contact Flows, that take configuration from Operational Parameter Tables, indexed off the dialled number.

For example, welcome prompts, IVR behaviours, recording levels can be configured on a per-number based, and updated without modifying Contact Flows.

To create a table, select 'Create a new Parameter', then select type 'Table. Enter up to two fields to define you data schema. Note, you can also create Custom Types.

Once all fields have been entered, select 'Save'. To start entering data, select 'Edit Table Values' from the context menu.

Enter rows as needed, then select 'Save' to save.

Configuring Amazon Connect Contact Flows

Invoke An AWS Lambda Function Node

To retrieve Operational Values in a Contact Flow, add a Lambda node to your Contact Flow. This can be either done manually, or use the 'Copy' button within the 'Retrieving Parameters - Configuration' section of Admin, whereby you can paste directly into the Contact Flow page.

Manual Configuration Steps:

  • Copy the ARN from the configuration above in the ARN dropdown.
  • Add a Function Input Parameter, setting the Destination Key to contactCentreId, with the Value being your contact centre ID, which can be found on your contact centre summary page.
  • Add a second Input Parameter, setting the Destination Key to parameterNames and Value being an array with the name(s) of your parameter(s) you want to retrieve the value of. Note - you can request up to 10 at a time.
  • Set Timeout to 8 seconds.
  • For Response validation, choose JSON.

If a parameter type includes a Table, then also:

  • Add a Function Input Parameter, setting the Destination Key to parameterOptions, with a value format of {<table_name_index>: { "rowId": <value> } }

Worked Example

Taking an example of two parameter being retrieved (MyTable and MyString), then the following configuration should be used:

Lambda Parameter NameLambda Parameter ValueScreenshotExplanation
contactCentreIdsampleCCscreenshot
This is the name of the CX instance
parameterNames["MyTable", "MyString"]screenshot
Array of parameters, in this case, two parameters, firstly a table MyTable and a string parameter MyString
parameterOptions{0: { "rowId": "1" } }screenshot
Following the format of {<table_name_index>: { "rowId": <value> } }, the <table_name_index> is 0, as this is first element in array of parameterNames. The <value> is the key for the table, in this case we are passing 1, i.e. requesting table with index 1.

JSON Response

The JSON response you will get back when querying parameter values will be in the following format:

{
"statusCode": 200,
"parameters": {
"0": {
"name": "{PARAM_NAME}",
"statusCode": 200,
"value": "{PARAM_VALUE}"
},
"1": {
"name": "{PARAM_2_NAME}",
"statusCode": 200,
"value": {
"id":{id},
"{tablefield1}":"{PARAM_value}",
"{tablefield2}":"{PARAM_value}",
"{tablefield3}":"{PARAM_value}"
}
}
}
}

The numbered keys inside the parameters object reflect the indexes of the parameter names you requested. If a parameter is of type Table, then per above example, the 'value' will consist of and object containing the returned row.

Contact Flow References

  • To check overall status of the return, check $.External.parameters.statusCode
  • To check for specific parameter return status, check $.External.parameters.0.statusCode. Note - the number references the place in the input array of parameters, 0 being the first.
  • To access specific parameter values from Connect Contact Flow, using the above as an example, use $.External.parameters.0.value
  • Per standard Contact Flow design, this JSONPath naming can be used in any Amazon Connect Contact Flow block that supports this. See here for more information: https://docs.aws.amazon.com/connect/latest/adminguide/connect-attrib-list.html

Implementation Guidance

Some further notes and guidance around design of Operational Parameters:

  • Use tables where tabular information is required, such as storing a table mapping of Inbound Phone numbers to configuration
  • Use standalone Parameters where standalone key-value-pair type data is more relevant
  • Where possible, avoid storing long JSON or pipe-delimited values as text. It is easier to store multiple keys values pairs, as up to 10 can be retrieved in one request.
  • You can (and should) use dynamic key names. For example, if you want to lookup a key name that relates to the current Dialled Number, or Customer ANI/CLI, then you can achieve this by passing in a contact attribute in the 'parametersNames' parameter - e.g. ["$.FlowAttributes.DNISLookupKey"]
  • In this example, a flow attribute 'DNISLookupKey' is set, with a value of $.FlowAttributes.OPPrefix$.SystemEndpoint.Address. This concatenates $.SystemEndpoint.Address with another pre-defined attributes 'OPPrefix', with a value such as 'DNIS_Line_'