Forum Discussion

benrizz17's avatar
benrizz17
Qrew Member
2 months ago

Attendance Tracker

I am trying to build an app that will keep track of attendance by name based on the selected location of the plant. Ideally there is just a multiple-choice field at the beginning of the tracker of the area of the plant, and that will populate the list of names associated with that area. From there, each name would have a checkbox associated with it to designate that person was in attendance. If possible I would want there to be some way to show the attendance percentage of each person as well.

I was thinking having the list of names associated with each area in a separate table. Then each person that populates in the tracker form would have an associated check box as a separate field (unless there was a way to make that one field). The issue that I see with that is there isn't really tracking by person that I could figure out, and if you change that list in the separate table then that changes past records of the tracker, which could be an issue.

Any help or tips with this would be greatly appreciated!

  • There may be more than one way to do this but one way to do it is using Pipelines.

    You would have a table of employees and in the table every employee would be a child of a department.  There would also be a field indicating the [Status] of the employee as to whether they are Active.  

    You would also create a Child table on Departments which would be for a new table called Daily Employee Attendance.  That Tables will have field for the date, a field for [Present?] (set the default to be checked) and it would be related to the employee table as a child and also be related to the department as a child.

     The pipeline would set to be run every day at 1 AM in the morning and search the table of employees (filtering on status = Active) and create records in the Daily Employee Attendance.  

    So each day the department manager would review the department record and be presented with a report of today's attendance records. Manager with deselect the check box for [Present?] For any absent employees. (I suppose you could also do this with the multiple choice fields with choices of present or absent.)

    Do you have all this granular data then is it's easy to run some reports by employee to show their attendance by month or percentages or any kind of calculations you want.  

  • Thanks for the feedback.

    For the table of employees, is each employee a different field and the status of active is another field for each employee? And for the pipeline, how would I set this to run at a specific time for this search to occur?

    • MarkShnier__You's avatar
      MarkShnier__You
      Icon for Qrew Legend rankQrew Legend

      Well, for the table of employees and a minimum you would have three fields. The department, which I ideally would pull off a table of departments through a relationship, a field for the name, and a field for the status. There would be one in the table for each employee.  

      As for the pipeline, you can have the first step of the pipeline be a search of the employees table. Then at the top right, there will be an icon to schedule the pipeline. They can run once an hour once a day once a week, there are how often the pipeline runs.

       

      of the employees table. Then at the top right, there will be an icon to schedule the pipeline. They can run once an hour once a day once a week, there are hope for how often the pipeline runs.

       

      That would be an example of a scheduled pipeline. the other typical pipelines are triggered when a record changes. In that case, they are not scheduled, but rather triggered when someone doesn't update of some kind in the app. 

  • Thanks Mark, this was very helpful. I am about 95% of the way there now but trying to figure one last thing out. The only thing I really changed from what you said is that I had the pipeline create all the entries in another tracker table but with the attendance NOT selected. Instead, I created a third table with a form that triggers a pipeline to fill in the attendance as checked when the corresponding area and shift is selected from that form. 

    It all works almost perfectly, but I want a field that you can choose any employees that are absent for that day and those attendance check blocks in the tracker table will not be checked from this second pipeline.

    My second pipeline is set up by triggering On New Event when the area / shift are selected. Then it will search records in the tracker table that have the matching area and shift from this new table. Then a For Each Loop that search those records in the tracker table and update the record with the check block as checked. 

    What I was trying to do was add in a multi-select field in the new table where you could select the employees absent (a pre-made list) and those employees would not have their check block checked. I was thinking of doing this by adding that as a filter in the "search records" part of the pipeline (the second step) where the employee in the tracker table does not equal this multi-select field. But it appears you cannot have it do this with multiple employees selected. Do you know if there is a way to make this possible or some workaround?

    • MarkShnier__You's avatar
      MarkShnier__You
      Icon for Qrew Legend rankQrew Legend

      Rather than checking if the employee equals a whole list of employees (which of course it won't unless there was only one employee on the multi select list which was selected, I suggest trying a "Contains" check here you filter where the multi select field CONTAINS the employee name.)

  • Mark,

    I think the issue is that it is backwards from what you were saying. The pipeline is searching if the Employee ID in this other table does NOT equal (or contain, I tried that as well) the Employee ID from the Multi-Select Field that could potentially have multiple Employee IDs selected.

    My other thought with this if the pipeline itself cannot do this is some formula that would parse out the responses of the multi-select field into individual separate text fields, and then I can have the pipeline ensure each of those is not contained in the search. Is that somehow possible?

    • MarkShnier__You's avatar
      MarkShnier__You
      Icon for Qrew Legend rankQrew Legend

      re this:

      The pipeline is searching if the Employee ID in this other table does NOT contain, the Employee ID from the Multi-Select Field

      Can't you just flip the two fields in the pipeline filter to check if the multi select field contain the Employee ID?

      • benrizz17's avatar
        benrizz17
        Qrew Member

        I am not able to since I am searching the records that are generated from the daily attendance tracker (similar to what you had suggested in the first step) in a table. I am searching each record that was generated each day to see if it matches the area and shift of this other table's form to update all records of that area at once via that second pipeline. So the only filter I can have in this step is for the table of records I am searching, not the original one that I am comparing to. See attached of this step in the pipeline.