The Beautiful Community | Badge of the Month | June 2026 | Experience Community
Skip to main content

The Beautiful Community | Badge of the Month | June 2026

  • June 1, 2026
  • 6 replies
  • 105 views
AlonsoC
Administrator
Forum|alt.badge.img+29

The Beautiful Game is coming to the Qualtrics Community

 

As you cheer on your team at the 2026 World Cup, we’ll be cheering you on here! For the first time in Badge of the Month history, there’s no limit to the points you can earn -- complete as many stages as you want, stack your points, and climb the leaderboard. The tournament ends on June 30.

 

How to Play

Work your way through the bracket below. Submit one stage or all five—it's up to you. Each stage has a clear task, a point value, and a community outcome.

 

Group Stage

50 pts

Task: Share a Qualtrics tip, workaround, or "I wish I knew this earlier" moment.

Ex: Hidden logic tricks, survey shortcuts, filter settings.

Outcome: Help others skip a frustrating discovery.

Round of 16

75 pts

Task: Share a real AI use case using AI tools alongside Qualtrics.

Ex: AI prompts, Copilot analysis, vibe coding projects.

Outcome: Grow the community AI playbook.

Quarterfinals

100 pts

Task: Document a streamlined workflow or API use (Before vs. After).

Ex: Auto-tickets, CRM chains, scheduled reports.

Outcome: Fill undocumented efficiency gaps.

Semifinals

150 pts

Task: Share a recap of a Qualtrics Event, Qualtrics Learn (formerly Basecamp) course, or XM thought-leadership piece.

Ex: Break down actionable pro-tips from that session that any member can implement in their own projects today.

Outcome: Transform inspiration into actionable steps. 

BTS, Shakira, & Madonna Mega-Mix

175 pts

Task: Share a "Plug-and-Play" standard or template designed to work for any team, anywhere.

Ex: "Standard Questions" to keep data consistent, Global Accessibility Checklist= rules to ensure surveys are easy to take on any device, in any language.

Outcome: Create the gold standard for how Qualtrics should be used globally.

Golden Boot

200 pts

Task: Share a reusable artifact (Widget, JS snippet, survey template, or dashboard layout).

Ex: NPS trend widget, tracker snippet, response rate template.

Outcome: Create assets that outlive the month.

 Bonus Plays 

Hat Trick +25

Contribute across 3 different product areas. Share links to get points.

Player of the Match +25

Most liked contribution of the month, awarded at month's end.

Assist +25

Leave a substantive follow-up on another member's BOM post.

Host Nation +50

First-time BOM participant? Welcome to the tournament bonus!

Away Team +50

Share any of your BOM contributions on LinkedIn.

Highlight Reel +50

Submit a video walkthrough or screen recording of your play.

Note: Community Managers have ultimate discretion over the awarding of all points to ensure the quality and relevance of contributions.

6 replies

Tom_1842
Level 8 ●●●●●●●●
Forum|alt.badge.img+28
  • Level 8 ●●●●●●●●
  • June 1, 2026

This is a neat idea! I'll start us off with something I worked on recently: a QSF that ensures respondents view entire videos before proceeding (for both uploaded MP4s and YouTube).

In a previous setup, we used a Timing question to hide the Next button for about the length of the video, but respondents would just click through as soon as it appeared. We switched to using “video ended” events to control the Next button, but needed a way to stop people from skipping ahead, especially on mobile. It was also important to allow respondents to rewind if needed.

In the updated setup:

  • For MP4s, the native controls are still there, but I added custom controls and JS that prevents forward seeking. Users can play, pause, and rewind, but can't jump ahead. The Next button only activates once the video ends.
  • For YouTube, (most) native controls are hidden and replaced with custom ones, and playback/end detection are handled through YouTube’s IFrame API. Since the native controls are removed, users can't skip ahead, and the Next button only activates once the video ends.

You can check it out using the survey link below (Sample Pre-Test, Uploaded MP4, YouTube, Sample Post-Test) and try it yourself with the attached QSF.

Example Survey


AlonsoC
Administrator
Forum|alt.badge.img+29
  • Author
  • Administrator
  • June 1, 2026

@Tom_1842, what a great workaround and helpful resources that I’m sure many will find useful! +200 points


Forum|alt.badge.img+28

Anonymised responses

Just enabling anonymised response in survey options is not enough when there are any “End of survey” element in survey flow or Quota that overwrites the survey options.

Within each “End of survey” element or Quota, the “Do NOT record any personal information and remove panel association” also needs to be enabled.

 

P.s Just curious,

1) Does earlier tasks need to be completed in order to work on the later task?

2) Does completing more stages stack the points or is it based on highest target completed?

3) Are the tasks and bonus plays repeatable?

 


vgayraud
QPN Level 7 ●●●●●●●
Forum|alt.badge.img+65
  • QPN Level 7 ●●●●●●●
  • June 2, 2026

Here’s a little utility I designed to help dashboard builders to visually identify deprecated widgets in their dashboards.

It’s a bookmarklet (javascript function saved and executed in a browser bookmark). Fully load a dashboard page (scroll down to bottom and let all widgets load: Qualtrics doesn’t load widgets until they are displayed for efficiency reasons) and then run the bookmarklet.

Video demo attached.

javascript: (function () {
var D = ['reporting.breakdowntrends', 'reporting.scatterplot', 'reporting.star', 'reporting.image', 'reporting.breakdownbar', 'reporting.simpletable', 'reporting.simplechart', 'reporting.pivottable', 'reporting.imageslideshow', 'reporting.recordgrid', 'reporting.voiceletticker', 'reporting.mapview', 'reporting.distributionstable', 'reporting.breakdowntable', 'reporting.multiplesourcetable'];

function match(n, d) {
if (n.indexOf(d) !== 0) return false;
var c = n.charAt(d.length);
return c === '' || c === '.';
}

function detect(w) {
var all = w.querySelectorAll('*');
for (var d = 0; d < D.length; d++) {
var cls = D[d].replace(/\./g, '-');
for (var k = 0; k < all.length; k++) {
var el = all[k],
at = el.attributes;
for (var a = 0; a < at.length; a++) {
if (match(at[a].name, D[d])) return D[d];
}
if (el.classList && el.classList.contains(cls)) return D[d];
}
}
return null;
}

function overlay(w, d) {
var l = d.replace('reporting.', '');
var anchor = w.querySelector('.base-widget') || w;
if (window.getComputedStyle(anchor).position === 'static') anchor.style.position = 'relative';
var o = document.createElement('div');
o.style.cssText = 'position:absolute;inset:0;z-index:9999;background:rgba(180,0,0,0.15);display:flex;align-items:center;justify-content:center;pointer-events:none;';
var b = document.createElement('div');
b.style.cssText = 'background:rgba(180,0,0,0.85);color:#fff;font-size:12px;font-weight:bold;font-family:monospace;padding:6px 10px;border-radius:4px;text-align:center;max-width:80%;word-break:break-word;';
b.textContent = l;
o.appendChild(b);
anchor.appendChild(o);
}
var counts = {},
ww = document.querySelectorAll('[id^="widget-wrapper-"]');
for (var i = 0; i < ww.length; i++) {
var m = detect(ww[i]);
if (!m) continue;
overlay(ww[i], m);
counts[m] = (counts[m] || 0) + 1;
}
setTimeout(function () {
var keys = Object.keys(counts),
total = 0;
for (var k = 0; k < keys.length; k++) total += counts[keys[k]];
if (!total) {
alert('No deprecated widgets found.');
} else {
var lines = ['Deprecated widgets found: ' + total, ''];
for (var k2 = 0; k2 < keys.length; k2++) lines.push(counts[keys[k2]] + ' x ' + keys[k2]);
alert(lines.join('\n'));
}
}, 100);
})();

 


AlonsoC
Administrator
Forum|alt.badge.img+29
  • Author
  • Administrator
  • June 2, 2026

Anonymised responses

Just enabling anonymised response in survey options is not enough when there are any “End of survey” element in survey flow or Quota that overwrites the survey options.

Within each “End of survey” element or Quota, the “Do NOT record any personal information and remove panel association” also needs to be enabled.

 

P.s Just curious,

1) Does earlier tasks need to be completed in order to work on the later task?

2) Does completing more stages stack the points or is it based on highest target completed?

3) Are the tasks and bonus plays repeatable?

 

Hi ​@Chee Heng_SZ , great questions!

  1. No, earlier tasks do not need to be completed to move onto later ones. Complete each task in the order that works best for you.
  2. Each task you complete stacks your points. Example: If you shared actionable tips from a Qualtrics Event you attended (+150) and posted it on Linkedin (+50), your total for that contribution would be 200.
  3. Yes, so long as each contribution is unique!

AlonsoC
Administrator
Forum|alt.badge.img+29
  • Author
  • Administrator
  • June 2, 2026

Here’s a little utility I designed to help dashboard builders to visually identify deprecated widgets in their dashboards.

It’s a bookmarklet (javascript function saved and executed in a browser bookmark). Fully load a dashboard page (scroll down to bottom and let all widgets load: Qualtrics doesn’t load widgets until they are displayed for efficiency reasons) and then run the bookmarklet.

Video demo attached.

javascript: (function () {
var D = ['reporting.breakdowntrends', 'reporting.scatterplot', 'reporting.star', 'reporting.image', 'reporting.breakdownbar', 'reporting.simpletable', 'reporting.simplechart', 'reporting.pivottable', 'reporting.imageslideshow', 'reporting.recordgrid', 'reporting.voiceletticker', 'reporting.mapview', 'reporting.distributionstable', 'reporting.breakdowntable', 'reporting.multiplesourcetable'];

function match(n, d) {
if (n.indexOf(d) !== 0) return false;
var c = n.charAt(d.length);
return c === '' || c === '.';
}

function detect(w) {
var all = w.querySelectorAll('*');
for (var d = 0; d < D.length; d++) {
var cls = D[d].replace(/\./g, '-');
for (var k = 0; k < all.length; k++) {
var el = all[k],
at = el.attributes;
for (var a = 0; a < at.length; a++) {
if (match(at[a].name, D[d])) return D[d];
}
if (el.classList && el.classList.contains(cls)) return D[d];
}
}
return null;
}

function overlay(w, d) {
var l = d.replace('reporting.', '');
var anchor = w.querySelector('.base-widget') || w;
if (window.getComputedStyle(anchor).position === 'static') anchor.style.position = 'relative';
var o = document.createElement('div');
o.style.cssText = 'position:absolute;inset:0;z-index:9999;background:rgba(180,0,0,0.15);display:flex;align-items:center;justify-content:center;pointer-events:none;';
var b = document.createElement('div');
b.style.cssText = 'background:rgba(180,0,0,0.85);color:#fff;font-size:12px;font-weight:bold;font-family:monospace;padding:6px 10px;border-radius:4px;text-align:center;max-width:80%;word-break:break-word;';
b.textContent = l;
o.appendChild(b);
anchor.appendChild(o);
}
var counts = {},
ww = document.querySelectorAll('[id^="widget-wrapper-"]');
for (var i = 0; i < ww.length; i++) {
var m = detect(ww[i]);
if (!m) continue;
overlay(ww[i], m);
counts[m] = (counts[m] || 0) + 1;
}
setTimeout(function () {
var keys = Object.keys(counts),
total = 0;
for (var k = 0; k < keys.length; k++) total += counts[keys[k]];
if (!total) {
alert('No deprecated widgets found.');
} else {
var lines = ['Deprecated widgets found: ' + total, ''];
for (var k2 = 0; k2 < keys.length; k2++) lines.push(counts[keys[k2]] + ' x ' + keys[k2]);
alert(lines.join('\n'));
}
}, 100);
})();

 

Great artifact (200) and video walkthrough (50), ​@vgayraud!