Glide picks up the time from user devices (‘current time’) which is fair enough but annoying and causes issues in some cases.
Use case:
my telemedicine app has users and agents (video call)
both are in different apps, but working on the same glide table (TestFlow)
sometimes the user sets values, sometimes the agent
example - agent time stamp drops put on the test cassette… to start a timer
Problem>
If an agent is in a different time zone to the user, the agent time is used. So…. It’s 1600 for the user, but the agent might be 2 hours ahead so the time is set at 1800 (in the future!)
I can work around with ite checks in a clumsy way, and no, I can ask the user and agent their time zone all the time, even for on boarding.
A better solution would be a second time - the System Time. Unless I’m missing a trick.
Maybe you’re already doing this, but one thought is if you have both the user and agent pushing a button or something around the same time, you could capture their local time and maybe some some math to calculate the difference to the nearest hour and use that difference to offset timer start time to the user’s or agent’s local time. Still clumsy, but a thought. I agree that a GMT or System time would make it a lot easier to figure this out.
Fortunately, I had two timestamps around the same time:
user request video (e.g. 11:00)
agent joins video (e.g. 11:03… or 12:03 or 09:03, etc)
Problem fixed with two columns (with some help from this solution, and implementation courtesy of my son, Patrick - 17 years old, programming algorithms to solve Expert Sudokus in less than 0.4 sec… working on Glide as my intern
BUT I do not always have two timestamps from both sides. I have a challenge to work out what to show agents … before they have interacted with the user.
Right. Recorded timestamps are the issue. Any user with a UTC time that’s later than another user will appear to be interacting with the app in the future.
Agents click a button to assign themselves to a waiting user
Multi-step action does the following:
Writes the TestID into the Agents row a GSheet column
Sends a webhook to Integromat with the AgentID and TestID
Integromat then writes the TestID back to a column in the Agent sheet, along with a UTC timestamp
Agent is then put into a holding pattern
Once those changes sync back to Glide (takes about 5-10 seconds), a relation is formed, and the Agent is allowed to proceed to the video call with the user.
If multiple agents try to assign themselves to the same user, then the one with the earliest UTC timestamp (from Integromat) wins the race, and the others are booted out of the “waiting room”
Thanks @Darren_Murphy and @Simon_Hill, I will see better the Simon’s idea to verify if this covers multiples timezones at the same time (I’m using my phone and I can’t see very well the video… sorry).
Darren, my solution doesn’t use Webhook (I understand your idea) and works with Glide time and its Now() function natively.
In short, I just made a new Glide time but using the GS timezone so, every time Now() updates Glide time (every 10 sec), my new time (Column) is updated as well in GDE in order to be used at any moment.
You will have the time based on your GS timezone on your APP always.
I will explain it with some pics later when I come back to my home soon.