Responses are generated using AI and may contain mistakes.
IMPORTANT: We're updating product naming across our documentation. Engage is now Customer Engagement and Elevate is now Product Discovery. This doesn't change Voyado's services, functionality, or terms of your agreement. Be aware, as these changes happen, that you may see both the old and new names being used.
These contact attributes exist by default when setting up a new Customer Engagement tenant and every contact created will have them.
Field name (UI)
DB name
Field type
Description / example value
Contact type
contactType
String
The contact type for this contact, such as “Member” or “Contact”
First name
firstName
String
Example: Jane
Last name
lastName
String
Example: Doe
Member Number
memberNumber
Sequence
Example: 12345678
Social Security Number
socialSecurityNumber
SocialSecurityNumber
Validation requires this to be either a Swedish personal identity number, a Finnish personal identity code or a Swedish samordningsnummer. If only 10 digits are specified it is assumed the contact is less than 100 years old.
Contact’s preferred language from the ISO 639-1 list (en, sv, de, nb). A filtered version of this list can be configured in the Customer Engagement back-end so that only the values you want to include are shown.
Registration date
registrationDate
DateTime
Valid date format is ISO 8601 with time zone designator (e.g. 2021-01-26T15:10:17+01:00)
Source
source
String
”ECOM”, “API”, “STORE” …
When creating a contact, the recommended approach is to ONLY specify countryCode in the payload. The value for country will be automatically populated based on what you specify for countryCode (assuming you have sent a valid value). So do not include country in the payload.
Customer Engagement automatically calculates if the current day is the contact’s birthday, based on the standard contact attribute Birthday. This is the only way it is done. If birthday or age is added as an extra field, they will be ignored.The Birthday calculations that activate the trigger are made every morning at a random time between 6:00 and 8:00.
Birthday must have the format YYYY-MM-DD with dashes as shown. Using an incorrect date format when creating a contact will not stop the contact from being created, but it will cause their Birthday to be null.
As well as the standard contact attributes listed above, there is also the option to extend the data model by adding custom contact attributes, based on the client’s needs. Custom attributes can be used to store data about contacts in order to create useful segments or to personalize content in send-outs.Both standard and custom contact attributes use the field types listed in the section below.
Below are the field types supported in Customer Engagement and their constraints:
Text - Standard string field
Long text - Extended text field
Number - Decimal field
Checkbox - One checkbox
Checkbox (multiple) - Several checkboxes
Dropdown menu - A dropdown menu
Social security number - The attribute socialSecurityNumber is a default attribute of this type. It is possible to add another social security number field as long as both fields don’t set birthday and gender.
Store (current) - The store (current store) field will be automatically added when activating the “Stores” module in “Enable/disable modules”. Adding another attribute of this type is not recommended, and if you do then both fields will be mirrored, meaning that changing one will automatically change the other.
Store (created in) - See “Store (current)Company (only with Company-module) - DEPRECATED
Birth date This is type BirthDate and always given as YYYY/MM/DD, for example 1971/05/26
Date and time - For other dates and times we use ISO 8601
E-mail - We validate email according to: RFC 5322, adr-spec
Formula - (Used in special cases)
Gender - The gender attribute is a default attribute of this type, and it can be calculated by either socialSecurityNumber (default), setting on the socialSecurityNumber attribute.
Integer - Maximum length of this field is 12 digits.
Sequence - Serial number, for instance memberNumber. When manually importing contacts the sequence attribute (memberNumber for instance) needs to be present but empty for Customer Engagement to set a sequence number.
List of children - It’s possible to add multiple children with their age set by their birth date.
Country This is of type countryCode - ISO 3166, Alpha-2 (two digits).
Consent - The consent attribute includes title, linked text and the actual terms text (HTML).
Age (Integer) - Is set by socialSecurityNumber by default.
When using the type Sequence as a custom attribute, it should never be used as a key since this will impact performance severely.
You will never need to manually create any fields of the following types, since one of each is created by default whenever a contact is created, and duplicates are not allowed:
Each contact can only have one phone number connected to them, and the number should always be formatted as MSISDN (Mobile Station International Subscriber Directory Number), as a ”+” prefix followed by [countrycode][phonenumber]. For example: +46707104603.Voyado Customer Engagement uses libphonenumber. a Google open source library, to validate phone numbers internationally. For a deep dive into the area of phone number validation and all the issues that can occur, you can read this page.The library libphonenumber works by setting a “default” country code, from which all numbers are validated. A number is considered valid if you, by calling that exact number from a phone in the “default” country, could succeed in placing a call.However, this can quickly become complex, making it important to follow the standard. Consider these cases:Case 1: If the default country is SE, the following numbers are valid: 0707104603, +46707104603, 0046707104603. This is because “00” is the international calling code from Sweden.Case 2: If the default country is US, the same number, 0046707104603, would now not be valid, since “00” is not an international calling prefix in the US.So, although it will sometimes work, you should never send phone numbers using only the country code (without prefixing ”+”). There are many ambiguities where it is impossible to distinguish a country code from a regional code.For example, 468211415 will be validated as a number with regional code 046 (Lund) instead of a Swedish number (46) if called from regional code 08 (Stockholm). Thereby it will be stored in the database as 46468211415. Similar things can happen with Norwegian numbers that have country code 47, but local numbers may themselves also start with “47”.
A phone number should always be made of a ”+” prefix followed by [countrycode][phonenumber].
Using “local” phone numbers based on the default country code should only be done when manually entering phone numbers in Customer Engagement, i.e. when searching, or using the LoyaltyBar, or on registration forms.
Some markets / countries use multiple languages, for example Belgium, where Dutch and French are both used. Here, the countryCode contact attribute isn’t enough to identify the end-user’s language. In cases like this, the lang (language) standard contact attribute can be used.The lang contact attribute is of type Language, and follows the ISO 639-1 standard. Examples:
en = English
sv = Swedish
nb = Norwegian (bokmål)
de = German
Since the list of languages is very long and can be troublesome to navigate when manually setting a contact’s language, a custom-made shorter version of the list can be configured for your tenant, showing only the languages you intend to use for your contacts. Contact your Voyado team to do this.
A contact also has several optional preference fields defining how they wish to be contacted, known as accept flags.
Field name (UI)
DB name
Field type
Description & example value
Accepts Email
acceptsEmail
Bool
True / False
Accepts Postal
acceptsPostal
Bool
True / False
Accepts SMS
acceptsSms
Bool
True / False
If these accept flags are used, they must be set to either true or false, and never to null.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Voyado Docs","colors":{"primary":"#fe4a49","light":"#ffffff","dark":"#fe4a49"},"logo":{"light":"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/light.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=114e763881bcc646add31724b257f726","dark":"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/dark.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=68eaa3b1f64893ebcee4c7d65f20ecbc","href":"/docs"},"favicon":"https://mintcdn.com/voyado/_EinvHkwtU2pq43w/favicon.png?fit=max\u0026auto=format\u0026n=_EinvHkwtU2pq43w\u0026q=85\u0026s=4109ede7a6d04311c67ffa2f695ce527","appearance":{"default":"light"},"background":{"decoration":"grid"},"navbar":{"links":[{"icon":"/icons/help-center-link.png","href":"https://help.engage.voyado.com/hc/en-gb","label":"Help Center"}],"primary":{"type":"button","label":"Contact us","href":"https://voyado.com/about-voyado/contact-us/"}},"footer":{"socials":{"facebook":"https://www.facebook.com/voyado","linkedin":"https://www.linkedin.com/company/voyadoab"}},"fonts":{"heading":{"family":"Voyado Text","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Medium.woff2","format":"woff2"},"body":{"family":"Voyado Regular","source":"https://mintlify-assets.b-cdn.net/VoyadoText-Regular.woff2","format":"woff2"}},"integrations":{"cookies":{"key":"mintlify_telemetry","value":"granted"}},"banner":{"content":"IMPORTANT: We're updating product naming across our documentation. **Engage** is now **Customer Engagement** and **Elevate** is now **Product Discovery**. This doesn't change Voyado's services, functionality, or terms of your agreement. Be aware, as these changes happen, that you may see both the old and new names being used.","dismissible":false},"errors":{"404":{"redirect":false,"title":"The page you are looking for can't be found. Search for it in the box above.","description":"Or press [here](https://developer.voyado.com/) to come to the start page and the menu."}},"contextual":{"options":["claude","chatgpt","assistant","copy","view","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"voyado","hasAudioNarration":false,"actualSubdomain":"voyado","customDomains":["developer.voyado.com"],"gitSource":{"type":"github","owner":"voyado","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae885c4b4392014d523de34","collectionId":"3f9c1959-fc22-41aa-862e-3e1371dcf5c2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae885c4b4392014d523de34"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae885c4b4392014d523de34","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Integration","count":51},{"language":"default","tag":"Data access","count":26},{"language":"default","tag":"E-com and communication","count":19},{"language":"default","tag":"File based transfer","count":18},{"language":"default","tag":"Contacts","count":15},{"language":"default","tag":"BI export","count":14},{"language":"default","tag":"BI Exports available","count":13},{"language":"default","tag":"E-com and tracking","count":11},{"language":"default","tag":"Delta share","count":9},{"language":"default","tag":"Home","count":8}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"styles/style.css","content":".border-b{border-bottom-width:2px;border-color:rgb(var(--gray-200))}.prose-sm{font-size:.9rem;line-height:1.7}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:500;background-color:#f8f8f7;border:1px solid #c7dbe8;border-radius:4px}.py-1\\.5{padding-top:1px;padding-bottom:1px}@media (min-width:1024px){.lg\\:mt-8{margin-top:1rem}}.sidebar-title{margin-bottom:-.3rem;font-size:15px}#pagination{display:none!important}.prose table{border-collapse:collapse;width:100%}.prose table td,.prose table th{border:1px solid rgba(0,0,0,.15);padding:.6rem .75rem}html.dark .prose table td,html.dark .prose table th{border:1px solid rgba(255,255,255,.15)}.prose table thead tr{background-color:rgba(59,130,246,.12)}html.dark .prose table thead tr{background-color:rgba(59,130,246,.25)}.prose table thead th{font-weight:600}.prose table tbody tr:nth-child(odd) td{background-color:rgba(0,0,0,.03)}html.dark .prose table tbody tr:nth-child(odd) td{background-color:rgba(255,255,255,.05)}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.7em}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.6em}@media (min-width:1024px){.update h2{margin-top:-2px!important}}.update-container{padding-top:15px!important;padding-bottom:25px!important;gap:5px!important}"}],"page":{"pagePath":"docs/contacts/contact-field-definitions","slug":"/docs/contacts/contact-field-definitions","pageMetadata":{"title":"Contact field definitions","description":null,"href":"/docs/contacts/contact-field-definitions"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The fields (attributes) listed here are created by default for every contact type in Voyado Customer Engagement.`}),`\n`,_jsx(Heading,{level:`2`,id:`contact-standard-fields`,children:`Contact standard fields`}),`\n`,_jsx(_components.p,{children:`These contact attributes exist by default when setting up a new Customer Engagement tenant and every contact created will have them.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Field name (UI)`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`DB name`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Field type`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Description / example value`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Contact type`}),_jsx(_components.td,{style:{textAlign:`left`},children:`contactType`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`The contact type for this contact, such as “Member” or “Contact”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`First name`}),_jsx(_components.td,{style:{textAlign:`left`},children:`firstName`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: Jane`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Last name`}),_jsx(_components.td,{style:{textAlign:`left`},children:`lastName`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: Doe`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Member Number`}),_jsx(_components.td,{style:{textAlign:`left`},children:`memberNumber`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Sequence`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: 12345678`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Social Security Number`}),_jsx(_components.td,{style:{textAlign:`left`},children:`socialSecurityNumber`}),_jsx(_components.td,{style:{textAlign:`left`},children:`SocialSecurityNumber`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Validation requires this to be either a Swedish personal identity number, a Finnish personal identity code or a Swedish samordningsnummer. If only 10 digits are specified it is assumed the contact is less than 100 years old.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`E-mail`}),_jsx(_components.td,{style:{textAlign:`left`},children:`email`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Email`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Example: `,_jsx(_components.a,{href:`mailto:jane@doe.com`,children:`jane@doe.com`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Mobile Phone`}),_jsx(_components.td,{style:{textAlign:`left`},children:`mobilePhone`}),_jsx(_components.td,{style:{textAlign:`left`},children:`PhoneNumber`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: +4612345678. Country calling code is required (+46)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Registration store`}),_jsx(_components.td,{style:{textAlign:`left`},children:`createdInStore`}),_jsx(_components.td,{style:{textAlign:`left`},children:`SingleStorePicker`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: 1001. Once this is set it can’t be updated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Regular store`}),_jsx(_components.td,{style:{textAlign:`left`},children:`store`}),_jsx(_components.td,{style:{textAlign:`left`},children:`StorePicker`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: 1002. If not set then this defaults to the same value as Registration store`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Street Address`}),_jsx(_components.td,{style:{textAlign:`left`},children:`street`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: Janes street 12`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Zip Code`}),_jsx(_components.td,{style:{textAlign:`left`},children:`zipCode`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: 123 45`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`City`}),_jsx(_components.td,{style:{textAlign:`left`},children:`city`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: Stockholm`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Care Of`}),_jsx(_components.td,{style:{textAlign:`left`},children:`careOf`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`}})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Country`}),_jsx(_components.td,{style:{textAlign:`left`},children:`country`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: Sweden`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Weighted RFM (1-100)`}),_jsx(_components.td,{style:{textAlign:`left`},children:`rfm`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Number`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Calculated and set in Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Recency (1-5)`}),_jsx(_components.td,{style:{textAlign:`left`},children:`retail.keyvalue.recency`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Calculated and set in Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Frequency (1-5)`}),_jsx(_components.td,{style:{textAlign:`left`},children:`retail.keyvalue.frequency`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Calculated and set in Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Monetary (1-5)`}),_jsx(_components.td,{style:{textAlign:`left`},children:`retail.keyvalue.monetary`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Calculated and set in Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Age`}),_jsx(_components.td,{style:{textAlign:`left`},children:`age`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Example: 28. Automatically set if socialSecurityNumber or birthDay is populated.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Birthday`}),_jsx(_components.td,{style:{textAlign:`left`},children:`birthDay`}),_jsx(_components.td,{style:{textAlign:`left`},children:`BirthDate`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Given as YYYY-MM-DD. Example: 1963-02-13`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Gender`}),_jsx(_components.td,{style:{textAlign:`left`},children:`gender`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Gender`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Customer Engagement allows four options: Male, Female, Other, PreferNotToSay (as well as NotSet when no value has been chosen).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Nps-grade`}),_jsx(_components.td,{style:{textAlign:`left`},children:`nps.grade`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Set by Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Nps-date`}),_jsx(_components.td,{style:{textAlign:`left`},children:`nps.datetime`}),_jsx(_components.td,{style:{textAlign:`left`},children:`DateTime`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Set by Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Average Nps-grade`}),_jsx(_components.td,{style:{textAlign:`left`},children:`nps.averagegrade`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Number`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Calculated in Customer Engagement`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`External ID`}),_jsx(_components.td,{style:{textAlign:`left`},children:`externalId`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Identification key from external systems. Used when Customer Engagement isn’t the master.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Country Code`}),_jsx(_components.td,{style:{textAlign:`left`},children:`countryCode`}),_jsx(_components.td,{style:{textAlign:`left`},children:`CountryCode`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`As `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2`,children:`ISO 3166-1 alpha-2`}),` Example: SE`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Language`}),_jsx(_components.td,{style:{textAlign:`left`},children:`lang`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Language`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Contact’s preferred language from the `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes`,children:`ISO 639-1`}),` list (en, sv, de, nb). A filtered version of this list can be configured in the Customer Engagement back-end so that only the values you want to include are shown.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Registration date`}),_jsx(_components.td,{style:{textAlign:`left`},children:`registrationDate`}),_jsx(_components.td,{style:{textAlign:`left`},children:`DateTime`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Valid date format is ISO 8601 with time zone designator (e.g. 2021-01-26T15:10:17+01:00)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Source`}),_jsx(_components.td,{style:{textAlign:`left`},children:`source`}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`”ECOM”, “API”, “STORE” …`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`When creating a contact, the recommended approach is to ONLY specify `,_jsx(_components.code,{children:`countryCode`}),` in the payload. The value for `,_jsx(_components.code,{children:`country`}),` will be automatically populated based on what you specify for `,_jsx(_components.code,{children:`countryCode`}),` (assuming you have sent a valid value). So do `,_jsx(_components.em,{children:`not`}),` include `,_jsx(_components.code,{children:`country`}),` in the payload.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`more-about-birthday`,children:`More about Birthday`}),`\n`,_jsx(_components.p,{children:`Customer Engagement automatically calculates if the current day is the contact’s birthday, based on the standard contact attribute Birthday. This is the only way it is done. If birthday or age is added as an extra field, they will be ignored.`}),`\n`,_jsx(_components.p,{children:`The Birthday calculations that activate the trigger are made every morning at a random time between 6:00 and 8:00.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Birthday`}),` must have the format `,_jsx(_components.strong,{children:`YYYY-MM-DD`}),` with dashes as shown. Using an incorrect date format when creating a contact will `,_jsx(_components.em,{children:`not`}),` stop the contact from being created, but it will cause their Birthday to be null.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`contact-custom-attributes`,children:`Contact custom attributes`}),`\n`,_jsx(_components.p,{children:`As well as the standard contact attributes listed above, there is also the option to extend the data model by adding custom contact attributes, based on the client’s needs. Custom attributes can be used to store data about contacts in order to create useful segments or to personalize content in send-outs.`}),`\n`,_jsx(_components.p,{children:`Both standard and custom contact attributes use the field types listed in the section below.`}),`\n`,_jsx(Heading,{level:`2`,id:`contact-field-types`,children:`Contact field types`}),`\n`,_jsx(_components.p,{children:`Below are the field types supported in Customer Engagement and their constraints:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Text`}),` - Standard string field`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Long text`}),` - Extended text field`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Number`}),` - Decimal field`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Checkbox`}),` - One checkbox`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Checkbox (multiple)`}),` - Several checkboxes`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dropdown menu`}),` - A dropdown menu`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Social security number`}),` - The attribute `,_jsx(_components.code,{children:`socialSecurityNumber`}),` is a default attribute of this type. It is possible to add another social security number field as long as both fields don’t set birthday and gender.\\xA0`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Store (current)`}),` - The store (current store) field will be automatically added when activating the “Stores” module in “Enable/disable modules”. Adding another attribute of this type is not recommended, and if you do then both fields will be mirrored, meaning that changing one will automatically change the other.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Store (created in)`}),` - See “Store (current)Company (only with Company-module) - `,_jsx(_components.em,{children:`DEPRECATED`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Birth date`}),` This is type BirthDate and always given as YYYY/MM/DD, for example `,_jsx(_components.strong,{children:`1971/05/26`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Date and time`}),` - For other dates and times we use `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/ISO_8601`,children:`ISO 8601`}),`\\xA0`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`E-mail`}),` - We validate email according to:\\xA0`,_jsx(_components.strong,{children:`RFC 5322, adr-spec`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Formula`}),` - (Used in special cases)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Gender`}),` - The gender attribute is a default attribute of this type, and it can be calculated by either socialSecurityNumber (default), setting on the socialSecurityNumber attribute.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Integer`}),` - Maximum length of this field is 12 digits.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sequence`}),` - Serial number, for instance `,_jsx(_components.strong,{children:`memberNumber`}),`. When manually importing contacts the sequence attribute (memberNumber for instance) needs to be present but empty for Customer Engagement to set a sequence number.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`List of children`}),` - It’s possible to add multiple children with their age set by their birth date.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Country`}),` This is of type countryCode - ISO 3166, Alpha-2 (two digits).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Consent`}),` - The consent attribute includes title, linked text and the actual terms text (HTML).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Age`}),` (Integer) - Is set by socialSecurityNumber by default.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`When using the type Sequence as a custom attribute, it should never be used as a key since this will impact performance severely.`})}),`\n`,_jsx(_components.p,{children:`You will never need to manually create any fields of the following types, since one of each is created by default whenever a contact is created, and duplicates are not allowed:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Store (current)`}),`\n`,_jsx(_components.li,{children:`Store (created in)`}),`\n`,_jsx(_components.li,{children:`Birth date`}),`\n`,_jsx(_components.li,{children:`Gender`}),`\n`,_jsx(_components.li,{children:`Age (integer)`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`more-about-standard-fields`,children:`More about standard fields`}),`\n`,_jsx(Heading,{level:`3`,id:`mobile-phone-mobilephone`,children:`Mobile Phone (mobilePhone)`}),`\n`,_jsx(_components.p,{children:`Each contact can only have one phone number connected to them, and the number should always be formatted as MSISDN (Mobile Station International Subscriber Directory Number), as a ”+” prefix followed by [countrycode][phonenumber]. For example: +46707104603.`}),`\n`,_jsxs(_components.p,{children:[`Voyado Customer Engagement uses `,_jsx(_components.a,{href:`https://github.com/googlei18n/libphonenumber`,children:`libphonenumber`}),`. a Google open source library, to validate phone numbers internationally. For a deep dive into the area of phone number validation and all the issues that can occur, `,_jsx(_components.a,{href:`https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md`,children:`you can read this page`}),`.`]}),`\n`,_jsx(_components.p,{children:`The library libphonenumber works by setting a “default” country code, from which all numbers are validated. A number is considered valid if you, by calling that exact number from a phone in the “default” country, could succeed in placing a call.`}),`\n`,_jsx(_components.p,{children:`However, this can quickly become complex, making it important to follow the standard. Consider these cases:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Case 1`}),`: If the default country is SE, the following numbers are valid: 0707104603, +46707104603, 0046707104603. This is because “00” is the international calling code from Sweden.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Case 2:`}),` If the default country is US, the same number, 0046707104603, would now not be valid, since “00” is not an international calling prefix in the US.`]}),`\n`,_jsx(_components.p,{children:`So, although it will sometimes work, you should never send phone numbers using only the country code (without prefixing ”+”). There are many ambiguities where it is impossible to distinguish a country code from a regional code.`}),`\n`,_jsx(_components.p,{children:`For example, 468211415 will be validated as a number with regional code 046 (Lund) instead of a Swedish number (46) if called from regional code 08 (Stockholm). Thereby it will be stored in the database as 46468211415. Similar things can happen with Norwegian numbers that have country code 47, but local numbers may themselves also start with “47”.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A phone number should always be made of a ”+” prefix followed by [countrycode][phonenumber].`})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Using “local” phone numbers based on the default country code should only be done when manually entering phone numbers in Customer Engagement, i.e. when searching, or using the LoyaltyBar, or on registration forms.`})}),`\n`,_jsx(Heading,{level:`3`,id:`email-email`,children:`Email (email)`}),`\n`,_jsxs(_components.p,{children:[`All emails in Customer Engagement are validated according to `,_jsx(_components.em,{children:`RFC 5322, addr-spec`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Read the details of `,_jsx(_components.a,{href:`https://www.rfc-editor.org/rfc/rfc5322`,children:`RFC 5322 here`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Read a `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/Email_address`,children:`general explanation of email standards here`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`country-code-countrycode`,children:`Country code (countryCode)`}),`\n`,_jsx(_components.p,{children:`Country codes follow the ISO 3166, alpha-2 naming standard. Some useful examples are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`SE = Sweden`}),`\n`,_jsx(_components.li,{children:`NO = Norway`}),`\n`,_jsx(_components.li,{children:`GB = Great Britain (and Northern Ireland)`}),`\n`,_jsx(_components.li,{children:`NL = Netherlands`}),`\n`,_jsx(_components.li,{children:`IE = Ireland`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`language-lang`,children:`Language (lang)`}),`\n`,_jsx(_components.p,{children:`Some markets / countries use multiple languages, for example Belgium, where Dutch and French are both used. Here, the countryCode contact attribute isn’t enough to identify the end-user’s language. In cases like this, the lang (language) standard contact attribute can be used.`}),`\n`,_jsxs(_components.p,{children:[`The lang contact attribute is of type Language, and follows the `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes`,children:`ISO 639-1`}),` standard. Examples:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`en = English`}),`\n`,_jsx(_components.li,{children:`sv = Swedish`}),`\n`,_jsx(_components.li,{children:`nb = Norwegian (bokmål)`}),`\n`,_jsx(_components.li,{children:`de = German`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Since the list of languages is very long and can be troublesome to navigate when manually setting a contact’s language, a custom-made shorter version of the list can be configured for your tenant, showing only the languages you intend to use for your contacts. Contact your Voyado team to do this.`}),`\n`,_jsx(Heading,{level:`2`,id:`preferences-and-accept-flags`,children:`Preferences and accept flags`}),`\n`,_jsx(_components.p,{children:`A contact also has several optional preference fields defining how they wish to be contacted, known as accept flags.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Field name (UI)`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`DB name`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Field type`})}),_jsx(_components.th,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Description \u0026 example value`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Accepts Email`}),_jsx(_components.td,{style:{textAlign:`left`},children:`acceptsEmail`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Bool`}),_jsx(_components.td,{style:{textAlign:`left`},children:`True / False`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Accepts Postal`}),_jsx(_components.td,{style:{textAlign:`left`},children:`acceptsPostal`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Bool`}),_jsx(_components.td,{style:{textAlign:`left`},children:`True / False`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Accepts SMS`}),_jsx(_components.td,{style:{textAlign:`left`},children:`acceptsSms`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Bool`}),_jsx(_components.td,{style:{textAlign:`left`},children:`True / False`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`If these accept flags are used, they must be set to either true or false, and never to null.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Contact field definitions","description":null,"href":"/docs/contacts/contact-field-definitions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Contact standard fields","slug":"contact-standard-fields","depth":2,"children":[{"title":"More about Birthday","slug":"more-about-birthday","depth":3,"children":[]}]},{"title":"Contact custom attributes","slug":"contact-custom-attributes","depth":2,"children":[]},{"title":"Contact field types","slug":"contact-field-types","depth":2,"children":[]},{"title":"More about standard fields","slug":"more-about-standard-fields","depth":2,"children":[{"title":"Mobile Phone (mobilePhone)","slug":"mobile-phone-mobilephone","depth":3,"children":[]},{"title":"Email (email)","slug":"email-email","depth":3,"children":[]},{"title":"Country code (countryCode)","slug":"country-code-countrycode","depth":3,"children":[]},{"title":"Language (lang)","slug":"language-lang","depth":3,"children":[]}]},{"title":"Preferences and accept flags","slug":"preferences-and-accept-flags","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/voyado/e3b0c44298fc1c14/js/test.js","/_mintlify/custom/voyado/a093bfac3f8a0766/js/gtm.js"],"subdomain":"voyado","siteName":"Voyado Docs","title":"Contact field definitions - Voyado Docs","navMaps":{"firstHrefInVersion":{"API version 3":{"href":"/docs/contacts/contact-field-definitions","matchLevel":0},"API version 2":{"href":"/docs-v2/api-v2","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T13:58:42.948Z","originalFileLocation":"docs/contacts/contact-field-definitions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Voyado Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Contact field definitions - Voyado Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Voyado Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.voyado.com/docs/contacts/contact-field-definitions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://voyado.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Contact+field+definitions\u0026amp;theme=d6be399f515d3ce011325711\u0026amp;signature=009acda83a77c2bce9a689dfd7ec48b574bc74e416e83607840600d28d1d1eab\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Contact field definitions - Voyado Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://voyado.mintlify.app/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Contact+field+definitions\u0026amp;theme=d6be399f515d3ce011325711\u0026amp;signature=009acda83a77c2bce9a689dfd7ec48b574bc74e416e83607840600d28d1d1eab\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/voyado/9fqQ87AEVqs68vAz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Voyado Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fe4a49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.voyado.com/docs/contacts/contact-field-definitions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/contacts/contact-field-definitions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.voyado.com/#organization\",\"name\":\"Voyado Docs\",\"url\":\"https://developer.voyado.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/voyado/fiZZVymeDExCOKTK/logo/light.svg?fit=max\u0026auto=format\u0026n=fiZZVymeDExCOKTK\u0026q=85\u0026s=114e763881bcc646add31724b257f726\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.voyado.com#website\",\"name\":\"Voyado Docs\",\"url\":\"https://developer.voyado.com\",\"publisher\":{\"@id\":\"https://developer.voyado.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions#webpage\",\"url\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions\",\"name\":\"Contact field definitions\",\"dateModified\":\"2026-10-30T13:58:42.948Z\",\"isPartOf\":{\"@id\":\"https://developer.voyado.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contacts\",\"item\":\"https://developer.voyado.com/docs/contacts/about-contacts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contact field definitions\",\"item\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions#article\",\"headline\":\"Contact field definitions\",\"name\":\"Contact field definitions\",\"url\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions\",\"mainEntityOfPage\":{\"@id\":\"https://developer.voyado.com/docs/contacts/contact-field-definitions#webpage\"},\"dateModified\":\"2026-10-30T13:58:42.948Z\",\"publisher\":{\"@id\":\"https://developer.voyado.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.voyado.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Voyado Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Voyado Docs","nav":{"global":null,"versions":[{"version":"API version 3","tag":"Latest","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/docs/introduction/about"}]},{"tab":"Integration","groups":[{"group":" ","pages":[{"title":"About integration","href":"/docs/integration/about-integration"},{"title":"Non-functional requirements","href":"/docs/api/non-functional-requirements"},{"title":"Custom triggers","sidebarTitle":"Custom triggers","href":"/docs/setup/custom-triggers"},{"title":"Stores","href":"/docs/setup/stores"}]},{"group":"Contacts","pages":[{"title":"Introduction to contacts","description":null,"href":"/docs/contacts/about-contacts"},{"title":"Contact field definitions","href":"/docs/contacts/contact-field-definitions"},{"group":"Identify contact","pages":[{"title":"Find a contact","description":null,"href":"/docs/contacts/identify-contact/find-contact"},{"title":"Get contact data","href":"/docs/contacts/identify-contact/get-contact-data"},{"title":"Get enriched profile","href":"/docs/contacts/identify-contact/get-enriched-profile"},{"title":"Soft identification","href":"/docs/contacts/identify-contact/soft-identification"},{"title":"Deep linking to contacts","href":"/docs/contacts/identify-contact/deep-linking"}]},{"title":"Create contact","href":"/docs/contacts/create-contact"},{"title":"Update contact","href":"/docs/contacts/update-contact"},{"title":"Delete contact","href":"/docs/contacts/delete-contact"},{"title":"Security best practices","href":"/docs/contacts/security-best-practices"},{"title":"Target audiences","href":"/docs/contacts/target-audiences"},{"title":"Consents","href":"/docs/setup/consents"},{"title":"Bulk contacts API","href":"/docs/contacts/bulk-contacts-api"},{"title":"NPS","href":"/docs/contacts/nps"}]},{"group":"Transactions","pages":[{"title":"Introduction to transactions","href":"/docs/transactions/introduction-to-transactions"},{"title":"Transaction field definitions","href":"/docs/transactions/transaction-field-definitions"},{"title":"Group currency","href":"/docs/transactions/group-currency"},{"title":"Register a purchase","href":"/docs/transactions/register-a-purchase"},{"title":"Register a return","href":"/docs/transactions/register-a-return"},{"title":"Discounts","href":"/docs/transactions/discounts"},{"title":"Purchase history summary","href":"/docs/transactions/purchase-history-summary"}]},{"group":"Orders","pages":[{"title":"Introduction to orders","sidebarTitle":"Introduction to orders","href":"/docs/orders/introduction-to-orders"},{"title":"Orders data structure","href":"/docs/orders/orders-data-structure"},{"title":"Orders API endpoints","href":"/docs/orders/orders-api-endpoints"},{"title":"Orders and actions","href":"/docs/orders/orders-and-actions"},{"title":"Order action schemas","href":"/docs/orders/order-action-schemas"}]},{"group":"Loyalty","pages":[{"title":"Introduction to loyalty","href":"/docs/loyalty/about-loyalty"},{"title":"Points","href":"/docs/loyalty/points"},{"title":"Point shop","href":"/docs/loyalty/point-shop"},{"title":"Vouchers","href":"/docs/loyalty/vouchers"},{"title":"Promotions","href":"/docs/loyalty/promotions"},{"title":"Challenges","href":"/docs/loyalty/challenges"},{"title":"Interactions","href":"/docs/loyalty/interactions"}]},{"group":"Product data","pages":[{"title":"Product feeds","href":"/docs/setup/product-feeds"},{"title":"Article register","href":"/docs/setup/article-register"}]},{"group":"Ratings and Reviews (BETA)","pages":[{"title":"About Ratings and Reviews","sidebarTitle":"About Ratings and Reviews","href":"/docs/ratings-and-reviews/about"},{"group":"Integrate Ratings and Reviews","pages":[{"title":"Installing the script","sidebarTitle":"Installing the script","href":"/docs/ratings-and-reviews/installing-script"},{"title":"The widgets","sidebarTitle":"The widgets","href":"/docs/ratings-and-reviews/widgets"},{"title":"Starting off","sidebarTitle":"Starting off","href":"/docs/ratings-and-reviews/starting-off"},{"title":"SPA handling","sidebarTitle":"SPA handling","href":"/docs/ratings-and-reviews/spa-handling"},{"title":"CSS Customization","sidebarTitle":"CSS Customization","href":"/docs/ratings-and-reviews/css-customization"}]},{"title":"Migrating Ratings and Reviews","sidebarTitle":"Migrating reviews","href":"/docs/ratings-and-reviews/migrating-reviews"},{"title":"Ratings and Reviews product data","sidebarTitle":"Product data","href":"/docs/ratings-and-reviews/product-data"}]},{"group":"Product Discovery","pages":[{"title":"Integration with Product Discovery","href":"/docs/product-discovery/integration"},{"title":"Boosting discoveryKey use","href":"/docs/product-discovery/discovery-key"},{"title":"Troubleshooting connected sessions","sidebarTitle":"Troubleshooting connected sessions","href":"/docs/product-discovery/connected-sessions"}]}]},{"tab":"File based transfer","pages":[{"title":"File based transfer","href":"/docs/file-based-transfer/about-file-based-transfer"}]},{"tab":"Data access","pages":[{"title":"Data access","href":"/docs/data-access/overview"}]},{"tab":"E-com and communication","pages":[{"title":"E-com and communication","href":"/docs/communication/communication"}]},{"tab":"Partner integrations","pages":[{"title":"Partner integrations","href":"/docs/introduction/about-partner-integrations"}]},{"tab":"What's new?","pages":[{"title":"What's new?","href":"/docs/introduction/whats-new"}]}]},{"version":"API version 2","tag":"Legacy","pages":[{"title":"API version 2","href":"/docs-v2/api-v2"}]}]},"basePath":"","title":"Contact field definitions - Voyado Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["10e4515597"],"chunks":["BannerMarkdown-DHaG7hr_.js","dist-DKZWslLH.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-BIWXJmsZ.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}