Change Custom Field Type and Values

I have several custom fields that are critical to running my business. For example, one is called “Term” and contains the values [3, 6, 12]. When I first created the custom field I selected “multiple choice” but it really needs to be “single choice”

Is there any way to change this? If not, has anyone exported ~5k customer records, modified a custom field in the app, and then re-imported those 5k records safely without losing data most importantly stored cards on file?

I have done my fair share of export > modify stuff > import with the same Square ID and not had issues I have just never done it with the entire customer directory so I am a bit nervous

Are you making all these updates within the Seller Dashboard or are you doing them with our APIs? If your doing it with the Dashboard you can update the custom field to be single choice . You’ll need to delete the custom field and create a new one with the correct selection.

As for exporting and updating the customer record you can create a copy of the original if your worried about any mistakes. :slightly_smiling_face:

This is all done through the dashboard. No API. I know that I can delete the old and create a new one however then I would lose 5k records worth of business critical history. I need to retain the history of the selections in these fields.

How do I ensure safety when exporting entire directory > delete custom field > recreate custom field> import back into Square ?

I CANNOT lose this history nor can I lose the stored cards on file

Okay, since this is all being done on the Seller Dashboard I’d recommend reaching out to our Customer Success team. This Forum is primarily for our 3rd party developers building with our APIs and SDKs. :slightly_smiling_face:

Thanks Bryan! I did reach out to them but I am sort of stuck in a gap that Square has, the Customer Success team (even the LMDA) is super nice but they do not have the engineering experience to answer my questions, is there someone at Square on the engineering side that could do a zoom with me?

What questions were they unable to answer? They’re trained in exporting and importing customer CSV files. :slightly_smiling_face:

They were not able to answer my initial question posted:

"I have several custom fields that are critical to running my business. For example, one is called “Term” and contains the values [3, 6, 12]. When I first created the custom field I selected “multiple choice” but it really needs to be “single choice”

Is there any way to change this?"

Unfortunately, there isn’t a way to modify an existing custom field to change it to single choice. You can create a new custom field with a different name and add customers to that field. Once you’ve added all the customers to the new custom field you can remove the old one and re-name the new one to be Term so it behaves as intended. :slightly_smiling_face:

So if I have 5,000 records is it safe to export all of them, change that data and then re-import? I just want to ensure I do not lose all my 5,000 stored cards on file

Yes, your safe to export 5,000 customers. Cards on file don’t export. Only if you remove the customer profile will the cards on file be effected. Since your modifying the profile it wont effect the card on file. :slightly_smiling_face:

Excellent, just to confirm. As long as I pass the “Square Customer ID” back to Square via the import then I can safely change the data on my 5,000 customers and not lose their card on file when I re-import them?

Yes, that’s correct.

With all the recent improvements/enhancements to Square’s API capabilities, is there a way now to programmatically change a custom field type? For example change a Number to String which shouldn’t result in type conversion issues.

In the UI it isn’t possible, but hoping there is a workaround to avoid creating fields, migrating data, and deleting other fields. Ideally we would like to maintain the same API field key to avoid changing a number of other things downstream.

Currently there isn’t a way to edit a customer field. If one needs to be edited you’ll need to first create a new field and migrate all customers to the new field then remove the old custom field. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face:

I have not even done what I needed to as I stated above for fear of messing up all my data. Basically I need to

  1. Export all customer data late at night when nobody is using the system
  2. delete all the fields I want to change
  3. remake the fields i want to update with the correct data type and update any values
  4. make any updates to the exported data if needed (in my case it is since i am changing values)
  5. Re import back to Square and pray to God nothing gets jacked up

I am very nervous to do this and hope Square can allow for data type and value changes in the future soon

I did want to update this thread and let everyone know that I successfully cleaned up all my customer data fields using the following method:

  1. It is a good idea to start with a solid base so I cleaned up all duplicate customers
  2. Exported CRM data file as csv
  3. Delete each custom field that I wanted to change the type and values
  4. Re-create each custom field with the same exact name (may not be necessary since you could change the name in the csv file) and updated data types and values where needed
  5. Performed the surgery in the csv file using Excel to update values and remove values that had multiple selections since we were moving to single selection
  6. Kept ALL FIELDS and most importantly “Square Customer ID” since this is the only way to not lose the card on file.
  7. Deleted the “Buyer Fields” such as Creation Source, First Visit, Last Visit, Transaction Count, Total Spend etc. Although I am not sure that is necessary either
  8. Re-imported the new modified csv file into Square CRM

It did take a good while to load the 6k records but it worked and I did not lose any card on file information and got my values and fields updated

@Bryan-Square can you review what I did and provide some commentary or feedback if there are any risks with those steps or anything I could do better (maybe even skip?)

Hey @ff.clt! Glad you were able to clean up the fields, and thank you for sharing your steps.

They look good to me. The Customers import on Seller Dashboard should not even let you change the Customer ID even if you were to change it accidentally in your file (since the identifier is generated by Square).