Manage end-user records

Browse and manage end-user records from the Convai Configuration Window or via the EndUsersService scripting API — covers the editor tool, all four methods, and pagination.

The Convai Unity SDK tracks every user who connects with a memory-enabled character as an end-user record. Each record stores the user's stable identifier, last activity timestamps, and any metadata you sent during connection. You can browse and delete these records from the Unity editor or manage them programmatically with client.EndUsers.


Access the panel from the Unity menu bar: Convai → Long Term Memory.

The panel shows all end-user records associated with your API key. It loads records in batches of 200, with cursor-based pagination fetching additional pages automatically for large sets.

Available actions:

Action
How

Refresh the list

Click Refresh

Select individual records

Click a record row

Select or deselect all

Click Select All / Unselect All

Delete selected records

Click Delete

Unity menu bar showing Convai → Long Term Memory navigation path
Open the end-user management panel from the Unity menu bar: Convai → Long Term Memory.

Deleting an end-user record from the editor removes the record and all memory records for that user across every character. This cannot be undone. A confirmation dialog appears before deletion proceeds.

End-user records with name and session count
End-user records with name and session count.

EndUserDetails fields

Each end-user record is represented by EndUserDetails:

Property
Type
Description

EndUserId

string

The stable identifier sent by the SDK on connection

LastActiveTs

string

ISO 8601 timestamp of the last session

LastLtmUsageTs

string

ISO 8601 timestamp of the last LTM interaction

Metadata

Dictionary<string, object>

Key–value data sent by IEndUserMetadataProvider

DisplayName

string

Computed property — reads Metadata["name"] if present and non-empty; otherwise "User {EndUserId[..8]}", optionally suffixed with relative last-active time (e.g., "User a1b2c3d4 (3d ago)")

ShortId

string

Computed property — truncated form of EndUserId for compact display (e.g., "a1b2c3d4...ef01")

DisplayName and ShortId are C# computed properties, not stored fields. They are not present in the JSON API response.


Scripting API

List end users

Retrieve all end-user records with cursor-based pagination. The default limit is 50 records per page.

EndUsersListResponse fields:

Property
Type
Description

EndUsers

List<EndUserDetails>

Records on this page

TotalCount

int

Total number of end-user records

NextCursor

string

Cursor token for the next page; null when no further pages exist

HasMore

bool

Whether additional pages exist

You can also filter by activity date using activeAfter and activeBefore (ISO 8601 strings):


Get a single end user

Retrieve details for one specific user by their endUserId.


Update user metadata

Update one or more metadata keys for a user. The patch operation preserves keys you do not include — it does not replace the entire metadata object.


Delete an end user


DeleteAllAsync vs. DeleteAsync

Operation
Scope
What is removed

client.Memory.DeleteAllAsync(characterId, endUserId)

One user + one character

All memory records for that user–character pair

client.EndUsers.DeleteAsync(endUserId)

One user + all characters

The user record and all memories across every character

Use DeleteAllAsync when you want to reset a user's memory for a specific character while keeping their records for other characters intact. Use EndUsers.DeleteAsync when you need to fully remove a user from the system.


Next steps

Memory management APILong-term memory scripting reference

Last updated

Was this helpful?