Overview
To update the user's standard attributes:
Fetch the user's original standard attributes by query first.
Change the attributes payload and update the user's standard attributes by mutation.
API Details
Generate the user node id
Follow the document here to generate the user node id.
Fetch the user's standard attributes by query
The query:
Copy query {
node(id: "<BASE64URL_ENCODED_USER_NODE_ID>" ) {
... on User {
standardAttributes
}
}
}
The sample response:
Copy {
"data" : {
"node" : {
"standardAttributes" : {
"name" : "Name" ,
"given_name" : "Given Name" ,
"family_name" : "Family Name" ,
"middle_name" : "Middle Name" ,
"nickname" : "Nickname" ,
"profile" : "https://<PROFILE_URL>" ,
"picture" : "https://<PICTURE_URL>" ,
"website" : "https://<WEBSITE_URL>" ,
"gender" : "male" ,
"birthdate" : "2020-01-01" ,
"zoneinfo" : "Europe/London" ,
"locale" : "en" ,
"address" : {
"country" : "GB" ,
"locality" : "locality" ,
"postal_code" : "postal code" ,
"region" : "region" ,
"street_address" : "full street address"
} ,
"updated_at" : 1649428136
}
}
}
}
Update the user's standard attributes by mutation
Make sure to copy the original standard attributes as any attributes that are missing in the payload will be deleted . Next, change the values for attributes that you want to update.
The query:
Copy mutation ($userID: ID ! , $standardAttributes: UserStandardAttributes ! ) {
updateUser(input: { userID : $userID, standardAttributes : $standardAttributes}) {
user {
id
standardAttributes
updatedAt
}
}
}
The variables:
Copy {
"userID" : "<BASE64URL_ENCODED_USER_NODE_ID>" ,
"standardAttributes" : {
/* Include all the original standard attributes from the previous response */
/* and change the attributes that you want to update */
/* The attributes that are missing in the payload will be deleted */
}
}
The sample variables:
Copy {
"userID" : "<BASE64URL_ENCODED_USER_NODE_ID>" ,
"standardAttributes" : {
"name" : "Name" ,
"given_name" : "Given Name" ,
"family_name" : "Family Name" ,
"middle_name" : "Middle Name" ,
"nickname" : "Nickname" ,
"profile" : "https://<PROFILE_URL>" ,
"picture" : "https://<PICTURE_URL>" ,
"website" : "https://<WEBSITE_URL>" ,
"gender" : "male" ,
"birthdate" : "2020-01-01" ,
"zoneinfo" : "Europe/London" ,
"locale" : "en" ,
"address" : {
"country" : "GB" ,
"locality" : "locality" ,
"postal_code" : "postal code" ,
"region" : "region" ,
"street_address" : "full street address"
}
}
}
The sample response:
Copy {
"data" : {
"updateUser" : {
"user" : {
"id" : "VXNlcjo5N2IxYzkyOS04NDJjLTQxNWMtYTdkZi02OTY3ZWZkZGExNjA" ,
"standardAttributes" : {
"name" : "Name" ,
"given_name" : "Given Name" ,
"family_name" : "Family Name" ,
"middle_name" : "Middle Name" ,
"nickname" : "Nickname" ,
"profile" : "https://<PROFILE_URL>" ,
"picture" : "https://<PICTURE_URL>" ,
"website" : "https://<WEBSITE_URL>" ,
"gender" : "male" ,
"birthdate" : "2020-01-01" ,
"zoneinfo" : "Europe/London" ,
"locale" : "en" ,
"address" : {
"country" : "GB" ,
"locality" : "locality" ,
"postal_code" : "postal code" ,
"region" : "region" ,
"street_address" : "full street address"
} ,
"updated_at" : 1649428136
} ,
"updatedAt" : "2022-04-08T14:40:16.410087Z"
}
}
}
}
Updating Custom Attributes
To learn how to update a user's custom attributes , see the update custom attribute example .