This post is mostly for developers :)
We've simplified how user attributes are sent to Userflow with userflow.identify()
and userflow.updateUser()
, and added the ability to add/subtract to/from number attributes.
This is in preparation for the release of our public REST API, which will look almost identical (just as JSON over HTTP).
The changes are fully backwards-compatible, so you don't have to change anything in your code.
Simpler attributes
Before, we distinguished between standard attributes (such as name
, email
and signedUpAt
) and custom traits (that were put in a nested traits
object). Example of what userflow.identify
looked like before:
userflow.identify(user.id, {
name: user.name,
email: user.email,
signedUpAt: user.createdAt,
traits {
role: user.role,
plan: user.plan
}
})
Now there's only one level and all attributes are just... attributes. You send whatever you want - they're all treated the same. The word "trait" is gone. Updated example:
userflow.identify(user.id, {
name: user.name,
email: user.email,
signed_up_at: user.createdAt,
role: user.role,
plan: user.plan
})
Notice how signed_up_at
is now snake_cased. We recommend sticking to one naming scheme.
Setting an attribute only once
Say you want to track something a user did, but you only want to track it the first time. Example: We want to know which integration a user set up first. Instead of sending the name of the integration, send an object with a set_once
key:
userflow.updateUser({
integration_name: {set_once: 'My integration'}
})
The user's integration_name
attribute will get the value My integration
, unless, if it's already been set before, in which case we'll leave it alone.
Adding/subtracting to/from number attributes
You can also increment attributes. Say you want to track how many projects a user has created, but you don't want to recount the number of projects on every page load. Just call the following each time a project is created in your app:
userflow.updateUser({
projects_count: {add: 1}
})
You can similarly subtract by using subtract
instead of add
.
See full updated userflow.identify
docs.
CONTENTS