Skip to main content
Source of truth: exhaustive for what it covers. Generated from Velt event metadata.
  • If a name isn’t on this page, it doesn’t exist: don’t use it (a missing identifier resolves to undefined / renders nothing).
  • Never invent or guess a name; use only identifiers that appear verbatim here or that you verified against ground truth and added here.
  • Scope: exhaustive per feature over the SDK’s event enums + payload maps. Comments + notifications are the in-scope focus; other features (recorder, presence, live-state-sync, rewriter, suggestions, CRDT, core/resolvers) are included for completeness.
Every event a Velt customer can subscribe to, grouped by feature. Event names are the verbatim string VALUES from the SDK (what you pass to .on(...)).

Subscription pattern

Subscribe via the feature’s element accessor on the Velt client, then .on('<eventName>').subscribe(cb):
React equivalent: each feature subscribes via its use<Feature>EventCallback('<eventName>') hook (e.g. useCommentEventCallback('addCommentAnnotation'), useRecorderEventCallback('recordingDone'), usePresenceEventCallback('multipleUsersOnline'), useNotificationEventCallback('settingsUpdated'), useLiveStateSyncEventCallback('accessRequested'), useSuggestionEventCallback('suggestionCreated'), useCrdtEventCallback('updateData')) that returns the latest event payload: same string event names. Exception: Rewriter has no use…EventCallback hook: subscribe via useAIRewriterUtils()rewriterElement.on('textSelected').subscribe(...) (there is no useRewriterEventCallback). Payload entity shapes referenced below (CommentAnnotation, Comment, User, UserContact, CustomStatus, CustomPriority, ReactionAnnotation, RecordedData, etc.) are documented in Data models. Every event carries a metadata field (VeltEventMetadata: timestamp, document/organization/location context).

Comments: client.getCommentElement().on(...)

All Comments events carry annotationId (string), commentAnnotation (CommentAnnotation), and metadata (VeltEventMetadata) unless noted otherwise.
Common payload fields across these events: annotationId, commentAnnotation (CommentAnnotation), and metadata (VeltEventMetadata). Deprecated payloads (CommentAddEventData, CommentEvent, CommentUpdateEventData, CommentSuggestionEventData) are excluded: they are not in the active event map.

Recorder / Transcription: client.getRecorderElement().on(...)

Recorder data events extend RecorderData: recorderId (string), from (User \| null), metadata, assets (RecorderDataAsset[]), transcription (RecorderDataTranscription). See Data models for RecordedData/recorder shapes.

Presence: client.getPresenceElement().on(...)


Notifications: client.getNotificationElement().on(...)


Live State Sync

Single-editor mode / access requests. Subscribe via client.getLiveStateSyncElement().on(...). AccessRequestEvent carries viewer/editor (User | undefined), timestamp, status, and optional presence counts (totalUsers, presenceClientUserIds). SEMEvent carries editor/viewer, timestamp, role, and the same presence counts.

Rewriter (AI text actions): client.getRewriterElement().on(...)


Suggestions: client.getSuggestionElement().on(...)

Suggestion events carry a suggestion object (annotationId, targetId, oldValue, newValue, summary, status, createdBy/resolvedBy (User), timestamps) and a top-level timestamp.

CRDT: client.getCrdtElement().on(...)


Core (resolvers, button clicks, lifecycle)

Client-level core events (resolver hooks, init/user lifecycle, button clicks). These are subscribed at the client level rather than through a use<Feature>EventCallback hook. Resolver events deliver a BaseResolverEvent<…> whose nested event field is itself a sub-event string union representing the resolver round-trip lifecycle: request formed (request built, no call yet) → triggered (resolver/provider invoked) → result (success) | error (timeout/rejection) | result-from-cache (served from in-memory cache, skipping the call). Each sub-event shares a uniqueId so you can correlate the stages of one round-trip; methodName/moduleName identify the call source.
Event-name strings above are the exact values you pass to .on(...) (or to the use<Feature>EventCallback hook). Generated from the SDK’s event enums + payload maps; exhaustive per feature.