Working with Users

User objects in Maven allow storing of metadata that can be used by the LLM to answer questions or utilized by Actions during execution.

User data is stored exclusively through the Maven API, ensuring that the data is accurate and reliable. The LLM does not have write access to user data, which means fields such as IDs remain trustworthy.

Creating Users

When an app creates a user, it supplies a reference ID along with identifying information. This information helps Maven determine if users are the same across different apps.

For example:

  • App1 creates a user with the email [email protected] and metadata {name: Sally}.
  • App2 creates a user with the same email and metadata {location: Canada}.

If [email protected] requests a conversation via App3, the LLM will receive both sets of metadata as part of the conversation context.

All API calls related to Conversations must authenticate Users to ensure the security of user information.

Using Joined Metadata

When an Action within that Conversation is executed by an app (e.g., App4), the joined metadata is provided to the Action implementation. For example:

1{
2 "name": {
3 "defaultValue": "Sally",
4 "app1": "Sally"
5 },
6 "location": {
7 "defaultValue": "Canada",
8 "app2": "Canada"
9 }
10}

This enables apps to access comprehensive user data coordinated by Maven. Maven handles the complex joins and provides a defaultValue for all stored metadata keys, along with the full set of metadata values, each keyed by the appId that stored the value.

User Equality Fields

Currently, Maven supports emails and phone numbers as fields to determine user equality. More identifying fields may be added in the future.

Handling Conflicting Information

Maven manages users with conflicting equality information. Users of the Maven Dashboard can approve the merging of two users or separate identifying information if users have been mistakenly merged.

Example Maven Apps

Coming soon!

Was this page helpful?