Skip to content
Go to Dashboard

Converting Account Field Types

Overview

The Convert type option on a custom field lets you change an existing field’s type — for example, from Choices to String — without changing the field’s key. This is available for custom fields on Accounts, Cases, and Transactions.

Converting a field type is a permanent change to not only the field, but every stored value on that field, and it can’t be undone. Before you convert a field, you should:

  1. Export your data as a backup.
  2. Check the conversion’s data loss risk so you know what to expect.
  3. Time your conversion for low-traffic windows or remove reference during conversion since the field is unreadable and unwritable during conversions.

This article focuses on how to convert fields safely. For the full list of supported conversions, see your Field Editor — the dropdown of available target types only shows conversions that are supported for that field. Not every conversion possible is supported.

Before you convert: export your data

Because a conversion rewrites every value on the field and can’t be reversed, export your records before you start — even for conversions you expect to be safe. If a conversion doesn’t go the way you expect, you can use your exported file in importers to restore records to previous state.

  1. Navigate to the relevant index page (Accounts, Cases, or Transactions).
  2. Optionally filter to just the records with the field you’re converting.
  3. Export the view. See Exporting data from the Dashboard for the full export flow.

Exports from the Dashboard can contain PII. Handle and store the export according to your organization’s data policies.

Recognizing when data loss will occur

Not every conversion loses data, and not every lossy conversion loses data the same way. For instance, these conversions don’t drop any data — every value converts cleanly:

Source typeTarget type
ArrayString
BooleanString
ChoicesString
DateString
DatetimeString
Email addressString
IntegerString
Multi-choicesString
NumberString
Multi-choicesArray of string
HashArray of hash
DateDatetime
ChoicesMulti-choices
IntegerNumber

However, a small number of conversions will predictably drop part of every value, even when every value is valid, for instance:

Source typeTarget typeWhat’s lost
DatetimeDateThe time portion is dropped from every value.
NumberIntegerThe decimal portion is truncated from every value.

These conversions always lose the same piece of information, on every record, whether or not any individual value looks unusual. Exporting records is particularly important for these conversions.

In addition to the data loss inherent in each conversion, making sure individual values match an expected format is the best way to minimize data loss. Values that match convert successfully; values that don’t match are permanently cleared — not skipped and not left in their old type, but set to empty.

Source typeTarget typeConvertible values
StringBooleantrue, 1, on, yes, T, Y / false, 0, off, no, F, N (not case sensitive)
StringDateISO 8601 format (YYYY-MM-DD)
StringDatetimeISO 8601 format with time (YYYY-MM-DDTHH:MM:SSZ)
StringIntegerA valid integer (digits, optional leading +/-)
StringNumberA valid number (supports commas, decimals, scientific notation)
StringChoicesMust exactly match an existing choice option
StringMulti-choicesMust exactly match an existing multi-choice option
StringEmail addressA valid email format
StringArray of stringSplits on commas when present
ArrayMulti-choicesEvery array element must match an existing multi-choice option
IntegerBoolean0 converts to false; any other non-null value converts to true
NumberBoolean0 converts to false; any other non-null value converts to true

Converting to Choices or Multi-choices? The target choice options must already exist on the field before you convert. A value that doesn’t match any existing option is cleared, even if it looks like a reasonable option name.

Converting a field

  1. Open the Field Editor for the relevant object (Accounts, Cases, or Transactions).
  2. Select the field you want to convert.
  3. Choose Convert type, then select a target type from the available options.
  4. Review the data loss warning, if one is shown. If you haven’t already exported your data, do it now — before confirming.
  5. Confirm the conversion. Persona converts existing values in the background and shows you the progress. Note that the field is deactivated during conversion (see below).
  6. Once the conversion finishes, review the summary for any values that didn’t convert. If you exported beforehand, you can look up the original values for any cleared records.

What happens to a field during conversion

Persona deactivates the field for the duration of the conversion, blocking both reads and writes. This means while a conversion is in progress:

  • The field won’t render on layouts.
  • Field cannot be updated or read via the API or Workflows (e.g. account.fields.).
  • You can’t start a second conversion on the same field.

The field is automatically reactivated once every value has converted or cleared, but this means you should plan conversions for a window when it’s OK for dependent integrations, workflows, and dashboard views to see the field as blank, or remove these references and add them back after the conversion has completed.

Best Practices

  • Export before every conversion, not just the ones you expect to be lossy — it’s the only way to recover if a conversion doesn’t go as planned.
  • Confirm your choice options exist first if you’re converting into Choices or Multi-choices — values without a matching option are cleared.
  • Spot-check a sample of your data against the target type’s expected format before converting a field with a “possible failure per record” risk, so you have a sense of how many values might clear.
  • Don’t start a new conversion on a field that already has one in progress.
  • Time conversions for low-traffic windows. Since the field is unreadable and unwritable for the duration, any integration, workflow, or dashboard view depending on it will see it as blank until the conversion finishes.
Was this article helpful?
Thanks for the feedback. It helps us improve these docs.