Fast Feedback with Mini Surveys
Why Mini Surveys make sense and my experiences using them
You might have missed it in the past Christmas holiday season, but Mendix has (beta) launched “Mini Surveys”—a new way to collect feedback. A related question from a customer drove me to find out more about it and implement a sample case. Read this blog to find out why it is a nice solution and what I ran into when implementing it.
Mini Surveys in short
The Mendix Product Insights or Mini Surveys solution comes as a simple solution to present a maximum of three questions to the users of the Mendix app. You can choose between the familiar star rating, NPS scoring, multiple choice, and open questions.
In the Mendix portal, you define your questions and set when it has to be shown. In one of the pages of your app, you can drag the widget from the marketplace and, with a little configuration, show the questions. The platform makes sure a survey will only be shown once to each user. In the Mendix portal, you can now monitor the results.
Why use Mini Surveys?
Short cycle times when building apps are one of the things I like most about working with Mendix. On day one, we sit with a Subject Matter Expert, and the next day, we show how it turns out. Usually, we close such mini feedback loops several times in a sprint, resulting in swiftly delivered value-added solutions and happy customers.
Another feedback loop is the “learn fast, fail fast” paradigm. Here the app is only part of a business idea to be tested. The success of the business idea determines the way to go forward. This feedback loop takes a bit more time and in the end, might mean the burial of the app. It is no secret that Mendix is often used to test the potential of business ideas this way. Actually, I met Mendix at the company I worked for as an architect, at the time while testing a business idea.
But we’ve already got the good old Feedback widget you might think. The issues reported pop up in your sprint board in Mendix or even in Jira if you happened to make the integration. But with the feedback widget, there is no call to action. The users’ initiative determines whether or not a bug is reported or an idea is raised to the development team.
And that is when Mini Surveys come in. Mini Surveys give us the opportunity to collect more specific feedback on the product we are building and how the users experience it. Product Owners have gut feelings about what needs to be done to make the customer happy. Now we have a tool to add facts to that gut feeling.
This tool makes it very easy to ask for feedback on user satisfaction with our product. Now we can check what needs to be done in the next sprints, how happy they are with this fancy new feature, or ask for an NPS score. We can take these results into account in the next sprints to make our customers even more happy.
Adding Mini Surveys to your app
The documentation on the developer portal is very straightforward. Following the steps is easy and the results are as expected.
Without going too far into instruction mode, these are more or less the steps:
- Start a new questionnaire and set up the questions on the developer portal
- Add the Product Insights Marketplace Module to your app
- Get an API key on the developer portal, and configure it in the module
- Add the widget to the page where you want the questionnaire to be shown. (I used the home screen for users making a workplace reservation.)
- Create a copy of the data source nanoflow in your own module, set it as the data source for the data view, and set the active survey ID in a nanoflow action.
It was really not more than that. Here is the result:
Extra configurations
The module gives some extra options (e.g. to set a testing mode), to show the survey always. The documentation on this is self-explanatory.
After having set up the default configuration, I wanted a bit more flexibility in showing the survey and to whom. Maybe that will come out of the box after the beta has proven this a valuable product 😊.
To manage which user role a survey will be shown, and to be able to toggle it on and off in my app, I added a Survey entity with an association to UserRole and an isActive flag.
Using a setup like this in your app also gives you the freedom to activate new surveys without needing a redeploy of your app. Now you can select the most recent, active survey for a user. The module with this little tweak will be available in the Marketplace soon.
The next thing I wanted to do is configure it for a native app. Unable to find anything I reached out to Mendix support. The answer came fast….not on the roadmap yet. So if you want it to work on native, you have to build your own widgets. The basics are there for the web so it should not be too much of a problem.
Huh? A Published REST Service consumes another one
When looking further into the model, I found out that the Marketplace module exposes a REST API in your app which is used from the javascript in the mini-survey widgets.
It is used for generating a unique id for the user, managing to offer a survey only once to each user, and forwarding the results to the Product Insights platform.
The interesting part is that this API calls the Product Insights API which gets your Survey from the developer portal. That made me curious but unfortunately, I was not able to find the way to a resource that would give me all I wanted to know about a survey. Let’s hope that API will be exposed and documented with a future release.
Great beta version — go try it!
The Product Insights — Mini Surveys is a nice extra feature in your agile development cycle. With little effort, it helps you collect your users’ feedback to allow you to improve your app. The instructions are clear and complete to make it work in your application.
With some minor modifications, you can easily make it even more user-friendly. There are two things I’d like to be added. First, the widgets to make it work natively are welcome too. Second, I would like to be able to get my active surveys from the API so I can manage them more easily in my app.
Don’t let these minor modifications hold you back, go try it!
Jacob | (March 6th 2023)