Skip to main content

Comments

Threads

CommentAnnotation


PropertyTypeRequiredDescription
annotationIdstringYesUnique identifier for the comment pin annotation. Auto generated
commentsComment[]YesThe list of all comments part of this annotation
commentCategoriesCustomCategory[]YesThe list of categories that this comment pin annotation belongs to
fromUserYesThe user who created this comment pin annotation
colorstringNoColor used for the comment pin annotation
resolvedbooleanNoWhether the comment annotation is marked resolved. Deprecated
inProgressbooleanNoWhether the comment annotation is marked as in progress. Deprecated
lastUpdatedanyNoTimestamp when the comment annotation was last updated. Auto generated
createdAtanyNoTimestamp when the comment annotation was created. Auto generated
positionCursorPosition | nullNoCursor position relative to the comment annotation
locationIdnumber | nullNoUnique location id generated from provided location
locationLocation | nullNoSet location to identify user on sub document
typestringNoType of the comment annotation
selectAllContentbooleanNoIf true, sets text comment annotation on all the text content
approvedbooleanNoWhether the comment annotation is approved
statusCustomStatusYesStatus of the comment annotation. Default: CommentAnnotationStatusMap.OPEN
annotationIndexnumberNoIndex of current annotation in the list
annotationNumbernumberNoFixed annotation number that persists across sessions. Used for referencing specific comments
pageInfoPageInfoNoPage information related to the comment annotation
assignedToUserNoUser to whom the comment annotation is assigned
priorityCustomPriorityNoPriority level of the comment annotation
ghostCommentGhostComment | nullNoPlaceholder for a non-existing comment
contextanyNoCustom context data provided by the user
resolvedByUserIdstringNoID of the user who resolved the comment
resolvedByUserUserNoUser object who resolved the comment annotation
subscribedUsersCommentAnnotationSubscribedUsersNoUsers who explicitly subscribe to the comment
unsubscribedUsersCommentAnnotationUnsubscribedUsersNoUsers who explicitly unsubscribe to the comment
multiThreadAnnotationIdstringNoID of the multithread annotation group it belongs to, if created in multithread mode
isDraftbooleanNoIndicates if the comment annotation is in draft state
customListCustomAnnotationDropdownItem[]NoCustom list of items for the comment annotation
targetElementIdstringNoID of the target element for the comment annotation if available
viewedByUsers[]NoList of users who have viewed/read this comment annotation
unreadbooleanNoWhether the annotation is unread by current user
visibilityConfigCommentAnnotationVisibilityConfigNoHuman-readable visibility configuration for the annotation. Contains type, organizationId, and userIds. Defaults to { type: 'public' } for new annotations without explicit visibility.

Enum

Enum NameEvent TypeDescription
ADD_COMMENT_ANNOTATIONaddCommentAnnotationAdd a new comment annotation
ADD_COMMENT_ANNOTATION_DRAFTaddCommentAnnotationDraftTriggered when comment annotation draft is created
DELETE_COMMENT_ANNOTATIONdeleteCommentAnnotationDelete a comment annotation
VISIBILITY_OPTION_CLICKEDvisibilityOptionClickedTriggered when user selects a visibility option from the banner
COMMENT_SAVE_TRIGGEREDcommentSaveTriggeredTriggered when comment save is initiated

AddCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata
addContext(context: any) => voidYesFunction to add custom metadata
elementRef{ xpath: string }NoReference to DOM element where comment annotation was added

AddCommentAnnotationDraftEvent


PropertyTypeRequiredDescription
addContext(context: CommentContext) => voidNoFunction to add context during draft creation

DeleteCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata

CommentBubbleClickedEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataNoEvent metadata

CommentSavedEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the saved annotation
commentAnnotationCommentAnnotationYesThe saved comment annotation object
metadataVeltEventMetadataYesEvent metadata

VisibilityOptionClickedEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation whose visibility was changed
commentAnnotationCommentAnnotationYesFull annotation at the time of the visibility selection
visibilityCommentVisibilityOptionTypeYesSelected visibility level
usersany[]NoPopulated only when visibility === 'restricted'
metadataVeltEventMetadataNoEvent metadata

CommentSaveTriggeredEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation being saved
commentAnnotationCommentAnnotationYesFull annotation at save time
metadataVeltEventMetadataYesEvent metadata

CommentContext


Custom context data for comment annotations.
type CommentContext = any;

CommentContextProviderResponse


Return type for context provider function. Can return context synchronously or asynchronously.
type CommentContextProviderResponse = CommentContext | null | undefined;

CommentContextProvider


Function type for providing context based on document and location.
type CommentContextProvider = (documentId: string, location?: Location) => CommentContextProviderResponse | Promise<CommentContextProviderResponse>;

CommentVisibilityType


Visibility level used by API methods such as updateVisibility() and enablePrivateMode() via CommentVisibilityConfig.
type CommentVisibilityType = 'public' | 'organizationPrivate' | 'restricted';
ValueDescription
'public'Comment visible to all users
'organizationPrivate'Comment visible only to users in the specified organization
'restricted'Comment visible only to specified users (private)
The visibility system uses two separate sets of values:
  • API methods use CommentVisibilityConfig with CommentVisibilityType values: 'public', 'organizationPrivate', 'restricted' (3 values — 'restricted' covers both self-only and selected-people, distinguished by whether userIds is provided).
  • UI wireframes use the CommentVisibilityOption enum with 4 values: 'restrictedSelf', 'restrictedSelectedPeople', 'organizationPrivate', 'public'. These are the type prop values on visibility banner dropdown wireframe items.

CommentVisibilityOption


Enum for UI wireframe visibility levels, used as the type prop on visibility banner dropdown content items. These are more granular than the API-level CommentVisibilityType — the API’s single 'restricted' value maps to two UI options ('restrictedSelf' and 'restrictedSelectedPeople').
export declare enum CommentVisibilityOption {
  RESTRICTED_SELF = "restrictedSelf",
  RESTRICTED_SELECTED_PEOPLE = "restrictedSelectedPeople",
  ORGANIZATION_PRIVATE = "organizationPrivate",
  PUBLIC = "public"
}
ValueDescriptionAPI Equivalent
RESTRICTED_SELFVisible only to the comment author'restricted' with userIds: [currentUserId]
RESTRICTED_SELECTED_PEOPLEVisible only to specifically selected users'restricted' with userIds: [...]
ORGANIZATION_PRIVATEVisible to users in the organization'organizationPrivate'
PUBLICVisible to all users'public'

CommentVisibilityOptionType


String union type derived from CommentVisibilityOption enum values. Used in UI wireframe components.
export type CommentVisibilityOptionType = `${CommentVisibilityOption}`;
// = 'restrictedSelf' | 'restrictedSelectedPeople' | 'organizationPrivate' | 'public'

CommentVisibilityConfig


Configuration object for API methods that update comment visibility. Uses CommentVisibilityType values — not CommentVisibilityOption values.
PropertyTypeRequiredDescription
typeCommentVisibilityTypeYesVisibility level: 'public', 'organizationPrivate', or 'restricted'.
annotationIdstringYesAnnotation ID of the comment to update visibility.
organizationIdstringNoOrganization ID. Required when type is 'organizationPrivate'.
userIdsstring[]NoUser IDs who can see the comment. Used when type is 'restricted'. The current user is automatically appended if not present.

PrivateModeConfig


Configuration for enabling private mode via API methods. Subset of CommentVisibilityConfig — excludes annotationId and organizationId. Uses CommentVisibilityType values.
type PrivateModeConfig = Omit<CommentVisibilityConfig, 'annotationId' | 'organizationId'>;
PropertyTypeRequiredDescription
typeCommentVisibilityTypeYesVisibility level applied when private mode is active.
userIdsstring[]NoUser IDs who can see comments. Used when type is 'restricted'. The current user is automatically appended if not present.

CommentAnnotationVisibilityConfig


Human-readable visibility configuration stored on a comment annotation.
PropertyTypeRequiredDescription
typeCommentVisibilityTypeYesThe visibility type for the comment annotation.
organizationIdstringNoThe organization ID for organization-private visibility.
userIdsstring[]NoThe user IDs for restricted visibility. Always includes the current user when type is 'restricted'.

CommentAnnotationSubscribedUsers


PropertyTypeRequiredDescription
userIdHashstringYesThe user ID of the subscribed user
userUserYesThe user object of the subscribed user
type'manual' | 'auto'YesManual: if the user used the UI option to subscribe; Auto: When the system automatically adds the user to the subscribed list. eg: when the user creates a comment annotation

CommentAnnotationUnsubscribedUsers


PropertyTypeRequiredDescription
userIdHashstringYesThe user ID of the unsubscribed user
userUserYesThe user object of the unsubscribed user
type'manual' | 'auto'YesManual: if the user used the UI option to unsubscribe; Auto: When the system automatically removes the user from the unsubscribed list. eg: when the comment where user was tagged is deleted

AddCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationCommentAnnotationYesComment annotation
optionsRequestOptionsNoRequest options

DeleteCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

SubmitCommentRequest


PropertyTypeRequiredDescription
targetComposerElementIdstringYesUnique identifier of the composer to submit

ClearComposerRequest


PropertyTypeRequiredDescription
targetComposerElementIdstringYesUnique identifier of the composer to clear

GetComposerDataRequest


PropertyTypeRequiredDescription
targetComposerElementIdstringYesUnique identifier of the composer to query

PageModeComposerConfig


PropertyTypeRequiredDescription
context{ [key: string]: any } | nullNoCustom context data for page mode composer
targetElementIdstring | nullNoTarget element ID to bind with comment annotation
clearContextbooleanNoWhen false, preserves context after submission. Defaults to true.

AssignToConfig


PropertyTypeRequiredDescription
type'dropdown' | 'checkbox'YesAssignment UI mode: dropdown for menu, checkbox for self-assignment

FormatConfig


Configuration for text formatting toolbar options in comment composers.
PropertyTypeRequiredDescription
bold{ enable: boolean }NoEnable or disable bold formatting option
italic{ enable: boolean }NoEnable or disable italic formatting option
underline{ enable: boolean }NoEnable or disable underline formatting option
strikethrough{ enable: boolean }NoEnable or disable strikethrough formatting option

CommentRequestQuery


PropertyTypeRequiredDescription
organizationIdstringNoOrganization ID to filter comment annotations by organization
documentIdsstring[]NoArray of document IDs to query.
locationIdsstring[]NoArray of location IDs to filter by
statusIdsstring[]NoArray of status IDs to filter by
folderIdstringNoFolder ID to filter comment annotations by folder
allDocumentsbooleanNoIf true, includes all documents in the query
locationIdstringNoSingle location ID to filter by (alternative to locationIds)
aggregateDocumentsbooleanNoIf true, aggregates comment annotation counts across multiple documents
filterGhostCommentsbooleanNoIf true, excludes ghost (deleted or orphaned) comments from the results
batchedPerDocumentbooleanNoEnable batched listener for large document lists (50+ docs)
debounceMsnumberNoDebounce delay for auto-batching updates in milliseconds (default: 5000ms)

GetCommentAnnotationsCountResponse


PropertyTypeRequiredDescription
dataRecord<string, CommentAnnotationsCount> | nullYesMap of document IDs to their comment counts. Null while loading

GetCommentAnnotationsResponse


PropertyTypeRequiredDescription
dataRecord<string, CommentAnnotation[]> | nullYesMap of document IDs to their annotations. Null while loading

FetchCommentAnnotationsRequest


PropertyTypeRequiredDescription
createdAfternumberNoFilter annotations created after this timestamp
createdBeforenumberNoFilter annotations created before this timestamp
updatedAfternumberNoFilter annotations updated after this timestamp
updatedBeforenumberNoFilter annotations updated before this timestamp
statusIdsstring[]NoFilter annotations by status IDs
order'asc' | 'desc'NoSort order for annotations
pageTokenstringNoToken for fetching next page of results
allDocumentsbooleanNoWhether to fetch annotations from all documents
pageSizenumberNoNumber of results per page
organizationIdstringNoOrganization ID to fetch annotations from
locationIdstringNoLocation ID to filter annotations by
documentIdsstring[]NoArray of specific document IDs to fetch from
folderIdstringNoFolder ID to fetch annotations from
resolvedBystringNoFilter comments by user who resolved the comment
userIdsstring[]NoFilter comments by comment annotation author
mentionedUserIdsstring[]NoFilter comments where provided users are tagged in the comment

FetchCommentAnnotationsResponse


PropertyTypeRequiredDescription
dataRecord<string, CommentAnnotation[]> | nullYesMap of document IDs to their annotations. Null while loading
nextPageTokenstringYesToken for fetching next page of results

GetCommentResolverRequest


PropertyTypeRequiredDescription
organizationIdstringYesOrganization ID to fetch comments from
commentAnnotationIdsstring[]NoArray of comment annotation IDs to fetch comments from
documentIdsstring[]NoArray of document IDs to fetch comments from
folderIdstringNoFolder ID to fetch comments from
allDocumentsbooleanNoWhether to fetch comments from all documents within the given folder

SaveCommentResolverRequest


PropertyTypeRequiredDescription
commentAnnotation{ [key: string]: PartialCommentAnnotation }YesMap of comment annotation data to save
metadataBaseMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent name that caused the save request
commentIdstringNoID of the comment to save

DeleteCommentResolverRequest


PropertyTypeRequiredDescription
commentAnnotationIdstringYesID of the comment annotation to delete
metadataBaseMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent name that caused the delete request

CustomAnnotationDropdownData


PropertyTypeRequiredDescription
type'multi' | 'single'YesThe type of the custom annotation dropdown
placeholderstringYesThe placeholder text for the dropdown. Defaults to ‘Select’
dataCustomAnnotationDropdownItem[]YesAn array of dropdown items

CustomAnnotationDropdownItem


PropertyTypeRequiredDescription
idstringYesThe unique identifier for the dropdown item
labelstringYesThe display text for the dropdown item

GetCommentAnnotationsResponse


PropertyTypeRequiredDescription
dataRecord<string, CommentAnnotation[]>YesMap of document IDs to their comment annotations

CommentAnnotationsCount


PropertyTypeRequiredDescription
unreadnumberYesNumber of unread comments
totalnumberYesTotal number of comments

GetCommentAnnotationsCountResponse


PropertyTypeRequiredDescription
dataRecord<string, CommentAnnotationsCount>YesMap of document IDs to their comment counts

Slate

AddCommentRequest


PropertyTypeRequiredDescription
editorEditorYesSlate editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextunknownNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorEditorYesSlate editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

VeltCommentsElement


Slate element type representing a comment with optional annotation ID.
PropertyTypeRequiredDescription
type'veltComment'YesDiscriminator for Velt comment elements.
childrenDescendant[]YesSlate child nodes.
annotationIdstringNoAssociated CommentAnnotation ID.

Tiptap

AddCommentRequest


PropertyTypeRequiredDescription
editorEditorYesTiptap editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextCommentAnnotationContextNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorEditorYesTiptap editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

TiptapVeltCommentsOptions


PropertyTypeRequiredDescription
HTMLAttributesRecord<string, any>NoAttributes applied to rendered comment nodes/marks.
persistVeltMarksbooleanNoWhether to persist Velt marks across edits. Default: true.
editorIdstringNoID to scope Velt operations to a specific editor instance.

CommentAnnotationContext


Context object for comment annotations. Contains text editor configuration and any additional custom metadata.
PropertyTypeRequiredDescription
textEditorConfigTextEditorConfigNoText editor configuration (auto-generated by the library).
[key: string]unknownNoAny additional custom properties you want to attach.

TextEditorConfig


Nested in CommentAnnotationContext.
PropertyTypeRequiredDescription
textstringYesThe selected text content.
occurrencenumberYesThe occurrence index of the text in the document.
editorIdstringNoThe editor ID associated with this comment.
targetTextNodeIdstringNoID of the target text node container.

Lexical

AddCommentRequest


PropertyTypeRequiredDescription
editorEditorYesLexical editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextunknownNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorEditorYesLexical editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

CommentNode


Inline Lexical element representing a comment with optional annotation IDs.
PropertyTypeRequiredDescription
type'comment'YesDiscriminator for Velt comment nodes.
childrenSerializedLexicalNode[]YesLexical child nodes (from SerializedElementNode).
annotationIdstringNoAssociated CommentAnnotation ID.
multiThreadAnnotationIdstringNoAssociated multi-thread annotation ID.

Plate

AddCommentRequest


PropertyTypeRequiredDescription
editorPlateEditorYesPlate editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextCommentAnnotationContextNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorPlateEditorYesPlate editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

VeltCommentsPluginConfig


PropertyTypeRequiredDescription
editorIdstringNoUnique identifier for this editor instance (for multi-editor scenarios).
persistVeltMarksbooleanNoWhether to persist Velt marks in the document. Default: true.

VeltCommentsElement


Plate element type representing a comment with optional annotation IDs.
PropertyTypeRequiredDescription
type'veltComment'YesElement type identifier.
childrenDescendant[]YesChild nodes (text content).
annotationIdstringNoThe Velt annotation ID.
multiThreadAnnotationIdstringNoMulti-thread annotation ID if applicable.

CodeMirror

AddCommentRequest


PropertyTypeRequiredDescription
editorEditorViewYesCodeMirror EditorView instance.
editorIdstringNoOptional editor ID used to scope operations.
contextCommentAnnotationContextNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorEditorViewYesCodeMirror EditorView instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

CodemirrorVeltCommentsConfig


Configuration options for the CodemirrorVeltComments() extension.
PropertyTypeRequiredDescription
editorIdstringNoUnique identifier for this editor instance (for multi-editor scenarios).
persistVeltMarksbooleanNoWhether to persist Velt marks in the document. Default: true.

Ace

AddCommentRequest


PropertyTypeRequiredDescription
editorAce.EditorYesAce Editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextCommentAnnotationContextNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorAce.EditorYesAce Editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

AceVeltCommentsConfig


Configuration options for the AceVeltComments() function.
PropertyTypeRequiredDescription
editorIdstringNoUnique identifier for this editor instance (for multi-editor scenarios).
persistVeltMarksbooleanNoWhether to persist Velt marks in the document. Default: true.

Quill

AddCommentRequest


PropertyTypeRequiredDescription
editorQuillYesQuill editor instance.
editorIdstringNoOptional editor ID used to scope operations.
contextCommentAnnotationContextNoOptional custom context to attach to the annotation.

RenderCommentsRequest


PropertyTypeRequiredDescription
editorQuillYesQuill editor instance.
editorIdstringNoOptional editor ID used to scope operations.
commentAnnotationsCommentAnnotation[]NoAnnotations to render/highlight.
For the CommentAnnotation model referenced above, see CommentAnnotation.

QuillVeltCommentsConfig


Configuration options for the QuillVeltComments module.
PropertyTypeRequiredDescription
editorIdstringNoUnique identifier for this editor instance (for multi-editor scenarios).
persistVeltMarksbooleanNoWhether to persist Velt marks in the document. Default: true.

Messages

ENUMs

Enum NameEvent TypeDescription
ADD_COMMENTaddCommentAdd a new comment
UPDATE_COMMENTupdateCommentUpdate an existing comment
DELETE_COMMENTdeleteCommentDelete a comment

Comment


PropertyTypeRequiredDescription
commentIdnumberYesUnique identifier for the comment pin annotation. Auto generated.
type'text' | 'voice'YesThis determines the comment content type. Default is ‘text’.
commentTextstringYesThe actual text content of the comment.
commentHtmlstringNoSame comment text but formatted in HTML.
replaceContentHtmlstringNoHTML content to replace the comment text when user accepts the comment.
replaceContentTextstringNoText content to replace the comment text when user accepts the comment.
commentVoiceUrlstringNoURL of the voice recording for the comment, if available.
fromUserYesThe user who created this comment.
toUser[]NoList of users that were @mentioned in this comment.
lastUpdatedDateNoTimestamp of when this comment was last updated. Auto generated.
editedAtanyNoTimestamp of when this comment was edited. Auto generated.
createdAtanyNoTimestamp of when this comment was created. Auto generated.
isEditedbooleanNoWhether the comment has been edited. Auto generated.
status'added' | 'updated'YesStatus of the comment indicating whether it was newly added or updated.
attachmentsAttachment[]YesList of attachments associated with the comment.
recordersRecordedData[]YesList of recorded data associated with the comment.
reactionAnnotationIdsstring[]YesList of annotation IDs for reactions to the comment.
reactionAnnotations[ReactionAnnotation[]]NoList of reaction annotations associated with the comment.
taggedUserContactsAutocompleteUserContactReplaceData[]YesList of users that were @mentioned in this comment with UI metadata.
customListAutocompleteReplaceData[]YesList of custom list items added to the comment.
isDraftbooleanYesWhether the comment is in draft state.

AddCommentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
commentCommentYesComment Object
metadataVeltEventMetadataYesEvent metadata

UpdateCommentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
commentCommentYesComment Object
metadataVeltEventMetadataYesEvent metadata

DeleteCommentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
commentCommentYesComment Object
metadataVeltEventMetadataYesEvent metadata

AddCommentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentCommentYesComment object
assignedToUserNoAssigned user
assignedbooleanNoWhether the comment is assigned
visibilityCommentVisibilityConfigNoSet visibility at comment creation time
optionsRequestOptionsNoRequest options

UpdateCommentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentCommentYesComment object
mergebooleanNoMerge comments
optionsRequestOptionsNoRequest options

DeleteCommentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
skipDeleteThreadConfirmationbooleanNoSkip delete confirmation
optionsRequestOptionsNoRequest options

GetCommentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

@Mentions

ENUMs

Enum NameEvent TypeDescription
ASSIGN_USERassignUserAssign a user to a comment
SUBSCRIBE_COMMENT_ANNOTATIONsubscribeCommentAnnotationSubscribe to a comment annotation
UNSUBSCRIBE_COMMENT_ANNOTATIONunsubscribeCommentAnnotationUnsubscribe from a comment annotation
AUTOCOMPLETE_SEARCHautocompleteSearchWhen user starts searching for a contact in the @mentions dropdown

AssignUserRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
assignedToUserContactYesUser to assign
optionsRequestOptionsNoRequest options

GetContactListResponse


PropertyTypeRequiredDescription
organizationUsersUser[]NoList of users in the organization
folderUsersUser[]NoList of users added to the folder
documentUsersUser[]NoList of users added to the document
userGroupsUserGroup[]NoList of user groups in the organization
updatedContactListUser[]NoList of contacts updated via updateContactList API

SubscribeCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

UnsubscribeCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

AutocompleteItem


PropertyTypeRequiredDescription
idstringYesUnique identifier
namestringYesName of the item
descriptionstringNoOptional description
iconobjectNoOptional icon information
icon.urlstringNoURL of the icon
linkstringNoLink associated with item

AutocompleteUserContactReplaceData


PropertyTypeRequiredDescription
textstringYesThe text displayed in the comment that represents the tagged user
userIdstringYesThe user ID of the tagged user
contactUserNoThe user object of the tagged user

AutocompleteReplaceData


PropertyTypeRequiredDescription
textstringYesThe text displayed in the comment that represents the custom item
customAutocompleteItemYesThe custom item object associated with this text

AutocompleteItem


PropertyTypeRequiredDescription
idstringYesUnique identifier for the autocomplete item
namestringYesName or label of the autocomplete item
descriptionstringNoAdditional description of the autocomplete item
icon{ url?: string, svg?: string }NoIcon associated with the autocomplete item (URL or inline SVG)
groupIdstringNoOptional group id to categorize this item
linkstringNoOptional link associated with the autocomplete item

AutocompleteData


PropertyTypeRequiredDescription
hotkeystringYesThe hotkey or trigger for this autocomplete data
descriptionstringNoOptional description of the autocomplete data
type'custom' | 'contact' | 'group'YesThe type of autocomplete data. Default is ‘custom’
groupsAutocompleteGroup[]NoOptional groups used to categorize items
dataAutocompleteItem[]YesAn array of AutocompleteItem objects

AutocompleteGroup


PropertyTypeRequiredDescription
idstringYesUnique group id
namestringYesDisplay name of group

AutoCompleteScrollConfig


Configuration for virtual scroll behavior in autocomplete dropdown.
PropertyTypeRequiredDescription
itemSizenumberNoSpecifies the fixed height of each item in pixels
minBufferPxnumberNoThe minimum amount of content buffer (in pixels) that must be rendered beyond the visible viewport. If the buffer falls below this amount, the viewport will render more items
maxBufferPxnumberNoThe maximum amount of content buffer (in pixels) to render when the minBufferPx threshold is crossed. The viewport renders items until the buffer reaches this size
templateCacheSizenumberNoAdjusts the size of the view cache. By default, previously created views are cached for reuse; setting this to 0 disables caching, which can be useful if your templates are memory-intensive

AssignUserEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
assignedToUserContactYesUser being assigned
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataNoEvent metadata

SubscribeCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata

UnsubscribeCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata

AutocompleteSearchEvent


PropertyTypeRequiredDescription
eventKeyboardEvent | InputEvent | EventYesThe triggering event
searchTextstringYesThe search text entered
type'contact' | 'custom'NoType of autocomplete search. Whether is the @mentions or custom list
metadataVeltEventMetadataNoEvent metadata

LinkClickedEvent


PropertyTypeRequiredDescription
textstringYesThe clicked link text
linkstringYesThe clicked URL
commentAnnotationCommentAnnotationYesRelated comment annotation
commentIdnumberYesThe comment id within the thread
metadataVeltEventMetadataNoEvent metadata

Custom List

ENUMs

Enum NameEvent TypeDescription
AUTOCOMPLETE_SEARCHautocompleteSearchWhen user starts searching for a list item in the custom list dropdown

AutocompleteSearchEvent


PropertyTypeRequiredDescription
eventKeyboardEvent | InputEvent | EventYesThe triggering event
searchTextstringYesThe search text entered
type'contact' | 'custom'NoType of autocomplete search. Whether is the @mentions or custom list
metadataVeltEventMetadataNoEvent metadata

Attachments

ENUMs

Enum NameEvent TypeDescription
ADD_ATTACHMENTaddAttachmentAdd an attachment to a comment
DELETE_ATTACHMENTdeleteAttachmentDelete an attachment from a comment
ATTACHMENT_DOWNLOAD_CLICKEDattachmentDownloadClickedTriggered when attachment download button is clicked

Attachment


PropertyTypeRequiredDescription
attachmentIdnumberYesUnique identifier for the attachment. Auto-generated
namestringNoFile name of the attachment
bucketPathstringNoPath to the file in storage bucket
sizenumberNoFile size of the attachment
typestringNoFile type of the attachment
urlstringNoDownload URL of the attachment
thumbnailstringNoThumbnail image in base64 format
thumbnailWithPlayIconUrlstringNoURL of the thumbnail with a play icon overlay
metadataanyNoAdditional metadata of the attachment
mimeTypeanyNoMIME type of the attachment

AddAttachmentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
filesFile[]YesArray of files
optionsRequestOptionsNoRequest options

DeleteAttachmentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
attachmentIdnumberYesID of the attachment
optionsRequestOptionsNoRequest options

GetAttachmentRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
optionsRequestOptionsNoRequest options

UploadFileData


Configuration object for programmatically adding file attachments to the comment composer.
PropertyTypeRequiredDescription
filesFile[]YesArray of File objects to attach to the comment composer
annotationIdstringNoID of the target comment annotation. Use this to add attachments to an existing comment thread
targetElementIdstringNoID of the target element where the comment composer is attached. Use this to add attachments to a specific element

AddAttachmentResponse


PropertyTypeRequiredDescription
validbooleanYesValidity status
fileFileNoFile object
maxAllowedSizenumberYesMax allowed size
errorstringNoError message
attachmentAttachmentNoAttachment object

DeleteAttachmentResolverRequest


PropertyTypeRequiredDescription
attachmentIdnumberYesID of the attachment
metadataAttachmentResolverMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent that triggered the delete

SaveAttachmentResolverRequest


PropertyTypeRequiredDescription
attachmentResolverAttachmentYesAttachment object to save
metadataAttachmentResolverMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent that triggered the save

AddAttachmentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
attachmentsAddAttachmentResponse[]YesArray of attachment responses
metadataVeltEventMetadataYesEvent metadata

AddAttachmentResponse


PropertyTypeRequiredDescription
validbooleanYesWhether attachment is valid
fileFileNoFile object
maxAllowedSizenumberYesMaximum allowed file size
errorstringNoError message if invalid
attachmentAttachmentNoAttachment object

DeleteAttachmentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
commentAnnotationCommentAnnotationYesComment annotation object
attachmentAttachmentYesAttachment Object
metadataVeltEventMetadataYesEvent metadata

AttachmentDownloadClickedEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the comment annotation
commentAnnotationCommentAnnotationYesFull comment annotation object
attachmentAttachmentYesThe attachment that was clicked
metadataVeltEventMetadataYesEvent metadata

Reactions

ENUMs

Enum NameEvent TypeDescription
ADD_REACTIONaddReactionAdd a reaction to a comment
DELETE_REACTIONdeleteReactionDelete a reaction from a comment
TOGGLE_REACTIONtoggleReactionToggle a reaction on a comment

AddReactionRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
reaction{ reactionId: string; customReaction?: ReactionItem; }YesReaction object with reactionId and optional customReaction
optionsRequestOptionsNoRequest options

DeleteReactionRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
reaction{ reactionId: string; customReaction?: ReactionItem; }YesReaction object with reactionId and optional customReaction
optionsRequestOptionsNoRequest options

ToggleReactionRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
reaction{ reactionId: string; customReaction?: ReactionItem; }YesReaction object with reactionId and optional customReaction
optionsRequestOptionsNoRequest options

ReactionItem


PropertyTypeRequiredDescription
urlstringNoURL of the reaction image
emojistringNoEmoji character

GetReactionResolverRequest


PropertyTypeRequiredDescription
organizationIdstringYesID of the organization to fetch reactions from
reactionAnnotationIdsstring[]NoArray of reaction annotation IDs to fetch reactions from
documentIdsstring[]NoArray of document IDs to fetch reactions from
folderIdstringNoID of the folder to fetch reactions from
allDocumentsbooleanNoWhether to get reactions from all documents within the given folder

SaveReactionResolverRequest


PropertyTypeRequiredDescription
reactionAnnotation{ [key: string]: PartialReactionAnnotation }YesMap of reaction annotation id to reaction annotation data
metadataBaseMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent name that caused the save request

DeleteReactionResolverRequest


PropertyTypeRequiredDescription
reactionAnnotationIdstringYesID of the reaction annotation
metadataBaseMetadataNoAdditional metadata for the request. eg: apikey, organizationId, documentId, etc.
eventResolverActionsNoEvent name that caused the delete request

AddReactionEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
reactionReactionAnnotationYesReaction Object
metadataVeltEventMetadataYesEvent metadata

DeleteReactionEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
reactionReactionAnnotationYesReaction Object
metadataVeltEventMetadataYesEvent metadata

ToggleReactionEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
reactionReactionAnnotationYesReaction Object
metadataVeltEventMetadataYesEvent metadata

ReactionPinType


Display location for pinned reactions.
type ReactionPinType = 'timeline' | 'comment' | 'standalone';
  • 'timeline': Pin reaction to timeline view
  • 'comment': Pin reaction to comment context
  • 'standalone': Display reaction independently

Status & Priority

ENUMs

Enum NameEvent TypeDescription
UPDATE_STATUSupdateStatusUpdate the status of a comment
RESOLVE_COMMENTresolveCommentResolve a comment
UPDATE_PRIORITYupdatePriorityUpdate the priority of a comment
APPROVE_COMMENT_ANNOTATIONapproveCommentAnnotationApprove a comment annotation
ACCEPT_COMMENT_ANNOTATIONacceptCommentAnnotationAccept a comment annotation
REJECT_COMMENT_ANNOTATIONrejectCommentAnnotationReject a comment annotation

UpdateStatusRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
statusCustomStatusYesStatus value
optionsRequestOptionsNoRequest options

ResolveCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

UpdatePriorityRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
priorityCustomPriorityNoPriority object
optionsRequestOptionsNoRequest options

ApproveCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

AcceptCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

RejectCommentAnnotationRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

CustomPriority


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom priority
colorstringYesColor associated with the custom priority
namestringYesName or label of the custom priority
lightColorstringNoLight color variant for the custom priority

CustomStatus


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom status
colorstringYesText and comment pin color associated with the custom status
namestringYesName or label of the custom status
typeStatusTypeYesType of the status (default, ongoing, or terminal)
lightColorstringNoBackground color on the status indicator for the custom status
iconUrlstringNoURL to an icon image for the custom status

UpdateStatusEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
newStatusCustomStatusYesNew status object
oldStatusCustomStatusYesPrevious status object
metadataVeltEventMetadataYesEvent metadata

ResolveCommentEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata

UpdatePriorityEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
newPriorityCustomPriorityNoNew Priority object
oldPriorityCustomPriorityNoPrevious Priority object
metadataVeltEventMetadataYesEvent metadata

ApproveCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata

AcceptCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata
actionUserUserYesUser who performed the action
replaceContentHtmlstringNoHTML content to replace with
replaceContentTextstringNoText content to replace with

RejectCommentAnnotationEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataYesEvent metadata
actionUserUserYesUser who performed the action
replaceContentHtmlstringNoHTML content to replace with
replaceContentTextstringNoText content to replace with

Comment Dialog Primitives

Types for the 79 primitive components used to build custom comment dialog interfaces. See Comment Dialog Primitives Overview for usage examples and API Methods for component documentation.

CommentDialogCommonProps

Usage Examples →

Base props inherited by all Comment Dialog primitive components.
PropertyTypeRequiredDescription
annotationIdstringNoAnnotation ID (required in standalone mode)
defaultConditionbooleanNoWhen false, always shows component (default: true)
inlineCommentSectionModebooleanNoEnables inline comment section mode
commentPinSelectedbooleanNoComment pin selection state
fullExpandedbooleanNoFull expansion state

CommentDialogContextWrapperProps

Usage Examples →

Props for the VeltCommentDialogContextWrapper component.
PropertyTypeRequiredDescription
annotationIdstringYesAnnotation ID for children
commentIdstringNoComment ID for children
attachmentIdstringNoAttachment ID for children
commentPinSelectedbooleanNoSelection state for children
[key: string]anyNoCustom attributes passed via context

ThreadCardProps

Usage Examples →

Props for VeltCommentDialogThreadCard with priority-based comment lookup.
PropertyTypeRequiredDescription
commentObjobjectNoDirect comment object (Priority 1)
commentIdnumberNoComment ID for lookup (Priority 2)
commentIndexnumberNoIndex in comments array (Priority 3)
Inherits all properties from CommentDialogCommonProps.

CommentIndexProps

Usage Examples →

Props for thread card sub-components that require a comment index.
PropertyTypeRequiredDescription
commentIndexnumberNoIndex of comment in array
Inherits all properties from CommentDialogCommonProps.

ComposerProps

Usage Examples →

Props for VeltCommentDialogComposer with placeholder and edit mode options.
PropertyTypeRequiredDescription
placeholderstringNoPrimary placeholder (Priority 1)
commentPlaceholderstringNoPlaceholder for new comment
replyPlaceholderstringNoPlaceholder for reply
editPlaceholderstringNoPlaceholder for edit mode
editModebooleanNoEnables edit mode
commentObjobjectNoComment object for edit mode
commentIndexnumberNoIndex of comment being edited
targetComposerElementIdstringNoUnique identifier for programmatic submission via submitComment()
contextobjectNoCustom context data to attach to comment
Inherits all properties from CommentDialogCommonProps.

ComposerInputProps

Usage Examples →

Props for VeltCommentDialogComposerInput.
PropertyTypeRequiredDescription
placeholderstringNoInput placeholder text
Inherits all properties from CommentDialogCommonProps.

StatusDropdownItemProps

Usage Examples →

Props for VeltCommentDialogStatusDropdownContentItem with priority-based status lookup.
PropertyTypeRequiredDescription
statusObjobjectNoDirect status object (Priority 1)
statusIdstringNoStatus ID for lookup (Priority 2)
statusIndexnumberNoIndex in statuses array (Priority 3)
Inherits all properties from CommentDialogCommonProps.

PriorityDropdownItemProps

Usage Examples →

Props for VeltCommentDialogPriorityDropdownContentItem with priority-based priority lookup.
PropertyTypeRequiredDescription
priorityObjobjectNoDirect priority object (Priority 1)
priorityIdstringNoPriority ID for lookup (Priority 2)
priorityIndexnumberNoIndex in priorities array (Priority 3)
Inherits all properties from CommentDialogCommonProps.

OptionsDropdownProps

Usage Examples →

Props for VeltCommentDialogOptionsDropdown with feature enable flags.
PropertyTypeRequiredDescription
commentIndexnumberNoIndex of comment for options
enableAssignmentbooleanNoEnable assignment option
allowAssignmentbooleanNoV4 alias for enableAssignment
enableEditbooleanNoEnable edit option
allowEditbooleanNoV4 alias for enableEdit
enableNotificationsbooleanNoEnable notifications option
allowNotificationsbooleanNoV4 alias for enableNotifications
allowToggleNotificationbooleanNoV4 alias for enableNotifications
enablePrivateModebooleanNoEnable private mode option
allowPrivateModebooleanNoV4 alias for enablePrivateMode
allowChangeCommentAccessModebooleanNoV4 alias for enablePrivateMode
enableMarkAsReadbooleanNoEnable mark as read option
allowMarkAsReadbooleanNoV4 alias for enableMarkAsRead
Inherits all properties from CommentDialogCommonProps.

CustomAnnotationItemProps

Usage Examples →

Props for custom annotation dropdown items.
PropertyTypeRequiredDescription
itemobjectNoItem data object
indexnumberNoItem index
Inherits all properties from CommentDialogCommonProps.

ReplyAvatarsListItemProps

Usage Examples →

Props for VeltCommentDialogReplyAvatarsListItem.
PropertyTypeRequiredDescription
userUserYesUser data object
indexnumberYesIndex of user in list
Inherits all properties from CommentDialogCommonProps.

IVeltCommentDialogThreadCardReactionPinProps


Props for VeltCommentDialogThreadCard.ReactionPin to display specific pinned reactions.
PropertyTypeRequiredDescription
reactionIdstringNoUnique reaction identifier to pin and display

IVeltCommentDialogThreadCardReactionsProps


Props for VeltCommentDialogThreadCard.Reactions to filter displayed reactions.
PropertyTypeRequiredDescription
excludeReactionIdsstring[]NoReaction IDs to exclude from display

IVeltCommentDialogThreadCardReactionToolProps


Props for VeltCommentDialogThreadCard.ReactionTool to filter reaction picker options.
PropertyTypeRequiredDescription
excludeReactionIdsstring[]NoReaction IDs to exclude from picker

Recordings

ENUMs

Enum NameEvent TypeDescription
DELETE_RECORDINGdeleteRecordingDelete a recording from a comment

GetRecordingRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
optionsRequestOptionsNoRequest options

DeleteRecordingRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentIdnumberYesID of the comment
recorderIdstringYesID of the recorder
optionsRequestOptionsNoRequest options

DeleteRecordingEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
commentIdnumberYesID of the comment
recordingRecordedDataYesRecording data
metadataVeltEventMetadataYesEvent metadata

ENUMs

Enum NameEvent TypeDescription
COPY_LINKcopyLinkCopy a deep link to a comment

GetLinkRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

CopyLinkRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
optionsRequestOptionsNoRequest options

CopyLinkEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
linkstringYesCopied link
metadataVeltEventMetadataYesEvent metadata

GetLinkResponse


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
linkstring | nullYesGenerated link
metadataVeltEventMetadataYesEvent metadata

Access

ENUMs

Enum NameEvent TypeDescription
UPDATE_ACCESSupdateAccessUpdate access settings for a comment

UpdateAccessRequest


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
accessModeCommentAccessModeYesAccess mode
optionsRequestOptionsNoRequest options

UpdateAccessEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
newAccessModeCommentAccessModeNoNew access mode
oldAccessModeCommentAccessModeNoPrevious access mode
metadataVeltEventMetadataYesEvent metadata

UserPermissionAccessRole


Type: 'editor' | 'viewer'
  • editor: Write access
  • viewer: Read-only access

UserPermissionAccessRoleResult


Type: 'does_not_exist' | 'permission_denied' | 'something_went_wrong' Error codes returned when permission resolution fails:
  • does_not_exist: The requested resource (organization, folder, or document) does not exist
  • permission_denied: The user does not have permission to access the requested resource
  • something_went_wrong: An unexpected error occurred during permission resolution

GetUserPermissionsRequest


PropertyTypeRequiredDescription
organizationIdstringNoOrganization to scope the permission lookup.
folderIdsstring[]NoFolder IDs to include in the lookup.
documentIdsstring[]NoDocument IDs to include in the lookup.

UserPermissionInfo


PropertyTypeRequiredDescription
accessRoleUserPermissionAccessRoleNoAccess role for the resource.
expiresAtnumberNoExpiry (Unix ms) for temporary access, if applicable.
errorstringNoError message if permission resolution failed.
errorCodeUserPermissionAccessRoleResultNoError code indicating the type of permission resolution failure.
context{ accessFields?: string[] }NoContext access information with accessFields array.

GetUserPermissionsResponse


Map of user IDs to their resolved permissions across organization, folders, and documents.
PropertyTypeRequiredDescription
[userId: string]{ folders?: Record<string, UserPermissionInfo>; organization?: Record<string, UserPermissionInfo>; documents?: Record<string, UserPermissionInfo>; }YesPermissions for a user, keyed by resource scope and ID.

UI

AssignToType


UI mode for assignment functionality.
type AssignToType = 'dropdown' | 'checkbox';
  • 'dropdown': Default assignment menu with team member selection
  • 'checkbox': Quick self-assignment toggle mode

ENUMs

Enum NameEvent TypeDescription
COMPOSER_CLICKEDcomposerClickedTriggered when comment composer is clicked
COMMENT_PIN_CLICKEDcommentPinClickedTriggered when a comment pin is clicked
COMPOSER_TEXT_CHANGEcomposerTextChangeTriggered when text changes in a comment composer
COMMENT_TOOL_CLICKEDcommentToolClickedPast-tense alias for commentToolClick
SIDEBAR_BUTTON_CLICKEDsidebarButtonClickedPast-tense alias for sidebarButtonClick
COMMENT_SAVE_TRIGGEREDcommentSaveTriggeredTriggered immediately when save button is clicked, before async save

ComposerClickedEvent


PropertyTypeRequiredDescription
commentAnnotationCommentAnnotationNoComment annotation object. This is undefined if it’s a new comment annotation object.
metadataVeltEventMetadataYesEvent metadata

ComposerTextChangeEvent


PropertyTypeRequiredDescription
textstringYesCurrent text content in the composer
annotationCommentAnnotationYesFull draft annotation with attachments, recordings, tagged users
targetComposerElementIdstringYesUnique identifier of the composer that triggered the event
metadataVeltEventMetadataNoEvent metadata including document and location context

CommentPinClickedEvent


PropertyTypeRequiredDescription
annotationIdstringYesID of the annotation
commentAnnotationCommentAnnotationYesComment annotation object
metadataVeltEventMetadataNoEvent metadata

CommentToolClickedEvent


PropertyTypeRequiredDescription
context{ [key: string]: any } | nullNoCustom context data when comment tool is clicked
metadataVeltEventMetadataNoEvent metadata
targetElementIdstringNoID of the target element if available

SidebarButtonClickedEvent


PropertyTypeRequiredDescription
metadataVeltEventMetadataNoEvent metadata

Comment Sidebar

CommentCountType


Union type for specifying comment count display mode.
type CommentCountType = 'total' | 'unread';
  • 'total': Shows total count of all comments
  • 'unread': Shows count of unread comments only

SidebarFilterCriteria


Filter criteria for minimal filter dropdown in sidebar.
type SidebarFilterCriteria = 'status' | 'priority' | 'category' | 'people' | 'assignedToMe';
Available filter criteria for sidebar filtering.

ENUMs

Enum NameEvent TypeDescription
COMMENT_SIDEBAR_DATA_INITcommentSidebarDataInitTriggered when comment sidebar data is first loaded
COMMENT_SIDEBAR_DATA_UPDATEcommentSidebarDataUpdateTriggered when comment sidebar data is updated

CommentStatus


PropertyTypeRequiredDescription
colorstringYesPrimary color for the status.
idstringYesUnique identifier for the status.
lightColorstringYesLight variant of the status color.
namestringYesDisplay name of the status.
svgstringYesSVG icon for the status.
typestringNoOptional type classification for the status.

CommentPriority


PropertyTypeRequiredDescription
colorstringYesPrimary color for the priority.
idstringYesUnique identifier for the priority.
lightColorstringYesLight variant of the priority color.
namestringYesDisplay name of the priority.

CustomFilter


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom filter
colorstringYesColor associated with the custom filter
namestringYesName or label of the custom filter

CustomCategory


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom category
colorstringYesColor associated with the custom category
namestringYesName or label of the custom category

CommentSidebarDataInitEvent


PropertyTypeRequiredDescription
buttonContextVeltButtonContextYesButton context
metadataVeltEventMetadataYesEvent metadata
commentAnnotationCommentAnnotationNoComment annotation object
commentCommentNoComment object
indexnumberNoIndex value
commentAnnotationsCommentAnnotation[]NoArray of comment annotations
systemFilteredAnnotationsCommentAnnotation[]NoFiltered comment annotations
unreadCommentAnnotationsMap{ [commentAnnotationId: string]: number }NoMap of unread comment counts
customFiltersCustomFiltersNoCustom filters applied in the Comment Sidebar. Only available when custom sidebar filters are used.

CommentSidebarDataUpdateEvent


PropertyTypeRequiredDescription
buttonContextVeltButtonContextYesButton context
metadataVeltEventMetadataYesEvent metadata
commentAnnotationCommentAnnotationNoComment annotation object
commentCommentNoComment object
indexnumberNoIndex value
commentAnnotationsCommentAnnotation[]NoArray of comment annotations
systemFilteredAnnotationsCommentAnnotation[]NoFiltered comment annotations
unreadCommentAnnotationsMap{ [commentAnnotationId: string]: number }NoMap of unread comment counts
customFiltersCustomFiltersNoCustom filters applied in the Comment Sidebar. Only available when custom sidebar filters are used.

CommentSidebarFilterConfig


PropertyTypeRequiredDescription
locationFilterTypeConfigNoConfiguration for the location filter type.
documentFilterTypeConfigNoConfiguration for the document filter type. Only use it if you are using multiple documents or folders
peopleFilterTypeConfigNoConfiguration for the author filter type.
taggedFilterTypeConfigNoConfiguration for the tagged/mentioned filter type.
assignedFilterTypeConfigNoConfiguration for the assigned filter type.
involvedFilterTypeConfigNoConfiguration for the involved filter type (author, mentioned, assigned).
priorityFilterTypeConfigNoConfiguration for the priority filter type.
categoryFilterTypeConfigNoConfiguration for the category filter type.
commentTypeFilterTypeConfigNoConfiguration for the comment type filter.
versionFilterTypeConfigNoConfiguration for the version filter type.
statusFilterTypeConfigNoConfiguration for the status filter type.
[key: string]FilterTypeConfig | undefinedNoCustom filter type configurations.

FilterTypeConfig


PropertyTypeRequiredDescription
namestringNoThe name of the filter type
enablebooleanNoEnables or disables the filter type
multiSelectionbooleanNoAllows multiple selections if set to true
enableGroupingbooleanNoEnables grouping within the filter type if set to true
placeholderstringNoThe placeholder text for the filter type. Used when filterOptionLayout is set to dropdown
idstringNoThe unique identifier for the filter type
type'custom' | 'system'NoThe type of filter - custom or system
optionsFilterOption[]NoArray of filter options available for this filter type

CommentSidebarGroupConfig


PropertyTypeRequiredDescription
enablebooleanNoEnables or disables grouping
namestringNoThe name of the group
[key: string]{ id?: string, name?: string }[] | string[] | undefinedNoCustom filter configurations

CommentSidebarFilters


PropertyTypeRequiredDescription
location{id: string}[]NoFilter by location Ids
document{id: string}[]NoFilter by document Ids
people{userId: string}[]NoFilter by author of comment annotation
tagged{userId: string}[]NoFilter by users who were tagged/mentioned in the comment
assigned{userId: string}[]NoFilter by users who were assigned to the comment annotation
involved{userId: string}[]NoFilter by users who are involved in the comment annotation (author, mentioned, assigned)
prioritystring[]NoFilter by priority ids
statusstring[]NoFilter by status ids
categorystring[]NoFilter by category ids
version{id: string}[]NoFilter by version Ids

CommentSidebarData


PropertyTypeRequiredDescription
groupIdstringNoID of the group. Defaults to ‘others’
groupNamestringNoName of the group. Defaults to ‘Others’
isExpandedbooleanNoWhether the group is expanded. Defaults to true
annotationsCommentAnnotation[]YesList of CommentAnnotations in the group

Options


PropertyTypeRequiredDescription
groupingbooleanNoWhether to group the data. Defaults to true

CustomFilterOption


PropertyTypeRequiredDescription
idstringYesUnique identifier for the filter option
namestringYesDisplay name for the filter option
selectedbooleanYesWhether the filter option is currently selected

CustomFilters


PropertyTypeRequiredDescription
[key: string]CustomFilterOption[]NoCustom filter configurations mapped by filter key

FilterOption


PropertyTypeRequiredDescription
idstringYesUnique identifier for the filter option
namestringYesDisplay name for the filter option

CustomFilter


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom filter.
colorstringYesColor associated with the custom filter.
namestringYesName or label of the custom filter.

CustomPriority


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom priority.
colorstringYesColor associated with the custom priority.
namestringYesName or label of the custom priority.
lightColorstringNoLight color variant for the custom priority.

CustomStatus


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom status.
colorstringYesColor associated with the custom status.
namestringYesName or label of the custom status.
typeStatusTypeYesType of the status (default, ongoing, or terminal).
lightColorstringNoLight color for the custom status.
iconUrlstringNoURL to an icon image for the custom status.

CustomCategory


PropertyTypeRequiredDescription
idstringYesUnique identifier for the custom category.
colorstringYesColor associated with the custom category.
namestringYesName or label of the custom category.

Component Props

VeltCommentsProps


PropertyTypeRequiredDescription
assignToTypeAssignToTypeNoAssignment UI mode: ‘dropdown’ (default) or ‘checkbox’

VeltCommentToolProps


PropertyTypeRequiredDescription
contextInPageModeComposerbooleanNoEnable passing context to page mode composer
contextanyNoContext data to pass when sidebar opens

VeltCommentComposerProps


PropertyTypeRequiredDescription
contextanyNoCustom context data for the comment composer
locationIdstringNoLocation identifier for the comment
documentIdstringNoDocument identifier for the comment
folderIdstringNoFolder identifier for the comment
placeholderstringNoCustom placeholder text for composer input
targetComposerElementIdstringNoUnique identifier for programmatic submission via submitComment()
readOnlybooleanNoEnable read-only mode for composer

VeltCommentsSidebarProps


PropertyTypeRequiredDescription
openAnnotationInFocusModebooleanNoOpens annotation in focus mode when enabled. Requires focusedThreadMode to be enabled
commentPlaceholderstringNoCustom placeholder text for comment input field
replyPlaceholderstringNoCustom placeholder text for reply input field
pageModePlaceholderstringNoCustom placeholder text for page mode input

VeltInlineCommentsSectionProps


PropertyTypeRequiredDescription
commentPlaceholderstringNoCustom placeholder text for comment input field
replyPlaceholderstringNoCustom placeholder text for reply input field
composerPlaceholderstringNoCustom placeholder text for composer input field
readOnlybooleanNoEnable read-only mode for inline comments section

Recorder

Enum NameEvent TypeDescription
TRANSCRIPTION_DONEtranscriptionDoneTriggered when a transcription is generated and ready
RECORDING_DONErecordingDoneTriggered when a recording is completed
RECORDING_DELETEdeleteRecordingTriggered when a recording is deleted
RECORDING_EDIT_DONErecordingEditDoneTriggered when a recording is edited and saved
RECORDING_SAVE_INITIATEDrecordingSaveInitiatedTriggered when a recording saved is initiated
ERRORerrorTriggered when an error occurs during recording operations

Recorder Data

RecorderRequestQuery


PropertyTypeRequiredDescription
recorderIdsstring[]YesArray of recorder IDs to query

DeleteRecordingsRequest


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the latest version of the recording

GetRecordingDataResponse


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the latest version of the recording

DeleteRecordingsResponse


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the latest version of the recording

Recorder Configuration

RecorderQualityConstraints


PropertyTypeRequiredDescription
safariRecorderQualityConstraintsOptionsNoConstraints specific to the Safari browser.
otherRecorderQualityConstraintsOptionsNoConstraints for other browsers (e.g., Chrome, Firefox, Edge).

RecorderEncodingOptions


PropertyTypeRequiredDescription
safariMediaRecorderOptionsNoEncoding options specific to the Safari browser.
otherMediaRecorderOptionsNoEncoding options for other browsers (e.g., Chrome, Firefox, Edge).

RecordingDoneEvent


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the recording

RecordingDeleteEvent


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the recording

RecordingEditDoneEvent


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the recording

RecordingSaveInitiatedEvent


PropertyTypeRequiredDescription
annotationIdstringNoID of the annotation. This property is only available when type is ‘edit’.
messagestringYesA descriptive message about the save initiation.
type'edit' | 'record'YesSpecifies whether the save was initiated for an ‘edit’ or a new ‘recording’.

RecordingStartedEvent


PropertyTypeRequiredDescription
type'audio' | 'video' | 'screen'YesThe type of recording that started.

RecordingPausedEvent


PropertyTypeRequiredDescription
type'audio' | 'video' | 'screen'YesThe type of recording that was paused.

RecordingResumedEvent


PropertyTypeRequiredDescription
type'audio' | 'video' | 'screen'YesThe type of recording that was resumed.

RecordingCancelledEvent


PropertyTypeRequiredDescription
type'audio' | 'video' | 'screen'YesThe type of recording that was cancelled.

RecordingStoppedEvent


PropertyTypeRequiredDescription
type'audio' | 'video' | 'screen'YesThe type of recording that was stopped.

TranscriptionDoneEvent


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the recording

RecordingErrorEvent


PropertyTypeRequiredDescription
typestringYesThe type of error that occurred. eg: editFailed, recordingFailed, transcriptionFailed
messagestringYesA descriptive message about the error.
recorderIdstringNoID of the recorder, if the error is specific to one.

RecorderConfig


PropertyTypeRequiredDescription
type{ audio?: boolean, video?: boolean, screen?: boolean }YesTypes of media to be recorded
recorderOptionsMediaRecorderOptionsNoOptions for the media recorder

RecordedData


PropertyTypeRequiredDescription
idstringYesAnnotation ID of recorder annotation
tagstringYesRecorder player tag containing recorder annotation id which can be added anywhere on the DOM
typestringYesType of recorded data. Possible values are ‘audio’, ‘video’, and ‘screen’
thumbnailUrlstringNoURL of the thumbnail image for the recorded data
thumbnailWithPlayIconUrlstringNoURL of the thumbnail image with a play icon overlay
videoUrlstringNoURL of the recorded video
audioUrlstringNoURL of the recorded audio
videoPlayerUrlstringNoURL of the hosted website to open video in a new tab
getThumbnailTagfunctionYesA method that returns an HTML string for displaying the thumbnail with a link to the video player

RecorderAnnotation


PropertyTypeRequiredDescription
annotationIdStringYesUnique identifier for the recorder annotation, automatically generated.
fromUserYesThe user who created the recorder annotation.
colorStringNoColor used for the annotation.
lastUpdatedAnyNoTimestamp of the last update, automatically generated.
locationIdNumberNoUnique location ID from provided location.
locationLocationNoLocation to identify user on sub document.
typeStringNoType of annotation.
recordingTypeStringYesType of recording for the annotation.
modeStringYesMode of the recorder annotation, ‘floating’ or ‘thread’.
approvedBooleanNoIndicates if the annotation is approved.
attachmentAttachmentNoAttachment for recorded media. Deprecated.
attachmentsAttachment[]YesList of attachments for the annotation.
annotationIndexNumberNoIndex of the annotation in a list.
pageInfoPageInfoNoInformation about the page where the annotation is made.
recordedTimeObjectNoRecorded time details.
transcriptionTranscriptionNoTranscription of the recorded media.
isRecorderResolverUsedbooleanNoTrue while PII is being fetched from the recorder resolver; use for loading states.
isUrlAvailablebooleanNoTrue once the recording URL is available (not a local blob); use for upload progress.

RecorderDataTranscriptSegment


PropertyTypeRequiredDescription
startTimeStringYesStart time of the transcription segment
endTimeStringYesEnd time of the transcription segment
startTimeInSecondsNumberYesStart time of the segment in seconds
endTimeInSecondsNumberYesEnd time of the segment in seconds
textStringYesTranscribed text content of the segment

RecorderDataTranscription


PropertyTypeRequiredDescription
transcriptSegmentsRecorderDataTranscriptSegment[]NoArray of transcription segments
vttFileUrlStringNoURL to the VTT format transcription file
contentSummaryStringNoSummary of the transcribed content

RecorderDataAsset


PropertyTypeRequiredDescription
versionnumberNoVersion of the asset.
urlstringYesURL to the recorded media
mimeTypestringNoMIME type of the recorded media
fileNamestringNoName of the recorded file
fileSizeInBytesnumberNoFile size in bytes
fileFormatRecorderFileFormatNoThe format/extension of the file. Example: ‘mp3’, ‘mp4’, ‘webm’
thumbnailUrlstringNoURL to the thumbnail image
transcriptionRecorderDataTranscriptionNoTranscription data for the recording

RecorderData


PropertyTypeRequiredDescription
recorderIdstringYesID of the recorder
fromUser | nullNoThe user who created the recorder
metadataRecorderMetadataNoMetadata for the recording
assetsRecorderDataAsset[]YesArray of recording assets for the latest version
assetsAllVersionsRecorderDataAsset[]YesArray of all versions of recording assets
transcriptionRecorderDataTranscriptionYesTranscription data for the latest version of the recording

MediaPreviewConfig


PropertyTypeRequiredDescription
audioObjectNoConfiguration for audio preview
audio.enabledbooleanNoWhether audio preview is enabled
audio.deviceIdstringNoDevice ID for audio input
videoObjectNoConfiguration for video preview
video.enabledbooleanNoWhether video preview is enabled
video.deviceIdstringNoDevice ID for video input
screenObjectNoConfiguration for screen preview
screen.enabledbooleanNoWhether screen preview is enabled
screen.streamMediaStreamNoMediaStream for screen sharing

MediaRecorderOptions


PropertyTypeRequiredDescription
audioBitsPerSecondnumberNoControls the audio encoding quality by setting the number of bits used per second for audio.
videoBitsPerSecondnumberNoControls the video encoding quality by setting the number of bits used per second for video.

RecorderQualityConstraintsOptions


PropertyTypeRequiredDescription
videoMediaTrackConstraintsNoSpecifies the constraints for the video track.
audioMediaTrackConstraintsNoSpecifies the constraints for the audio track.

MediaTrackConstraints


PropertyTypeRequiredDescription
aspectRatioConstrainDoubleNoControls the width-to-height ratio of the captured video stream.
frameRateConstrainDoubleNoDetermines the number of frames per second for the video stream.
heightConstrainULongNoSets the vertical resolution (in pixels) of the video stream.
widthConstrainULongNoSets the horizontal resolution (in pixels) of the video stream.
autoGainControlConstrainBooleanNoEnables/disables automatic volume adjustment for audio input.
echoCancellationConstrainBooleanNoEnables/disables the removal of audio echo effects.
noiseSuppressionConstrainBooleanNoEnables/disables the filtering of background noise from audio.
sampleRateConstrainULongNoControls the number of audio samples taken per second.

ConstrainDouble


PropertyTypeRequiredDescription
minnumberNoThe minimum acceptable value.
maxnumberNoThe maximum acceptable value.
idealnumberNoThe preferred value that the browser will try to match if possible.
exactnumberNoA mandatory value that must be matched exactly or the request fails.

ConstrainULong


PropertyTypeRequiredDescription
minnumberNoThe minimum acceptable value.
maxnumberNoThe maximum acceptable value.
idealnumberNoThe preferred value that the browser will try to match if possible.
exactnumberNoA mandatory value that must be matched exactly or the request fails.

ConstrainBoolean


PropertyTypeRequiredDescription
idealbooleanNoThe preferred value that the browser will try to match if possible.
exactbooleanNoA mandatory value that must be matched exactly or the request fails.

RecorderDevicePermissionOptions


PropertyTypeRequiredDescription
audiobooleanNoWhether to request permission for audio input devices.
videobooleanNoWhether to request permission for video input devices.

RecorderElement Interface

RecorderElement


Interface representing the Recorder element object that provides methods for controlling recording behavior, Picture-in-Picture mode, and permissions.
MethodParametersReturnsDescription
setMaxLengthvalue: numbervoidSets the maximum recording duration in seconds
enablePictureInPictureNonevoidEnables Picture-in-Picture mode for recordings
disablePictureInPictureNonevoidDisables Picture-in-Picture mode for recordings
openPictureInPictureNonevoidOpens the Picture-in-Picture window for the current recording
exitPictureInPictureNonevoidExits the Picture-in-Picture window
requestScreenPermissionNonePromise<void>Requests screen capture permissions for recording preview

Notifications

Notification


PropertyTypeRequiredDescription
idstringYesNotification ID
notificationSourcestringYesNotification source. e.g., ‘comment’, ‘custom’, etc.
actionTypestringNoAction that triggered the notification. e.g., ‘added’
isUnreadbooleanNoWhether the notification is unread for the user
actionUserUserNoThe user who triggered the action
timestampnumberNoTimestamp of the notification
displayHeadlineMessagestringNoThe headline message of the notification
displayBodyMessagestringNoThe body message of the notification
displayHeadlineMessageTemplatestringNoThe template of the headline message
displayHeadlineMessageTemplateDataobjectNoThe data used to fill the headline message template
forYoubooleanNoWhether the notification is for the current logged-in user
targetAnnotationIdstringNoID of the annotation that triggered the notification
notificationSourceDataanyNoThe data of the notification source. e.g., CommentAnnotation
metadataNotificationMetadataNoMetadata for the current notification. e.g., documentId
notifyUsers{ [emailHash: string]: boolean }NoMap of email hashes to boolean values indicating whether to notify the user
notifyUsersByUserId{ [userIdHash: string]: boolean }NoMap of user ID hashes to boolean values indicating whether to notify the user

NotificationMetadata


PropertyTypeRequiredDescription
apiKeystringNoYour API key
clientOrganizationIdstringNoThe organization ID that you set
organizationIdstringNoThe organization ID generated by us
clientDocumentIdstringNoThe document ID that you set
documentIdstringNoThe document ID generated by us
locationIdnumberNoThe unique location ID
locationLocationNoThe location object
documentMetadataObjectNoContains the complete document metadata object
organizationMetadataObjectNoContains the complete organization metadata object

SettingsUpdatedEvent


PropertyTypeRequiredDescription
settingsNotificationSettingsConfigYesThe updated notification settings configuration.
isMutedAllbooleanYesWhether all notifications are muted.
Enum NameEvent TypeDescription
SETTINGS_UPDATEDsettingsUpdatedTriggered when the notification settings are updated

NotificationSettingsConfig


Sets what notifications the user will receive on the provided channel.
PropertyTypeRequiredDescription
[key: string]NotificationSettingsItemTypeNoDynamic key-value pairs for notification settings configuration. The key represents the channel ID and the value represents the one of the NotificationSettingsItemType.

NotificationSettingsItemType


Decides what notifications the user will receive on the current channel. Type: 'ALL' | 'MINE' | 'NONE' | string Description:
  • ALL: Subscribes the user to all notifications whether or not the user is involved in the notification on the current document.
  • MINE: Subscribes the user to notifications that are related to the current user on the current document.
  • NONE: Subscribes the user to no notifications on this channel on the current document.

NotificationInitialSettingsConfig


PropertyTypeRequiredDescription
namestringNoDisplay name for the notification channel.
idstringYesUnique channel ID for the notification channel.
defaultstringNoDefault value for the notification channel.
enablebooleanNoWhether the notification channel is enabled.
valuesNotificationConfigValue[]NoArray of possible values for the notification channel.

NotificationConfigValue


PropertyTypeRequiredDescription
idNotificationSettingsItemTypeYesUnique id for the configuration value.
namestringNoDisplay name for the configuration value.

GetNotificationsDataQuery


PropertyTypeRequiredDescription
type'all' | 'forYou' | 'documents'NoFilter for notification type: all, for you, or documents.

NotificationSettingsLayout


Layout mode for notification settings UI. Type: 'accordion' | 'dropdown' Description:
  • accordion: Settings displayed in expandable accordion (default)
  • dropdown: Settings displayed in dropdown menu

NotificationServiceConfig


Top-level org-scoped config for notification delay and batching. Set in the Velt Console under workspace notification settings.
PropertyTypeRequiredDescription
delayConfigDelayConfigNoControls whether notifications are held before delivery.
batchConfigBatchConfigNoControls grouping of notifications into batched digests.

DelayConfig


Controls the hold period applied to notifications before they are evaluated for batching or delivery.
PropertyTypeRequiredDefaultDescription
isEnabledbooleanNofalseEnables the delay pipeline for this organization.
delaySecondsnumberNoSeconds to hold a notification before proceeding to batch or send.

BatchConfig


Configures batching windows per grouping scope. Each scope is independently configured via BatchWindowConfig.
PropertyTypeRequiredDescription
documentBatchWindowConfigNoBatching window applied per document.
userBatchWindowConfigNoBatching window applied per user across all documents.

BatchWindowConfig


Defines the time window and activity cap for a single batching scope.
PropertyTypeRequiredDescription
isEnabledbooleanNoEnables batching for this scope.
batchWindowSecondsnumberNoDuration in seconds to collect activities before flushing the batch.
maxActivitiesnumberNoMaximum activities per batch; flush triggers early when this count is reached.

Activity Logs

ActivityFeatureType


Feature area that generated an activity log record.
type ActivityFeatureType = 'comment' | 'reaction' | 'recorder' | 'crdt' | 'custom';
ValueDescription
'comment'Activity log from the Comments feature
'reaction'Activity log from the Reactions feature
'recorder'Activity log from the Recorder feature
'crdt'Activity log from the CRDT (collaborative editor) feature
'custom'Activity log created by the host application

ActivitySubscribeConfig


Filter config passed to getAllActivities() to scope the activity log feed.
PropertyTypeRequiredDescription
organizationIdstringNoScope feed to a specific organization ID
documentIdsstring[]NoFilter to specific document IDs
currentDocumentOnlybooleanNoWhen true, limits feed to the current document. Auto-switches when setDocument() is called
maxDaysnumberNoMaximum age in days for returned activity logs (default: 30)
featureTypesActivityFeatureType[]NoFilter by feature area
excludeFeatureTypesActivityFeatureType[]NoExclude specific feature areas
actionTypesstring[]NoFilter by action type; use the exported action type constants
excludeActionTypesstring[]NoExclude specific action types
userIdsstring[]NoFilter to activity logs by specific user IDs
excludeUserIdsstring[]NoExclude activity logs by specific user IDs

ActivityRecord


Core activity log object returned from the activity log feed. Generic params: TEntity (entity data shape), TTarget (target entity data shape).
PropertyTypeRequiredDescription
idstringYesUnique activity log ID
featureTypeActivityFeatureTypeYesFeature area that generated this activity log
actionTypestringYesSpecific action that occurred
eventTypestringNoSub-event type within the action
actionUserUserYesUser who performed the action
timestampnumberYesUnix timestamp of the activity log
metadataActivityMetadataYesFeature-specific extensible metadata
targetEntityIdstringYesID of the entity this activity log targets
targetSubEntityIdstring | nullNoID of a sub-entity within the target
changesActivityChangesNoBefore/after field changes
entityDataTEntityNoFull entity object at time of action
entityTargetDataTTargetNoFull target entity object at time of action
displayMessageTemplatestringNoTemplate string with {{variable}} placeholders
displayMessageTemplateDataRecord<string, unknown>NoData to resolve the display message template
displayMessagestringNoResolved human-readable display message. Computed client-side — never stored in Firestore
actionIconstringNoIcon URL or identifier for the action
immutablebooleanNoWhen true, the record cannot be updated or deleted via REST API

ActivityChanges


Map of field names to their before/after change values.
interface ActivityChanges {
  [key: string]: ActivityChange | undefined;
}

ActivityChange


Before/after values for a single changed field. Generic param T is the field value type.
PropertyTypeRequiredDescription
fromT | nullNoField value before the action
toT | nullNoField value after the action

ActivityMetadata


Extensible metadata attached to an activity log record. Extends BaseMetadata with open index signature for feature-specific fields.
PropertyTypeRequiredDescription
apiKeystringNoInherited from BaseMetadata
documentIdstringNoInherited from BaseMetadata
organizationIdstringNoInherited from BaseMetadata
clientOrganizationIdstringNoInherited from BaseMetadata
folderIdstringNoInherited from BaseMetadata
veltFolderIdstringNoInherited from BaseMetadata
documentMetadataDocumentMetadataNoInherited from BaseMetadata
sdkVersionstring | nullNoInherited from BaseMetadata
[key: string]anyNoFeature-specific extension fields

CreateActivityData


Payload for createActivity(). Use featureType: 'custom' and actionType: 'custom' for non-Velt events. Generic params: TEntity (entity data shape), TTarget (target entity data shape).
PropertyTypeRequiredDescription
featureTypeActivityFeatureTypeYesFeature type; use 'custom' for non-Velt events
actionTypestringYesAction identifier; use 'custom' for non-Velt events
eventTypestringNoSub-event type within the action
targetEntityIdstringYesID of the entity this activity log targets
targetSubEntityIdstring | nullNoID of a sub-entity within the target
changesActivityChangesNoBefore/after field changes to record
entityDataTEntityNoFull entity object at time of action
entityTargetDataTTargetNoFull target entity object at time of action
actionIconstringNoIcon URL or identifier — typically for custom activities
displayMessageTemplatestringNoTemplate string with {{variable}} placeholders — only for custom activities
displayMessageTemplateDataRecord<string, unknown>NoTemplate variable values — only for custom activities

Activity Log Action Type Constants

Pre-defined actionType string constants for each feature’s activity log records. Import these to build type-safe actionTypes filters in ActivitySubscribeConfig.

CommentActivityActionTypes


Action type constants for Comment feature activity logs. Union type: CommentActivityActionType.
ConstantValueDescription
ANNOTATION_ADD'comment_annotation.add'A comment annotation was added
ANNOTATION_DELETE'comment_annotation.delete'A comment annotation was deleted
COMMENT_ADD'comment.add'A comment was added
COMMENT_UPDATE'comment.update'A comment was updated
COMMENT_DELETE'comment.delete'A comment was deleted
STATUS_CHANGE'comment_annotation.status_change'Comment annotation status changed
PRIORITY_CHANGE'comment_annotation.priority_change'Comment annotation priority changed
ASSIGN'comment_annotation.assign'Comment annotation was assigned
ACCESS_MODE_CHANGE'comment_annotation.access_mode_change'Comment annotation access mode changed
CUSTOM_LIST_CHANGE'comment_annotation.custom_list_change'Comment annotation custom list changed
APPROVE'comment_annotation.approve'Comment annotation was approved
ACCEPT'comment.accept'A comment was accepted
REJECT'comment.reject'A comment was rejected
REACTION_ADD'comment.reaction_add'A reaction was added to a comment
REACTION_DELETE'comment.reaction_delete'A reaction was removed from a comment
SUBSCRIBE'comment_annotation.subscribe'User subscribed to a comment annotation
UNSUBSCRIBE'comment_annotation.unsubscribe'User unsubscribed from a comment annotation

RecorderActivityActionTypes


Action type constants for Recorder feature activity logs. Union type: RecorderActivityActionType.
ConstantValueDescription
RECORDING_ADD'recording.add'A recording was added
RECORDING_DELETE'recording.delete'A recording was deleted

ReactionActivityActionTypes


Action type constants for Reaction feature activity logs. Union type: ReactionActivityActionType.
ConstantValueDescription
REACTION_ADD'reaction.add'A reaction was added
REACTION_DELETE'reaction.delete'A reaction was deleted

CrdtActivityActionTypes


Action type constants for CRDT feature activity logs. Union type: CrdtActivityActionType.
ConstantValueDescription
EDITOR_EDIT'crdt.editor_edit'A CRDT editor edit occurred

Single Editor Mode

AccessRequestEvent


This event object is related to requests for editor access. It is emitted for accessRequested, accessRequestCanceled, accessAccepted, and accessRejected events.
PropertyTypeRequiredDescription
viewerUserNoThe user who is the current viewer and is involved in the access request.
editorUserNoThe user who is the current editor at the time of the event.
timestampnumberNoUNIX timestamp (in milliseconds) of when the event occurred.
statusstringNoThe status of the access request (e.g., “requested”, “canceled”, “accepted”, “rejected” ).
totalUsersnumberNoTotal number of users currently present on the document.
presenceSnippylyUserIdsstring[]NoVelt internal user IDs of currently present users.
presenceClientUserIdsstring[]NoClient-provided user IDs of currently present users.

SEMEvent


This event object is related to editor/viewer assignments and editor status changes. It is emitted for editorAssigned, viewerAssigned, and editorOnDifferentTabDetected events.
PropertyTypeRequiredDescription
viewerUserNoThe user who is the current viewer at the time of the event.
editorUserNoThe user who is the current editor at the time of the event.
timestampnumberNoUNIX timestamp (in milliseconds) of when the event occurred.
rolestringNoThe role relevant to the event, typically “editor” or “viewer” for assignment events.
totalUsersnumberNoTotal number of users currently present on the document.
presenceSnippylyUserIdsstring[]NoVelt internal user IDs of currently present users.
presenceClientUserIdsstring[]NoClient-provided user IDs of currently present users.

SingleEditorLiveStateData


PropertyTypeRequiredDescription
editorUser | nullNoThe user who is currently editing, if any
requestEditorAccessObject | nullNoDetails about a request for editor access
tabIdstring | nullNoThe identifier of the tab, if applicable

RequestEditorAccess


PropertyTypeRequiredDescription
userUserYesThe user requesting editor access
requestedAtanyYesThe timestamp when the access was requested
status'pending' | 'accepted' | 'rejected' | 'cancelled'YesThe status of the access request
editorAccessTimeoutnumberYesTimeout duration for the editor access
tabIdstring | nullNoThe identifier of the tab related to the access request

SingleEditorConfig


PropertyTypeRequiredDescription
customModebooleanNoEnables/disables custom mode. In custom mode, input elements are not disabled for the viewer
singleTabEditorbooleanYesEnables/disables editor mode on a single tab only

UserEditorAccess


PropertyTypeRequiredDescription
isEditorbooleanNoIndicates whether the user has editor privileges
isEditorOnCurrentTabbooleanNoIndicates whether the user is an editor on the current tab

EditorAccessTimer


PropertyTypeRequiredDescription
state'idle' | 'inProgress' | 'completed'YesThe state of the Editor Access Request timer
durationLeftnumberNoDuration left for the editor access timer to be completed.

Live State Data

LiveStateData


PropertyTypeRequiredDescription
idstringYesA unique identifier likely used for quick reference and indexing. It’s an MD5 hash of liveStateDataId
liveStateDataIdstringYesA unique identifier for the state data being synced
datastring | number | boolean | JSONYesThe actual data you want to synchronize across clients
lastUpdatedanyYesA timestamp or similar data indicating the last time the state data was updated
updatedByUserYesThe user who last updated the state data
tabIdstring | nullNoAn identifier that could be used to associate the state data with a specific tab or instance

LiveStateDataMap


PropertyTypeRequiredDescription
custom{ [liveStateDataId: string]: LiveStateData; }NoMap of all unique LiveStateData set by you on the given document.
defaultObjectNoMap of all unique LiveStateData set by the default editor on the given document.
default.singleEditorSingleEditorLiveStateDataNoPart of default, representing single editor live state data.
default.autoSyncStateObjectPart of default, representing auto synchronization state.
default.autoSyncState.currentLiveStateDataNoPart of autoSyncState, current live state data.
default.autoSyncState.history[liveStateDataId: string]: LiveStateDataNoPart of autoSyncState, map of historical live state data keyed by live state data ID.

LiveStateData


PropertyTypeRequiredDescription
idstringYesUnique identifier for the live state data
locationNamestringYesName of the location
versionVersionYesVersion information
[key: string]anyYesAdditional dynamic properties

SetLiveStateDataConfig


PropertyTypeRequiredDescription
mergebooleanNoWhether to merge data with existing data. Default is false.

FetchLiveStateDataRequest


PropertyTypeRequiredDescription
liveStateDataIdstringNoUnique identifier for the specific live state data to fetch. If not provided, all live state data will be fetched.

ServerConnectionState


PropertyTypeRequiredDescription
ONLINEstringYesServer connection is online and active. Value: ‘online’
OFFLINEstringYesServer connection is offline. Value: ‘offline’
PENDING_INITstringYesServer connection initialization is pending. Value: ‘pendingInit’
PENDING_DATAstringYesServer is waiting for data. Value: ‘pendingData’

Client

Client Events

Event TypeEvent NameDescriptionEvent Object
USER_UPDATEuserUpdateFired when the Velt user logs in, logs out, or changes.UserUpdateEvent
INIT_UPDATEinitUpdateInitialization lifecycle updates (documents/locations set/unset, user init).InitUpdateEvent
DOCUMENT_INITdocumentInitDocument initialization status changes.DocumentInitEvent
ERRORerrorError events emitted by the SDK (e.g., token issues, retry limits).ErrorEvent
VELT_BUTTON_CLICKveltButtonClickFired when a Velt Button is clicked.VeltButtonClickEvent
PERMISSION_PROVIDERpermissionProviderPermission Provider events for access requests, results, and errors.PermissionProviderEvent
DATA_PROVIDERdataProviderData Provider events for debugging get, save, and delete operations.DataProviderEvent

InitUpdateEvent


PropertyTypeRequiredDescription
eventstringYesThe event name (see sub-events table below)
methodNamestringNoThe method that triggered this event (see InitUpdateMethodNames below)
sourcestringNoSource of the event
payloadanyNoAdditional event payload data
InitUpdateMethodNames:
Method NameDescription
setDocumentssetDocuments() was called
setRootDocumentsetRootDocument() was called
setDocumentIdsetDocumentId() was called
unsetDocumentIdunsetDocumentId() was called
unsetDocumentsunsetDocuments() was called
setLocationsetLocation() was called
setLocationssetLocations() was called
setRootLocationsetRootLocation() was called
addLocationaddLocation() was called
removeLocationremoveLocation() was called
removeLocationsremoveLocations() was called
unsetLocationIdsunsetLocationIds() was called
removeLocationsSuccessLocations were successfully removed
Sub-events (event field values):
Sub-event (string)Description
userUpdateUser initialized or updated as part of init
setDocumentsTriggeredA document(s) set action was triggered (setDocument, setDocuments, setDocumentId)
setRootDocumentTriggeredRoot document set was triggered (setRootDocument)
setDocumentsSuccessDocuments successfully set
unsetDocumentsTriggeredUnset document(s) was triggered (unsetDocumentId, unsetDocuments)
unsetDocumentsSuccessDocuments successfully unset
setLocationsTriggeredA location(s) set action was triggered (setLocation, setLocations)
setRootLocationTriggeredRoot location set was triggered (setRootLocation)
setLocationsSuccessLocations successfully set
unsetLocationsTriggeredUnsetting location IDs was triggered (unsetLocationIds)

PermissionProviderEvent


This event follows the BaseResolverEvent structure (see DataProviderEvent for the base structure).
Event TypeDescription
resourceAccessRequestFormedTriggered when a permission request is formed internally before being sent
resourceAccessRequestTriggeredTriggered when a permission request is actually triggered and sent
resourceAccessResultTriggered when a permission check result is received from your server
resourceAccessErrorTriggered when an error occurs during permission checking
resourceAccessResultFromCacheTriggered when a permission result is retrieved from cache instead of making a new request
revokeAccessOnDocumentUnsetTriggeredTriggered when permissions are automatically revoked due to document unset trigger
revokeAccessOnDocumentUnsetFormedTriggered when a revoke access on document unset request is formed
revokeAccessOnDocumentUnsetResultTriggered when revoke access on document unset completes successfully
revokeAccessOnDocumentUnsetErrorTriggered when an error occurs during revoke access on document unset
revokeAccessOnUserLogoutTriggeredTriggered when permissions are automatically revoked due to user logout trigger
revokeAccessOnUserLogoutFormedTriggered when a revoke access on user logout request is formed
revokeAccessOnUserLogoutResultTriggered when revoke access on user logout completes successfully
revokeAccessOnUserLogoutErrorTriggered when an error occurs during revoke access on user logout

DataProviderEvent


The dataProvider event emits different resolver event types depending on the data provider being used. All resolver events share a common base structure: BaseResolverEvent Structure:
PropertyTypeRequiredDescription
eventobjectYesThe event type object (varies by resolver)
methodNamestringNoThe method that triggered this event
moduleNamestringNoThe module that triggered this event
sourcestringNo'internal' or 'external'
timestampnumberNoTimestamp of the event
uniqueIdstringNoUnique identifier for the event
payloadanyNoAdditional event payload data

UserResolverEvent

Event TypeDescription
userResolutionRequestFormedTriggered when a user resolution request is formed internally
userResolutionRequestTriggeredTriggered when a user resolution request is sent
userResolutionResultTriggered when user resolution completes successfully
userResolutionErrorTriggered when an error occurs during user resolution
userResolutionResultFromCacheTriggered when a user resolution result is retrieved from cache
UserResolverModuleName:
Module NameDescription
identify/authProviderFrom identify or auth provider
getTemporaryUsersFrom getting temporary users
getUsersFrom getting users
getHuddleUsersFrom getting huddle users
getSingleEditorUsersFrom getting single editor users

CommentResolverEvent

Event TypeDescription
commentResolutionRequestFormedTriggered when a comment resolution request is formed internally
commentResolutionRequestTriggeredTriggered when a comment resolution request is sent
commentResolutionResultTriggered when comment resolution completes successfully
commentResolutionErrorTriggered when an error occurs during comment resolution
commentResolutionResultFromCacheTriggered when a comment resolution result is retrieved from cache
commentSaveRequestFormedTriggered when a comment save request is formed internally
commentSaveRequestTriggeredTriggered when a comment save request is sent
commentSaveResultTriggered when comment save completes successfully
commentSaveErrorTriggered when an error occurs during comment save
commentDeleteRequestFormedTriggered when a comment delete request is formed internally
commentDeleteRequestTriggeredTriggered when a comment delete request is sent
commentDeleteResultTriggered when comment delete completes successfully
commentDeleteErrorTriggered when an error occurs during comment delete
CommentResolverModuleName:
Module NameDescription
setDocumentsFrom setDocuments call
getCommentAnnotationsFrom getting comment annotations
getNotificationsFrom getting notifications

AttachmentResolverEvent

Event TypeDescription
attachmentSaveRequestFormedTriggered when an attachment save request is formed internally
attachmentSaveRequestTriggeredTriggered when an attachment save request is sent
attachmentSaveResultTriggered when attachment save completes successfully
attachmentSaveErrorTriggered when an error occurs during attachment save
attachmentDeleteRequestFormedTriggered when an attachment delete request is formed internally
attachmentDeleteRequestTriggeredTriggered when an attachment delete request is sent
attachmentDeleteResultTriggered when attachment delete completes successfully
attachmentDeleteErrorTriggered when an error occurs during attachment delete

ReactionResolverEvent

Event TypeDescription
reactionResolutionRequestFormedTriggered when a reaction resolution request is formed internally
reactionResolutionRequestTriggeredTriggered when a reaction resolution request is sent
reactionResolutionResultTriggered when reaction resolution completes successfully
reactionResolutionErrorTriggered when an error occurs during reaction resolution
reactionResolutionResultFromCacheTriggered when a reaction resolution result is retrieved from cache
reactionSaveRequestFormedTriggered when a reaction save request is formed internally
reactionSaveRequestTriggeredTriggered when a reaction save request is sent
reactionSaveResultTriggered when reaction save completes successfully
reactionSaveErrorTriggered when an error occurs during reaction save
reactionDeleteRequestFormedTriggered when a reaction delete request is formed internally
reactionDeleteRequestTriggeredTriggered when a reaction delete request is sent
reactionDeleteResultTriggered when reaction delete completes successfully
reactionDeleteErrorTriggered when an error occurs during reaction delete
ReactionResolverModuleName:
Module NameDescription
setDocumentsFrom setDocuments call
getReactionAnnotationsFrom getting reaction annotations

RecorderResolverEvent

Event TypeDescription
recorderResolutionRequestFormedTriggered when a recorder get request is formed internally
recorderResolutionRequestTriggeredTriggered when a recorder get request is sent
recorderResolutionResultTriggered when recorder get completes successfully
recorderResolutionErrorTriggered when an error occurs during recorder get
recorderResolutionResultFromCacheTriggered when a recorder get result is retrieved from cache
recorderSaveRequestFormedTriggered when a recorder save request is formed internally
recorderSaveRequestTriggeredTriggered when a recorder save request is sent
recorderSaveResultTriggered when recorder save completes successfully
recorderSaveErrorTriggered when an error occurs during recorder save
recorderDeleteRequestFormedTriggered when a recorder delete request is formed internally
recorderDeleteRequestTriggeredTriggered when a recorder delete request is sent
recorderDeleteResultTriggered when recorder delete completes successfully
recorderDeleteErrorTriggered when an error occurs during recorder delete

Error Codes

CodeMeaning (summary)
token_expiredThe auth token is no longer valid.
too_many_retriesRetried and hit the retry limit.

DocumentMetadata


PropertyTypeRequiredDescription
documentIdstringYesUnique document id generated from client document id
documentNamestringNoDisplay name of the document
folderIdstringNoID of the folder containing this document
apiKeystringNoAPI key associated with the document
organizationIdstringYesOrganization ID that owns this document
locations{ [locationId: number]: LocationMetadata }NoLocation metadata for this document

Folders

FetchFoldersRequest


PropertyTypeRequiredDescription
organizationIdstringYesOrganization ID to fetch folders from
folderIdstringNoParent folder ID to fetch child folders from

FetchFoldersResponse


PropertyTypeRequiredDescription
dataRecord<string, FolderMetadata> | nullYesMap of folder IDs to their metadata. Null while loading
nextPageTokenstringYesToken for fetching next page of results

Documents

FetchDocumentsRequest


PropertyTypeRequiredDescription
organizationIdstringNoOrganization ID to fetch documents from
documentIdsstring[]NoArray of specific document IDs to fetch
folderIdstringNoFolder ID to fetch documents from
allDocumentsbooleanNoWhether to fetch all documents. Use with organizationId or folderId.

FetchDocumentsResponse


PropertyTypeRequiredDescription
dataRecord<string, DocumentMetadata[]> | nullYesMap of document groups to arrays of DocumentMetadata. null while loading.
nextPageTokenstringYesToken for fetching next page of results. Default page size is 1000.

DocumentInitEvent


  • DocumentInitEvent can be of type: boolean | undefined
  • This represents the document initialization status.

ErrorEvent


PropertyTypeRequiredDescription
eventstringNoThe error event name
sourceMethodstringNoThe method that triggered the error
documentIdsstring[]NoDocument IDs associated with the error
userIdstringNoUser ID associated with the error
timestampnumberNoTimestamp of the error
errorstringNoError details
codestringNoError code
messagestringNoError message
sourcestringNoSource of the error

List of error codes:

CodeDescription
token_expiredThe JWT token has expired
same_user_editor_current_tabSame user is already editor in current tab
same_user_editor_different_tabSame user is already editor in different tab
another_user_editorAnother user is already editor

SetUserAsEditorResponse


PropertyTypeRequiredDescription
errorErrorEventNoPresent when the action cannot be applied

LiveStateSingleEditorExternalUserPresence


PropertyTypeRequiredDescription
sameUserPresentOnTabbooleanNoTrue if the same user is present on a different tab
differentUserPresentOnTabbooleanNoTrue if a different user is present on a different tab
userIdsstring[]NoUser IDs of users present on a different tab

UserUpdateEvent


  • UserUpdateEvent will return data of type: User | null
  • If there is no user, it will return null else it will return the user object.

VeltButtonClickEvent


PropertyTypeRequiredDescription
buttonContextVeltButtonContextYesButton context
metadataVeltEventMetadataYesEvent metadata
commentAnnotationCommentAnnotationNoComment annotation object
commentCommentNoComment object
indexnumberNoIndex of the repeated component the button is in. eg: Comment, Notification component.
commentAnnotationsCommentAnnotation[]NoArray of comment annotations
systemFilteredAnnotationsCommentAnnotation[]NoFiltered comment annotations
unreadCommentAnnotationsMap{ [commentAnnotationId: string]: number }NoMap of unread comment counts
notificationNotificationNoNotification object
notificationsNotification[]NoArray of notifications
customFiltersCustomFiltersNoCustom filters applied in the Comment Sidebar. Only available when custom sidebar filters are used and when the button is in the sidebar.

PermissionProviderEvent


PropertyTypeRequiredDescription
typestringYesEvent type: 'request', 'result', or 'error'
userIdstringYesUser ID making the permission request
resource{ id: string; type: string; context?: { access: { [key: string]: string | number } } }YesResource being accessed. Includes optional context field with access information set during setDocuments.
resultbooleanNoPermission result (present when type is 'result')
errorstringNoError message (present when type is 'error')

RevokeAccessEvent


PropertyTypeRequiredDescription
userIdstringYesUser ID whose access is being revoked
resourceTypestringYesType of resource: 'document', 'folder', or 'organization'
resourceIdstringYesID of the resource
triggerstringYesTrigger type: 'documentUnset' or 'userLogout'
timestampnumberYesUnix timestamp when revocation occurred

Config

PropertyTypeRequiredDescription
urlAllowListstring[]NoRestricts Velt features to specific pages by specifying partial URL strings.
featureAllowListFeatureType[]NoOnly allows the provided Velt features to run.
userPlanAllowListstring[]NoRestricts Velt features to specific user plans.
userIdAllowListstring[]NoRestricts Velt features to specific users.
usePrefersColorSchemebooleanNoIf set to true, listens to changes on the prefers-color-scheme media query to set the global theme of Velt components.
globalStylesbooleanNoControls whether Velt’s global CSS styles are loaded. Default: true

Features


PropertyTypeRequiredDescription
AREA'area'NoArea feature for drawing areas/rectangles
ARROW'arrow'NoArrow feature for drawing arrows
AUDIO_HUDDLE'audioHuddle'NoAudio huddle feature for voice conversations
COMMENT'comment'NoComment feature for adding comments
CURSOR'cursor'NoCursor feature for showing user cursors
HUDDLE'huddle'NoHuddle feature for video conversations
LIVE_STATE_SYNC'liveStateSync'NoLive state sync feature
PRESENCE'presence'NoPresence feature for showing online users
TAG'tag'NoTag feature for adding tags
RECORDER'recorder'NoRecorder feature for recording sessions
REWRITER'rewriter'NoRewriter feature for text rewriting
LIVE_SELECTION'liveSelection'NoLive selection feature for showing user selections

VeltEventMetadata


PropertyTypeRequiredDescription
organizationMetadataOrganizationMetadata | nullNoOrganization metadata
documentMetadataDocumentMetadata | nullNoDocument metadata
locationLocation | nullNoLocation information

VeltButtonContext


PropertyTypeRequiredDescription
type'button' | 'button-toggle' | 'multi-select' | 'single-select'NoType of button (default: ‘button’)
groupIdstringNoID of the button group
selectionsVeltButtonSelectionMapNoMap of button selections grouped by button groupIds. For buttons without a group, the groupdId will be ‘ungrouped’
clickedButtonIdstringNoID of the clicked button

VeltButtonSelectionMap


PropertyTypeRequiredDescription
[groupId: string]{ [buttonId: string]: boolean }NoMap of button selections for a group

UpdateDocumentsRequest


PropertyTypeRequiredDescription
organizationIdstringNoUnique identifier for the organization.
folderIdstringNoUnique identifier for the folder.
documentsUpdateDocumentMetadata<T>[]NoArray of document metadata objects to update.

UpdateDocumentMetadata


PropertyTypeRequiredDescription
documentIdstringYesUnique identifier for the document.
[key: string]`Tstring`NoAdditional custom properties for the document metadata.

Metadata


PropertyTypeRequiredDescription
apiKeystringYesAPI key associated with the event.
pageInfoPageInfoNoInformation about the page where the event occurred.
folderIdstringNoUnique identifier for the folder.
locationsobjectNoObject containing location data indexed by location ID.
documentDocumentMetadataNoDocument metadata associated with the event.
organizationOrganizationMetadataNoOrganization metadata associated with the event.
[key: string]anyNoAdditional custom properties.

DocumentMetadata


PropertyTypeRequiredDescription
documentIdstringYesUnique identifier for the document.
documentNamestringNoName of the document.
organizationIdstringNoUnique identifier for the organization.
folderIdstringNoUnique identifier for the folder.
[key: string]anyNoAdditional custom properties.

OrganizationMetadata


PropertyTypeRequiredDescription
organizationIdstringYesUnique identifier for the organization.
[key: string]anyNoAdditional custom properties.

PageInfo


PropertyTypeRequiredDescription
baseUrlstringYesBase URL of the page.
pathstringYesPath of the page.
queryParamsstringNoQuery parameters of the page URL.
titlestringYesTitle of the page.
urlstringYesFull URL of the page.

VeltAuthTokenRequest


PropertyTypeRequiredDescription
apiKeystringYesAPI Key. Must be provided, cannot be empty or whitespace only.
userIdstringYesUser ID. Must be provided, cannot be empty or whitespace only.
userPropertiesUserPropertiesNoAdditional user information to embed in the auth token. See below for details.
permissions{ resources: Resource[] }NoPermissions configuration. Defines what resources the user can access and their access levels. If not provided, defaults to no resource access.

UserProperties


PropertyTypeRequiredDescription
isAdminbooleanNoWhether the user is an admin.
namestringNoUser’s display name. If provided, cannot be empty or whitespace only.
emailstringNoUser’s email address. If provided, cannot be empty and must be a valid email format.
[key: string]anyNoAllows flexibility for custom user attributes.

Permissions


PropertyTypeRequiredDescription
resourcesResource[]NoArray of resources the user has permission to access. Defaults to empty array if not set.

Resource


Each resource represents something the user can access (organization, folder, or document).
PropertyTypeRequiredDescription
type'organization' | 'folder' | 'document'YesResource type. Must be one of: ‘organization’, ‘folder’, or ‘document’. Determines the scope and level of access.
idstringYesUnique identifier for the specific resource. Cannot be whitespace only. For organization: the organization ID. For folder: the folder ID. For document: the document ID.
organizationIdstringConditionallyOrganization ID. Required for folder and document types. Optional for organization type. Must be provided and non-empty for folder/document resources. Links the resource to a specific organization.
expiresAtnumberNoExpiration timestamp (Unix timestamp). If provided, must be a positive integer, greater than the current time, and a valid number. Used for temporary access grants.

BaseMetadata


PropertyTypeRequiredDescription
apiKeystringNoAPI key associated with the request.
documentIdstringNoUnique identifier for the document.
organizationIdstringNoUnique identifier for the organization.
folderIdstringNoUnique identifier for the folder.

Document


PropertyTypeRequiredDescription
idstringYesUnique identifier for the document
metadataDocumentMetadataYesMetadata associated with the document

SetDocumentsRequestOptions


PropertyTypeRequiredDescription
organizationIdstringNoOrganization ID for the documents
folderIdstringNoSubscribe to all or provided documents in the given folder
locationIdstringNoFilter and subscribe to document data for a specific location
allDocumentsbooleanNoSubscribe to all documents in the folder. Use this when folderId is provided
rootDocumentIdstringNoThe unique identifier of the root document. Used to specify the root document when multiple documents are subscribed.
contextSetDocumentsContextNoFilter comments by custom context fields. Fetches comments matching all provided field values (AND logic across fields). When Permission Provider is enabled with isContextEnabled: true, each context value triggers a separate permission request.

FolderMetadata


PropertyTypeRequiredDescription
folderIdstringNoUnique identifier for the folder
parentFolderIdstringNoID of the parent folder
folderNamestringNoDisplay name of the folder
createdAtnumberNoTimestamp when folder was created
lastUpdatednumberNoTimestamp when folder was last updated
apiKeystringNoAPI key associated with the folder
organizationIdstringNoOrganization ID that the folder belongs to

CustomCss


PropertyTypeRequiredDescription
type’link’ | ‘styles’YesThe type of custom CSS, either a link to a CSS file or inline styles.
valuestringYesThe value of the custom CSS, either a URL or CSS styles.

Debug Info

VeltDebugInfo


PropertyTypeRequiredDescription
veltVersionstringNoThe version of the Velt SDK currently running
apiKeystringNoThe API key used to initialize the Velt client
serverMapDebugInfoMapNoDebug information from the server-side state
clientMapDebugInfoMapNoDebug information from the client-side state

DebugInfoMap


PropertyTypeRequiredDescription
organizationOrganizationMetadataNoMetadata about the current organization
documentsDocumentMetadata[]NoArray of document metadata for all active documents
locationsLocation[]NoArray of location information for all active locations
folderFolderMetadataNoMetadata about the current folder
userUserNoThe currently authenticated user

Location

Location

PropertyTypeRequiredDescription
idstringNoUnique identifier for the location.
locationNamestringNoName of the location.
versionVersionNoVersion information provided by the user.
[key: string]anyNoAdditional dynamic properties for the location.

UpdateLocationsRequest


PropertyTypeRequiredDescription
organizationIdstringNoUnique identifier for the organization.
documentIdsstring[]NoArray of document IDs to update locations for.
locationsUpdateLocationMetadata<T>[]NoArray of location metadata objects to update.

UpdateLocationMetadata


PropertyTypeRequiredDescription
idstringYesUnique identifier for the location.
[key: string]`Tstring`NoAdditional custom properties for the location metadata.

LocationMetadata


PropertyTypeRequiredDescription
locationIdnumberNoUnique location id generated from client location information
locationLocation | nullNoLocation object provided by a client

SetLocationsRequestOptions


PropertyTypeRequiredDescription
rootLocationIdstringNoRoot location.
appendLocationbooleanNoMerge locations.

Self Hosting

PartialUser


PropertyTypeRequiredDescription
userIdstringYesUnique identifier for the user

PartialReactionAnnotation


PropertyTypeRequiredDescription
annotationIdstringYesID of the reaction annotation
metadataBaseMetadataNoAdditional metadata
iconstringNoIcon for the reaction
fromPartialUserNoUser who created the reaction annotation

ResolverActions


An enum that defines the different types of actions that can trigger resolver events.
NameValueDescription
COMMENT_ANNOTATION_ADD'comment_annotation.add'Triggered when a new comment annotation is added
COMMENT_ANNOTATION_DELETE'comment_annotation.delete'Triggered when a comment annotation is deleted
COMMENT_ADD'comment.add'Triggered when a new comment is added to an annotation
COMMENT_DELETE'comment.delete'Triggered when a comment is deleted from an annotation
COMMENT_UPDATE'comment.update'Triggered when a comment is updated
REACTION_ADD'reaction.add'Triggered when a reaction is added to a comment
REACTION_DELETE'reaction.delete'Triggered when a reaction is removed from a comment
ATTACHMENT_ADD'attachment.add'Triggered when an attachment is added to a comment
ATTACHMENT_DELETE'attachment.delete'Triggered when an attachment is deleted from a comment
RECORDER_ANNOTATION_ADD'recorder_annotation.add'Triggered when a recorder annotation is added
RECORDER_ANNOTATION_UPDATE'recorder_annotation.update'Triggered when a recorder annotation is updated
RECORDER_ANNOTATION_DELETE'recorder_annotation.delete'Triggered when a recorder annotation is deleted

UserResolverModuleName


Enum defining module names for user-related resolver operations. Used in data provider events to identify which module triggered the resolver call. Self-Host User Data →
NameValueDescription
IDENTIFY'identify/authProvider'Resolver module for identifying and authenticating users
GET_TEMPORARY_USERS'getTemporaryUsers'Resolver module for fetching temporary user data
GET_USERS'getUsers'Resolver module for fetching user data
GET_HUDDLE_USERS'getHuddleUsers'Resolver module for fetching huddle participant data
GET_SINGLE_EDITOR_USERS'getSingleEditorUsers'Resolver module for fetching single editor user data

CommentResolverModuleName


Enum defining module names for comment-related resolver operations. Used in data provider events to identify which module triggered the resolver call. Self-Host Comment Data →
NameValueDescription
SET_DOCUMENTS'setDocuments'Resolver module for setting comment documents
GET_COMMENT_ANNOTATIONS'getCommentAnnotations'Resolver module for fetching comment annotations
GET_NOTIFICATIONS'getNotifications'Resolver module for fetching comment notifications

ReactionResolverModuleName


Enum defining module names for reaction-related resolver operations. Used in data provider events to identify which module triggered the resolver call. Self-Host Reaction Data →
NameValueDescription
SET_DOCUMENTS'setDocuments'Resolver module for setting reaction documents
GET_REACTION_ANNOTATIONS'getReactionAnnotations'Resolver module for fetching reaction annotations

RecorderResolverModuleName


Enum defining module names for recorder-related resolver operations. Used in data provider events to identify which module triggered the resolver call. Self-Host Recording Data →
NameValueDescription
GET_RECORDER_ANNOTATIONS'getRecorderAnnotations'Resolver module for fetching recorder annotations

RecorderResolverSource


Enum defining the source of a recorder resolver lifecycle event.
NameValueDescription
RESOLVE_RECORDER_ANNOTATIONS'resolveRecorderAnnotations'Source for resolving (fetching) recorder annotations
SAVE_RECORDER_ANNOTATION'saveRecorderAnnotation'Source for saving a recorder annotation
DELETE_RECORDER_ANNOTATION'deleteRecorderAnnotation'Source for deleting a recorder annotation
FORMAT_RESPONSE'formatResponse'Source for formatting the resolver response
INIT_DOCUMENTS'initDocuments'Source for initializing documents
SET_DATA'setData'Source for setting recorder data
UPDATE_DATA'updateData'Source for updating recorder data
DELETE_DATA'deleteData'Source for deleting recorder data

RecorderResolverEventType


Union type for all recorder resolver lifecycle event type strings.
ValueDescription
'recorderResolutionRequestFormed'A recorder get request was formed internally
'recorderResolutionRequestTriggered'A recorder get request was sent
'recorderResolutionResult'Recorder get completed successfully
'recorderResolutionError'An error occurred during recorder get
'recorderResolutionResultFromCache'A recorder get result was retrieved from cache
'recorderSaveRequestFormed'A recorder save request was formed internally
'recorderSaveRequestTriggered'A recorder save request was sent
'recorderSaveResult'Recorder save completed successfully
'recorderSaveError'An error occurred during recorder save
'recorderDeleteRequestFormed'A recorder delete request was formed internally
'recorderDeleteRequestTriggered'A recorder delete request was sent
'recorderDeleteResult'Recorder delete completed successfully
'recorderDeleteError'An error occurred during recorder delete

PartialComment


PropertyTypeRequiredDescription
commentIdstring | numberYesUnique identifier for the comment
commentHtmlstringNoHTML content of the comment
commentTextstringNoPlain text content of the comment
attachments{ [attachmentId: number]: PartialAttachment }NoMap of attachment IDs to partial attachment data
fromPartialUserNoUser who created the comment
toPartialUser[]NoUsers the comment is directed to
taggedUserContactsPartialTaggedUserContacts[]NoTagged user contacts in the comment

PartialTaggedUserContacts


PropertyTypeRequiredDescription
userIdstringYesUnique identifier for the tagged user
contactPartialUserNoContact details of the tagged user
textstringNoDisplay text for the tagged user

PartialCommentAnnotation


PropertyTypeRequiredDescription
annotationIdstringYesID of the comment annotation
metadataBaseMetadataNoAdditional metadata
commentsRecord<string, PartialComment>YesMap of comment IDs to partial comments data

PartialAttachment


PropertyTypeRequiredDescription
urlstringYesURL of the attachment
namestringYesName of the attachment
attachmentIdnumberYesUnique identifier for attachment

ResolverAttachment


PropertyTypeRequiredDescription
attachmentIdnumberYesUnique identifier for attachment
fileFileYesFile to be uploaded
namestringNoFile name
metadataAttachmentResolverMetadataNoMetadata of the attachment
mimeTypestringNoMime type of the attachment

AttachmentResolverMetadata


PropertyTypeRequiredDescription
organizationIdstring | nullYesID of the organization
documentIdstring | nullYesID of the document
folderIdstring | nullNoID of the folder
attachmentIdnumber | nullYesID of the attachment
commentAnnotationIdstring | nullYesID of the comment annotation
apiKeystring | nullYesAPI key for authentication

VeltDataProvider


PropertyTypeRequiredDescription
commentCommentAnnotationDataProviderNoProvider for comment annotation data
userUserDataProviderNoProvider for user data
reactionReactionAnnotationDataProviderNoProvider for reaction annotation data
attachmentAttachmentDataProviderNoProvider for file attachment data
recorderRecorderAnnotationDataProviderNoProvider for recording annotation PII data
anonymousUserAnonymousUserDataProviderNoProvider to resolve email → userId mappings for anonymous users tagged by email in comments.

ResolverEndpointConfig


Config-based resolver endpoint configuration. SDK handles HTTP requests, headers, and response formatting automatically.
PropertyTypeRequiredDescription
urlstringYesBackend endpoint URL for resolver operation
headersRecord<string, string>NoCustom HTTP headers for the request

ResolverConfig


PropertyTypeRequiredDescription
resolveTimeoutnumberNoTimeout duration (in milliseconds) for resolver operations
saveRetryConfigRetryConfigNoRetry configuration for save operations
deleteRetryConfigRetryConfigNoRetry configuration for delete operations
getRetryConfigRetryConfigNoRetry configuration for get operations. Currently not supported for UserDataProvider.
resolveUsersConfigResolveUsersConfigNoConfiguration for resolving users
getConfigResolverEndpointConfigNoConfig-based endpoint for fetch operations
saveConfigResolverEndpointConfigNoConfig-based endpoint for save operations
deleteConfigResolverEndpointConfigNoConfig-based endpoint for delete operations
additionalFieldsstring[]NoAdditional fields from the feature’s data object (e.g., CommentAnnotation, RecorderAnnotation) to include in resolver request payloads sent to your backend. By default, only core content/PII fields are sent.

ResolverResponse


Generic response format for backend endpoints and data providers.
Permission Provider Update (v4.5.8-beta.2): For Permission Provider backend endpoints, the signature field is no longer required. The SDK now handles validation internally.
PropertyTypeRequiredDescription
dataTNoResponse data of generic type T
successbooleanYesWhether the operation was successful. Must be true for successful responses
messagestringNoOptional message describing the result
timestampnumberNoOptional timestamp of the response
statusCodenumberYesHTTP status code. Must be 200 for Velt to accept the response
signaturestringNoCryptographic signature (deprecated for Permission Provider as of v4.5.8-beta.2)

RetryConfig


PropertyTypeRequiredDescription
retryCountnumberNoNumber of retry attempts
retryDelaynumberNoDelay between retry attempts in milliseconds
revertOnFailurebooleanNoWhether to revert changes on failure

ResolveUsersConfig


PropertyTypeRequiredDescription
organizationbooleanNoWhether to resolve organization users
folderbooleanNoWhether to resolve folder users
documentbooleanNoWhether to resolve document users

CommentAnnotationDataProvider


PropertyTypeRequiredDescription
get(request: GetCommentResolverRequest) => Promise<ResolverResponse<Record<string, PartialCommentAnnotation>>>NoFunction to fetch comment annotations
save(request: SaveCommentResolverRequest) => Promise<ResolverResponse<T>>NoFunction to save comment annotations
delete(request: DeleteCommentResolverRequest) => Promise<ResolverResponse<undefined>>NoFunction to delete comment annotations
configResolverConfigNoConfiguration for the data provider

ReactionAnnotationDataProvider


PropertyTypeRequiredDescription
get(request: GetReactionResolverRequest) => Promise<ResolverResponse<Record<string, PartialReactionAnnotation>>>NoFunction to fetch reaction annotations
save(request: SaveReactionResolverRequest) => Promise<ResolverResponse<T>>NoFunction to save reaction annotations
delete(request: DeleteReactionResolverRequest) => Promise<ResolverResponse<undefined>>NoFunction to delete reaction annotations
configResolverConfigNoConfiguration for the data provider

UserDataProvider


PropertyTypeRequiredDescription
get(userIds: string[]) => Promise<Record<string, User> | ResolverResponse<Record<string, User>>>NoFunction to fetch user data by user IDs. Both response formats are supported for backward compatibility.
configResolverConfigNoConfiguration for the data provider. Use getConfig for config-based approach.

GetUserResolverRequest


Request format used by config-based user resolver endpoints.
PropertyTypeRequiredDescription
organizationIdstringYesID of the organization
userIdsstring[]YesArray of user IDs to fetch

AttachmentDataProvider


PropertyTypeRequiredDescription
save(request: SaveAttachmentResolverRequest) => Promise<ResolverResponse<SaveAttachmentResolverData>>NoFunction to save attachment data
delete(request: DeleteAttachmentResolverRequest) => Promise<ResolverResponse<undefined>>NoFunction to delete attachment data
configResolverConfigNoConfiguration for the data provider

SaveAttachmentResolverData


PropertyTypeRequiredDescription
urlstringYesURL of the saved attachment

UploadFileOptions


PropertyTypeRequiredDescription
fileFileYesFile object to upload
useAttachmentResolverbooleanNoWhether to route upload through the attachment resolver
metadataanyNoCustom metadata to pass to the upload handler
attachmentScopestringNoRoutes upload to the named AttachmentDataProvider scope (e.g., 'default', 'recorder')

RecorderAnnotationDataProvider


PropertyTypeRequiredDescription
get(request: GetRecorderResolverRequest) => Promise<ResolverResponse<Record<string, PartialRecorderAnnotation>>>NoFunction to fetch recorder annotation PII data
save(request: SaveRecorderResolverRequest) => Promise<ResolverResponse<SaveRecorderResolverData | undefined>>NoFunction to save recorder annotation PII data
delete(request: DeleteRecorderResolverRequest) => Promise<ResolverResponse<undefined>>NoFunction to delete recorder annotation PII data
configResolverConfigNoConfiguration for the data provider
uploadChunksbooleanNoWhether to upload recording in chunks
storageAttachmentDataProviderNoStorage provider for recording media files

GetRecorderResolverRequest


PropertyTypeRequiredDescription
organizationIdstringYesID of the organization
recorderAnnotationIdsstring[]NoRecorder annotation IDs to fetch
documentIdsstring[]NoDocument IDs to filter annotations by

SaveRecorderResolverRequest


PropertyTypeRequiredDescription
recorderAnnotationRecord<string, PartialRecorderAnnotation>YesMap of annotation IDs to partial recorder annotation data
eventResolverActionsNoResolver action that triggered the save
metadataBaseMetadataNoAdditional metadata

SaveRecorderResolverData


PropertyTypeRequiredDescription
transcriptionTranscriptionNoUpdated transcription for the recording
attachmentAttachment | nullNoPrimary attachment (deprecated; use attachments)
attachmentsAttachment[]NoList of updated attachments for the recording

DeleteRecorderResolverRequest


PropertyTypeRequiredDescription
recorderAnnotationIdstringYesID of the recorder annotation to delete
metadataBaseMetadataNoAdditional metadata
eventResolverActionsNoResolver action that triggered the delete

PartialRecorderAnnotation


PropertyTypeRequiredDescription
annotationIdstringYesID of the recorder annotation
metadataBaseMetadataNoAdditional metadata
fromUserNoUser who created the recorder annotation
transcriptionTranscriptionNoTranscription of the recorded media
attachmentAttachment | nullNoPrimary attachment (deprecated; use attachments)
attachmentsAttachment[]NoList of attachments for the recording
chunkUrlsRecord<number, string>NoMap of chunk index to chunk URL for chunked uploads
recordingEditVersionsRecord<number, PartialRecorderAnnotationEditVersion>NoMap of edit version index to edit version data
[key: string]anyNoAdditional custom fields

PartialRecorderAnnotationEditVersion


PropertyTypeRequiredDescription
fromUserNoUser who created this edit version
attachmentAttachment | nullNoAttachment for this edit version
attachmentsAttachment[]NoList of attachments for this edit version
transcriptionTranscriptionNoTranscription for this edit version

PartialRecorderAnnotationResult


PropertyTypeRequiredDescription
strippedDataRecord<string, PartialRecorderAnnotation> | nullYesAnnotation data with PII stripped
originalDataRecorderAnnotation | nullYesOriginal annotation data before PII stripping
eventTypeResolverActionsNoResolver action that produced this result

AnonymousUserDataProvider


PropertyTypeRequiredDescription
resolveUserIdsByEmail(request: ResolveUserIdsByEmailRequest) => Promise<ResolverResponse<Record<string, string>>>YesCallback to resolve email addresses to user IDs.
configAnonymousUserDataProviderConfigNoOptional configuration for timeout and retry.

AnonymousUserDataProviderConfig


PropertyTypeRequiredDescription
resolveTimeoutnumberNoTimeout in milliseconds for the resolve call.
getRetryConfigRetryConfigNoRetry configuration with retryCount and retryDelay.

ResolveUserIdsByEmailRequest


PropertyTypeRequiredDescription
organizationIdstringYesThe organization ID.
documentIdstringNoThe document ID.
folderIdstringNoThe folder ID.
emailsstring[]YesArray of email addresses to resolve.

Presence

PresenceUser


PropertyTypeRequiredDescription
userIdstringYesUnique user identifier
namestringNoUser’s full name (Default: Random avatar name)
emailstringNoUser’s email address
photoUrlstringNoUser’s display picture URL (Default: Random avatar image)
onlineStatusstringYesOnline status (active, away, offline) (Auto generated)
colorstringNoAssigned color for the user (Auto generated)
timestampanyYesServer Timestamp
typestringNoUser type
selectionsanyNoUser selections
documentParamsIdnumber | nullNoDeprecated unique document params ID
documentParamsobject | nullNoDeprecated document params
locationIdnumber | nullNoUnique location ID
locationLocation | nullNoLocation of user on sub document
isReadOnlybooleanNoIndicates if user is readonly
isAnonymousbooleanNoIf user can only view comments (Anonymous)
pageInfoPageInfoYesInformation about the page
isUserIdlebooleanNoIndicates if user is idle. This is based on the inactivityTime configured in the Presence feature. (Auto generated)
isTabAwaybooleanNoIndicates if user’s tab is unfocused. (Auto generated)

PresenceUserStateChangeEvent


This event object is emitted when a user’s online status changes to online.
PropertyTypeRequiredDescription
userPresenceUserYesThe current user’s Presence object.
statestringYesThe new presence state of the user (e.g., online, offline, away).

ENUMs

Enum NameEvent TypeDescription
USER_STATE_CHANGEuserStateChangeTriggered when a user’s online status changes to online, offline, or away

PresenceRequestQuery


PropertyTypeRequiredDescription
documentIdstringNoID of the document to query presence for.
organizationIdstringNoID of the organization to query presence for.
statusesstring[]NoArray of user statuses to filter by (e.g., ['online', 'away', 'offline']).

GetPresenceDataResponse


PropertyTypeRequiredDescription
dataPresenceUser[] | nullYesArray of PresenceUser objects. null while loading.

HeartbeatConfig


PropertyTypeRequiredDescription
userIdstringNoUser ID to retrieve heartbeat data for. If not provided, returns heartbeat data for the current user.

GetHeartbeatResponse


PropertyTypeRequiredDescription
dataHeartbeat[] | nullYesArray of heartbeat data for the specified user. Returns null if no heartbeat data is available.

Webhooks

WebhookV2Payload


PropertyTypeRequiredDescription
eventstringYesThe event type that triggered the webhook.
actionTypestringYesThe specific action that occurred.
sourcestringYesThe source of the event.
dataCommentPayload | HuddlePayload | CRDTPayloadYesThe payload data containing event-specific information.
webhookIdstringYesUnique identifier for the webhook.
usersOrganizationNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user org-level notification preferences keyed by userId.
usersDocumentNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user document-level notification preferences keyed by userId.

WebhookV2PayloadEncoded


PropertyTypeRequiredDescription
encodedPayloadstringYesBase64 encoded webhook payload.

WebhookV2PayloadEncrypted


PropertyTypeRequiredDescription
encryptedDatastringYesEncrypted webhook data.
encryptedKeystringYesEncrypted encryption key.
ivstringYesInitialization vector for decryption.

CommentPayload


PropertyTypeRequiredDescription
commentAnnotationCommentAnnotationNoThe comment annotation associated with the event.
targetCommentCommentNoThe target comment for the event.
actionUserUserNoThe user who performed the action.
metadataMetadataNoAdditional metadata about the event context.
oldStatusCommentStatusNoPrevious status of the comment (for status change events).
newStatusCommentStatusNoNew status of the comment (for status change events).
newPriorityCommentPriorityNoNew priority of the comment (for priority change events).

HuddlePayload


PropertyTypeRequiredDescription
actionUserUserNoThe user who performed the action.
metadataMetadataNoAdditional metadata about the event context.

CRDTPayload


PropertyTypeRequiredDescription
actionUserUserNoThe user who performed the action.
metadataMetadataNoAdditional metadata about the event context.
crdtDataobjectYesContains the CRDT data and update information.
crdtData.idstringYesThe editor/store ID for the CRDT instance.
crdtData.dataunknownYesThe CRDT data. Can be any supported type: array, map, text, xml, or xmltext.
crdtData.lastUpdatedBystringYesUser ID who made the update.
crdtData.sessionIdstring | nullNoSession ID if available.
crdtData.lastUpdatestringYesTimestamp of the last update.

WebhookV1Payload


All basic webhook payloads share these common fields:
PropertyTypeRequiredDescription
webhookIdstringYesUnique identifier for the webhook.
actionTypestringYesThe specific action that occurred in the event.
notificationSourcestringYesSource of the notification: comment, huddle, or crdt.
actionUserUserNoThe user who performed the action.
metadataMetadataNoAdditional metadata providing context for the event.
platform'sdk'NoSet to 'sdk' if the event originated from SDK actions.
usersOrganizationNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user org-level notification preferences keyed by userId.
usersDocumentNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user document-level notification preferences keyed by userId.

WebhookV1PayloadEncoded


PropertyTypeRequiredDescription
encodedPayloadstringYesBase64 encoded webhook payload.

WebhookV1PayloadEncrypted


PropertyTypeRequiredDescription
encryptedDatastringYesEncrypted webhook data.
encryptedKeystringYesEncrypted encryption key.
ivstringYesInitialization vector for decryption.
Comment Basic Webhook Payload Additional fields present when notificationSource is comment:
PropertyTypeRequiredDescription
commentAnnotationCommentAnnotationYesThe comment annotation associated with the event.
targetCommentCommentNoThe target comment. Not present for annotation-level events (e.g., resolve, delete thread).
newPriorityCommentPriorityNoNew priority. Present on priorityChanged events.
oldStatusCommentStatusNoPrevious status. Present on statusChanged events.
newStatusCommentStatusNoNew status. Present on statusChanged events.
assignedbooleanNoWhether the comment is assigned. Present on assigned events.
Huddle Basic Webhook Payload No additional fields beyond the common fields when notificationSource is huddle. CRDT Basic Webhook Payload Additional fields present when notificationSource is crdt:
PropertyTypeRequiredDescription
crdtDataobjectYesContains the CRDT data and update information.
crdtData.idstringYesThe editor/store ID for the CRDT instance.
crdtData.dataunknownYesThe CRDT data. Can be any supported type: array, map, text, xml, or xmltext.
crdtData.lastUpdatedBystringYesUser ID who made the update.
crdtData.sessionIdstring | nullNoSession ID if available.
crdtData.lastUpdatestringYesTimestamp of the last update.
accessDeniedUsersarrayNoList of users denied access.

UserNotificationsConfig


Per-user notification preferences included in webhook payloads when a notification config scope is active. Exactly one of the two fields is present per payload depending on whether org-level or document-level config is in use.
PropertyTypeRequiredDescription
usersOrganizationNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user org-level notification preferences, keyed by userId.
usersDocumentNotificationsConfigRecord<string, NotificationChannelConfig>NoPer-user document-level notification preferences, keyed by userId.

NotificationChannelConfig


Per-channel notification preference map for a single user. Keys are channel identifiers; values are the preference level for that channel.
type NotificationChannelConfig = Record<string, 'ALL' | 'MINE' | 'NONE'>;
Key (channel)ValueDescription
inbox'ALL' | 'MINE' | 'NONE'In-app inbox notification preference.
email'ALL' | 'MINE' | 'NONE'Email notification preference.
ValueDescription
ALLReceive notifications for all activity.
MINEReceive notifications only for activity directly involving the user.
NONEReceive no notifications for this channel.

Misc

RequestOptions


PropertyTypeRequiredDescription
documentIdstringNoDocument ID

CommentSelectionChangeData


PropertyTypeRequiredDescription
selectedbooleanYesWhether a comment is selected
annotationCommentAnnotationYesObject data of the selected annotation

ContactListScopeForOrganizationUsers Enum


Enum NameEvent TypeDescription
ALLallShow all the contacts
ORGANIZATIONorganizationShow organization contacts.
ORGANIZATION_USER_GROUPorganizationUserGroupShow organization user groups.
DOCUMENTdocumentShow document contacts.

CursorUser


PropertyTypeRequiredDescription
userIdstringYesUnique user identifier that you use to identify your user.
namestringNoYour user’s full name. Default: Random avatar name.
emailstringNoYour user’s email address.
photoUrlstringNoYour user’s display picture URL. Default: Random avatar image.
commentstringNoShort comment that user can add to their live cursor.
onlineStatusstringYesUser’s online status (active, inactive, offline). Auto generated.
colorstringNoA random color assigned to the user for the session, used on avatar border/live cursor.
timestampanyYesServer Timestamp.
typestringNoUser type.
locationIdnumber | nullNoUnique location id from provided location.
locationLocation | nullNoLocation to identify user on sub document.
positionCursorPosition | nullNoUser’s cursor position on their screen.
isReadOnlybooleanNoIndicates if user is readonly.
isAnonymousbooleanNoIndicates if user is anonymous and can only view comments.

FlockOptions


PropertyTypeRequiredDescription
useHistoryAPIbooleanYesIndicates whether the application should use the HTML5 History API for navigation
onNavigate(url: PageInfo) => voidNoA callback function that is called when navigation occurs. It takes a PageInfo object as its argument, which contains details about the new page
disableDefaultNavigationbooleanYesIf true, the application’s default navigation handling is disabled, perhaps to be managed manually or by another system
darkModebooleanYesA flag indicating whether the application should display in dark mode, a display preference that may be more comfortable for users in low-light conditions

Version


PropertyTypeRequiredDescription
idstringYesUnique identifier for the version
namestringYesName of the version

displayHeadlineMessageTemplateData


PropertyTypeRequiredDescription
actionUserUserNoThe user who performed the action
recipientUserUserNoThe user receiving the notification
actionMessagestringNoThe message describing the action
projectstringNoThe project related to the notification
[key: string]anyNoAny additional custom properties

PageInfo


PropertyTypeRequiredDescription
urlstringNoURL of the webpage
pathstringNoPath of the webpage excluding base url
baseUrlstringNoBase URL (domain) of a webpage
titlestringNoTitle of the webpage
commentUrlstringNoReference url of a comment annotation
recorderUrlstringNoReference url of a recorder annotation
screenWidthnumberNoUser’s screen width. Auto generated.

getThumbnailTag Method

The getThumbnailTag method takes an optional url parameter and returns an HTML string. It creates an anchor tag linking to the videoPlayerUrl and embeds an image tag using either the provided url, thumbnailWithPlayIconUrl, or thumbnailUrl (in that order of preference).

RewriterAnnotation


PropertyTypeRequiredDescription
annotationIdStringYesUnique identifier for the rewriter annotation, automatically generated.
fromUserYesThe user who created this rewriter annotation.
colorStringNoColor used for the rewriter annotation.
lastUpdatedAnyNoTimestamp when the rewriter annotation was last updated, automatically generated.
documentParamsIdNumber | nullNoUnique document params ID, deprecated, use locationId instead.
documentParamsLocation | nullNoDocument params to identify user on sub document, deprecated, use location instead.
locationIdNumber | nullNoUnique location ID generated from provided location.
locationLocation | nullNoSet location to identify user on sub document.
typeStringNoType of annotation.
rewriterTypeStringYesType of rewriter for the annotation, either ‘generic’ or ‘copywriter’.
targetTextRangeTargetTextRange | nullNoSelected text range of rewriter annotation.
annotationIndexNumberNoIndex of the current annotation in the list of annotations.
pageInfoPageInfoNoInformation about the page where the annotation is made.
selectedRewriterOptionStringNoSelected rewriter option used in the annotation.

SyncVideoPlayer


PropertyTypeRequiredDescription
playerIdStringNoThe identifier for the video player instance.
srcStringNoThe source URL of the video.
sourcesString[]NoAn array of source URLs for the video.
lastUpdatedNumberNoThe timestamp of when the player was last updated.
lastUpdatedByUserNoThe user who last updated the player.
lastUpdatedEventStringNoThe name of the event that triggered the last update.
playerStateSyncVideoPlayerStateYesThe state object of the video player.

SyncVideoPlayerState


PropertyTypeRequiredDescription
playingBooleanNoIndicates if the video is currently playing.
currentTimeNumberNoThe current playback time of the video.
mutedBooleanNoIndicates if the video is muted.
volumeNumberNoThe volume level of the video.
speedNumberNoThe playback rate of the video.

Toast


PropertyTypeRequiredDefault ValueDescription
idNumberNoNoneA unique identifier for the toast notification.
messageStringYesNoneThe message content displayed in the toast notification.
type’success’ | ‘error’YesNoneThe type of toast notification, indicating success or error.
durationNumberNo3000The length of time the toast notification is displayed, in milliseconds.

Transcription


PropertyTypeRequiredDescription
fromUserYesThe user who created the transcription.
lastUpdatedNumberNoTimestamp of when the transcription was last updated.
transcriptedTextStringNoThe text that has been transcribed.

User


PropertyTypeRequiredDescription
userIdstringYesUnique user identifier used to identify your user.
namestringNoThe full name of your user. Defaults to a random avatar name if not provided.
photoUrlstringNoThe display picture URL of your user. Defaults to a random avatar image if not provided.
emailstringNoRequired for sending email or Slack notifications to users about comments and mentions.
planstringNoThe product plan the user is on.
organizationIdstringYesorganizationId to which the user belongs.
colorstringNoA color assigned to the user for the current session, used for avatar border, live cursor, selection etc.
textColorstringNoUsed in the text color of the user’s intial when photoUrl is not present.
typestringNoThe type of user.
isReadOnlybooleanNoIndicates if the user has read-only access.
isAnonymousbooleanNoIndicates if the user is anonymous and can only view comments.
isGuestbooleanNoIndicates if the user is a guest.
isAdminbooleanNoUse this to set the user as an admin. You also need to ensure that the jwt token you generate also has this property set to true.
groupIdstringNo[DEPRECATED] A domain name or identifier used to cluster a group of users who work together.
clientGroupIdstringNo[DEPRECATED] The original groupId provided by the user.
initialstringNoFirst letter of the user’s first name.
accessRole”viewer” | “editor”NoOptional access role for this resource. Allowed values: “viewer” | “editor”. Default: “editor”.
Access Control
  • Set accessRole to viewer (read-only) or editor (read/write) on each resource to define the user’s capabilities for that resource.
  • accessRole can only be set via the v2 Users and Auth Permissions REST APIs. Frontend SDK methods do not accept or change accessRole.
  • Relevant endpoints: /v2/users/add, /v2/users/update, /v2/auth/permissions/add, /v2/auth/generate_token.
  • See the Access Control overview for concepts and detailed guidance.

UserOptions


PropertyTypeRequiredDescription
replaceContactsbooleanNoIf set to true, it will replace the user’s personal and group contacts with the ones provided.
authTokenstringNoThe authentication token of the user.
throwErrorbooleanNoIf true, throws error if user authentication fails. Default: false.

UserContact


A user object in a contact-selection context, such as autocomplete panels and assignment pickers. Shares the same shape as User.

UserContactSelectedPayload


PropertyTypeRequiredDescription
contactUserContactYesSelected user contact details.
isOrganizationContactbooleanYesIs user part of organization contact.
isDocumentContactbooleanYesIs user part of document contact.
documentAccessTypestringYesDocument access type.

UserContactUs


PropertyTypeRequiredDescription
idstringNoUnique identifier of the feedback.
apiKeystring | nullNoAPI key of the client.
emailIdstringNoEmail address of the feedback provider.
messagestringNoContent of the user’s feedback message.
fromUser | nullNoUser who submitted the feedback.
lastUpdatedanyNoTimestamp of when the feedback was last updated.
metadataDocumentMetadata | nullNoMetadata associated with the document.
pageInfoPageInfoNoInformation about the user’s current page.

UserFeedback


PropertyTypeRequiredDescription
idstringNoUnique identifier of the feedback.
apiKeystring | nullNoAPI key of the client.
emailIdstringNoEmail address of the feedback provider.
messagestringNoContent of the user’s feedback message.
fromUser | nullNoUser who submitted the feedback.
lastUpdatedanyNoTimestamp of when the feedback was last updated.
metadataDocumentMetadata | nullNoMetadata associated with the document.
pageInfoPageInfoNoInformation about the user’s current page.

UnreadCommentsCount


PropertyTypeRequiredDescription
countnumberYesThe number of unread comments or threads.

UserGroup


PropertyTypeRequiredDescription
groupIdstringYesUnique identifier for the user group
groupNamestringYesDisplay name of the user group
usersUser[]NoArray of users that belong to this group

VeltResetButtonStateConfig


PropertyTypeRequiredDescription
idstringNoThe ID of the button to reset. If not provided, resets all buttons
groupstringNoThe group ID of buttons to reset. If not provided, resets buttons in all groups

VeltAuthProvider


PropertyTypeRequiredDescription
userUserYesThe user object to authenticate.
optionsOptionsNoAdditional options for authentication (e.g., authToken, forceReset).
retryConfig{ retryCount?: number; retryDelay?: number; }NoConfiguration for retrying token generation (number of retries and delay in ms).
generateToken() => Promise<string>NoAsync function to generate a Velt JWT token. Called automatically when a token is required.

AuthRetryConfig


PropertyTypeRequiredDescription
retryCountnumberNoNumber of times to retry token generation on failure.
retryDelaynumberNoDelay in milliseconds between retry attempts.

RevokeAccessOn


Configuration for automatic access revocation triggers.
PropertyTypeRequiredDescription
typeRevokeAccessOnTypeYesType of trigger that will revoke access. Options: document_unset or user_logout
revokeOrganizationAccessbooleanNoWhether to also revoke organization-level permissions when triggered. Default: false

RevokeAccessOnType


Enum specifying when to automatically revoke permissions.
ValueDescription
DOCUMENT_UNSETRevoke access when user unsets or leaves a document
USER_LOGOUTRevoke access when user logs out of the organization

PermissionSource


Enum identifying which SDK method triggered the permission check. This helps debug and trace permission request origins.
ValueDescription
SET_DOCUMENTSPermission check triggered by setDocuments() method
IDENTIFYPermission check triggered by identify() method
GET_NOTIFICATIONSPermission check triggered by notifications fetching
SET_NOTIFICATIONSPermission check triggered by notifications setting

PermissionResourceType


Enum defining the types of resources that can be validated through Permission Provider. Used in permission queries to identify the resource type being accessed.
ValueDescription
ORGANIZATIONorganization: Organization-level resource permissions
DOCUMENTdocument: Document-level resource permissions
LOCATIONlocation: Location-specific resource permissions within a document
CONTEXTcontext: Context-based resource permissions. Added in v4.5.8-beta.4 for granular context-level access control when isContextEnabled: true

VeltPermissionProvider


Configuration interface for Permission Provider. Velt validates access requests in real-time by querying your backend endpoint configured in the Velt Console. The SDK automatically handles permission caching, validation, and synchronization.
PropertyTypeRequiredDescription
isContextEnabledbooleanNoEnable context-based permission requests. When enabled, the backend receives individual permission requests for each context value when using context filtering. Default: false. Added in v4.5.8-beta.4.
retryConfigAuthRetryConfigNoConfiguration for retrying failed permission requests. Defaults to 3 retries with 2000ms delay.
forceRefreshbooleanNoSet to true if access control changes frequently. Forces re-validation on each access check in the current session. Default: false
revokeAccessOnRevokeAccessOn[]NoConfigure automatic access revocation triggers. Revokes permissions when specified events occur (e.g., document unset or user logout).

PermissionQuery


Request structure for permission queries sent to the Permission Provider.
PropertyTypeRequiredDescription
userIdstringYesID of the user requesting access to the resource.
resource{ type: PermissionResourceType; id: string; source: PermissionSource; organizationId: string; context?: Context }YesResource the user is requesting access to. The type uses PermissionResourceType enum. The source field identifies which SDK method triggered the permission check. The optional context field is present only when isContextEnabled: true and contains context values set during setDocuments. Includes organizationId for context.

PermissionResult


Individual permission decision for a user’s access to a specific resource.
PropertyTypeRequiredDescription
userIdstringYesUnique identifier of the user requesting access.
resourceIdstringYesUnique identifier of the resource being accessed.
typePermissionResourceTypeYesType of resource being accessed. Can be organization, document, location, or context.
organizationIdstringYesOrganization ID associated with the resource.
accessRoleUserPermissionAccessRoleNoAccess role granted to the user for this resource.
expiresAtnumberNoUnix timestamp (in milliseconds) when the permission expires.
hasAccessbooleanYesWhether the user has access to the requested resource.

SignatureResult


Response structure returned from the Generate Signature API.
PropertyTypeRequiredDescription
result.statusstringYesStatus of the response. Always "success".
result.messagestringYesSuccess message.
result.data.signaturestringYesGenerated authorization signature string.
Example:
{
    "result": {
        "status": "success",
        "message": "Signature generated successfully.",
        "data": {
            "signature": "03638f2191bf59c0e536e5b31cbde86df5f44b03fc8e82ee9a8bed7eb324f252"
        }
    }
}

PermissionData


Individual permission decision for a user-resource pair.
PropertyTypeRequiredDescription
userIdstringYesID of the user this permission applies to.
resourceIdstringYesID of the resource (document, folder, or organization).
type'document' | 'folder' | 'organization'YesType of the resource.
hasAccessbooleanYesWhether the user has access to the resource.
accessRole'viewer' | 'editor'NoAccess role for the user. Only applicable for document resources. viewer can view and comment, editor can edit content.
expiresAtnumberNoUTC timestamp in milliseconds when this permission expires. Velt will revalidate access after expiration.

Context


The Context interface is used in Permission Provider backend requests for context-based permission validation. Each context value is sent as an individual permission request.
PropertyTypeRequiredDescription
access{ [key: string]: string | number }YesKey-value pairs for context-based permissions. Keys are custom field names, values are single strings or numbers representing the specific context value being validated.
Usage: The Context interface is used in:
  • Backend Permission Provider requests when isContextEnabled: true
  • Each context value from frontend methods triggers a separate permission request with this format
Integration with Permission Provider: When you enable context-based permissions (isContextEnabled: true), Velt automatically converts array values from SetDocumentsContext into individual permission requests using the Context interface format.

SetDocumentsContext


The SetDocumentsContext interface is used for filtering comments and notifications based on custom context fields when calling frontend SDK methods. This enables precise filtering based on your application’s data model.
PropertyTypeRequiredDescription
access{ [key: string]: Array<string | number> }YesKey-value pairs for filtering. Keys are custom field names, values are arrays of strings or numbers to filter by. Multiple values in an array use OR logic.
Usage: The SetDocumentsContext interface is used in:
  • setDocuments() method to fetch comments filtered by context
  • identify() method to filter notifications by context
  • Frontend SDK methods that require context filtering
Filtering Logic:
  • Within a field (OR logic): When multiple values are provided for a single field, comments/notifications matching any value are returned
  • Across fields (AND logic): When multiple fields are provided, comments/notifications must match all field values
Permission Provider Integration: When Permission Provider is enabled with isContextEnabled: true, each value in the arrays is sent as a separate permission request to your backend using the Context interface format. This allows granular access control at the context value level.

Options


PropertyTypeRequiredDescription
authTokenstringNoThe authentication token for the user.
forceResetbooleanNoIf true, forces the user to re-login.
throwErrorbooleanNoIf true, throws error if user authentication fails. Default: false.
contextSetDocumentsContextNoFilter notifications by custom context fields. Fetches notifications matching any of the provided values (OR logic within a field). When Permission Provider is enabled with isContextEnabled: true, each context value triggers a separate permission request.

React Flow Collaboration

VeltReactFlowCrdtExtensionConfig


Configuration for the useVeltReactFlowCrdtExtension React hook.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization.
initialNodesNode[]YesInitial set of nodes. Applied only when no server-side data exists.
initialEdgesEdge[]YesInitial set of edges. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for update propagation in milliseconds.

VeltReactFlowCrdtExtensionResponse


Interface extending VeltReactFlowAppState.
PropertyTypeDescription
storeStore<FlowState>ReactFlow CRDT store instance.
nodesNode[]Array of nodes in the flow diagram.
edgesEdge[]Array of edges connecting the nodes.
onNodesChangeOnNodesChangeCallback for handling node changes.
onEdgesChangeOnEdgesChangeCallback for handling edge changes.
onConnectOnConnectCallback for handling new connections.
setNodes(nodes: Node[]) => voidFunction to set all nodes at once.
setEdges(edges: Edge[]) => voidFunction to set all edges at once.

VeltReactFlowStoreConfig


PropertyTypeRequiredDescription
editorIdstringYesUnique ID for this collaborative React Flow instance.
veltClientVeltYesClient from useVeltClient() for auth/session and syncing.
initialNodesNode[]YesInitial set of nodes. Applied only when no server-side data exists.
initialEdgesEdge[]YesInitial set of edges. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for updates (milliseconds).

AppState


PropertyTypeDescription
nodesNode[]Array of nodes in the flow diagram.
edgesEdge[]Array of edges connecting the nodes.
onNodesChangeOnNodesChangeCallback for handling node changes.
onEdgesChangeOnEdgesChangeCallback for handling edge changes.
onConnectOnConnectCallback for handling new connections.
setNodes(nodes: Node[]) => voidFunction to set all nodes at once.
setEdges(edges: Edge[]) => voidFunction to set all edges at once.

Node (React Flow)


PropertyTypeRequiredDescription
idstringYesUnique node identifier.
typestringNoReact Flow node type (e.g., "input").
data{ label?: string }NoFreeform node data (label used in examples).
position{ x: number; y: number }YesCanvas position in px.
origin[number, number]NoOptional anchor origin used in examples.

Edge (React Flow)


PropertyTypeRequiredDescription
idstringYesUnique edge id.
sourcestringYesSource node id.
targetstringYesTarget node id.

NodeChange


PropertyTypeRequiredDescription
type'add' | 'update' | 'remove'YesKind of change.
itemNodeYes (for add)Node to add (as in examples).

EdgeChange


PropertyTypeRequiredDescription
type'add' | 'update' | 'remove'YesKind of change.
itemEdgeYes (for add)Edge to add (as in examples).

Connection


PropertyTypeRequiredDescription
sourcestringYesSource node id.
targetstringYesTarget node id.
variesNoOther React Flow fields as applicable.

ConnectionState (used in onConnectEnd)


PropertyTypeRequiredDescription
isValidbooleanYesWhether the provisional connection is valid.
fromNode{ id: string }YesNode the drag originated from.

CodeMirror Collaboration

VeltCodeMirrorCrdtExtensionConfig


Configuration for the useVeltCodeMirrorCrdtExtension React hook.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization.
initialContentstringNoInitial CodeMirror document. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for update propagation in milliseconds.

VeltCodeMirrorCrdtExtensionResponse


Response returned by useVeltCodeMirrorCrdtExtension.
PropertyTypeDescription
storeVeltCodeMirrorStore | nullCodeMirror CRDT store instance.
isLoadingbooleanfalse once store is initialized, true by default.

VeltCodeMirrorStoreConfig


PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization.
veltClientVeltYesVelt client for Velt SDK integration.
initialContentstringNoInitial editor content. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for updates (milliseconds).

BlockNote Collaboration

VeltBlockNoteCrdtExtensionConfig


Configuration for the useVeltBlockNoteCrdtExtension React hook.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization.
initialContentstringNoInitial BlockNote document (JSON string of blocks).
debounceMsnumberNoDebounce time for update propagation in milliseconds.

VeltBlockNoteCrdtExtensionResponse


Response returned by useVeltBlockNoteCrdtExtension.
PropertyTypeDescription
collaborationConfig{ fragment: any; provider: any; user: { name: string; color: string } } | nullConfiguration object to pass into BlockNote’s useCreateBlockNote({ collaboration }).
storeVeltBlockNoteStore | nullBlockNote CRDT store instance.
isLoadingbooleanfalse once store is initialized, true by default.

VeltBlockNoteStoreConfig


Configuration for creating a BlockNote collaboration store.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier used for syncing.
initialContentstringNoJSON string representing an array of blocks to seed the doc (parsed into Y.XmlFragment).
collectionstringNoBackend collection name (e.g., Firestore). Defaults internally.
debounceMsnumberNoDebounce (ms) for update batching.
onSynced(doc?: Y.Doc) => voidNoCalled after initial sync completes.
onConnectionError(error: Error) => voidNoCalled if a connection error occurs.
veltClientVeltNoVelt client used for auth/session context and user resolution.

Tiptap Collaboration

VeltTiptapCrdtExtensionConfig


Configuration for the Tiptap CRDT extension that enables real-time collaborative editing.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization.
initialContentstringNoInitial editor content. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for update propagation (ms).

VeltTiptapCrdtExtensionResponse


PropertyTypeDescription
VeltCrdtExtension<unknown> | nullTiptap Velt CRDT Extension.
storeVeltTipTapStore | nullTiptap CRDT store instance.
isLoadingbooleanfalse once store is initialized, true by default.

VeltTipTapStoreConfig


Configuration for creating a Tiptap collaboration store.
PropertyTypeRequiredDescription
editorIdstringYesUnique document identifier for synchronization. Use a different ID per editor.
veltClientVeltYesVelt client for velt sdk integration
initialContentstringNoInitial editor content. Applied only when no server-side data exists.
debounceMsnumberNoDebounce time for updates in milliseconds

VeltTipTapStore


Represents the Tiptap collaboration store instance. Public API surface only; all other fields are private.
Method / PropertyType / SignatureDescription
constructor(config: VeltTipTapStoreConfig)Creates a new store wrapper over Yjs + persistence.
initialize()Promise<void>Initializes the underlying Store and triggers callbacks.
getStore()Store<string>Returns the underlying CRDT store instance.
getYText() (deprecated)Y.Text | nullLegacy text accessor; usually returns null (XML is used).
getYXml()Y.XmlFragment | nullAccessor for XML fragment in the Yjs document.
getYDoc()Y.DocAccessor for the Yjs document.
isConnected()booleanCollaboration readiness flag (initialized).
setStateFromVersion()(version: Version) => Promise<void>Restores document to a specific version.
destroy()voidCleans up resources and marks instance uninitialized.
getCollabExtension()ExtensionTiptap Extension configured with current Yjs doc.

createVeltTipTapStore


Factory method that constructs a VeltTipTapStore, calls initialize(), and returns it.
ParameterTypeRequiredDescription
configVeltTipTapStoreConfigYesConfiguration options for the store.
ReturnsTypeDescription
resultPromise<VeltTipTapStore | null>Initialized store or null on failure.

Core Collaboration

StoreConfig<T>;


PropertyTypeRequiredDescription
idstringYesUnique identifier for the collaborative store (e.g., document ID).
veltClientVeltYesVelt client for SDK integration.
type'array' | 'map' | 'text' | 'xml'YesBacking CRDT data type for the store.
initialValueTNoOptional initial value (e.g., '' for text, [] for array).
enablePresencebooleanNoEnable realtime presence tracking (default: true).
debounceMsnumberNoDebounce interval in ms for batching local updates before syncing.

YjsType


'array' | 'map' | 'text' | 'xml'

useVeltCrdtStore


PropertyTypeDescription
valueT | nullCurrent value of the store.
versionsVersion[]List of all stored versions.
storeStore<T> | nullThe underlying Velt Store instance.
update(newValue: T) => voidUpdates the store value.
saveVersion(name: string) => Promise<string>Saves a new version and returns its ID.
getVersions() => Promise<Version[]>Fetches all versions.
getVersionById(id: string) => Promise<Version | null>Fetches a specific version by ID.
restoreVersion(id: string) => Promise<boolean>Restores the store to a specific version.
setStateFromVersion(version: Version) => Promise<void>Sets the store state from a version object.

Encryption

EncryptConfig


PropertyTypeRequiredDescription
dataTYesThe payload to encrypt.
typestringNoOptional type hint to select an encryption strategy.

DecryptConfig


PropertyTypeRequiredDescription
dataRYesThe payload to decrypt.
typestringNoOptional type hint to select a decryption strategy.

VeltEncryptionProvider


PropertyTypeRequiredDescription
encrypt(config: EncryptConfig<T>) => Promise<R>YesAsynchronous function that encrypts data and returns the encrypted result.
decrypt(config: DecryptConfig<R>) => Promise<T>YesAsynchronous function that decrypts data and returns the original value.

CrdtUpdateDataEvent


Event emitted when CRDT data changes occur, triggered by webhook notifications.
PropertyTypeRequiredDescription
methodNamestringYesMethod that triggered the update
uniqueIdstringYesUnique identifier for the event
timestampnumberYesUnix timestamp of the event
sourcestringYesSource of the data change
payloadCrdtUpdateDataPayloadYesData change payload

CrdtUpdateDataPayload


Payload containing details of the CRDT data update.
PropertyTypeRequiredDescription
idstringYesStore identifier
dataunknownYesUpdated data value
lastUpdatedBystringYesUser ID who made the last update
sessionIdstring | nullYesSession ID or null
lastUpdatestringYesISO timestamp of last update

CrdtPushMessageQuery


Query to push a raw Yjs message into the unified message stream for a given document.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier
datanumber[]YesRaw Yjs message bytes
yjsClientIdnumberYesYjs client ID of the sender
messageType'sync' | 'awareness'NoMessage type; defaults to 'sync'
eventDataunknownNoOptional arbitrary event payload
typestringNoYjs data type: 'text', 'map', 'array', 'xml', 'xmltext'
contentKeystringNoContent key used in Y.Doc shared types
sourcestringNoEditor/library source identifier (e.g., 'tiptap', 'plate', 'codemirror')

CrdtOnMessageQuery


Query to subscribe to incoming messages on the unified message stream.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier
callback(message: CrdtMessageData) => voidYesCalled with each received message
afterTsnumberNoOnly deliver messages with timestamp after this value

CrdtMessageData


Data object representing a single message received from the unified message stream.
PropertyTypeRequiredDescription
datanumber[]YesRaw Yjs message bytes
yjsClientIdnumberYesYjs client ID of the sender
timestampnumberYesUnix timestamp when the message was persisted

CrdtGetMessagesQuery


Query to retrieve historical messages from the unified message stream.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier
afterTsnumberNoOnly return messages with timestamp after this value

CrdtGetSnapshotQuery


Query to retrieve the latest CRDT state snapshot for a document.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier

CrdtSnapshotData


Snapshot of the CRDT document state at a point in time.
PropertyTypeRequiredDescription
stateUint8Array | number[]NoEncoded Yjs document state
vectorUint8Array | number[]NoEncoded Yjs state vector
timestampnumberNoUnix timestamp when the snapshot was saved

CrdtSaveSnapshotQuery


Query to persist a CRDT state snapshot for a document.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier
stateUint8Array | number[]YesEncoded Yjs document state to persist
vectorUint8Array | number[]YesEncoded Yjs state vector to persist
typestringNoCustom type label for the snapshot
contentKeystringNoKey identifying a sub-section of the document content
sourcestringNoIdentifies the origin of this snapshot

CrdtPruneMessagesQuery


Query to delete historical messages older than a given timestamp from the message stream.
PropertyTypeRequiredDescription
idstringYesDocument or store identifier
beforeTsnumberYesDelete all messages with timestamp before this value