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.
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
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 KeytocontactCentreId, with theValuebeing your contact centre ID, which can be found on your contact centre summary page. - Add a second Input Parameter, setting the
Destination KeytoparameterNamesandValuebeing 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
Timeoutto8 seconds. - For
Response validation, chooseJSON.
If a parameter type includes a Table, then also:
- Add a Function Input Parameter, setting the
Destination KeytoparameterOptions, 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 Name | Lambda Parameter Value | Screenshot | Explanation |
|---|---|---|---|
| contactCentreId | sampleCC | ![]() | This is the name of the CX instance |
| parameterNames | ["MyTable", "MyString"] | ![]() | Array of parameters, in this case, two parameters, firstly a table MyTable and a string parameter MyString |
| parameterOptions | {0: { "rowId": "1" } } | ![]() | 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_'


