AppwinUserAttributes class

What your app knows about its user, sent to Appwin by AppwinCore.instance.identify and AppwinCore.instance.updateUser.

Every field is optional, and a null field is left untouched on the server: sending only plan does not erase a previously sent email. There is no way to clear a field from the SDK.

Shared by every product: Support shows it next to the conversation, Notifications segments on plan, language and customAttributes.

await AppwinCore.instance.identify(
  user.id,
  attributes: AppwinUserAttributes(email: user.email, name: user.displayName),
);

Constructors

AppwinUserAttributes({String? email, String? name, String? avatarUrl, String? language, String? timezone, String? location, String? plan, Map<String, String>? customAttributes})
Creates a set of attributes. Pass only what you know.
const

Properties

avatarUrl → String?
URL of the user's photo.
final
customAttributes → Map<String, String>?
Audience properties declared in the dashboard ({'favorite_team': 'psg'}). Keys are snake_case (^[a-z][a-z0-9_]{0,63}$), values 1 to 200 characters, at most 50 per call. Keys not sent are left untouched.
final
email → String?
Contact email, shown to your support team.
final
hashCode → int
The hash code for this object.
no setteroverride
language → String?
Preferred language, as a BCP 47 tag (fr, en-US).
final
location → String?
Free-form location (Lyon, France). Stored on the device, not the user: the same person may sign in from several places.
final
name → String?
Display name, shown to your support team instead of an anonymous label.
final
plan → String?
Your plan or tier for this user (free, premium), for segmentation.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timezone → String?
IANA time zone (Europe/Paris).
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toMap() → Map<String, Object>
Method-channel payload. null fields are omitted so the native side can tell "not sent" from "sent", which is what keeps them untouched.
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
override