Tip: How to get a Field ID from GUI for use in API

Hi! I found a workaround that’s helpful for me, so I thought I’d share. If someone has an easier way to do this, please let me know! Apologies if this has already been posted, I didn’t find it after a bit of searching.

The problem I was trying to solve was that when updating a record, a field can be named using its friendly name (e.g. “First Name”), but then if I change it later, even a little bit, my API integration will break. Each field also has a unique ID, prefaced by fld, but I wasn’t aware of any way to actually find that name.

Well, it turns out that you can for most fields, with a little trickery:

Edit: See drassi’s post below for an easier way to do this.

  1. In the GUI, create a new field, and make it a formula. In the formula, refer to the field that you want to know the ID of. (For instance, if you want to know the ID of the “First Name” field, make your formula “{First Name}”.)

  2. Delete the field that you want to know the name of. Now, the formula field will have a red error icon, and when you pull up your formula, the formula will say “{column_value_fldxxxxxxxxxxxx}”. The fldxxxxxxxxxxxx part is your field ID.

  3. Undo the field deletion. Everything will be back the way it was before, nothing will have been harmed by temporarily deleting the field.

This works for any field except the first column, which can’t be deleted as it is the primary key.

Now, you can refer to fldxxxxxxxxxxxx in your API calls and it won’t matter if it gets renamed!

3 Likes

hmm, could you not just use the RECORD_ID() function in your formula? I think thats all you need.

That returns the ID of the record(the row, in the user interface), not the ID of the field (the column, in the user interface).

2 Likes

ah, gotcha. ok, that is a nice hack :slight_smile:

Great find! This is a neat trick to prevent script errors, thanks for sharing.

You can actually find these field IDs a bit faster using your browser inspector, just inspect the header cells and you’ll find a data-columnid html attribute that reveals this field ID. This also allows you to get the ID for your primary key, if that’s ever of use.

2 Likes

And now there’s an even easier way, thanks to Scripting block.

Of course, the Scripting block will require a paid subscription, whereas the Standard API is free.

I believe that all these methods are probably less ideal than using the Metadata API if that is an option.

Unfortunately, the Meta API is only available server-side (i.e., call from backend): " Client-side requests are not allowed"

copied from FB comments, quick steps

field IDs of current active table:

output.table(base.getTable(cursor.activeTableId).fields)

find field in a base when you know ID

const FIELD='PUT_ID_HERE'
let table=base.tables.find(t=>t.fields.some(f=>f.id==FIELD))
output.text(table?.name+'/'+table?.getField(FIELD).name)