Instead of using condition option to look directly at the {Publish Time} field (guessing a name for now), I suggest adding a formula field named something like {Publish Trigger}, with a formula something like this:
NOW() > {Publish Time}
That will output a 1 when the current time—represented by NOW()—is later than the publish time, and 0 otherwise. Then you can set your automation conditions to be when {Status} is “Ready to Publish”, and {Publish Trigger} is 1. Or you could condense both conditions into the formula, and then the only automation condition would be when {Publish Trigger} is 1:
AND(Status = "Ready to Publish", NOW() > {Publish Time})
There are two issues with this system that you need to be aware of:
- The
NOW() function doesn’t update constantly. It updates about every 15 minutes when the base is open, and roughly every hour when it’s not (according to the documentation), so the triggering isn’t going to be terribly precise. It’s also extremely unlikely to be an exact match, which is why I used > to compare the two times, not =
- The
NOW() function calculates time based on GMT, not your local timezone. A more accurate method of comparison is to figure out your local timezone’s offset from GMT and add that many hours to the NOW() value. For example, if your local time is five hours later than GMT, here’s that approach with 5 hours added to NOW().
AND(
Status = "Ready to Publish",
DATEADD(NOW(), 5, "hours") > {Publish Time}
)