This may be a dumb questions but I am building a simple app where someone can requests help at their station, and then someone comes by to help them and resolves the the request.
The behind the scenes of the requesting is just there is a table with records that correspond to each location. When someone pressed the button to request something, it changes that status of the record to “Needs Attention” and then it shows up on the fulfillers screen. The fulfiller can tap the request to accept it, and then tap again to resolve.
Once something becomes resolved, a copy of the record is created in another table that contains the history of the requests.
I want to create a view where I can track the how many tasks each fulfiller has resolved that day. My initial idea was as follows:
Each request, depending on where it came from, is already assigned to a specific fulfiller. Once the request gets resolved and is copied to the new table, I wanted to count how many rows were created that day and compare them based on the fulfiller that was assigned to it. Is this how I should go about it? I don’t have any completions just because the original concept was just rotating the few location table records
You’re doing it the same way I would. Counting rows in the table serves the same purpose you would have used completions for, so you don’t need the completions.
There are a lot of cases where I want to measure “times done” but other design considerations for the app or the fact that I’m editing existing app(s) means it’s much faster to use a table like you are than re-build the whole app workflow to make a completion fit correctly.
How would I go about counting the rows that were resolved in the past day? The columns that I think are relevant are a Datetime for Time Resolved and assigned fulfiller number.
Ideally I want analysis that counts the times the fulfiller shows up in the table that day. I also want some sort of bar graph that compares the tugger numbers for a week. Is this possible? If so, how would I accomplish this?
For the graph part, take a look at this knowledge base article. I don’t have a readymade example for count of rows, let me pull something together though. You can do it with an expression and/or table queries + aggregations.
Just out of curiosity, why do you copy to a new table? I’ve built fairly similar examples to I believe what you’re describing and had luck with using one table. Let’s think of a generic example of a request that needs to go from a backlog status to in progress to complete. This could be extended in many ways.
Table Columns
ID - This could easily just be a RANDOMSTRING() expression to just be a unique value.
Request - Text description of the request to be completed
Status - Text value of the state of the request (in our case has three values: Backlog, In Progress, Complete)
Requestor - User who creates the request
Assignee - User who completes the request
Time Requested - Datetime stamp of when the request was made
Time Started - Datetime stamp where request was put into progress
Time Completed - Datetime stamp where request was fulfilled
App Interfaces
Create request screen - The goal of this would be to provide a page where your users could enter in a request and submit the request. The button to submit would create a record in the Requests table, store the request details in the request column, set the status to backlog, and store the user/datetime in requestor and time requested fields.
Modify request screen - You can show an embedded table of requests that’s filtered to exclude any requests with a complete status (only open requests). By selecting a backlog request, you can mark it as in progress and store an assignee and the time the request was started. This could be done in several manners like clicking on the row to mark in progress or to start an entire workflow. You could do the same thing with selecting an in progress request and marking it as complete, effectively removing it from the embedded table by storing the completion timestamp.
Data overview/dashboard - Now that you have all of your data in one table, you can do things like build analytics where you want to see the count of requests in a backlog vs. in progress vs. completed state. You can filter this by request time, start time, or end time, depending on what you’re interested in. You could build a dynamic dashboard here too where you add analytics to an app with dynamic filters so that you can easily customize date ranges, statuses, departments, etc.
I know that’s still fairly high level but let me know if that helps!
The reason I originally created it two tables (one being the locations and the other having all the past resolved records with time stamps) as I was worried the first table would fill up too much and become cluttered and I also wanted to use the 2nd table for analytics if possible.
In the second table, each record is Location (#) with the number constantly incrementing to have the id be unique. I wanted this in order to eventually use the data for things like avg response time, how many were resolved in the past week, etc.
I’m still not sure how to use table records for analytics as it seems all the records have to be loaded into a record place holder in order to use for analysis but the way I have it currently set up is that new records are constantly being created in the 2nd table and I can’t set them all up as individual record place holders.
You can use Tables as a data source in an analytic, which works separately from the placeholders you’re creating! You can create these analytics from the main Dashboards page or through an app where you select Embed > Analysis and press “Select an Analysis” on the properties pane. You shouldn’t need any loaded placeholders for analytics unless you wanted to do some type of dynamic filtering.
From the screen above, pressing Create Analysis in the upper right hand corner will bring you to an editor where you start from a template and can customize as you see fit!