Help

How to avoid firing the triggers while I'm still typing

Solved
Jump to Solution
3678 7
cancel
Showing results for 
Search instead for 
Did you mean: 
Weian
5 - Automation Enthusiast
5 - Automation Enthusiast

I have a field of long text, and I set an automation that could help me send a notification Email to my collaborators after I update that field. However, the trigger would be fired several times, when I was still typing(no matter using when the record updated or when record matches conditions)

Is there any way to make the trigger only be fired after I finish typing? (for example click else where and leave that filed)

Thanks a lot!

1 Solution

Accepted Solutions
Ben_Young1
11 - Venus
11 - Venus

Hey @Weian!

A reliable workaround I have implemented is to create a formula that returns a dynamic value used to trigger an automation that would send a notification.

Specifically, the formula calculates when three or more minutes have passed since the last edit to the record.
Once three or more minutes have passed, then the value of the field returns something like "Send Notification." If the "waiting period" is still in effect, then a value of "Pending Notification" is returned.

That value is plugged into a conditional automation trigger that will then fire off whenever a record's formula field returns that value.

Airtable's date/time formula functions only keep accurate within a variance of 5-15 minutes depending on a few conditions.
With that in mind, this formula will make sure that the automation never fires while someone is editing the record.
There's a few more opportunities to add depth to the workflow, but here's an example of what it looks like at its most basic form.

For the sake of this example, the NowLast Modified Time, and Notification Due fields are not required. They're simply there so you can see within the screenshots what the data looks like.

In this first screenshot, you can see the current value of NOW(). You can also see that the time of my last edit is identical to the value of NOW().
In this example, I have the waiting period set to be five minutes after the last modified time. This value is reflected in the Notification Due field.

Ben_Young1_0-1676860919252.png

Here's what happens once the waiting period has lapsed and the current time is now after that calculated waiting period.

Ben_Young1_1-1676860952799.png

Here's the formula I used for this example:

IF(
    LAST_MODIFIED_TIME(),
    IF(
        NOW() >= DATEADD(LAST_MODIFIED_TIME(), "5", "minutes"),
        "Send Notification",
        "Pending Notification"
    )
)

You can tweak the number of minutes or even the unit of time itself if you'd like, just keep in mind what I mentioned above about the error variance that Airtable's date/time functions tend to operate in.

See Solution in Thread

7 Replies 7

I'm afraid not.  The usual workaround is to add a checkbox that you mark after you've finished updating the field.  The automation would then trigger when the checkbox is marked, perform whatever actions you set it to, and finally also clear said checkbox

Ben_Young1
11 - Venus
11 - Venus

Hey @Weian!

A reliable workaround I have implemented is to create a formula that returns a dynamic value used to trigger an automation that would send a notification.

Specifically, the formula calculates when three or more minutes have passed since the last edit to the record.
Once three or more minutes have passed, then the value of the field returns something like "Send Notification." If the "waiting period" is still in effect, then a value of "Pending Notification" is returned.

That value is plugged into a conditional automation trigger that will then fire off whenever a record's formula field returns that value.

Airtable's date/time formula functions only keep accurate within a variance of 5-15 minutes depending on a few conditions.
With that in mind, this formula will make sure that the automation never fires while someone is editing the record.
There's a few more opportunities to add depth to the workflow, but here's an example of what it looks like at its most basic form.

For the sake of this example, the NowLast Modified Time, and Notification Due fields are not required. They're simply there so you can see within the screenshots what the data looks like.

In this first screenshot, you can see the current value of NOW(). You can also see that the time of my last edit is identical to the value of NOW().
In this example, I have the waiting period set to be five minutes after the last modified time. This value is reflected in the Notification Due field.

Ben_Young1_0-1676860919252.png

Here's what happens once the waiting period has lapsed and the current time is now after that calculated waiting period.

Ben_Young1_1-1676860952799.png

Here's the formula I used for this example:

IF(
    LAST_MODIFIED_TIME(),
    IF(
        NOW() >= DATEADD(LAST_MODIFIED_TIME(), "5", "minutes"),
        "Send Notification",
        "Pending Notification"
    )
)

You can tweak the number of minutes or even the unit of time itself if you'd like, just keep in mind what I mentioned above about the error variance that Airtable's date/time functions tend to operate in.

Weian
5 - Automation Enthusiast
5 - Automation Enthusiast

Hi @Ben_Young1 
Thanks a lot! It's really a useful way, and I can hide the calculation field and let it run behind, making my table more concise. Just hope Airtable could make the refresh interval of NOW() function shorter in the future!

Hi Adam, 

I've considered this solution but I'm trying not to add one more field to the table. Anyway thanks for your reply!

How can I modify this formula to only see "Last Modified Time" on a specific field? Right now it is watching modifications related to the entire record. Thanks much!

Hey @LaTrelle_Gomez!

The LAST_MODIFIED_TIME() function allows you to optionally define specific fields that you want to point to. 

Presume you have a single field you want to look at called 'Status'.
To make this formula look exclusively at that one field, the formula would look like this:

IF(
    LAST_MODIFIED_TIME(),
    IF(
        NOW() >= DATEADD(LAST_MODIFIED_TIME({Status}), "5", "minutes"),
        "Send Notification",
        "Pending Notification"
    )
)

If you wanted to have it look at multiple fields, it would look like this:

IF(
    LAST_MODIFIED_TIME(),
    IF(
        NOW() >= DATEADD(
            LAST_MODIFIED_TIME(
                {Status},
                {fieldTwo},
                {fieldThree},
                {fieldFour}
            ),
            "5",
            "minutes"
        ),
        "Send Notification",
        "Pending Notification"
    )
)

You can define as many fields as you need.

Thank you! Works perfectly!