Actions Speak Louder: Building Dashboard Features Users Actually Want
.png)
The most valuable feedback often comes not from what users say, but from what they do!
When was the last time you clicked a "Give Feedback" button in an app? Exactly. Yet product teams keep adding these explicit feedback mechanisms, hoping for insights that rarely materialize into actionable data.
In Flow by Appsilon, we've implemented a simple yet powerful pattern: placeholder features with "We're working on this" messages. Instead of showing generic error messages or hiding unimplemented functionality, we use these interactions to gather authentic usage data. Each attempted click becomes valuable feedback, helping us prioritize our development roadmap with real user needs.

Want to build AI-powered apps with Shiny for Python? Our blog shares practical insights on integrating LLMs seamlessly.
The Smart Approach to Feature Development
Building a comprehensive dashboard alongside other responsibilities demands significant development time and resources. Creating a placeholder, however, requires minimal effort - just a toast message and basic logging code. This lightweight approach delivers immediate value in three ways:
- Users receive immediate feedback when clicking a button, preventing confusion from unresponsive interfaces and maintaining a positive user experience
- You collect concrete data about which features your users actually need, based on real interactions rather than assumptions
- Development resources can be focused on implementing the most-requested functionality first, ensuring efficient use of your team's time
Start with R's logger package for basic implementation. As your needs evolve, consider expanding to Slack notifications or Google Sheets data collection for more sophisticated analysis.
In Flow, this approach creates a more transparent experience – users know their actions are recognized and features are actively being planned. Our small team analyzes these interactions to prioritize development effectively, ensuring we implement the most impactful features first.
Great dashboards start with the user. Learn 9 best practices for designing effective Shiny dashboards in our guide.
Quick Implementation
Here's how you can start collecting feedback in your Shiny app using the logger package:
library(shiny)
library(logger)
# Set up logging
log_appender(appender_file("feedback.log"))
# In your UI
actionButton("account_details", "Account Details")
# In your server
observeEvent(input$account_details, {
showNotification(
"Account management coming soon!",
type = "message"
)
log_info("User clicked Account Details button",
user_id = session$user,
timestamp = Sys.time())
})


Expanding Insights with External Tools
For more sophisticated tracking and deeper insights into user behavior, integrating external analytics tools can be highly beneficial. At Appsilon, we've leveraged platforms like Amplitude to track feature adoption and prioritize product development effectively.
By collecting detailed event data across different user segments, we gain a clearer understanding of how users interact with placeholder features, allowing us to validate demand before investing in full implementations. This approach enables more data-driven decision-making, aligning product development efforts with actual user needs rather than assumptions.
Built a Shiny app but no one’s using it? Discover 9 common pitfalls and how to fix them.
Start Listening Today
Building dashboards requires carefully balancing feature development with maintenance and user needs. By implementing these simple feedback mechanisms, you gain authentic insights about what your users actually need - not just what they might say in feedback forms.
Begin with a single feature you're considering implementing. Add a notification, log the interactions, and let real usage data guide your next development sprint. Your users are already showing you what they want - you just need to start listening in the right way.
Want to build dashboards that users actually find useful? Let’s make it happen with the right approach.