Best Practice to change the type of existing field

Yathvika
Tera Contributor

I would like to change the existing fields type from String to Checkbox and From Integer to Currency,
What is the best way to do this.

Inactivating the Existing fields and creating a new one with the same name is not working as the error is coming up and showing the field with same name exists.

Assist on the best ServiceNow practice approach.

TIA

11 REPLIES 11

Mohammed8
Tera Sage

Hi @Yathvika ,

Even if you are able to change an existing field type from String to Checkbox, it is not a recommended practice  as it can cause hidden issues such as data loss and need to thread carefully

 

The safer approach is to create a new field with the correct data type

If you are receiving an error while creating the new field, it is likely because the system is trying to reuse the same column name. You can keep the same label for the new field, but slightly tweak the backend (column) name to avoid conflicts

 

Thanks and Regards,

Mohammed Zakir

VaishnaviK43271
Tera Contributor

Hi @Yathvika !!

 

  • Do not change the field type directly in production, as it can cause data and script issues.

  • If the table has no important data yet, you can change the field type directly in dev and move it via update set.

  • If data already exists:

    • Create a new field with a different name (same label if required).

    • Migrate data using a fix script / background script (String → Boolean, Integer → Currency).

    • Update forms, scripts, and reports to use the new field.

    • Inactivate or hide the old field (do not delete).

  • You cannot create a new field with the same name, even if the old one is inactive.

Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for.

Thank You

 

@VaishnaviK43271  - Thanks for the response. I agree of creating new field with new type
but if the name is different, there might be different scripts or anywhere existing name might be using and this wil not be correct.

@Yathvika 

you need to identify those scripts, workflows, flows etc and update accordingly and test thoroughly

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Yathvika 

I agree that existing scripts and references may be using the current field name. However, due to ServiceNow’s database design, the same field name cannot be reused with a different type, even if the field is inactive.

Because of this limitation, updating those references is unavoidable and is part of the supported best practice. Creating a new field, migrating data, updating dependencies, and inactivating the old field is the only safe and upgrade-compatible approach.

 

Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for.

Thank You