Conditional Automation groups fail if the test is "If Empty"

A screenshot is attached, and the issue is pretty clear: The conditional action group should be selected if a field is empty, they’ve been passed an empty field, and yet they fail to be selected. I have verified that there are no spaces or other invisible characters in the original record that is being tested.
ScreenShot DARKTOWER 22-01-20 (120449) - Airtable_-_Questions_Database

Separately (2nd screenshot), there appears to be no way to “Replace select values from previous steps” with empty values. When I enter BLANK(), the string value “BLANK()” appears to be tested. When I type something and then clear the field, the original value is tested instead of any substitute.
ScreenShot DARKTOWER 22-01-20 (123839) - Airtable_-_Questions_Database

The fundamental issue I’m trying to solve is automations failing when empty values are passed to a “find” action. I’d hoped using conditional groups could prevent passing such empty values to “Find” actions.

I’m also trying to implement backup “Find” actions using other properties in the event the first search fails.

The eventual outcome should be sending an email with a “score report” based on the submitted form–either using an email address in a record found by an action in one of the conditional groups above or, failing that, using an address submitted on the form.

1 Like

Here’s some additional context, in case any generous folks can suggest another way to achieve the desired functionality:

  1. Students (some with an ID record on a table in the base and others without) complete a problem set and enter their answers on an Airtable “Training Submission” form where they also indicate (with a linked record select field) what assignment they’re submitting.

  2. When that form is submitted, automations should search for a “Training Assignment” record ID on another table matching a short (pre-filled) text field on the form.
    a. This is to check if the problem set was assigned by a trainer or completed independently. If it was assigned (i.e. a unique match is found), this form submission should be linked to that record to show that it was completed.
    b. If that short text field is empty, try to find a unique matching record based on a combination of 2 other fields–the assignment selected and an email address manually entered into the form.

else: If no “Training Assignment” record is found, then treat the submission as having been completed independently of any direct assignment, and proceed.

  1. Repeat steps one and two with different fields attempting to find a “Student Training Record” on a third table.
    a. If a matching record is found, add the found record to another linked field on the form submission.
    - This “Student” record is used to track all of the assignments a student submits and compile their performance over time.

  2. Regardless of whether a match for is found or linked for either search, send an email containing a “score report” of the recent submission.
    a. If a “Training Assignment” record is found, also alert the trainer that the assignment was submitted.
    b. If a “Student” record match is found, use the contact info in the matched record and add some extra information to the email.
    - If a match isn’t found, use the email address entered manually with the original form submission.

By using pre-filled text fields in the original form, I hope to enhance privacy and avoid shenanigans that might be enabled if students were able to select a Student Record to link directly on the form.

I can presently accomplish all of the basic functionality if I abandon the fallback options for finding records in the absence of pre-filled text fields containing the Record IDs I want to link, but I’d really like to add some resilience in case a student accidentally changes one of those pre-filled fields.

I don’t want to count on users entering their email address perfectly, and I don’t want users to be able to search for and select their own records for privacy reasons and to prevent mischief.

In case anybody else comes across this, there’s a fundamental limit in Conditional Automations as its presently implemented: only the FIRST matching conditional action group runs, rather than proceeding to attempt other matching conditional action groups.

As a result, for the time being, I don’t think my original vision is possible–at least not within a single automation–as it would require rudimentary branching logic.

Still eager for any advice around automations failing when empty values are passed to a “find” action or a rigorous documentation of the intended use and limitations of find actions.

2 Likes

I’m not sure what you mean by passing empty values into the automation, but yes, conditional automations are currently very limited. For more advanced conditional logic, you would either need to write your own scripts in Airtable or turn to a low-code automation platform like my favorite Integromat:

I’ve gotten a lot of utility from Zapier. In fact, I’m confident that the Airtable database that powers my business would not exist if I hadn’t been able to streamline generating and editing tens of thousands of records across a dozen tables with several hundred fields with Zapier. Combining Airtable and Zapier Is some of the best money I’ve ever spent aside from squirt guns to keep my cats from scratching on stuff without having to stand up.

That money was actually kind of a waste—my furniture is shredded—but they’ve still been fun.

What’s almost unbelievable, however, is that I won’t make a cent for saying this. I’m not even going to post a link. Find Zapier yourself, dear future reader. It’s out there, probably—I don’t know when you’re reading this. If it’s been a while, Zapier might be awful now, so do your due diligence.

Don’t ask me about it though, reader. I’ve got, like, actual work to do. In fact, I’m so busy that if I don’t understand somebody else’s forum post, I might not even consider it an opportunity to bring up Zapier instead—even though Zapier’s my favorite low-code automation platform. That’s a thing people have, right? Favorite low-code automation platforms? Sure, who doesn’t. My favorite is Zapier. I like its Zaps.

Don’t worry that I won’t tell you about Zapier though, future reader—you need only sneeze in these forums to be recommended a particular Zapier alternative. Don’t believe it? Then welcome to the Airtable forums! This must be the very first post you’ve read. Try not to sneeze.