Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Filter Virtual Agent Topics Using Variables Values

Daniel Sampaio
Tera Expert

Hello,

I have a challenge where I need to gather information about the client's preference—let's say option A, B, or C.
Depending on their choice, a different set of topics should be available: if they choose A, one set of topics; if B, another; and the same for C.

I tried using Live Agent context variables, but when I filter topics by "Who can access this topic" → "Context" and select the variable, it always behaves as if the value is empty.
However, if I remove this condition, I can access the topic and the value is available.

Has anyone encountered this issue before and could give me a hand?

Thanks, everyone! 🙂

1 ACCEPTED SOLUTION

Daniel Sampaio
Tera Expert

Already manage to get a solution.
I've already configured a context variable and a pre-chat survey so I already had the value being set and the interaction record.
On the "who can access this topic" choose script and add something like this:

(function execute() {

gs.warn("Value :"+vaContext.*variable you created*);


var department = 'Customer';

var user_department = '';

try { // GlideRecord will not work for Topic Picker (show me everything)
// I stored the input user department to Context Variable user_department at Pre-chat survey
user_department = vaVars.*variable you created*;
} catch (ex) { // Topic Evaluator cannot access vaVars, so do GlideRecord for the Context Variable
var interaction_id = vaSystem.getInteractionSysId();
var gr = new GlideRecord('interaction');
gr.get(interaction_id);
user_department = gr.context.u_*variable you created*;
}

if (user_department == department) {
return true;
}
else {
return false;
}
 
})()

View solution in original post

1 REPLY 1

Daniel Sampaio
Tera Expert

Already manage to get a solution.
I've already configured a context variable and a pre-chat survey so I already had the value being set and the interaction record.
On the "who can access this topic" choose script and add something like this:

(function execute() {

gs.warn("Value :"+vaContext.*variable you created*);


var department = 'Customer';

var user_department = '';

try { // GlideRecord will not work for Topic Picker (show me everything)
// I stored the input user department to Context Variable user_department at Pre-chat survey
user_department = vaVars.*variable you created*;
} catch (ex) { // Topic Evaluator cannot access vaVars, so do GlideRecord for the Context Variable
var interaction_id = vaSystem.getInteractionSysId();
var gr = new GlideRecord('interaction');
gr.get(interaction_id);
user_department = gr.context.u_*variable you created*;
}

if (user_department == department) {
return true;
}
else {
return false;
}
 
})()