Skip to content

Attendance Records JSON Fields

Attendance Records JSON uses a bundle shape:

  • version: number, currently 3
  • exportedAt: ISO timestamp
  • session: Attendance record object
FieldTypeRequiredNotes
idnumberNoLocal database key.
sessionIdstringYesUnique record ID in payload.
originSessionKeystringYesCross-runtime logical identity key.
sessionRevisionnumberYesMonotonic revision value.
recordSourcestringYesmeeting_live, main_import, or main_restore.
startedAtstringYesISO timestamp when tracking began.
endedAtstringNoISO timestamp when tracking ended.
isActivebooleanYesTrue while tracking is active.
needsExportbooleanYesTrue if export is pending.
modestringYesgeneric or roster.
meetingUUIDstringNoZoom meeting UUID.
meetingIdstringNoZoom meeting ID.
meetingTopicstringNoMeeting topic text.
privilegeAcquiredAtstringYesISO timestamp when role privilege was confirmed.
guessedProfileIdstringNoAuto-selected Attendance Profile hint.
selectedProfileIdstringNoExplicit Attendance Profile in use.
selectedIncludedSubgroupsstring[]YesCaptured subgroup scope from selected profile.
selectedGroupSortOrderstring[]NoCaptured group ordering from selected profile.
movementEventsarrayYesParticipant movement event timeline.
sessionParticipantsarrayYesIdentity-stitched participant entities.
rosterObservationsarrayYesPoll snapshots captured during meeting.
nameChangeEventsarrayYesDisplay name change timeline entries.
latestRosterarrayYesLatest live roster snapshot at runtime.
manualSnapshotsarrayYesManual attendance snapshot entries.
reconciliationDecisionsarrayYesPost-match operator decisions list.
derivedRowsarrayYesComputed attendance rows for UI and export.
exportedAtstringNoISO timestamp of latest export action.
raiseHandEntriesarrayYesRaise/lower event timeline entries.
raiseHandCapturesarrayYesAggregate raise-hand capture snapshots.
lastSubmittedAtstringNoLast sync submission timestamp.
lateThresholdMinutesnumberYesActive late threshold used in this record.
returnWindowMinutesnumberYesActive return window used in this record.

Import rejects payload when any required field fails:

  • sessionId missing
  • originSessionKey missing
  • startedAt missing
  • mode not generic or roster
  • movementEvents not array
  • sessionParticipants not array
  • rosterObservations not array
  • nameChangeEvents not array
  • manualSnapshots not array
  • reconciliationDecisions not array