Need to pause / start seq at a specific time - how?

I can’t find a CLOCK type module in Make.com

From other platforms, I’m used to getting a new start time for my script about every 5 minutes. If my script learns the next start time is 9:05:32 am Dec 8, I then add that as the variable for the PAUSE UNTIL module. Since that doesn’t seem to be available, I’ve resorted to calculating the unix epoch seconds until start and subtracting the current unix epoch time to get a time in seconds until start. This is not cool and - for some reason I’m unable to determine - also has a pretty serious drift in accuracy.

Anyone got a better solution? This has got to be on everyone’s top 5 go to modules needed. If not, you are luckier than me.

Thanks,
Ryan

complete with midjourney image

Assuming the default “run every 5 minute” schedule setting doesn’t work. I can think of 2 options that might work:

  • Trigger the scenario’s externally using a webhook

This makes the trigger execution instant (or near-instant taking in account potential system/network delays etc). This generally has my preference, but it isn’t always possible to fire webhooks from external systems

  • Using datastores

Another option could be to implement a datastore. Datastores are generally used to push times to hours/days (as we can only sleep for 300 seconds max), but could have a use here as well.

The datastore can be a fairly simple one, with just a timestamp field of your “initial” execution timestamp. If you know it’s every 5 minutes, you set the scenario to check every 4 minutes. You then calculate the difference between now and the timestamp it got from the datastore. Using that difference, you can make the scenario sleep for additional seconds before it starts doing stuff. And at the end of the scenario, you can insert a new timestamp into the datastore with it’s next timestamp.

The issue with this, is that it’s hard to get specific to the second. Because of a potential variability in the execution time of the scenario. For example if the “do stuff” is a HTTP request to some system, that can take 1 second, or if the system responds slowly, it can take 5 seconds (for example). So with enough changes in the duration of execution, it might completely botch the cycle you need, and miss triggers or delay them for too long. Ideally, you’ll want to trigger the scenario externally using a webhook. As that would give you the most control over when it runs (if you need it down to the seconds).

That said, the above is just an idea :slight_smile: there might be better solutions, and I might be oversimplifying (or overcomplicating) it.

2 Likes

Thanks for your time. So with a datastore… you are suggesting something like saving the date in a field of a db, right? Then it would be a step in seq and the seq would be restarted and the db module would enable the seq to “proceed” or “sleep for x” and restart seq? Just trying to get my mind around it because there is no convergence module to allow the seq to proceed post sleep.