Skip to main content
Question

How Can I Trigger an Action After a Loop Step Finishes in an Automation?

  • November 13, 2025
  • 7 replies
  • 163 views

Forum|alt.badge.img+2

Hello! I need some help with an automation setup.

I’ve created an automation that ends with a loop step, and I would like to add one final action after the loop completes — for example, sending a notification once the last record in the loop has been processed.

However, Airtable doesn’t allow adding steps after a loop, so I’m not sure how to handle this.

What is the best practice to be notified when the entire automation (including the loop) has finished running?
Is there a recommended workaround or pattern for this?

Any advice would be very helpful, thank you!!

7 replies

ScottWorld
Forum|alt.badge.img+35
  • Genius
  • November 13, 2025

@mikkielias 

Unfortunately, this is one of the Top 5 major limitations of Airtable’s automations — Airtable doesn’t let us add any actions after a repeating group or a conditional action.

Please be sure to submit this as a feature request on the product feedback form.

Sometimes these sorts of limitations can be worked around by breaking up an automation into multiple different automations, but that won’t work in your situation.

In your situation, my #1 best recommendation for solving this would be to outsource your more “advanced” automations like this one to Make’s automations & integrations.

Make always performs repeating loops by default, so you don’t need to setup repeating loops in Make.

However, at first it might seem like Make is giving you the OPPOSITE problem of Airtable, because Make always performs ALL subsequent actions for EACH RECORD in your repeating loop.

So, to make Make only progress onto your final action after the final record is finished being processed, you can use Make’s filters to only progress onwards if the “current bundle number” equals the “total bundle count”.

If you’ve never used Make before, I’ve assembled a bunch of Make training resources in this thread, including a very helpful Loom video that I created.

Also, here is one of the ways that you can instantly trigger a Make automation from Airtable

I also give live demonstrations of how to use Make in many of my Airtable podcast appearances. For example, in this video, I show how to work with Airtable arrays in Make.

Hope this helps!

If you’d like to hire the best Airtable consultant to help you with anything Airtable-related, please feel free to contact me through my website: Airtable consultant — ScottWorld


TheTimeSavingCo
Forum|alt.badge.img+31

My workaround for this involves a new table where each record is a single automation run so that you can track the items in the repeating group and whether it’s complete and an automation that triggers off that table!

I’ve set up an example here for you to check out

Here’s our tasks table:

And here’s the rollup table:


The automation triggers when we tick the ‘Run automation’ checkbox and it will:

  1. Find all the records in Table 1
  2. Create a new record in the Rollup helper table and link all the found records to it
  3. Loop through them and tick the ‘Loop Complete’ record

In ‘Rollup’, you can see that there are two count fields, one to display the total number of linked records, and another to display the total number of linked records via a conditional:

We then have a formula field that’ll compare the two against each other, and once they match it’ll output ‘Complete’, which in turn will trigger another automation.  Here’s a gif of it working:

 


Forum|alt.badge.img+3
  • Participating Frequently
  • November 17, 2025

Good question, while Airtable does not allow this action natively, a potential workaround for this would be to add a script step at the end of the action and perhaps use scripting to perform whatever action you need completed.  Just make sure you get the Total Number of iterations and iteration number as a variable. That way you can kind of filter it out and then complete the step on the last iteration.  It might be tricky but it could work, let me know


Forum|alt.badge.img+2
  • Author
  • New Participant
  • November 19, 2025

Hi! Thanks again for sharing your loop/rollup approach, it makes a lot of sense. I tried applying it, but I’ve hit one major problem in my workflow.

In my case, when I trigger the loop, the records I need to process don’t exist yet. They are created gradually and one-by-one by a separate Airtable automation that also uses a loop. Multiple searches can also be triggered close together.

Because of this, when the main loop runs, it doesn’t know which records belong to the current search run. This causes two issues:

  • Sometimes it finds no records because they haven’t been created yet.

  • Other times it picks up old records from previous runs, especially when different searches share the same city name.

So the hardest part is:
🧩 There’s no reliable way to match only the records generated for the current run, since they don’t exist yet when the loop begins.

Do you have any recommended pattern for this type of scenario, where two automations with loops depend on each other, and records for the second one arrive gradually?

 


ScottWorld
Forum|alt.badge.img+35
  • Genius
  • November 19, 2025

Actually, after you perform a “Find Record” action in Airtable, it will tell you the number of records that it found.

It calls this the “length”.

So you can use this “length” — before your repeating loop begins — to set the total number of records in another table or in a JavaScript.

Then, you can use some of the tricks outlined above.

Alternatively, as I mentioned above, for me personally, I find it to be much easier and much more straightforward by using Make’s advanced Airtable automations for this sort of an automation, because no workarounds are needed. All the functionality that you’re looking for is natively built into the app.

And most importantly of all,  be sure to send this as a feature request to the Airtable product feedback form — the ability to perform an action after a repeating loop or a conditional action.

Hope this helps!

If you have a budget and you’d like to hire the best Airtable consultant to help you with this or anything else that is Airtable-related, please feel free to contact me through my website: Airtable consultant — ScottWorld


TheTimeSavingCo
Forum|alt.badge.img+31

Hmm, that’s an interesting one.  Could you describe the business logic for both of the automations and what we’re trying to do please?  Once I understand the flow I’ll try to create it on my end and I’ll see what I can figure out!

I do free half hour calls so if the logic’s really complex it might be simpler to hop on a call, and you can grab a time here!


Alexey_Gusev
Forum|alt.badge.img+25
  • Brainy
  • November 25, 2025

Hi,
I encountered this problem before, and I was just optimistic and put ‘All OK’ notification before the loop. In my workflow, actions that could gone wrong, were placed at the beginning part, so it’s acceptable for me.
But now I just thought ‘what if’, and found a bit better solution
 

Automation with webhook must be created to make notification
Then:
script step added to loop
 

In script, there are two input parameters, current value and total (whole list)
call for webhook will be happened only when last element == current value
 

other important thing is variable list - you should place there anything you want to pass to the webhook. 
variable name can be any, but it should be an object, means format is
{ name1 : value1, name2 : value2 ….}
in my example name1 is msg, and value is string that summarize operation.
I also use nice JS feature - you put just a variable in object declaration instead of ‘name:value’,
and variable name became name of an object property. I passed total as well (for no reason, just for example)

Second, the webhook
 


 

Date Time point looks a bit strange, but I think it’s ok for notification. there are some ways in can be transformed in a more readable form.

Setup is quite clear
 


Code part, to paste
 

let {current,total}=input.config()
let list={msg:`Following items were created: ${total.join(',')}`,total}
console.log(list) // line to show data passed to webhook, can be skipped
let webhook= 'https://hooks.airtable.com/workflows/v1/genericWebhook/id_skipped_lnk'
let options={method:'POST', body:JSON.stringify(list),
headers:{'Content-Type':'application/json'}}
if(current==total.pop()) await fetch(webhook,options)