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.

2 Likes

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?

2 Likes

@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

Hi,

Same problem here, I’m duplicating the columns to make them match an id that makes sense in my code. Its annoying having to do this but less annoying than dealing with date1, date2, date3 in my code.
It would be nice to be able to edit the id though @dipro.

2 Likes

I would be a great feature. Doing some automations with webhooks (same) from different boards is next to imposible since I’m not able to map

2 Likes

As a workaround you can set the title of the column to the desired name and then duplicate the column including all data.
The duplicated column id is then named after the title you just set.

So:

  1. rename existing column (or create a new one with the desired data type and name)
  2. duplicate column and data
  3. delete original column from step 1
  4. rename duplicate column to desired name
  5. id and title are now identical
  6. win!
10 Likes

Great tip @JeroenV.

The column ID is currently set when the column is created, and follows these rules:

  1. Column IDs are immutable and generated when a column is created.

  2. To generate the ID, we take the column title at column creation, lowercase it and add underscores for any special characters or whitespace, and then add a random digit to the end (if the resulting ID is not unique).

  3. 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, or a custom title when you duplicate a board.

  4. 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.

Hope that’s helpful for the folks who check out this thread later.

1 Like

3 posts were split to a new topic: Can you change the item ID?

Just came across the need to rename columns for a complex G Suite <> monday.com integration.
While this takes a bit to do on a larger board, it works perfectly.

Thank you!

Thank you for this!! So helpful!

1 Like

this is an AMAZING hack. 100% required for my usecase (using a board with an app where the column names have to be exactly the same for all of our users).

how the heck did you figure this out?? THANKS for sharing. saved my bacon. did i mention THANKS!!

1 Like

Hi there, I read this after I had figured a different way to address this.

I wanted consistent column names between two boards as I was programatically copying data.

I found that if I export the borad to excel. you can set the heading with the desired field names (following the lowercase and underscore etc…)
Create the new version from the excel file. and column names are set…
But I like the dup column for existing data.
cheers.

Hi :slight_smile:

What do you mean by « if the resulting ID is not unique »
Unique to what context?
Unique in the board?
Unique in the workspace?
Unique in the Monday account?

Good question! Column IDs must be unique on the board level.

2 Likes

Changing the column title, then duplicating the column to make its column id match the column title (except lowercased with underscores, and a random digit at the end) worked beautifully until about a week ago. Now if I give the column the title I want and duplicate it, the column id begins with dupl_of_[column title]. So if I name my column “account” and then duplicate it, where a week ago the column id would be account8, now it is dupl_of_account8.

Way less handy :frowning:

Can you bring it back to the way that it was? It is very helpful for my brain to have the column id reflect the purpose of the column, but the prefix dupl_of_ diminishes that benefit.

Thanks for your thoughts :slight_smile:

1 Like

@MSIlydia,

I agree.

You might be interested in this: Creating Columns with Named ID’s

1 Like

Thanks for explaining your use case - I have exactly the same issue here!

I used a version JCorrell’s Integromat solution. Essentially manually create the columns from Integromat using their Create Column module.

It isn’t pretty, but it works very well for almost all column types.

1 Like

Ah, I understand now. Thanks.