Skip to content
  • There are no suggestions because the search field is empty.

Guide to creating a custom report in Centercode

Build a report from scratch: pick your data source, find the exact data points you need, narrow your results with a filter, and choose how they display.

Every piece of data your community collects lands in one connected data set. Reporting is how you get a specific slice of it back out, as a chart, a spreadsheet, a PDF, or a scheduled email to your stakeholders.

We'll build one report here, start to finish: a bar chart of the responses to a single survey question, filtered to the people who actually finished the survey. That's a small report on purpose. Once you've built it, the same seven steps produce anything else you need, because every report in Centercode is assembled the same way.

If you just need raw data in a spreadsheet and don't want to build anything, skip ahead to faster ways to get data out.

Table of contents

What a report is made of

Three terms carry most of the weight in Centercode reporting. Getting them straight up front saves a lot of backtracking later.

A report is a container. It holds one or more report elements, has a title, and carries its own refresh schedule and sharing settings.

A report element is a single chart, table, spreadsheet, or export inside that report. One element answers one question. A report with six elements answers six questions in one place.

You build elements one at a time. Your first element creates the report that holds it.

The kinds of data you can report on

All data in Centercode belongs to one of three core data objects. Whatever you're looking for lives under one of them:

  • User elements: demographic, behavioral, and technographic data about your users. Profile answers, survey responses, activity history, sign-in dates, agreement status, scores.
  • Feedback elements: input your participants submitted, such as issues, ideas, praise, or discussions.
  • Project (other) elements: configuration and metrics about the test environment itself, such as phases, teams, and content.

Each of these extends as you collect more. Every field on a user profile becomes part of that user's record, whether the user typed it in or the platform recorded it automatically. For the full picture, see Centercode Basics: Data, Filters, & Views.

Filters and views: rows and columns

Filters and views control what any report element shows you. They work the same way everywhere in the platform, including user lists and feedback management.

  • A filter decides which records are included. These are your rows.
  • A view decides what you see about each record. These are your columns.

Think of a spreadsheet. The filter sets the rows, such as only the users who completed a survey. The view sets the columns, such as name, score, and email.

Nearly every reporting problem traces back to one of these two being wrong. A report with the right view and no filter returns rows of blanks. A report with the right filter and an unrelated view returns records that have nothing useful in them.

💡 Ted Tip: When someone tells me their report looks wrong, I ask which half is wrong before anything else. Missing rows means the filter is too narrow. Empty columns means the view is asking for data those records don't have. Same page, two different fixes.

Before you start

  • You need access to Reporting in the project or community you're reporting on. If you don't see Reports in your tools menu, ask a Community Admin to check your team's access.
  • You need data to report on. For this walkthrough, that means a published survey with at least a few completed responses.
  • Know which survey you want, and which question on it. You'll be asked for both by name.

Opening Report management

Reports live at two levels. Project reports cover one project. Community reports span your whole community, including users who aren't in any project.

For a project report:

  1. Open the project you want to report on.
  2. Click Management>Custom reports.

For a community report:

  1. Click the Community menu in the upper left of the navigation bar.
  2. Click Community management>Community reports.

This is the Report management page. It lists your existing reports and is where every new one starts. For a tour of everything on it, see Report management overview.

  1. Click Create a report element.

  

Everything from here happens on one page, top to bottom. Your results update as you go, so you can see whether you're on track before you save anything.

Step 1: Choose a data source

The first section asks which of the core data objects you're pulling from.

  1. Select User elements.

Surveys live under User elements, which sometimes surprises people. A survey response belongs to the person who submitted it, so the platform files it as user data. You'll select the survey itself in the next step.

Your other choices here:

  • Feedback elements: for reporting on submitted issues, ideas, praise, or discussions.
  • Project (other) elements: for reporting on test environment configuration and metrics.
  • Complete forms: builds a Macro Report, which generates one element per question across an entire form instead of a single element you configure yourself. See faster ways to get data out.

Step 2: Select your data

This section is where you build your view: the columns of information you want back. It has two dropdowns that narrow your source, then a pair of lists for moving data points into your element.

    To build your view:

    1. Find the question you want in Available data points.
    2. (optional) Drag the position bar on any included data point to reorder your columns.

    Each included data point shows its type, such as text box, boolean, or date. Note it, because type decides which chart styles you'll be offered in Step 4. A single multiple-choice question gives you bar and column charts. Three free-text questions give you a spreadsheet.

    For this walkthrough, one data point is enough: the survey question you want to chart.

    Finding a specific data point

    The Available data points list holds every field on the form you selected. On a long survey or a mature user profile, that's a lot of scrolling, and scanning 80 similarly worded questions is a good way to grab the wrong one.

    Use the search field instead. It sits above the data point list and is labeled for whatever you're building at the time:

    • Build your view, in the Select your data section, when you're choosing columns.
    • Build your filter, in the Add a filter section, when you're choosing what to filter on.

    Both work the same way. Start typing and the list narrows with each character, so you don't need to press Enter or click anything to search. Then double-click the entry you want.

     

    Search looks across every data set

    You don't have to know which survey a question lives on to find it! Type a distinctive word from the question and it surfaces, whichever form it's on.

    That cuts both ways. If three of your surveys ask Overall satisfaction, search returns all three, and they'll look nearly identical in the results. Check which data set a match belongs to before you add it. Grabbing the right question off the wrong survey produces a report that runs cleanly, looks correct, and reports on the wrong test.

    Search matches the form label, not your nickname

    Search matches the data point's name, which is the label as it appears on the form. Nothing else. Not the description, not an internal name.

    That matters because the label on the form is rarely what your team calls the question out loud. A question your stakeholders call "the NPS question" might be labeled How likely are you to recommend this product?. Searching "NPS" returns nothing. Searching "recommend" finds it.

    When a search comes up empty, work through these in order:

    • Try the participant's wording. Pull up the survey and search a distinctive word from the question as it's actually written.
    • Try a shorter fragment. One or two words beats a full phrase, since the match has to appear in the label exactly as you typed it.
    • Check the data object. Search covers applicable data sources, so it won't reach across objects. Something a participant submitted as an issue or idea is under Feedback elements, not User elements. Change your data source selection and search again.
    • Check whether you already added it. Data points leave Available data points once they're in your view, so anything already in Included data points won't appear in search results.

    💡 Ted Tip: If someone can't find a data point, I ask for the exact text of the question as a participant sees it. Most of the time the nickname was the problem, and one distinctive word from the real wording finds it right away.

    Step 3: Add a filter

    Your view is set. Now decide which records it applies to.

    For a survey report, the filter you want almost always limits results to people who completed the survey. Without it, your element includes every user in scope, whether they answered or not, and their blank non-answers get counted alongside the real ones.

    1. Find (or search for) your survey in the data points window.
    2. Select the Survey Completed data point. On a form with a lot of fields, use the Build your filter search field to find it rather than scrolling. It behaves exactly like Build your view, described above.
    3. Set the qualifier and value to equals Yes.
    4. Click Add to filter.
    5. (optional) Repeat steps 1 through 4 to add more criteria, then set Results must match.
    6. Click Check filter to see how many records match out of your total.

    When you have more than one filter item, Results must match decides how they combine:

    • Match all (and): a record must satisfy every filter item to be included.
    • Match any (or): a record is included if it satisfies at least one item.

    Check filter is the cheapest sanity test in the whole builder. Use it before you go further. A count of zero means your criteria don't match anything yet, and no chart style will fix that.

      

    Filters are worth learning properly, since the same builder powers user lists, feedback management, automations, and macros. Centercode Basics: Data, Filters, & Views covers the mechanics in depth.

    Step 4: Pick a style

    This is how your data gets displayed. The available options depend on the number and type of data points in your view, so this section changes based on what you did in Step 2.

    1. Select Bar chart or Column chart.

    Alongside the charts, tables, and spreadsheets, four styles do something other than draw a picture:

    • File export: packages the results as CSV and XLSX for download, with no in-site visualization. Use this when the point is the file, or when a spreadsheet element is too large to render in a browser.
    • Data package: makes this element's data available by API call for tools like Tableau, Domo, or Google Sheets. See Simple Guide to Data Packages.
    • Record lookups: lets outside systems query the data in this element.
    • AI response: has Ted generate the element from your custom instructions. See Create a Report Element using AI.

    Data packages and record lookups need Centercode's Enhanced Integrations package. They also only work after the report has been saved.

    Step 5: Preview and customize your results

    The preview section shows real results from your view, filter, and style. Read it before you save. If the preview looks wrong, the saved report will look wrong, and you'll have spent a refresh cycle finding that out.

    The customize section tunes the display:

    • Show data count: displays result counts next to visual styles.
    • Show percentages: displays percentages on visual styles.
    • Include data points with zero results: keeps answer options nobody selected. Turn this on when the absence of responses is part of your finding, and off when empty options just add noise.
    • Order by rank: sorts from most results to fewest.
    • Reverse result order: flips the display order.
    • Adjust element size: sets how much room this element takes up in the report.

    Every field on this page is documented in Create a report element.

    Step 6: Save it to a report

    1. Enter an element name, and a subtitle if you want one.
    2. Choose a destination. Add this element to an existing report, or create a new report with this element as its first.
    3. Click Submit.

    Name elements for the question they answer, not the chart type. Closure survey satisfaction tells a stakeholder something. Bar chart 3 makes them open the report to find out what it is.

    Step 7: Name the report and set refresh and distribution

    Submitting takes you to the Create a report page, which configures the container rather than the element.

    1. Enter a Title. This is what people see in Report management and on anything you share or distribute.
    2. Under Team, check View for each team that should see this report in their Shared section.
    3. (optional) Check Distribute for teams that should be emailed a copy at every refresh.
    4. (optional) Add outside recipients under Additional email distribution list. These addresses don't need Centercode accounts.
    5. Set your Refresh interval.
    6. Click Submit to save and generate the report.

    Your interval choices:

    • Don't refresh: no automatic refresh. Useful for configuring distribution settings before you're ready to send, or for pausing a schedule without losing it.
    • Daily: once a day at the time you set.
    • Weekly: on the date and time you set, then every seven days.
    • Monthly: on the date you set each month. If that date doesn't exist in a given month, the refresh runs on the last day instead.
    • Once: a single refresh at the date and time you set, then refresh turns off.

    Once any Distribute box is checked or any address is in the distribution list, Refresh interval becomes Distribution interval and adds email options, including From name, From email, whether to attach a PDF or spreadsheet, and whether to include the report in the email body.

    Report level filters

    Further down this page, Report level filters applies one filter to every element in the report that uses a given data source. On a report with a dozen elements built from the same survey, that's one place to change instead of twelve.

    1. Scroll to the Filter section.
    2. Click the New icon for the data source you want to filter.
    3. Set your parameters and click Create filter.

    The tradeoff: every element using that data source gets that filter. You can't give one of them a more specific filter of its own while a report level filter is in play. Reach for it when your elements genuinely share a scope, and stick to per-element filters when they don't.

    Full detail on this page is in Create a report/Modify this report overview.

    Viewing, refreshing, and exporting your report

    Submitting generates the report and opens the results. Running a report happens in two stages, which is why it isn't instant:

    • Data collection: the system gathers everything you asked for. Community level reports, and projects with large user bases or long histories, take longer here.
    • Visualization: the system arranges the data, draws the charts, and builds the PDF and Excel versions. This is the quicker of the two, but it repeats for every element in the report.

    Most reports finish in a few seconds to a couple of minutes. There may also be a queue on shared infrastructure, so a report can wait before it starts. Scheduled reports kick off at the top of the hour, so a manual refresh right then competes with them. If you're past 15 minutes, reach out through in-site chat and the team will investigate.

    From Report management you can then hover any report to:

    • Refresh it, pulling current data.
    • Export to PDF, or Export as spreadsheet for an XLSX of every element.
    • Export full report, which bundles the PDF, the full XLSX, and a separate export per element.
    • Clone it, copying every element into a new report. This is the fastest way to build a variant, such as the same six elements filtered to a different team.
    • Modify or Archive it.

    To send a report to people on a schedule, see Guide to refreshing and distributing reports.

    When your report comes back with blanks

    A report full of empty rows is the most common thing to go wrong on a first build, and it's almost never missing data. It's a view without a matching filter.

    Here's what happens. Your view asks for survey answers. Your filter says nothing, so the element includes every user in scope. Users who never took the survey have no answers to show, so they come back as blanks and drag your chart down with them.

      

    To fix it:

    1. From Report management, hover the report and click Modify.
    2. Click the report element under Review report elements.
    3. Scroll to Add a filter.
    4. Build the filter. For a survey, that's your survey's Complete data point equals Yes.
    5. Click Add to filter.
    6. Click Submit and view.

    💡 Ted Tip: A blank report and a report with no rows at all are different problems. Blanks mean your filter is too loose and pulled in records with nothing to show. No rows at all means your filter is too tight and matched nobody. Run Check filter and the count tells you which one you're looking at.

    Two other results that look like failures but aren't:

    • A spreadsheet element that stops at 50 rows. On-screen reports are built to summarize, and long spreadsheets can overwhelm a browser, so in-site elements cap what they draw. Use the View complete results link in the element footer for everything, using the same filter and view. The Excel export also contains the complete set.
    • A spreadsheet element stuck on Loading after a successful refresh. Usually too many results to render on screen. Modify the element, change Pick a style to File export, and click Submit and view. You'll get the files without the in-site visualization.

    More of these are collected in the Reporting FAQ.

    Faster ways to get data out

    Custom reports give you precise control. Sometimes you don't need it.

    Quick Form Export

    Exports one form's raw data straight to a spreadsheet, with no report to build and no reporting knowledge required. Go to the management page for the form, whether that's Surveys, User profiles, or Feedback types, hover the form, and click the Export icon. Review your data, parameters, and style, then click Export to file. Details in Guide to Exporting Survey and Feedback Spreadsheet Data.

    Macro Reports

    Builds a full report from an entire form in one pass, creating a separate element for every question on it. An eight-question closure survey becomes eight elements. Choose Complete forms as your data source, or use the Build a complete report icon on the form's management page. Macro Reports also support a second series, which slices each element by another data set, such as breaking a product rating out by segmentation team.

    One catch: a Macro Report's basic parameters are set at creation and can't be changed afterward. Small tweaks are easier done element by element. Anything report-wide is easier to rebuild. See Guide to Macro Reports, which applies to Team and Legacy editions.

    Dashboards

    If you want project health at a glance rather than a specific answer, the prebuilt dashboards may already cover it. See Centercode Dashboards overview.

    Best practices for building reports

    • Filter before you style: get Check filter returning a sensible count first. Picking a chart for data you haven't scoped yet means rebuilding it.
    • One question per element: elements that try to answer two things usually answer neither clearly. Add a second element instead.
    • Search rather than scroll: Build your view and Build your filter are faster and less error-prone than scanning a long list for a question you half-remember. Confirm which data set a match came from before you add it.
    • Name elements after the question: your stakeholders read element names in a PDF with no other context.
    • Clone instead of rebuilding: when you need the same report against a different team, phase, or date range, clone it and change the filter.
    • Set the refresh to match the decision: a report nobody reads weekly doesn't need a weekly refresh. Match the schedule to when someone actually acts on it.
    • Check what you're sharing before you distribute: distribution emails go to real inboxes, including outside addresses you enter by hand.

    Notes

    • Reports set to refresh automatically stop refreshing and distributing if the report hasn't been viewed in-site for more than 60 days. Report management flags this with a warning icon.
    • A Macro Report more than 30 days old that shows a recent refresh but still displays Loading may need to be rebuilt.
    • Create embed code makes a report element available to any system that renders HTML, and the embedded element stays as current as the report's refresh interval. The embed code has no security restrictions, so anyone holding it can pull that data. Keep it somewhere you'd be comfortable keeping the data itself.
    • Cross-project reporting uses Cross project labels overview to unify resources named differently across projects, and requires an Enterprise license.
    • Data packages and record lookups require Centercode's Enhanced Integrations package, and only work once the report is saved. See Guide to integrating Centercode reports with external systems.
    • Deactivating or archiving a project disables all automation reporting for it, including data package and API report outputs.
    • Looking for the field-by-field reference for the builder? See Create a report element and Create a report/Modify this report overview.
    • Looking for answers to specific reporting questions? See the Reporting FAQ.