I have a form in which the user requests a report to the system by clicking the Send Report Request button. The system then produces scheduled reports according to the interval the user selected (Daily, Weekly, Monthly). The problem with this design is that there is no immediate feedback to the user after he pushes the button. I want to avoid a scenario in which the user clicks the button and says: "what now?" How can I achieve this? What are your recommendations for such a problem?
Scheduled Report Request (Label) Report Name (Label) + Text Input Interval (Label) + Listbox (Options: Daily, Weekly, Monthly) Send Report Request (Button)
Disable the submit button as soon as it's been pressed and show a message (or similar) to indicate the action is being processed. Disabling the button prevents repeat clicking and feedback lets the user know that something is happening.
Sometimes it can seem a bit like the feedback comes back too quickly, and users can feel more comfortable if they see a busy spinner, even just for a second, before the success message appears, because it really looks like the system was busy doing something.
You might not need to say Thank you if this is a very frequent action or if your user's won't appreciate the nicety - just say Scheduling report...!
Make the message friendly and if there is some time between pressing the button and getting confirmation that the request has been handled, then give some indication of the length of time that might be involved.
If the request were to happen right away and could take a very long time, it might be a good idea to 'bank' or queue the request and either email the user or popup a notification when the report has finished (eg like the notification bars here on stack exchange) - and of course with a link to the output(s) that are queued. Amazon and PayPal do this when generating very long reports. Somehow they calculate whether the report can be done in a reasonable time or whether it needs this kind of queuing or notification.Tweet