Схема получения данных
Используйте API SmartProfile для:
- получения существующих данных пользователя: ФИО, адреса, телефона, адреса электронной почты и даты рождения;
- изменения ранее указанного адреса, телефона и адреса электронной почты;
- уточнения адреса.
Если у вашего смартапа есть необходимые разрешения, то данные пользователя будут доступны в объекте $request.data.eventData.profile_data.:
state: Welcome
q!: оформи заказ
a: Данные для заказа {{$request.payload.profile_data}}!
Форматы запроса
Получение данных
Чтобы получить клиентские данные, после добавления товара в корзину используйте сообщение "messageName": "GET_PROFILE_DATA". Этот тип сообщения можно использовать при оформлении, составлении и подтверждении заказа.
{
"messageId": 1605196199186625000,
"sessionId": "0062530b-5521-42cc-90b0-a9d65dea4e98",
"uuid": {
"userId": "ec8a9097-1508-4bec-8d97-67f2329c03e0",
"userChannel": "B2C"
},
"messageName": "GET_PROFILE_DATA",
"payload": {}
}
Идентификатор сообщения
Идентификатор сессии
uuid
object
Идентификатор пользователя
Идентификатор канала коммуникации
Название сообщения
Пустое тело сообщения
Изменение данных
Чтобы пользователь мог изменить данные из своего профиля, используйте сообщение "messageName": "CHOOSE_PROFILE_DATA". Этот тип сообщения можно использовать только после получения данных при оформлении заказа — "GET_PROFILE_DATA".
Пользователи могут изменить адрес, телефон и электронную почту:
- для изменения адреса используйте
"fields": [ "address" ]; - для изменения телефона используйте
"fields": [ "phone_number" ]; - для изменения электронной почты используйте
"fields": [ "email" ]; - для изменения адреса, телефона и электронной почты используйте
"fields": [ "address", "phone_number", "email" ].
{
"messageId": 1605196199186625000,
"sessionId": "0062530b-5521-42cc-90b0-a9d65dea4e98",
"uuid": {
"userId": "ec8a9097-1508-4bec-8d97-67f2329c03e0",
"userChannel": "B2C"
},
"messageName": "CHOOSE_PROFILE_DATA",
"payload": {
"fields": [
"address",
"phone_number",
"email"
]
}
}
Идентификатор сообщения
Идентификатор сессии
uuid
object
Идентификатор пользователя
Идентификатор канала коммуникации
Название сообщения
payload
object
Тело сообщения
Возможные значения: [address, phone_number, email]
Массив полей, которые необходимо изменить
Уточнение данных
Если вашему сценарию не хватает данных (например, пользователь не указал в адресе код домофона), используйте сообщение "messageName": "DETAILED_PROFILE_DATA". Этот тип сообщения можно использовать только после получения данных при оформлении заказа — "GET_PROFILE_DATA".