Queries related to smart assessment
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi,
I have requirement. I am creating 2 questions in GRC attestation
1. Control Design (Choice field of 1, 2,3)
2. Control Performance(Choice field of 1, 2,3)
There is one more field "Control Score". Now Control Score will populate response by the condition - multiplication of Choice field 1 (Control Design)* Choice field 2(Control Performance)
Is this calculation possible in smart assessment?
If possible, how we can do this
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hi Promita,
Good question — this is a common requirement when working with Smart Assessments in GRC.
Short answer: Yes, it is possible, but not directly using out-of-box question configuration. You’ll need a bit of scripting or post-processing.
1. OOB Smart Assessment limitation
Smart Assessments don’t natively support:
- Arithmetic operations (like multiplication) between answers
- Cross-question calculations in real time
So you won’t be able to directly configure:Control Score = Control Design × Control Performance
purely using question setup.
2. Recommended approach → Use Business Rule (best option)
Once the assessment is submitted, you can calculate the score using a Business Rule.
Steps:
- Table:
asmt_assessment_instance_questionorasmt_assessment_instance - Trigger: After Insert / Update
- Logic:
- Fetch both question responses
- Multiply values
- Store in “Control Score” field
Example logic:
var design = '';
var performance = '';
var gr = new GlideRecord('asmt_assessment_instance_question');
gr.addQuery('instance', current.instance);
gr.query();
while (gr.next()) {
if (gr.question.name == 'Control Design') {
design = parseInt(gr.value);
}
if (gr.question.name == 'Control Performance') {
performance = parseInt(gr.value);
}
}
if (design && performance) {
var score = design * performance;
var inst = new GlideRecord('asmt_assessment_instance');
if (inst.get(current.instance)) {
inst.u_control_score = score;
inst.update();
}
}
3. Alternative → Use Script Include + Flow Designer
If you're triggering via Flow:
- Get assessment responses
- Perform multiplication in Flow (Script step)
- Update Control Score
4. If you are using Indicator / Risk Scoring (advanced)
In some GRC setups, you could:
- Map responses to numeric values
- Use scoring logic (but multiplication specifically still needs scripting)
5. Important checks
- Ensure choice values are numeric (1,2,3)
- Use value, not label
- Handle null/empty responses
