Save the date! Join us on October 16 for our Product Ops launch event. Register here.
Sep 14, 2020 11:06 AM
Is it possible to delay an action from happening? I really like Slack notifications for new records, but I’d like the action to wait say, 1 minute after the record is created so that I can finish adding all of the fields. Is that possible?
Solved! Go to Solution.
Sep 18, 2020 04:36 PM
Thanks Scott, I appreciate it!
I tried exactly what you suggested but the problem is what I previously described - a placeholder image is uploaded immediately while the actual file uploads in the background, so it triggers the “Attachment field is not blank” filter before it’s done uploading.
I suspect the placeholder image is done as a UI thing so you know that a file is uploading, but the result is that you can’t actually write a rule that says “Run this action when the file is finished uploading”.
Sep 18, 2020 04:41 PM
Uploading of attachments can be a bit tricky. As @Mike_Mauer mentioned, there is a delay between when an attachment field is no longer considered blank and when the image is actually uploaded. And in some cases, if Airtable cannot retrieve the attachment from the url, the image might not ever become fully attached.
setTimeout does work in a scripting app (even though the editor complains about it), but it needs to be called correctly. However, I wouldn’t use setTimeout in a Scripting action for an automation. Scripting actions must complete within 30 seconds.
Instead, I would go about this with a slightly different technique. I would create a new formula field that checks to make sure that there is an attachment and that the last updated time was a couple of minutes before NOW()
. Then I would run the automation off of the when a record meets conditions on the formula field. The automation might not run until several minutes after the attachment is actually uploaded (due to the delays in when NOW
is recalculated, but it will run automatically, and it won’t run unless the attachment is present.
IF(
AND(
{Attachment},
DATETIME_DIFF(
NOW(),
LAST_MODIFIED_TIME(Attachment),
'minutes'
) > 1
),
"run automation"
)
Sep 18, 2020 04:55 PM
Great solution, @kuovonne! :smiling_face_with_sunglasses: :raised_hands:
Sep 18, 2020 05:00 PM
This is very clever, thank you! I’ll give it a shot tonight and report back.
Sep 18, 2020 05:49 PM
I just put an explanation and working demo of this setup on my website.
Sep 18, 2020 06:04 PM
This is awesome, @kuovonne!!
Sep 19, 2020 08:53 PM
Just tested it out and it works! Very clever solution, thank you.
I’m not 100% sure we can consider this completely resolved, but for anyone who is reading this in the future here is the current status:
You can not pause or delay automations by a specific amount of time in Airtable. What you can do, however, is use @kuovonne’s method, which will allow you do delay things in increments of 5-15 minutes (the range is dependant on how often Airtable refreshed your NOW() command).
Jan 29, 2023 02:04 PM
I've been looking into ways to fix this problem for myself, and the best thing I came up with was to create 5 steps (check box fields).
PDF gets generated upon form submission - "Cert In" gets checked when "PDF" not empty - "Step 1" gets checked when "Cert In" is checked- Same for "Step 2" ---> "Step 5". After "Step 5" box is checked AND "PDF" not empty AND "Cert In" is checked, then send "PDF" to user email and mark "Cert Sent" as checked.
Works every time.
Jan 31, 2023 11:18 AM
Hi @kuovonne great solution. I have tried it and I think it is what I was looking for. The only thing is that the automation is working only when running test (I have this problem also with other implementations of this automation). Can you or anyone help?
So I have a grid with supply quantity and date of an order. Sometimes not the whole quantity is shipped, so I wanted an easy form (I'm using interfaces), where my colleagues write the shipped quantity. So, to sum up:
- if the shipped quantity is the same as the expected supply quantity, great, nothing happens and the record changes status to "shipped";
- If shipped quantity is different from zero and the difference with the expected quantity is non zero, the record changes to "shipped" status, the field of the expected shipment (it must be it, as it is the visible field in all the interfaces and statistics) should update and a new record in which the expected next shipment amount is the difference between what should have been shipped and what was really shipped.
I hope I explain myself, it's easier to see than to say. So airtable fails to do this operation. Before using the interfaces, my boss would go to the database and change the expected supply with the shipment quantity; an automation would run with no problem and a new record with the remaining amoun would be created.
At first, instead of using a delay system as the one above, I would just change the expected supply field via the form, but I had many Issues as the automation would run before I could finish typing the number, creating many discrepancies.
Thank you
Jan 31, 2023 11:21 AM
SORRY, missing words
- If shipped quantity is different from zero and the difference with the expected quantity is non zero, the record changes to "shipped" status, the field of the expected shipment (it must be it, as it is the visible field in all the interfaces and statistics) should update and a new record should create in which the expected next shipment amount is the difference between what should have been shipped and what was really shipped.