How I implemented 1-click clock-in/out feature in the “Return to the workplace” PowerApp

This is a challenging time for businesses as they are trying to operate under new health regulations/policies. Microsoft provides an all inclusive Power Apps solution free for businesses that they can use to effectively record, manage and monitor location readiness, employee health and facilities management. You can visit : https://docs.microsoft.com/en-us/powerapps/sample-apps/return-to-workplace/overview to learn more about this free solution.

This solution includes a mobile app that can be used by employees to get a day pass, lookup facility status, or answer the employee sentiment question. However, this does not include submitting the actual clock in/out times of employees. Since Power Apps are highly customizable, we can add this feature to our existing mobile app with a few changes.

Note that below solution was implemented for a business that had only one facility. Later in this article, I will explain how we can easily configure this for multiple facilities/areas. Here is the final result:

Let’s begin..

We can break this new feature into 4 parts

1. Navigation

Add a new button to the homepage and navigate to a different screen. Since there is only one facility, we can directly set a global variable as DefaultFacility and assign the facility ID that corresponds with the office facility record.

See below example, I have mentioned “Operational Area” as the default facility for clocking in/out. You can see that the GUID in above code and the entity record ID are similar.

2. Create new “Employee Visit” record on clock-in and return the created record

This is a button that patches an “Employee Visit” record to CDS upon submission. Let’s check the button OnSelect code:

In the first line, I am creating a variable ClockIn and setting the value as current date/time.

Next, I am patching a new “Employee Visit” record with the EmployeeID/Name/ Facility and passing ClockIn as the “Start Time” field value in the new record.

I set another global variable as PatchedRec and assign the return record value of the patch query so that it can be used to update clock-out time.

3. Update the end time field of “Employee Visit” record upon selecting “Clock-Out” button

Ok, so far we were able to create an Employee Visit record and return the created record to our canvas app.

Now, we need to add another button for “Clock-Out”. Upon submission, we should be able to get the current time and update the “End Time” of the Employee Visit record.

Here is the button OnSelect code:

First, I am creating ClockOut variable to store current date/time.

Next, I am using the existing “Employee Visit” record using PatchedRec and updating the “End Time” field with ClockOut value.

4. Add UI changes

Once clock-in option is pressed, the button should be hidden as users should not click on clock-in again. Similarly, once clock-out is pressed, it should get hidden and display the clock-in button to create a new visit record.

This can be easily achieved by using custom global variables. Here is an example for clock-in button.

In this example, I am creating 2 variables and define them as below:

When clock in is pressed, ci value becomes false and co value becomes true

Set the Visible attribute of each button with above variables. In this example, I have assigned ci as the value for button visibility

Clock icon was used for added visual flare and the icon color can be changed the same way we change visibility using custom variables.

Clock in button OnSelect action changes the variable clockColor. Similarly, clock out button changes the variable clockColor to a different color

We can assign the Icon Color attribute with this variable so that it changes upon clock in/out.

Testing time..

Clock in/out creates a new Employee Visit record in the Facility Management app

Ideas for enhancements

This app was created for a business that has only one office facility. It can be extended for multiple facilities by making a small change.

Instead of setting the DefaultFacility variable with direct GUID, we can add a facility dropdown and then assign Dropdown.selected value as DefaultFacility.

This way, users can select the facility and then clock-in/out.

“Return to workplace” is a great solution for any business. With a little bit of configuration and low code, we can add additional functionality to this solution.

Happy learning!



Categories: Uncategorized

Tags: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: