Best Practices for Building a User Request Management App.

Best Practices for Building a User Request Management App from the Community

By

What’s the best way to organize user requests as a Salesforce Administrator? Build a Salesforce app!

As a Salesforce Admin, you have a lot of different tasks every day. One of the most common content tasks is to take user requests for changes. The sheer amount of requests can become overwhelming and hard to keep track of on top of all the other responsibilities you have.

Admins build apps to help users get work done more efficiently and solve business problems. Why not build yourself an app to get your work done more efficiently and solve your own business problem?

Over the years, I’ve heard of many great examples of apps that admins have built to manage feature requests from users. I took to Twitter to gather some of these examples as well as tips and best practices from the #AwesomeAdmin community to help inspire you to build your own user requests.

“It’s the very first thing we build to manage all the change requests and governance processes.” — Guillermo Pedroni, Director, Enterprise IT Architecture at Spireon

Start with best practices

The first step in building an app is to gather requirements. Here are some tips to consider when building your user request app from Scott Luikart, Lead Technical Architect at Roycon:

  • “Have a way to say ‘no.’ You can’t fix every issue for every user, especially if it’s just one user who’s experiencing a small issue. Log it, keep it, and if you get additional feedback to warrant fixing it, you have what you need to do so.
  • Track where the request is coming from and where the issue is having an impact. For example, someone from customer support shouldn’t request something that will impact the sales department without buy-in from the sales department. When conflicting requests arise, have a strategy to resolve them.
  • Track how much effort each request will take using a custom field called ‘Level of Effort’. Create a process so that anything over a specific threshold value (for example, 5 hours) gets escalated for approval. Sometimes, users don’t understand the level of effort their request takes to resolve, and this field makes that visible.
  • Provide a report and dashboard to give visibility into all the requests across the company. This helps stakeholders from other departments understand the amount of work you’re doing and gives them context for where their requests stand within the broader company.
  • Have a single source for all communication about each request. If you email a follow-up question to the user and then have a chat about it in Slack, you’ll lose information about the request and both you and your user will get frustrated.
  • Have a way to communicate with users when their requests are built into the app and have a plan for how they’ll use it. If you make an update but don’t let anyone know about it or teach them how and why to use it, you’ve wasted your time.
  • Have a way to track who’s working on the request and its status. This could be a picklist with ‘In Progress’ or ‘Waiting on Feedback’ with a field for who’s working on the request or providing the feedback.

“Don’t just think about the now, think about the future. You might not prioritize governance today, but you will someday. Consider the categories that go beyond Salesforce such as third-party integration support, product and program updates, etc. You can do it all in Salesforce!” — Guillermo Pedroni, Director, Enterprise IT Architecture at Spireon

Examples to inspire you

There are so many amazing examples of user request management apps. Here are just a few from fellow admins who’ve been generous enough to share.

The Admin Kit built by Hayley Tuller, Solutions Architect at Kicksaw

Hayley says, “This solution allows me to quickly report on how complex the solution is for each requirement, who in the organization it’s supporting, how responsive my testers are, which features get the most complaints, and more.”

Here are some core components of the Admin Kit App.

Support Homepage

Support Homepage for the Admin Kit, featuring sections for Create Component Record, Submit a Ticket, and list of All tickets.

Hayley explains, “Salesforce Tickets capture the requirement from the user, and then we use the Chatter feed to keep the user up to date.”

Salesforce Ticket record Details section with fields for Status, Type, Owner, Priority, Description, and Resolution.

Custom objects for tracking

Hayley continues, “I use a custom object called ‘Components’ to track declarative configuration items, with a child record named ‘Component Change’ which tracks changes and the environment they were made in, so I can manage my own lite DevOps-style process.

A custom object called ‘Requirement’ tracks each functional requirement for Salesforce—this is the heart of the system! They capture the WHY, arguably the most important part. They are the parent record for Tickets, which allows me to automatically track which requirements get the most user requests.

Requirement object record, Path showing stage atop the page, Details tab below with Requirement, Department, Satisfactions, and Descriptions fields, and Activity history on the left side of the page.

‘Satisfactions’ are junction objects between the Requirement and Component objects. They capture why we made that specific given declarative configuration. Because any component can support multiple requirements, it keeps the admin aware of all the different THINGS a given configuration supports.”

Satisfactions component object page, Details section on the right with Component Name, Original Environment, API Name, Deployment Status, Parent Object, Last Change, Status, Last Environment, Type, Last Deployment, Component Link, and Description fields; Component Changes and Satisfactions sections on the left showing related records.

Lastly, Hayley says, “‘UAT Scripts’ are a custom child object of Requirements. They document the rounds of testing as a feature develops.”

UAT Script page, with welcome message and instructions section on the left, Details section with Description, Topic, Target Acceptances, Requirement, Acceptances, Status, Pending Acceptances, Test Script, and Expected Result fields in the middle and User Tests related list on the right.

Some tips for solo admins when using the app:

    • Add a layer above requirements to capture business capabilities and each requirement you satisfy. Then, you can show how your work supports specific business needs.
    • Consider tracking the time you spend on tickets so you can clearly express ROI on your salary!

The User Management Super App built by Andrew Russo, Salesforce Architect at BACA Systems

Andrew says, “This app shows everything vital to supporting our users in Salesforce. We can effectively track all our work and directly show its impact.”

Here are some core components of the User Management Super App.

Custom record types for cases

Andrew explains, “Cases with custom record types give us the flexibility to manage internal and external cases effectively. The internal Case record type allows us to use fields tailored to supporting internal user requests. Fields like Status can be used for internal support processes, while still maintaining the picklist values relevant to our external customer service department using the service record type.”

Internal Case record page with actions in the top record header with a path below showing the development status; below that is the Case Information section with fields for Case Owner, Contact Name, Priority, Status, Department, Private Case, Rootstock Process Area, Parent Case, Case Number, Case Origin, Type, and Development Status; below that is the Description Information section with fields for Subject, Description, Expected Outcome, and Actual Outcome. The right side of the page has related lists of Case Time, User Stories, and Case Status Times..

Support requests made easier with screen flows and email functionality

Andrew continues, “Users can access a screen flow from the utility bar to submit support requests from wherever they are in Salesforce. This makes the internal support process incredibly simple for our users. The flow captures the needed information and automatically routes it to an admin with the skill level that matches the needs of the case.

The process to create an internal case: flow accessed from utility bar at bottom left portion of page; Information inserted on first page includes Create an Internal Case, Type, Rootstock Process Area, Priority, Subject, URL to where issue occurred; Information inserted on second page includes Steps to reproduce, expected outcome, actual outcome; third page includes option to upload screenshots or videos showing the issue

Using Email to Case Premium from the AppExchange, users can continue to use email to respond to cases. The conversation is cleanly saved as case comments and chronologically organized on the record. This functionality is easily implemented with the Lightning Web Component.

In addition, creating Lightning Knowledge articles helps with resolving common questions faster, especially with helping to guide users on how to use Rootstock ERP in Salesforce.”

Time tracking for reporting efficiency

Andrew explains, “Tracking time spent in each status of a case allows us to identify our teams’ responsiveness vs. requestor’s responsiveness.

Internal Case dashboard showing important metrics including the number of urgent and severe cases, average time to first response in minutes, average case time in business hours, bar chart of cases closed in the last 2 weeks grouped by admin, pie chart of case status when waiting for admin, pie chart of case statuses to allow monitoring of teams’ responsiveness vs. requestor’s responsiveness, a list of all cases waiting in queue, and a pie chart showing cases grouped by department.

Track how frequently automations are used to get an immediate impact report on time and money saved for the company. This simple sub-flow we add to many of our flows is vital to showing the value our team creates as we continue to save our users time and create better experiences.

We stay organized by tracking time in DEV, UAT, and delivery. Tracking the time that goes into new features helps with calculated ROI down the road.”

Related list screen component showing time logged on a case for different tasks including Gathering User Requirements, Discussing with Internal Dev Team on Limitations and Impact, and documenting and gathering current process to understand conflicts.

User story creation

Lastly, Andrew explains, “We use a screen flow to coach users through submitting a proper user story with validation to ensure each field contains the information needed. We’re able to send a link to the user to let them create the user stories on their own.”

Depiction of a flow collecting a user story: The first page includes information about the purpose and value of a user story; the second page provides guidance and examples of user stories; the third page includes fields to insert ‘As a,’ ‘I want,’ and ‘So that’ information; and the fourth page puts together information inserted to form a user story..

The Salesforce Requests App built by Jason Dooley, Implementation Consultant at Skedulo

Here are the key capabilities of the Salesforce Requests App:

  • Different record types for each type of resource request
  • Global Action to create a new request
  • Basic text fields for user stories: “As a <role>,” “I want <task>,” “so that <use case, end state>.”

Global Action dropdown menu featuring New Salesforce Request action atop the page and New Salesforce Request screen flow window below with Summary, Status, “As A,” “I want,” and “So That” fields on the screen flow.

  • Tab for reports
  • Integration with a JIRA board

Ask an Admin (AAA) built by Michelle Hansen, Business Architect at 7Summits, an IBM Company

Note: Michelle built this app at a previous company, not 7Summits/IBM.

Here’s a breakdown of the AAA App:

  • It’s based on the Build a Suggestion Box App Trailhead project.
  • Global Action launches a screen flow (thanks to Jen Lee for this blog).
  • User fills out the request in the screen flow.
  • This creates a record in a custom object which provides transparency and supports reporting.
  • For urgent issues, admins get email notifications.
  • Automated Chatter posts keep the requester updated as the request moves through the process.

Go build your own app!

Now that you’ve gotten some tips, best practices, and creative examples of how to build a user request management app, it’s time to build your own! An app like this will be invaluable to show stakeholders across your organization the type of work you do and what it takes to get it done. It also helps make your users happy and your business run smoothly, which is the ultimate goal of every #AwesomeAdmin.

Have fun building!

Resources

 

Huge thanks to Jason Dooley, Michelle Hansen, Scott Luikart, Guillermo Pedroni, Andrew Russo, Hayley Tuller, and many others who responded to this tweet and for their contributions to this post.

Mountains and greenery next to text that says "Plan Your Next Performance Test with Performance Assistance."

Plan Your Next Performance Test with Performance Assistant

As an #AwesomeAdmin, you’re responsible for the overall health of your Salesforce implementation. Your users depend on you to ensure that it continues to perform, even with large data volumes and increased throughput. But what happens as your business continues to grow? Do you experience seasonal shifts in demand? Does your team frequently release new […]

READ MORE
Cloudy holding a laptop amongst greenery.

9 Low-Code Tools to Help You Grow in 2022

With the Salesforce low-code platform, #AwesomeAdmins can leverage a variety of app development, automation, and artificial intelligence (AI) tools to build digital experiences across any device. These tools enable you to click to build apps and workflows fast. But don’t just take our word for it! This year, Gartner recognized the Salesforce low-code platform as […]

READ MORE

Have an Idea for a Story?

We are all about the community and sharing ideas.
Do you have an interesting idea or useful tip that you want to share?

SHARE YOUR IDEA