Update Profile with Extended Data
PUT/client/users/:correlation_id/profile
This request provides extended member data, including attribute values, to be included with the member profile.
Path Variables
- Identifier
- The identifier that points to the account the session is being opened for.
Request
-
This call is used to update an account's primary attributes.
-
This call can also be used to add extendedData attributes to an account for reporting/analytics purposes. An extendedDataSource may be specified as well to support multi-source EMD.
-
If the profile information already includes extended data and is being updated (including changes to extended member data, or EMD), all extendedData should be sent, but if the EMD should not change, then the extendedData object should be omitted.
-
The Update Profile call can be used for both Loyalty and Non-Loyalty accounts.
-
To update an account, the correct x-identifier-type must be passed into the Customer Experience Start Session call.
Body
| Attribute | Definition | Format | Notes |
|---|---|---|---|
| dateOfBirth | Date on which the member was born | String. | Optional. "YYYY-MM-DD" |
| gender | Self-identified gender of the member | Enum: "M", "F", "Other", "PreferNotToSay" | Optional. M = 'MALE', F = 'FEMALE', Other = 'Other', PreferNotToSay = 'PreferNotToSay' |
| firstName | The first name of the member | String | Required field. Can be empty. |
| lastName | The last name of the member | String | Required field. Can be empty. |
| The email address of the member | String. Must be in standard email format. | Required field. Validation requires the '@' symbol and the '.' with characters | |
| businessName | Name of the B2B customer business | String | |
| postalZipCode | Customer's Postal Code (Canada) or Zip Code (United States) | String | Required field. Validation requires that the postalCode is formatted correctly. Example (Postal Code): "H0H 0H0" Example (Zip Code): "00000" |
| This attribute is deprecated. | |||
| street | First line of street address | String | |
| street2 | Additional line of street address | String | |
| provinceState | Customer's province or state | Enum Canada provinces: "NL", "PE", "NS", "NB", "QC", "ON", "MB", "SK", "AB", "BC", "YT", "NT", or "NU" American states: "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VI", "VA", "WA", "WV", "WI", "WY" American military states: "AE", "AP", "AA" | Provinces and territories in Canada or states and military states on United States |
| This attribute is deprecated. | |||
| phoneNumber | Phone number of the member | String | Format should be: "(nnn) nnn-nnnn" |
| languagePreference | Specifies English or French language preference for the member | String | Conforms to the ISO 639 standard (en-CA, fr-CA) |
| city | City of residence for the member | String | |
| extendedDataSource | Used with multi-source EMD to identify the source of the EMD provided. | String | Optional, used only with multi-source EMD. For example: "MARKETING", "PARTNERSHIP", "PPN", "SALESFORCE", or "BANKING_INFO" |
| channel | Identify the source of EMD provided as a channel | String | For instance: "APP", "WEB", "STORE", etc. |
| extendedData | Additional data about the member. Additional data can be added for reporting or analytics. The client can determine the information they want to add to reporting using value pairs. | String | Extended data objects can also contain targetable attributes for offers. For example, for bank account information, the attributes could be: "bankName", "institutionNumber", "accountNumber", "transitNumber", and "accountHolderType". Note: The following attributes are an example only and would be used to set marketing communications statuses for a member. |
| casl | Whether Canada's Anti-Spam Legislation (CASL) is applicable to this member. | Boolean: true or false | Required |
| doNotEmail | Whether the member has opted in to receiving marketing emails. | Boolean: true or false | Required |
| doNotPhone | Whether the member has opted in to receiving marketing phone calls. | Boolean: true or false | Required |
| doNotText | Whether the member has opted in to receiving marketing SMS messages. | Boolean: true or false | Required |
| enrollmentChannel | Channel through which enrollment took place. | String | Optional. Source of member opt-in information such as "web" or "ES Loyalty" system |
| retailId | Client-specific key for the retail store or location. | String | Required only for specific client. |
Response
| Attribute | Definition | Format | Notes |
|---|---|---|---|
| debugMessage | Message specifies result of update with extended data | Enum: "Profile Updated" |
Error Responses
| statusCode | errorMessage | errorCode | Definition |
|---|---|---|---|
| 400 Bad Request | The following missing fields are mandatory: dateOfBirth gender email postalCode | INVALID_REQUEST | All mandatory fields are not included in request body: dateOfBirth, gender, email, and postalCode |
| 400 Bad Request | Sorry, that email address is already in use | EMAIL_ALREADY_EXISTS | mail address used in request is already in the database |
| 400 Bad Request | Provided business name is not valid | INVALID_REQUEST | When provided business name has more than 100 characters |
| 400 Bad Request | Invalid Extended data: Exceeded data size limit for extended data: {dataSize} Bytes | INVALID_REQUEST | When extendedData size exceeds the size limit. See the limit on ConfigType='EXTENDED_DATA', attribute Platform.DataSizeLimitInKb in configuration file. |
| 400 Bad Request | Invalid Extended data: Exceeded root level key limit for extended data {numberOfKeys} keys | INVALID_REQUEST | When extendedData exceeds number of attributes/keys limit. See the limit on ConfigType='EXTENDED_DATA', attribute Platform.TopLevelKeysLimit in configuration file. |
| 400 Bad Request | Attribute(s) {att1}, {att-x} are already used in another source. | INVALID_REQUEST | Attributes must be unique to this EMD source. |
| 400 Bad Request | INTERNAL cannot be used as extended data source. | INVALID_REQUEST | INTERNAL is not a valid EMD data source value. |
| 400 Bad Request | {value} is not valid extended data source. | INVALID_REQUEST | Data source name provided is not valid. |
| 400 Bad Request | Invalid PostalZipCode: {postalZipCode} | INVALID_REQUEST | Invalid Postal Code or Zip Code |
| 400 Bad Request | Invalid provinceState: {provinceState} | INVALID_REQUEST | Invalid Province or State |
Request
Responses
- 200
- 400
200 - Profile Updated
400 - Missing Fields