A delay is not stranger than it sounds, you can simply pause/wait before the next activity should happen. The delay may be as short or as long as you would like, and you can decide between what times and on which weekdays the next activity should begin.
Option 1 - Adjust to nearest time between X and Y
This means that if an activity occurs, so that it is outside the adjusted time/day, it will be scheduled for the next valid time. Example:
In this case we don't want to send our communication in the middle of the night and accidentally wake someone up from their beauty sleep on their birthday! Therefor we make sure that no one will pass on to the next stage at any other hour than between 08:00 and 17:00.
Option 2 - Wait for X time
This type of delay is like a scheduled pause button and makes sure that the next step will be executed after a time period of X minutes / hours / days / weeks / months / years. Here is an example:
We want to send an email message and have a conditional split based on if contacts open or don't open the email message. But there is no point of checking open rates straight after the send out. The recipients have barely had the chance to either receive or open the email yet so all contacts will go down the "No"-route.
If we add a time delay and wait for 1 day before we check for Opens the flow will definitely work more efficiently!