Search.../

Custom fields

Member profiles can contain custom data, located in the member object at contactDetails.customFields. The member object is returned when calling these functions:

The Members API works with custom fields that are added to the member profile in the Dashboard. Custom fields that haven't been added to the member profile aren't available through the Members API. When retrieving members, empty fields are not returned. You can query, create, rename, and delete custom field definitions with the Contacts Extended Fields API.

Data structure

The member's customFields object contains key:object pairs. The key is defined in the Contacts Extended Fields API. The paired object is structured as follows:

{
// ...
customFields: {
<key_1>: {
name: 'Field 1 Display Name',
value: 'string' // Value stored for the member
},
<key_2>: {
name: 'Field 2 Display Name',
value: 12345 // Value stored for the member
}
}
}
js | Copy Code

The paired object contains these properties:

  • name: Display name. Read only.
  • value: Value stored for the member.

Retrieve custom field keys

For a list of your site's custom field keys, use this function in your backend code:

import { contacts } from 'wix-crm-backend';
export async function listCustomFieldKeys() {
const queryResults = await contacts.queryExtendedFields().find();
// Filters for custom fields (where fieldType is USER_DEFINED), then converts to an array of keys
return queryResults.items
.filter(field => field.fieldType === 'USER_DEFINED')
.map(field => field.key);
}
js | Copy Code

Set a custom field for a new site member

You can set the value of a custom field for a new site member in the contactInfo object using the authentication.register() function. Use a key:value pair in the top level level of the contactInfo object, like this:

{options:
contactInfo: {
'my-custom-field-key': 'my-custom-field-value',
'my-custom-field-key-2': 'my-custom-field-value-2'
}
}
js | Copy Code

Was this helpful?