Identity
Initial identity via ScreebProvider
Set the initial user identity when wrapping your app:
import { ScreebProvider } from "@screeb/sdk-react";
export const App = () => (
<ScreebProvider
autoInit
websiteId="<YOUR-CHANNEL-ID>"
userId="<USER-ID>"
userProperties={{
firstname: "<user-firstname>",
lastname: "<user-lastname>",
plan: "<user-plan>",
last_seen_at: new Date(),
authenticated: true,
}}
>
<YourApp />
</ScreebProvider>
);
info
The userId parameter should be your unique user identifier (user id, internal id, uuid, email, ...).
Change identity
Change the current user identity. Running surveys will be closed. Hooks will be triggered with new identity.
import { useScreeb } from "@screeb/sdk-react";
const MyComponent = () => {
const { identity } = useScreeb();
const handleLogin = async () => {
await identity(
"<USER-ID>",
{
firstname: "<user-firstname>",
lastname: "<user-lastname>",
plan: "<user-plan>",
last_seen_at: new Date(),
authenticated: true,
}
);
};
};
Requirements
- Property names must be limited to 128 characters
- No more than 1000 attributes
- Supported types for values: string, number, boolean and Date.
Reset current identity
Reset the current user identity. This command must be called only once, since it creates a new identity on Screeb side.
import { useScreeb } from "@screeb/sdk-react";
const MyComponent = () => {
const { identityReset } = useScreeb();
const handleLogout = async () => {
await identityReset();
};
};
Add properties to the current identity
This command adds properties to the current user identity without resetting the identity.
To delete a user property, set it to null.
import { useScreeb } from "@screeb/sdk-react";
const MyComponent = () => {
const { identityProperties } = useScreeb();
const updateUserProperties = async () => {
// Set user properties
await identityProperties({
firstname: "<user-firstname>",
lastname: "<user-lastname>",
plan: "<user-plan>",
last_seen_at: new Date(),
authenticated: true,
});
// Delete user property: set values to null
await identityProperties({
age: null,
company: null,
logged: true,
});
};
};
Requirements
- Property names must be limited to 128 characters
- No more than 1000 attributes
- Supported types for values: string, number, boolean and Date.
Get current identity
Retrieves the current user identity.
import { useScreeb } from "@screeb/sdk-react";
const MyComponent = () => {
const { identityGet } = useScreeb();
const getUserInfo = async () => {
const user = await identityGet();
console.log(user);
// {
// anonymous_id: "<UUID>",
// user_id: "<UUID>",
// session_id: "<UUID>",
// session_start: "2023-05-04T16:30:15.882Z",
// session_end: "2023-05-04T17:02:09.087Z",
// channel_id: "<UUID>",
// is_ready: true,
// }
};
};