Why doesn't AirTable enforce unique record IDs?


Short version: Why can’t airtable enforce unique entries for record IDs? This is an important feature and not having it is screwing me up.

Long version: Continuing to spend most of my time working around Airtable’s billing policy. I’ve got a table where users will create work chits indicating they’ve worked x volunteer hours doing whatever. I’ve got 20 chit approvers and I really can’t afford to pay for 20 more users who will only doing approvals a few times per year. So, I’ve got a field in the Chit table that concatenates a URL which is then used to generate a link that goes in an email to the approver. When the approver clicks the link, it opens a new form for a new Approved Chit table and prefills the inputs with the values from the corresponding Chit record.

I was really hoping to use the autonumber from the chit table to populate the Record ID for the Chit Approval table. My plan was to turn on unique enforcement for the Chit Approval table. But just realized that this feature doesn’t exist. My thinking was that by requiring uniqueness on the Chit Approval table, I would ensure that each chit can only generate one chit approval record.

I’m not sure how to work around this one. Any suggestions mightily appreciated. But tired of spending all my energies to work around billing policies and really wishing that there was some policy based on usage rather than number of users.


There are 2 things you could try here.

  1. use the Autonumber field type, and combine the number generated by that with the year or something like that to add to the Name field to ensure each record has a unique number ID in its Name (this is the main method I use for ensuring unique IDs per record)

  2. there is a RECORD_ID() function available for formula fields that exposes the unique ID that Airtable generates for every record that gets created (which they use in URL’s for accessing particular records); you could combine some portion of, or all of that ID in the Name of each record


Thanks, but my goal isn’t to make sure that each record in the Chit Approvals is unique. My goal is to ensure that each prefilled form link can only generate one record in the Chits Approval table. If I could use the Record_ID() from the chit record to populate the Record_ID() of the Chit Approval, that would be perfect, but I’m guessing that I cannot dictate the Record_ID() of a record being created.


So here’s my workaround… I created a table chits. Chits are created by volunteers (club members.) Each Chit includes a formula field for a prefilled form. When a new chit is created, a ZAP sends a message to the appropriate approver with a link for the pre-filled approval form. The approval form populates an Approved Chits table. The new record in Approved Chits triggers a Zap that will update the Approved flag in the original chit. This way, regardless of how many times a pre-filled approval form is submitted, there will only be one approval within the Chits table. It ain’t pretty, and it triggers an additional $20/month for advanced Zaps, but it works.

In case I haven’t said it lately, very disappointing to need all this workaround just because Airtable doesn’t offer billing by usage, only by user.