I am following the instructions here to be able to send slack DMs to our users. The use case is if we haven’t heard from them by a certain time of day, we want to send them a friendly reminder to check in. I have a view setup with the list of users who have not yet filled in an update for the day which I am using for this.
So in the automation, the trigger is not when a record enters view, but rather on a schedule, say every day at 11am. We expect there will be multiple people that this will apply to, so I’m not working with an individual record as the example support article does, but rather a list of records.
My automation currently look like:
Trigger - at a time
Find records - View1 (people who haven’t updated)
Condition: If Find>0 and I have their slackID, then
Send slack message
I’m unsure what to do on the last step because my dynamic usage for sending to userid & then building my friendly message body doesn’t work. It’s including all of the view contents. What I’d like it to do is execute the message for each person in the view, sending a personalized note to each one.
Is there a loop that I should be using in this case in automations? Or am I misusing the slack automation?
Hey Corb, unfortunately I do not think there’s a way for you to loop using automations.
Hmm…for your issue, perhaps you could set up formula field that would detect whether they’d checked in, as well as whether it was past a timing? And if it was past the timing and they hadn’t checked in, the formula field would show “Send message”, and you could have an automation that would trigger on that?
Unfortunately, as @Adam_C mentioned above, one of the biggest problems with Airtable’s Automations is that the “find records” action doesn’t actually work in the way that most of us had hoped it would work, because it doesn’t loop through the found records. It only treats the found records as an array, which is not very helpful in the vast majority of use cases.
First and foremost, please be sure to email firstname.lastname@example.org to let them know how much you would like them to improve the “find records” action so that it loops through the found records.
After that, you’re left with 3 choices:
Figure out a way to trigger each record individually, as @Adam_C mentioned above.
Outsource your automation to a professional automation tool like Zapier or Make.com. I prefer Make.com because it is cheaper and more powerful than Zapier, but it is also more difficult to learn than Zapier.
Ben Green of OptimizeIS.com just gave me a great workaround idea on how to loop through the found records without a script. However, it does require an additional automation, an additional table, additional fields, and additional records.
Basically, paste the array of record ID’s into a linked record field of a new record in another table, and then have another automation that triggers when the linked record field gets updated in the original table.
Thanks @Adam_C - I ended up settling here actually. I already had a formula field that told me if they had reported back in that day, so I am using that and set it on schedule. Anyone who hasn’t reported back by 11am, if the formula =0, then it fires. The change to my original scope was I just pulled out the personalization. I originally wanted to say “Hi Adam - looks like you haven’t checked in” in the slack message. But without any further scripting/looping/research I could just pull out their name and make it generic “Hi - looks like you haven’t checked in”. Since I can pass in the array of email addresses from Find Records and the slack automation pushes a DM to those people individually thankfully. So I just used that approach.