Engagement Dashboards
Building a reporting dashboard
For persistent charts and deeper analysis, build a dashboard using ChartHop's dashboard builder. The core function for pulling engagement survey data is findResponsesByAssessment, which scopes results to a specific survey cycle:
You can group by demographic:
Charts using answerValue need to be created and saved through the ChartHop UI using Advanced Query Mode — they can't be saved via the API due to a current CQL validation limitation. See the Ask ChartHop section below for how to use AI to scaffold the dashboard for you.
eNPS (Employee Net Promoter Score)
eNPS is not a separate question type. It's a standard numeric scale question with 11 options (0–10). ChartHop automatically applies eNPS scoring logic and displays an NPS indicator on any numeric-scale chart with 11 options.
Scoring: Promoters = 9–10, Passives = 7–8, Detractors = 0–6. Formula: (Promoters − Detractors) / Total respondents.
Add a numeric scale question to your form with 11 options (0–10). A common prompt: "On a scale of 0–10, how likely are you to recommend [Company] as a place to work?"
ChartHop's CQL includes a built-in .nps() method for calculating eNPS in dashboard charts:
Scoped to a specific cycle and grouped by demographic:
You can also run NPS scoring on any individual question scored 0–10, not just your eNPS question. Use findAnswers with the specific question name, and you get a separate NPS score per question:
Using Ask ChartHop to build your dashboard
Once your survey has launched — or even before responses come in — you can use Ask ChartHop to scaffold your reporting dashboard. Describe what you want, and it will build the chart structure with the CQL expressions you need.
A good starting prompt:
"Build me an engagement survey dashboard for our [Survey Name] survey. Include overall participation rate, average score per question, scores broken down by department, and an eNPS chart."
For more detail:
"Create an engagement dashboard for [Survey Name]. I want a participation chart using findFormTasksByAssessment, average scores for each question grouped by department, an eNPS chart using the .nps() method, and a heatmap showing scores across all questions by manager."
Ask ChartHop will create placeholder text blocks containing complete, correct CQL expressions. To activate each chart, open the placeholder, change the chart type to the one specified, enable Advanced Query Mode, and paste in the expression. The hard work is done — you're just switching the chart type and saving.
Using Ask ChartHop to explore and compare results
Ask ChartHop can also answer natural language questions about your survey results without building anything. Once responses are in, try:
- "Summarize the engagement survey results for the Engineering department."
- "Which department had the lowest average score on the Q1 engagement survey?"
- "What were the most common themes in open-text responses from the April engagement survey?"
- "How did eNPS change between the December 2025 and April 2026 engagement surveys?"
- "Which questions had the biggest score differences between managers and individual contributors?"
Be specific about the survey name, time period, and what you want to know. Ask ChartHop respects the same access rules as the rest of ChartHop — for de-identified surveys, it won't surface individual identity even if asked.
Ask ChartHop is best for on-the-fly exploration and quick reads on results. For persistent charts and saved dashboards, use the dashboard builder.
Comparing results across survey cycles
How you compare cycles depends on how you set up your surveys.
The recommended approach: reuse the same form, create a new Survey each cycle. Since findResponsesByAssessment is scoped by assessment name, each cycle's data is already separated. To compare, duplicate the chart and update the assessment name to the prior cycle. Side-by-side charts give you a clean before/after view:
If you duplicate the form each cycle (for example, to update questions), be aware that every dashboard chart references the form by name. If the form name changes, every chart that referenced the old name will break and return no data. Before you launch a new cycle with a duplicated form, update the form name reference in every chart on your engagement dashboard.
If charts break and you can't identify why, switching to IDs instead of names is the most reliable fix:
IDs are in the URL when editing a form or survey in ChartHop. They don't change when names do, so they're the safest reference for long-lived dashboards.
The key rule: form names in charts must exactly match the form name in ChartHop. Any rename — even adding a year — breaks every chart that references it until updated.
