Added voiceEnabled flag for Brand Concierge conversation event routing#1451
Added voiceEnabled flag for Brand Concierge conversation event routing#1451MasonPinZ wants to merge 6 commits intoadobe:mainfrom
Conversation
🦋 Changeset detectedLatest commit: 387b5b6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@MasonPinZ Do you need this option added to the Web SDK Tags extension? Also, please run |
@carterworks thank you very much for reviewing my PR and for the comments. I've added a changeset. Please kindly check it.
Thank you for bringing this up. To my understanding, adding this to Tags extension is mainly for exposing it on the Tags admin UI and have it automatically configured via the UI. Adobe customers can set the newly added option in the hosting page explicitly, even without us adding it to the Tags extension. Is that correct? If so, I'll prefer to have the new option added to alloy and released first, as this is with a priority. I'll confirm the priority and add it to the Tags extension later. Does it sound good? |
|
@carterworks I revised this PR per team internal code review suggestions. Can you please check it again? Also please confirm my understanding of the need for Tags extension change in my previous comment. Thank you! |
|
@MasonPinZ If we add it to the Tags UI (see the screenshot), then customers that deploy the Web SDK via Tags will be able to configure this setting in the UI. Inclusion in the Tags UI does not prohibit anyone from configuring the library with JavaScript, or anyone that does not use Adobe Tags. |
|
@carterworks thank you very much for answering my questions! I understood the effect of adding the option to Tags extension now. Then yes, I'd like to add it to the Tags UI. Please let me know what I need to do to achieve that. Do I need to open another PR to some repo? |
|
Hi @carterworks , I saw there's a SonarQube check error in the PR, what does that mean? Do I need to handle it in some way? |
@MasonPinZ I have the code 99% percent done already (did it to make the screenshot). Just tell me what you and your team want the option text to be. The "Enable voice responses" and "Enable voice responses for Adobe Brand Concierge conversations" is just placeholder text.
Don't worry about it. The SonarQube action is unstable. |
ninaceban
left a comment
There was a problem hiding this comment.
Looks good to me. Thank you!
Please extract the paths as constants: BRAND_CONCIERGE_PATH and VOICE_BRAND_CONCIERGE_PATH. We have a repository for demo pages, please add a page in brand-concierge/concierge-demo repo a demo page with valid configurations.
|
Thank you very much, @ninaceban . Can you please approve the Tags admin UI strings too or suggest new ones? |
|
|
||
| export default objectOf({ | ||
| conversation: objectOf({ | ||
| voiceEnabled: boolean().default(false), |
There was a problem hiding this comment.
Are you sure you want this on the extension configuration? It seems like it would be better as an option to the sendConversationEvent command.
There was a problem hiding this comment.
Hi @jonsnyder , our main goal is to use this flag to drive the conversation event routing from client app side. It's supposed to be set:
- primarily on tenant level
- optionally on hosting app instance level (i.e. per end user, given that the hosting app surfaces it) before conversation starts
There's no use cases where some events sent with voice enabled and some others sent without it enabled in the same conversation.
So IMO setting it on the extension configuration is the simplest way technical wise. Can you please let me know your thinking behind your suggestion? And also the design philosophy (when to use/not to use it) of extension configurations maybe? Thank you!
CC: @ninaceban
|
Hi @carterworks , please find below my suggestions to the UI strings with some forward compatibility consideration:
If @ninaceban has no other suggestions, let's use the above please. |
|
@MasonPinZ and @ninaceban Please review adobe/reactor-extension-alloy#601 |

Description
PR Summary
This PR adds voice-aware routing for Brand Concierge conversation requests via a boolean
conversation.voiceEnabledconfig.Changes included
Updated Brand Concierge config validation:
conversation.voiceEnabledasbooleanwith defaultfalse.Added SDK-side endpoint routing logic in conversation request construction:
voiceEnabled: trueroutes to/brand-concierge-voicevoiceEnabled: falseroutes to/brand-conciergeWired
voiceEnabledinto the send-conversation flow:Updated unit tests for the new behavior:
voiceEnabledvalidation, defaults, and voice/non-voice routing.Why
Voice-enabled conversations in Brand Concierge require different routing paths from the hosting app.
Impact
conversation: { voiceEnabled: true }/brand-conciergewhenvoiceEnabledis not set or isfalse.Related Issue
BRANDCON-3982
Motivation and Context
Screenshots (if appropriate):
Checklist:
pnpm changeset) or it is not necessary because this PR is not consumer-facing.