Not sure if this has been addressed before, but what is the point of using $Flow.CurrentDate versus TODAY() in a flow when $Flow.CurrentDate shows the UTC date and not the actual date of the users in the.
For example, when using TODAY() in a flow, it shows 2/22/2023 but when using $Flow.CurrentDate, it shows 2/23/2023
Any way around this or is it just better to use TODAY()?
Difference Between $Flow.CurrentDate and TODAY() in Flow
1. $Flow.CurrentDate
- Represents the current date based on the system context.
- In Scheduled Flows, it runs under the Automated Process user, which typically uses UTC timezone.
- Because of this, the value may not match the business/user’s local date.
Example:
If current time is:
- 22 Feb, 11:30 PM (IST)
Then:
- UTC time becomes 23 Feb
So:
- $Flow.CurrentDate = 23 Feb
- Actual user expectation = 22 Feb
2. TODAY()
- Returns the current date based on the user/org timezone context.
- It reflects the business-relevant date, not system UTC.
- More suitable for user-facing logic and business processes.
3. Key Difference
Aspect$Flow.CurrentDateTODAY()
Timezone | System (UTC) | User/Org timezone
Accuracy for users | May differ | Matches expectation
Usage | System/internal logic | Business/user logic
4. Recommendation
For scenarios like:
- Payment reminders
- Due date checks
- Customer communication
Use TODAY(), because these depend on the actual business date, not UTC.
5. How to Use TODAY() in Flow
Since TODAY() cannot be directly used in Get Records:
- Create a Formula Resource
- Data Type: Date
- Formula:
TODAY()
- Use this resource in conditions:
Payment_Due_Date__c = {!TodayDate}