I'm building an email watchdog scenario that reads unanswered reservation emails from a Google Sheet and fires a Telegram alert if they've been unanswered for more than 12 hours

:bullseye: What is your goal?

Check for unanswered reservation emails from a Google Sheet and then fire a Telegram alert if they’ve been unanswered for more than 12 hours.

:thinking: What is the problem & what have you tried?

the number of hours (in the Telegram message) always reflects a huge number. Maybe the system is calculating in seconds rather than hours: 494682 hours…

:clipboard: Error messages or input/output bundles

The setup:

Scenario 1 stores incoming Gmail emails to Google Sheets, including a Date_Received column
Scenario 3 reads the sheet with a Search Rows module and uses a filter to check if the email is older than 12 hours

What we store in Date_Received — we have tried all of these formats:

formatDate with UTC ISO format stores: 2026-06-07T09:57:40.467+00:00
formatDate with X stores Unix timestamp in seconds e.g. 1749340800
formatDate with x stores Unix timestamp in milliseconds e.g. 1780857589872

The filter condition we are trying:
(now - 1.Date_Received) / 3600000

Operator: Numeric: Greater than or equal to
Value: 12

The problem:
Regardless of which format we store the date in, the result is always approximately 494,682 — which corresponds to ~56 years, indicating Unix epoch (1970) is being used instead of the actual stored value.
Things we have already tried:

dateDifference() — function not found
dateDiff() — function not found
toNumber() — function not found
left() — function not found
parseDate with every possible format string — all return epoch
Storing as Unix timestamp seconds and subtracting — returns epoch
Storing as Unix timestamp milliseconds and subtracting — returns epoch
Using Set Variable module to calculate hours — variable not accessible in filter
All Google Sheets Advanced Settings combinations — no difference

Raw bundle data from Google Sheets module shows:
“1”: “1780857589872”
The value is returned as a quoted string — confirmed text, not a number or date object.
The question:
How do you correctly calculate hours elapsed between a value stored in Google Sheets and now in a Make.com filter condition, when Google Sheets always returns values as quoted strings?
Is there a way to force Make.com to treat the Google Sheets value as a number so arithmetic works? Or is there a completely different approach we are missing?
Any help would be greatly appreciated!

I have filtered this way:

AddHours( FormatDate(‘sheet_value’ ; YOUR_FORMAT) ; 12)

Datetime operators: Later Than

FormatDate(‘Now’ ; YOUR_FORMAT)

My example:

Depending on the format you are receiving, you may need to parse the date.

Another thing, make sure you filter emails that have been responded to as well.

EDIT: In my example: i realized you don’t need to formate the sheet data again if you already did but it wouldn’t hurt

You can also make a formula in Sheets to check if the message has been there for 12 hours

it can give you a TRUE/FALSE ad you can filter based on that value

Hey there,

if the incoming value is a text string, then you need parseDate() first to change it to a date value. In your case:

{{parseDate(1780857589872; "x")}}

Returns 7 June 2026 21:39. Form there you can apply formatDate to rework it as you wish or use a date time filter to check it.

Or you can change the {{now}} value to unix using formatDate and compare that to whatever is coming from the cell.