🆕 Choice component now works with Airtable link columns

Choice component can now be used with Airtable link columns. You will be able to choose from records in the linked table:

For now this is for Glide Pages only.

11 Likes

Excellent!

2 Likes

Thanks for making progress on linked columns, but I think this misses the main reason why I would need them. Let me share my use case, because I think there are more people like me.

I admittedly don’t understand or know the limitations with linked records. I’m not overly familiar with Airtable. But, based on your video, you should be able to add Column Value, User Profile, and Special Value components to your form, which will automatically populate columns with things such as the job ID and user ID without the user having to enter anything. This is normal procedure for other data sources, but again, I’m not sure if there is some sort of airtable limitation that I’m not understanding.

This is how we would HOPE it to work, but unfortunately, link fields in AT are read only (Glide sees them as a relation column, not a basic column).

1 Like

Got it. That’s obviously the piece that I wasn’t understanding.

1 Like

Yeah, can’t write to them, thus can’t create new relations, just new rows.

@jacobgorthy I think you want to pass the existing Job record as a value in the form.

@Mark can we enable link columns as form values?

I think we just need the ability to write to link fields…not sure how that’s going to work though because Glide interprets them as relations.

1 Like

Just need to be able to write to a linked record column in Airtable via a form. That will let me link new records that are being created by the logged in user. Which is pretty much the main feature of any serious airtable base, linking records from multiple tables together.

Please let me know if you need a PM for the day, we can spec this out in like 30 mins with a zoom.

1 Like

This is exactly my problem. It is disappointing. Hope the integration will be done soon.

@Tgattlen Have you seen this? Not sure if it solves your problem (I don’t use airtable), but it appears there is an update.

3 Likes

Not seen, I will have a look. Thanks for sharing
T.

1 Like

First, thank you @david for listening to the community and working on this!!

We are close to the finish line, so let’s get the last few meters done together.


The problem here is that Glide treats the concept of a Relation aka linked record completely different than Airtable (and other regular databases).

Normally you have a field (Relation) that is writable and its value is (mostly) the ID of a row of another table. This is the behavior of a regular database and also how Airtable is handling its “Linked Record”.
For this reason, Glide would just need to allow us the write to that specific field.

In the Glide world, a “Relation field” is basically a “Look up” field that only needs to be read-only. When configuring the field you select “Look at column X and see if the value of X is present in table Y”.


As @jacobgorthy and @Robert_Petitto mentioned we “just need to write to the fields”.
The Airtable API treats these fields as arrays, so as long as Glide wraps the value that is going to be written, as an array, this should be a relatively simple change.

Happy to support you guys for free to get this done for Pages and Apps.
This missing feature is one of the few last pieces to make Airtable a first-class citizen.

Thank you!

Not ever having used Airtable, I will say that Glide relations are not fields. If a linked record is a field, then to Glide (right now), that would just be an ID column (which could be linked via relation to an ID column in another table). From your description, it sounds as though AIrtable just makes the relationship behind the scenes, and in Glide, it would be a separate computed column.

The difference I’ve had to wrap my head around is that it can be a relationship of one to many. So it really is not a field. It is a computed column.

When using Sheets or Excel, we’ve come to expect that computed columns (like relations) only exist on the Glide side of things.

So even in “regular” databases, the relation is just an index into an existing column – a field that can be written to and even modified. Glide puts that “index” into a separate computed column which is called a “relation” column. But it doesn’t mean the same thing as what Airtable is calling a “linked record” column – which from your description is an ID or Index.

It seems that the Glide implementation is trying to treat it as a relation column, when it should just be a regular column with (perhaps) a relation column added automatically by Glide. Then your App or Page could choose which column (the regular column or relation column) it was needing in any particular circumstance.

Not sure how they are going to address it – I’m just speculating based on my years of experience with databases in general.

Yes, I responded in another spot that perhaps Glide should just treat them as normal columns and then auto-add a corresponding relation column (rel-SameName) so the developer can choose which column is used in which scenario.

1 Like

Thank you for picking up the conversation @David_Gabler

You are right, besides the Linked Record field being “just” an ID column, there is some metadata that is being configured and stored in the Airtable column, to make this work.

In Airtable you are configuring the column as a “Link to another record”, similar to how you are setting up a “Relation” column. The difference is just that the ID (foreign key) is inserted directly in the field itself. In Glide another separate text column is needed where the ID is stored.

Glide is handling the One-to-Many relationship my storing multiple values as a “text with comma-separated values”.
In Airtable the value of the many IDs are stored as an “array of ID-strings” under the hood and through the API. So I would say it’s a non-computed column, as its values are just an array of IDs. But there are additional metadata needed, which is available as a separate metadata API.

From the Airtable documentation:

Glide just added the possibility of an Array field with the relativly new computed column fields. I believe not having actual array structures is the missing link here.


Agreed.

I general I see that Glide is trying to have at least logic as possible in its columns itself. I believe it’s a similar reason to the missing arrays, there is also no simple “drop-down” column/component, which would allow a user to select a value from a predefined list.
This is also possible in Airtable, and right now not supported in Glide.

Yes, you can do it, but the predefined list must be in a separate table (or a relation field), and then the choice component asks you to specify the source for the dropdown and the target field for the dropdown – where to place the chosen value, and what value to place. For example, you could show a list of items, but when they select one, instead of storing the Item Description, you store the Item ID.

:raised_hand_with_fingers_splayed:Seriously @david we need the option component search feature when writing in an Airtable linked field as we can have hundreds or even thousands of linked options to choose!

Strange, this should be available!