Wix Answers Help Center
Custom Fields APIs
Custom fields can be created for user, agent, company, or ticket records. Once created, their values are filled and retrieved using the relevant user, agent, company, or ticket API methods. See Users APIs, Agent APIs, Company APIs, and Tickets APIs.
Agent vs User Custom Fields
When you get an agent object (using an agent API), any returned custom fields are those specifically configured for the agent (if any). When you get a user object of an agent, any returned custom fields are those specifically configured for the user object (if any); agent custom fields are not returned.
Multilevel Fields
Currently, an additional field type - multilevel fields - is available only for tickets. A multilevel field is one in which sublevels are available, depending on the value selected for the top level. Each level has a heading. Levels may be 10 levels deep (the top level and nine sublevels). Each sublevel under a value may have up to 50 values. Values under a parent value must be unique, but the same value may appear under different parent values.
For example, you may have:
- Level 1 Heading: Payment
- Level 2 Heading: Type
- Level 3 Heading: Item
- Level 1 Values: Refund, Discount, Other
If the user selects Refund at level 1, then level 2 appears: - Level 2 Values (under Refund): Wrong Size, Bad Quality, Other
If the user selects Wrong Size at level 2, then level 3 appears: - Level 3 Values (under Wrong Size): Leggings, T-Shirts, Tops, ...
- Level 2 Values (under Discount): ...
Add Custom Field
Multilevel custom fields
For multilevel custom fields, see Add Multilevel Custom Field.
Users: POST https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields
Tickets: POST https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields
Agents: POST https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields
Companies: POST https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields
Add a custom field for a record. Note the following maximums:
Tickets: POST https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields
Agents: POST https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields
Companies: POST https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields
Add a custom field for a record. Note the following maximums:
- Numeric (number): You are limited to 20 of these custom fields for tickets, and 15 for users, agents, or companies.
- Text and multi-line text: You are limited to 35 (combined total for text and/or multi-line text custom fields) for tickets, 15 for users, 10 for agents, and 50 for companies.
- Single-select list (dropdown) and checkbox: You are limited to 200 for tickets (combined total for dropdown and/or checkbox custom fields), and 150 for users, agents, or companies.
- Total: You are limited to 250 total custom fields for tickets, and 200 for users, agents, or companies.
- Authorization: Requires agent authorization token and permission MANAGE_AGENTS_CUSTOM_FIELDS (agents), MANAGE_COMPANIES_CUSTOM_FIELDS (companies), MANAGE_TICKETS_CUSTOM_FIELDS (tickets) or MANAGE_USERS_CUSTOM_FIELDS (users)
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: Custom Field Object (extended level)
Payload Params | Description | Format | Required |
---|---|---|---|
name | The generated name for use in other API calls. If not sent, this field is autogenerated. | String containing only lower case characters, numbers, and/or a hyphen For example, currency-5050. Max 50 characters. | |
displayName | The field name, visible to agents | String | ✓ |
type | Integer | ✓ |
Additional payload for a user, agent, or company custom field:
Payload Params | Description | Format | Required |
---|---|---|---|
data | Structure of: * data (structure, required): Substructure of: * title (string): The field name, visible to users * placeHolder (string): The placeholder text, visible to users before or when they interact with the field * description (string): Description of field, visible to users * values (list of strings): Value options for selection fields * disabled (Boolean): Whether the field is disabled | Structure | ✓ |
Additional payload for a ticket custom field:
Payload Params | Description | Format | Required |
---|---|---|---|
data | Structure of: * multilingualData: A map of <locale> to <data>: * <locale> (language code string, for example: 'de'): Language. Note that the locale must be supported in your tenant. * <data structure> as described in the additional payload for a user custom field, above. | Structure | ✓ |
Payload Example (user):
1 2 3 4 5 6 7 8 9 10 11 12 13 14
POST https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields { "name": "nickname-1", "displayName": "Nickname", "type": 1, "data": { "data": { "title": "Enter a Nickname", "placeHolder": "Enter your nickname here ...", "description": "A nickname is used in the user interface", } } }
Payload Example (ticket):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
POST https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields { "name": "nickname-1", "displayName": "Nickname", "type": 1, "data": { "multilingualData": { "en": { "title": "Enter a Nickname", "placeHolder": "Enter your nickname here ...", "description": "A nickname is used in the user interface", } } } }
Add Multilevel Custom Field
POST https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/multilevel
Add a multilevel custom field for a ticket. There is no limit to the number of multilevel fields you can create.
Add a multilevel custom field for a ticket. There is no limit to the number of multilevel fields you can create.
- Authorization: Requires agent authorization token and permission MANAGE_TICKETS_CUSTOM_FIELDS
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: Custom Field Object (extended level)
Payload Params | Description | Format | Required |
---|---|---|---|
name | The generated name for use in other API calls. If not sent, this field is autogenerated. | String containing only lower case characters, numbers, and/or a hyphen For example, currency-5050. Max 50 characters. | |
displayName | The field name, visible to agents | String | ✓ |
type | The Custom Field Type, which must be Multi-Level. | Integer Must be 14. | ✓ |
data | Structure of: * fieldLevels (list of structures): List of levels, in order, each one as follows (max 10): * title (String): The level title * translatedTitles (map): A map of locales to translated titles, which are pairs of: * <locale> (language code string, for example: 'de'): Language * <title> (String): The title in this locale * values (list of value structures): A list of top level values and their trees of subvalues, a recursive structure as follows (max 50): * value (String): The value, such as "Wrong Size". Note: The value may not contain a vertical bar |. * translatedValues (map): A map of locales to translated values, which are pairs of: * <locale> (language code string, for example 'de'): Language * <title> (structure): The value in this locale, a structure of: * value (String): The translated value. Note: The value may not contain a vertical bar |. * disabled (Boolean): Whether this translated value is enabled in the KB * disabled (Boolean): Whether this value is disabled in the KB * children (list of value structures): The children of this value, a list of recursive structures identical to this structure (with parameters value, translatedValues, disabled, and children). * enabledLocales (list of language code strings): List of languages enabled for this field. Note that, if the locale does not appear in this parameter, titles and values for this locale will not appear in the KB even if they are defined as enabled in fieldLevels or Values. Note, also, that each locale must be supported in your tenant. * publiclyVisible (Boolean): Whether this field appears in the KB. | Structure | ✓ |
Payload Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
POST https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/multilevel { "name": "nickname-1", "displayName": "Nickname", "type": 14, "data": { "fieldLevels": [ { "title": "level1", "translatedTitles": { "es": "nivel1", "fr": "niveau1" } }, { "title": "level2", "translatedTitles": { "es": "nivel2", "fr": "niveau2" } } ], "values": [ { "value": "1", "translatedValues": { "es": { "value": "1es", "disabled": true }, "fr": { "value": "1fr", "disabled": false } }, "children": [ { "value": "A", "translatedValues": { "es": { "value": "Aes", "disabled": true }, "fr": { "value": "Afr", "disabled": false } }, "disabled": false }, { "value": "B", "translatedValues": { "es": { "value": "Bes", "disabled": true }, "fr": { "value": "Bfr", "disabled": false } }, "disabled": false } ], "disabled": false }, { "value": "2", "translatedValues": { "es": { "value": "2es", "disabled": true }, "fr": { "value": "2fr", "disabled": false } }, "children": [ { "value": "A", "translatedValues": { "es": { "value": "Aes", "disabled": true }, "fr": { "value": "Afr", "disabled": false } }, "disabled": false }, { "value": "B", "translatedValues": { "es": { "value": "Bes", "disabled": true }, "fr": { "value": "Bfr", "disabled": false } }, "disabled": false } ], "disabled": false } ], "enabledLocales": [ "es", "fr" ], "publiclyVisible": true } }
Get Custom Field Information (Guest)
Users: GET https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/{custom field GUID}
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Get a custom field's publicly available information. Internal information is not returned; see Get Custom Field Information (Admin).
- Authorization: None
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: Custom Field Object (public level)
Request Example (ticket):
1
GET https://<account_subdomain>.wixanswers.com/api/v1/tickets/fields/bd948e62-a3fd-4cf0-87f3-ee6a0ae7f3fa
Get All Custom Fields (Guest)
Users: GET https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields
Get all user/ticket/agent/company custom fields' publicly available information. Internal information is not returned, see Get All Custom Fields (Admin).
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields
Get all user/ticket/agent/company custom fields' publicly available information. Internal information is not returned, see Get All Custom Fields (Admin).
- Authorization: None
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: List of Custom Field Objects (public level)
Request Example (ticket):
1
GET https://<account_subdomain>.wixanswers.com/api/v1/tickets/fields
Get Custom Field Information (Admin)
Users: GET https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/{custom field GUID}/admin
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}/admin
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}/admin
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}/admin
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}/admin
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}/admin
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}/admin
Get a custom field's information, including internal information relevant only to agents.
- Authorization: Requires agent authorization token and permission FETCH_AGENTS_CUSTOM_FIELDS (agents), FETCH_COMPANIES_CUSTOM_FIELDS (companies), FETCH_TICKETS_CUSTOM_FIELDS (tickets) or FETCH_USERS_CUSTOM_FIELDS (users)
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: Custom Field Object (extended level)
Request Example (ticket):
1
GET https://<account_subdomain>.wixanswers.com/api/v1/tickets/fields/bd948e62-a3fd-4cf0-87f3-ee6a0ae7f3fa/admin
Get All Custom Fields (Admin)
Users: GET https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/admin
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/admin
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/admin
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/admin
Get all user/ticket/agent/company custom fields, including internal information available only to agents.
Tickets: GET https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/admin
Agents: GET https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/admin
Companies: GET https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/admin
Get all user/ticket/agent/company custom fields, including internal information available only to agents.
- Authorization: Requires agent authorization token and permission FETCH_AGENTS_CUSTOM_FIELDS (agents), FETCH_COMPANIES_CUSTOM_FIELDS (companies), FETCH_TICKETS_CUSTOM_FIELDS (tickets) or FETCH_USERS_CUSTOM_FIELDS (users)
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: List of Custom Field Objects (extended level)
Request Example (ticket):
1
GET https://<account_subdomain>.wixanswers.com/api/v1/tickets/fields/admin
Update Custom Field Name or Data Type
Multilevel custom fields
For multilevel custom fields, see Update Multilevel Custom Fields.
Users: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/{custom field GUID}
Tickets: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Update a custom field name or type. See Important Information about Updating Structures Using the API.
Tickets: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Update a custom field name or type. See Important Information about Updating Structures Using the API.
- Authorization: Requires agent authorization token and permission MANAGE_AGENTS_CUSTOM_FIELDS (agents), MANAGE_COMPANIES_CUSTOM_FIELDS (companies), MANAGE_TICKETS_CUSTOM_FIELDS (tickets) or MANAGE_USERS_CUSTOM_FIELDS (users)
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: None
Payload Params | Description | Format | Required |
---|---|---|---|
name | The generated name | String Max 50 characters. | ✓ |
displayName | The field name, visible to agents If not provided, the value of name is used. | String |
Additional payload for a user, agent, or company custom field:
Payload Params | Description | Format | Required |
---|---|---|---|
data | Structure of: * data (structure): Substructure of: * title (string): The field name, visible to users * placeHolder (string): The placeholder text, visible to users before or when they interact with the field * description (string): Description of field, visible to users * values (list of strings): Value options for selection fields * disabled (Boolean): Whether the field is disabled | Structure | ✓ |
Additional payload for a ticket custom field:
Payload Params | Description | Format | Required |
---|---|---|---|
data | Structure of: * multilingualData: A map of <locale> to <data>: * <locale> (language code string, for example 'de'): Language * <data structure> as described in the additional payload for a user custom field, above. | Structure | ✓ |
Payload Example (user):
1 2 3 4 5 6 7 8 9 10 11 12 13
PUT https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/bd948e62-a3fd-4cf0-87f3-ee6a0ae7f3fa { "name": "nickname-1", "displayName": "Nickname", "data": { "data": { "title": "Enter a Nickname", "placeHolder": "Enter your nickname here ...", "description": "A nickname is used in the user interface", } } }
Payload Example (ticket):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
PUT https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/bd948e62-a3fd-4cf0-87f3-ee6a0ae7f3fa { "name": "nickname-1", "displayName": "Nickname", "data": { "multilingualData": { "en": { "title": "Enter a Nickname", "placeHolder": "Enter your nickname here ...", "description": "A nickname is used in the user interface", } } } }
Update Multilevel Custom Fields
Tickets: PUT https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/multilevel/{custom field GUID}
Update a multilevel custom field. All levels of the custom field are replaced.
Update a multilevel custom field. All levels of the custom field are replaced.
- Authorization: Requires agent authorization token and permission MANAGE_TICKETS_CUSTOM_FIELDS
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: None
Payload Params | Description | Format | Required |
---|---|---|---|
data | The new field levels and values. For the format, see data in Add Multilevel Custom Field. | Structure | ✓ |
For an example of the payload, see Add Multilevel Custom Field, sending only the data parameter.
Delete Custom Field
Users: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/users/fields/{custom field GUID}
Tickets: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Delete a custom field for the relevant record type. If a user/ticket/agent/company has a value for this field, Wix Answers removes the field and value the next time it updates the record.
Tickets: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/tickets/fields/{custom field GUID}
Agents: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/agents/fields/{custom field GUID}
Companies: DELETE https://<tenant_subdomain>.wixanswers.com/api/v1/companies/fields/{custom field GUID}
Delete a custom field for the relevant record type. If a user/ticket/agent/company has a value for this field, Wix Answers removes the field and value the next time it updates the record.
- Authorization: Requires agent authorization token and permission MANAGE_AGENTS_CUSTOM_FIELDS (agents), MANAGE_COMPANIES_CUSTOM_FIELDS (companies), MANAGE_TICKETS_CUSTOM_FIELDS (tickets) or MANAGE_USERS_CUSTOM_FIELDS (users)
- Content type: application/json; charset=utf-8
- Accept: application/json
- Response: None
Request Example (ticket):
1
DELETE https://<account_subdomain>.wixanswers.com/api/v1/tickets/fields/bd948e62-a3fd-4cf0-87f3-ee6a0ae7f3fa
Was this article helpful?