Rename of column IDs

Hello this is a minor question about the platform: while experimenting with boards and API access, I noticed that the columns keep their ID when renamed, and this is a correct behavior, in my opinion.

The downside of this design decision is that is a column is renamed because it has to be used for a whole different purpose (e.g. a text column renamed from “account” to “notes”), the column’s ID will remain the same, this could make writing a GraphQL query confusing and not self documenting (referring to my previous example: I’m writing to columns account, but I want to store annotations).

Is there a way for the administrator of the board to rename column IDs voluntarily ? This way the names used in queries could be be kept consistent. I understand that probably this is a corner case specific for my use case, but I’d like to get the community’s feedback.

I had this exact same question a month ago. My context arose when investigating the column ID anomalies in relation to using webhooks, and confirmed using the API interface, following the duplication or renaming of a column, or the duplication of a board.

I ended up getting in contact Dipro on the help desk. I’m sure that he would not mind me sharing his response here:

Column IDs are immutable and generated when a column is created. To generate the ID, we take the column title at column creation, lowercase it and add underscores, and then add a random digit to the end (if the resulting ID is not unique).

Since the ID comes from the title at creation, the column ID will be the column type when you add a column from the column center, and the column ID will be a custom title when you duplicate a board.

And, because of the random digit at the end of the column, there is no way to set or predict the column ID of a column that’s been recently generated.

I had originally thought that an administrator controlled code snippet to reset the column IDs may be an option. But for now, I just note that column IDs will rarely align with the actual column titles, and that any explanation to others needs to include a note to ignore the column IDs as they are meaningless.

Thank you for your feedback @snicho, I won’t get further into this and treat column IDs as random strings.
Having a nice column ID would have been a nice option for writing more readable addons. I assume that for Monday’s developers columns are just an end-user by-product, treated in code using general purpose code.

From my point of view, I’m developing a domain specific app for our business use cases leveraging Monday.com’s platform as a sort of backend storage and collaboration platform. Considering my use case it would have been great to reference column ‘email’ instead of column ‘emailXX’, likewise column id ‘comments’ would beat a generic id ‘text8’ :slight_smile:

An exception I’d like to report that if you want to update an item’s name, there’s a ‘special’ column with id: ’name’ in your item. Is an item’s name stored always in a column with a specific id?

@gianluigi @snicho – this kind of conversation is why I love the developer’s community!! :beers:

Yes, generally speaking column IDs are just placeholders to ensure we can reference each column in a unique way. The item name is always stored in a column called “name” as well.

If you need to keep track of your column IDs despite changing names, I’d suggest using the columns object on each board to keep track of which title corresponds to which ID. This is the approach I’ve used with some of my code as well :slight_smile:

Let me know if that makes sense! :brain:
Dipro