Looking for advice on retrieving dynamic participant attributes established during a Web Messaging session within an Architect Inbound Message flow definition.
Context:
We are deploying a standardized integration pattern using the Genesys Cloud Terraform provider. The objective is to pass customer-specific metadata from the Web Messaging widget directly into the Architect flow for routing logic. We utilize the genesys_cloud_routing_flow resource to define the inbound message handling.
The Web Messaging configuration is managed via genesys_cloud_messaging_app. We set custom attributes on the participant level using the JavaScript SDK before the conversation is handed off to the platform. For example:
GenesysCloudMessaging.setParticipantAttribute('tier', 'gold');
In the Architect flow, we attempt to reference this data using standard attribute expressions. The current Terraform configuration for the decision node looks like this:
resource "genesys_cloud_routing_flow" "this" {
name = "Inbound Web Messaging Flow"
type = "inbound-message"
# ... other config ...
actions {
type = "decision"
label = "Check Tier"
conditions {
type = "expression"
expression = "${participant.attributes.tier} equals 'gold'"
true_action_id = "gold_action_id"
false_action_id = "standard_action_id"
}
}
}
Question:
When we apply this module, the flow deploys without error. However, during runtime, the expression evaluates to null or undefined, causing the flow to default to the false branch.
- Is the attribute path
${participant.attributes.tier}correct for Inbound Message flows, or does Web Messaging require a different namespace (e.g.,${interaction.attributes.tier})? - Do we need to explicitly map these attributes using a Data Action (like
genesys_cloud_routing_data_action) before they are accessible in the flow logic, or should they be available immediately upon interaction creation? - Are there specific OAuth scopes or permissions required on the flow definition to access participant-level data set via the external widget?
Any insights on the correct expression syntax or required configuration steps would be appreciated.