Use the `custom_field` subresource to create and store information specific to each contact.

Custom Fields Introduction

Custom fields empower you to move beyond generic contact data and build a richer, more nuanced understanding of your audience. This leads to more effective communication, better segmentation, and ultimately, stronger relationships and better results.

Custom fields are extra data fields you create to store information about your contacts, such as preferences, membership levels, and interests. Your business or organization likely needs to know more about your contacts than just their name and email. Custom fields allow you to capture information that’s directly relevant to what you do.

Custom Fields Use Cases

Use custom fields to organize contacts, send personalized email campaigns, and to identify a targeted audience for a specific campaign such as:

  • Identifying your most frequent customer demographics based on custom fields like “Age Range” or “Industry.”
  • Tracking the effectiveness of different referral sources using a “Referral Source” custom field.
  • Understanding the preferences of different customer segments to inform product development or marketing strategies.

Example

Acme Auto Repair wants include customer-specific vehicle information in email campaigns they send out to their lists. The categories of information they need to store are:

  • Vehicle Make
  • Vehicle Model
  • Vehicle Year

The contact resource does not have any properties that can be used to store this information. The solution is to create custom_fields to store categories of information in a contact resource. Acme Auto Repair creates four custom fields to meet their needs:

  • Vehicle1 Make and Model
  • Vehicle1 Year
  • Vehicle2 Make and Model
  • Vehicle2 Year

A large number of customers have more than one vehicle, so Acme Auto Repair created 2 sets of custom fields. The shop can now personalize content in their email campaigns using these custom fields to insert customer-specific vehicle information into their email campaigns.

Learn more about creating custom fields.

Limits

The custom_field subresource has the following limits:

Maximum number of custom fields in a user’s account 100
Maximum number of custom fields per contact 50
Maximum characters in a custom_field name 50

Custom Field Properties

The following properties apply to a custom field resource depending on the type of data you specify:

  • label: The unique name you choose to describe a custom field category. Required.
  • type: The data type; string(text), or date(date-based), datetime (date and time), single_select (choose one from choices), currency (type of currency accepted), text_area (text),multi_select(allow multiple selections), number (accepts a number), boolean (accepts true or false). The type can’t be updated.Required.
  • choices: Array of choices for custom fields of type: single_select or multi_select. Maximum number of elements for checkbox and radio display types is 20. Maximum number of elements for a dropdown is 100.
  • version: Available if data type is data. Use 1 if using legacy date fields where values are stored as strings (default). Use 2 if using new date fields where values are stored as actual dates to support date comparisons and validations. The version can’t be updated.’
  • metadata: Additional details about a custom field in JSON format. Options include:
    • display_type: String. Determines how Constant Contact renders a single_select or multi_select field. Enums include dropdown, checkbox, and radio.

    • allow_negative: Boolean. For type number, determines if a value can be negative. Default is false.

    • decimal_places: Integer. For types number and currency. Determines the number of decimal places possible in the value.

    • currency_code: String. For type currency, specifies the three-letter currency code to assign. Enums:
      • USD
      • CAD
      • AUD
      • CHF
      • CZK
      • DKK
      • EUR
      • GBP
      • HKD
      • HUF
      • ILS
      • JPY
      • MXN
      • NOK
      • NZD
      • PHP
      • PLN
      • SEK
      • SGD
      • THB
      • TWD example: “USD”
    • integer: Boolean. For types number and currency. Determines whether the custom field should store only whole numbers (integers) without decimal values. If the integer is set to false, the decimal_places must be between 1 and 4. Default is true

    • display_format: String. Specifies the display format for date fields in the user interface. If not specified, defaults to YYYY-MM-DD format. Valid only for version 2 type dates (values are stored as actual dates to support date comparisons and validations). Default is MM/dd/YYYY. Enums:
      • YYYY-MM-DD
      • DD/MM/YYYY
      • MM/DD/YYYY
    • updated_at: String. Returned with results. The system generated date and time that the resource was updated, in ISO-8601 format (for example: 2016-01-23T13:48:44.108Z)

    • created_at: String. Returned with results. The system generated date and time that the resource was updated, in ISO-8601 format (for example: 2016-01-23T13:48:44.108Z)

Custom Fields Workflow

Follow this basic workflow to create and manage custom fields, and apply them to contact resources.

Determine the information categories you need to store for contacts that are not already part of the contact resource.

STEP 1: GET all existing custom_fields to verify whether any of the proposed `custom_field` categories already exist.
STEP 2: Create a new custom_field for each information category.
STEP 3: Include custom_field data when adding new contacts.
STEP 4 Update existing contacts with custom_field data.


[]: