My recommendation below is based on the assumption that employees will check in themselves, not you doing the check in for them.
Step 1: T1 should contain an email column since it will be your User Profiles table. Then, you create a numerical value representing today, using a math column.
YEAR(N)*10000 + MONTH(N)*100 + DAY(N) to get a YYYYMMDD format, with (N) being the current date/time value. Let’s say today will return 20220722.
Step 2: Everytime a user checks in, I think you just keep it to one table instead of using 2 like your example. You would keep a boolean of whether the user actually goes to work or not.
If the boolean is not true, you show a text entry telling the user to write the reason for not going to work, then once they have fillled that you allow them to submit. If the boolean is true, you allow them to submit directly.
You will use a special value “form component” to add the timestamp of the form being submitted to the destination table, alongside the signed-in user’s ID or email.
Step 3: Next, in the user profiles table, create a template joining the user’s ID/email with the current day’s numerical value (derived in first step). It would look like:
“UserID001 - 20220722”
Step 4: In the destination table where you store the form submissions, create another math column like this to get the numerical value for the submission timestamp.
YEAR(N)*10000 + MONTH(N)*100 + DAY(N) to get a YYYYMMDD format, with (N) being the submission date/time value.
Then create a template column joining the user’s ID/email with the numerical value just above.
Step 5: Finally, create a relation from the user profiles table with the submissions table using the 2 template columns above, if there’s a match, it means the user has submitted for today and should not see the form again. You can hide the form button when the relation is not empty.