IFTTTDelay is an open-source project that makes it possible to add time delays to IFTTT actions. Follow the instructions below (or check out YouTube) to learn how to use IFTTTDelay.
Get started
This solution requires two Applets.
The first uses the Webhooks - Make a web request action.
The second uses the Webhooks - Receive a web request trigger.
First Applet
You may use any trigger you like to fit your use case.
For the action, select Webhooks - Make a web request and add the following URL:
https://lab.grapeot.me/ifttt/delay?event={EVENT NAME}&t={DELAY IN MINUTES}&key={WEBHOOKS KEY}
Replace {EVENT NAME}
with your Webhooks Event Name. This is up to you and can relate to the function of your Applet, or be totally random. Stick to letters, numbers, and underscores.
Replace {DELAY IN MINUTES}
with your delay in minutes. Note that decimals are supported; a value of 1.5 will mean a delay of 1 minute and 30 seconds. For delays of less than one minute, ensure that you add a leading zero (15 seconds = 0.25). The maximum supported value is 35791 minutes, or around 25 days.
Replace {WEBHOOKS KEY}
with your Webhooks key, which can be found by heading to https://ifttt.com/maker_webhooks and clicking Documentation.
The end result should look something like the below:
https://lab.grapeot.me/ifttt/delay?event=turn_off_light&t=15&key=xxxxxxxxxxxxx
The other sections can all be left as default.
Note that you can also add non-Webhooks actions, or even add additional delayed actions following the steps above.
Second Applet
For the trigger, select Webhooks - Receive a web request, entering the Event Name specified in the first Applet.
Then the queries and actions are up to you!
Including ingredients from the original trigger
You can also include up to 3 ingredients from the trigger/queries of the first Applet by changing the Method of the Webhooks action to POST
, the Content Type to application/x-www-form-urlencoded
, and the body to the below:
Value1=<<<{{Ingredient1}}>>>&Value2=<<<{{Ingredient2}}>>>&Value3=<<<{{Ingredient3}}>>>
Replace the ingredients with your own, and feel free to include less than three.
Canceling outstanding delayed actions
To cancel all outstanding delayed actions for a particular Event Name while simultaneously setting up a new delay, add the following to the end of your Webhooks action's URL:
&reset=1
To cancel all outstanding delayed actions for a particular Event Name without setting up a new delay, change the URL to:
https://lab.grapeot.me/ifttt/cancel?event={EVENT NAME}&key={WEBHOOKS KEY}
Replace {EVENT NAME}
with your Webhooks Event Name.
Replace {WEBHOOKS KEY}
with your Webhooks key.
Disclaimer
IFTTT does not yet natively support adding action delays. IFTTTDelay is an open-source project developed and maintained by a third party, hosted on their private server for free use by the IFTTT community. Make use of this workaround at your own risk, as it comes with no warranty from IFTTT.
Should you have any issues, feel free to contact IFTTT support or submit an issue on GitHub.