Skip to main content

Pivot Database - Complete Field Reference

Table of Contents

  1. User Management
  2. Company Structure
  3. Employee Management
  4. Scheduling System
  5. Attendance Tracking
  6. Communication System
  7. Notification System
  8. Request Management
  9. Integration Systems
  10. System Administration

User Management

Users Table

Path: /Users/{userId}

FieldTypeDescriptionRequiredIndexed
uidstringUser unique identifierYesPrimary Key
emailstringUser email addressYesNo
namestringFirst nameYesNo
surnamestringLast nameNoNo
phonestringPhone numberNoNo
phoneCodestringCountry codeNoNo
addressstringPhysical addressNoNo
bornDatenumberBirth date timestampNoNo
avatarstringProfile image URLNoNo
localestringLanguage preference (en/fr)NoNo
statusstringAccount status (online/offline)NoNo
lastSeennumberLast activity timestampNoYes
isAdminbooleanLocation owner flag (restaurant owner)NoYes
hasCreatedCompaniesbooleanHas created companiesNoNo
headOfficeAccessbooleanMulti-location accessNoNo
incompletebooleanProfile incomplete flagNoNo
emergencyContactstringEmergency contact nameNoNo
emergencyPhonestringEmergency phoneNoNo
emergencyPhoneCodestringEmergency country codeNoNo
availabilitiesobjectWork availabilityNoNo

Company Structure

Companies Table

Path: /Companies/{companyId}

FieldTypeDescriptionRequiredIndexed
keystringCompany unique IDYesYes
namestringCompany nameYesNo
createdBystringOwner's userIdYesYes
addressstringCompany addressNoNo
locationobject{lat, lng} coordinatesNoNo
timezonestringCompany timezoneYesNo
imagestringCompany logo URLNoNo
imageSizestringLogo display (cover/contain)NoNo
weekStartingDaystringWeek start dayYesNo
payrollStartingDaystringPayroll period startYesNo
defaultDurationnumberDefault shift durationNoNo
notifyBefornumberNotification lead timeNoYes
hasAccessToAttendancebooleanAttendance module enabledNoYes
allowedPunchInRangenumberGeofence radius (meters)NoNo
excludeBreaksbooleanExclude breaks from hoursNoNo
isGeolocationEnabledbooleanLocation tracking onNoNo
timeRequiredobjectMonthly hour requirementsNoNo
jobsobjectPosition definitionsNoNo
daysStructureobjectDaily shift structureNoNo
breaksobjectBreak configurationsNoNo

Position Structure (within Companies.jobs)

FieldTypeDescription
namestringPosition title
archivedbooleanPosition inactive
ratestringHourly rate
additionalSalarystringBonus/tips
prioritynumberDisplay order
subcategoriesobjectPosition subdivisions

Subcategory Structure

FieldTypeDescription
namestringSubcategory name
acronymstringShort code
colorstringDisplay color
archivedbooleanSubcategory inactive

Employee Management

Employees Table

Path: /Employees/{employeeId}

FieldTypeDescriptionRequiredIndexed
uidstringEmployee unique IDYesPrimary Key
userIdstringLinks to Users tableNoYes
companyIdstringLinks to CompaniesYesYes
namestringFirst nameYesNo
surnamestringLast nameYesNo
emailstringEmail addressYesNo
emailVerifiedbooleanEmail confirmedNoNo
phonestringPhone numberNoNo
phoneCodestringCountry codeNoNo
avatarstringProfile photo URLNoNo
descriptionstringBio/notesNoNo
directbooleanDirect employeeNoNo
isAdminbooleanCompany admin privilegesNoNo
statusstringEmployment statusNoNo
onlineStatusstringCurrent statusNoNo
isOnlinebooleanCurrently activeNoNo
lastSeennumberLast activityNoNo
localestringLanguage preferenceNoNo
hiringnumberHire date timestampNoNo
positionsarrayAssigned positionsNoNo
lastPositionsarrayPrevious positionsNoNo
priorityobjectPosition prioritiesNoNo
additionalSalaryobjectExtra compensationNoNo
availabilitiesobjectWork preferencesNoNo
emergencyContactstringEmergency nameNoNo
emergencyPhonestringEmergency numberNoNo
customEmplNumberstringEmployee numberNoYes
daysOffobjectTime off recordsNoNo

Availability Structure

FieldTypeDescription
Monday-SundayobjectDaily availability
maxDaysPerWeeknumberMaximum work days
maxHoursInWeeknumberMaximum hours

Daily Availability

FieldTypeDescription
allDaybooleanAvailable all day
shift1objectCustom hours {start, end}
prioritynumberDay preference (0-6)

Scheduling System

Schedule Table

Path: /Schedule/{companyId}/{weekStart}/{date}/{employeeId}/{positionId}/{subcategoryId}/{shiftKey}

FieldTypeDescriptionRequired
startnumberShift start timeYes
endnumberShift end timeNo
onHoldbooleanTentative shiftNo
notestringShift notesNo
uidstringEmployee IDYes

OpenShifts Table

Path: /OpenShifts/{companyId}/{date}/{positionId}/{subcategoryId}/{openShiftId}

FieldTypeDescription
startnumberShift start
endnumberShift end
positionIdstringRequired position
subcategoryIdstringPosition subcategory
datestringShift date
numberOfEmployeesnumberPositions needed
numberOfEmployeesHoldnumberTentative positions
periodstringmorning/evening
shiftKeystringShift identifier
onHoldbooleanTentative status
notestringShift notes

WeeklyScheduleSettings Table

Path: /WeeklyScheduleSettings/{companyId}/{weekStart}

FieldTypeDescription
generatedPositionsobjectAuto-generated positions
publishedPositionsobjectPublished positions
allPositionsobjectAll position states
isCopybooleanCopied from template

ManualShifts Table

Path: /ManualShifts/{companyId}/{shiftId}

FieldTypeDescription
datestringShift date
employeeIdstringAssigned employee
positionIdstringPosition
subcategoryIdstringSubcategory
startnumberStart time
endnumberEnd time

Attendance Tracking

Attendance Table

Path: /Attendance/{companyId}/{employeeId}/{date}/{shiftKey}

FieldTypeDescription
startnumberClock in time
endnumberClock out time
positionIdstringWorking position
subpositionIdstringPosition subcategory
ratestring/numberHourly rate
additionalSalarystring/numberExtra pay
typestringShift type
isConflictingbooleanSchedule conflict
manuallyCreatedbooleanManual entry
keystringRecord identifier
breaksobjectBreak records

Break Structure

FieldTypeDescription
startnumberBreak start
endnumberBreak end
lengthRoundednumberDuration in minutes

Communication System

Chats Table

Path: /Chats/{companyId}/{chatId}

FieldTypeDescriptionIndexed
createdBystringCreator employeeIdNo
createdAtnumberCreation timestampNo
archivedbooleanChat archivedNo
typestringprivate/groupNo
namestringGroup chat nameNo
keystringChat identifierNo
membersobject{employeeId: boolean}Yes (values)
unreadobject{employeeId: boolean}Yes (values)
lastMessageobjectLatest message previewNo

Messages Table

Path: /Messages/{chatId}/{messageId}

FieldTypeDescriptionIndexed
senderIdstringSender employeeIdNo
textstringMessage contentNo
timestampnumberSend timeNo
filesarrayAttached filesNo
imagesarrayAttached imagesNo
seenAtobject{employeeId: timestamp}No
dialogIdstringLegacy chat IDYes

Notification System

Notifications Table

Path: /Notifications/{userId}/{notificationId}

FieldTypeDescriptionIndexed
companyIdstringCompany contextNo
createdAtnumberCreation timeNo
updatedAtnumberLast updateYes
employeeIdstringTarget employeeNo
groupstringpeople/schedule/postsNo
typestringNotification typeYes
statusstringCurrent statusYes
statusEmployerstringEmployer statusYes
timenumberEvent timeYes
keystringNotification IDNo
seenByobjectRead receiptsNo
requestIdstringRelated requestNo

NotificationsFlatV2 Table

Path: /NotificationsFlatV2/{companyId}/{employeeId}/{state}/{type}/{notificationId}

FieldTypeDescriptionIndexed
createdAtnumberCreation timestampYes
[type-specific]variousNotification dataNo

Request Management

Requests Table

Path: /Requests/{userId}/{requestId}

FieldTypeDescriptionIndexed
typestringRequest typeNo
statusstringCurrent statusNo
createdAtnumberSubmission timeNo
shiftStringstringShift identifierYes
employeeIdstringRequesterNo
companyIdstringCompanyNo
detailsobjectRequest specificsNo

Request Types

  • dayOff: Time off requests
  • swap: Shift swap requests
  • replace: Replacement requests
  • emergency: Emergency coverage
  • availabilities: Availability changes

Integration Systems

VeloceInvoices Table

Path: /VeloceInvoices/{companyId}/{invoiceId}

FieldTypeDescriptionIndexed
openLocalTimenumberTransaction timeYes
dataobjectInvoice detailsNo

MaitreDInvoices Table

Path: /MaitreDInvoices/{companyId}/{invoiceId}

FieldTypeDescriptionIndexed
openLocalTimenumberTransaction timeYes
dataobjectInvoice detailsNo

LightspeedSettings Table

Path: /LightspeedSettings/{settingId}

FieldTypeDescriptionIndexed
refresh_tokenstringAPI tokenYes
configobjectIntegration configNo

EmployeeIntegrationIds Table

Path: /EmployeeIntegrationIds/{companyId}/{employeeId}

FieldTypeDescription
externalSystemIdstringSystem identifier
externalEmployeeIdstringExternal ID

System Administration

Tokens Table (Push Notifications)

Path: /Tokens/{userId}/{tokenId}

FieldTypeDescriptionIndexed
tokenstringDevice tokenNo
activebooleanToken activeYes
platformstringiOS/AndroidNo
createdAtnumberRegistration timeNo

CompanySettings Table

Path: /CompanySettings/{companyId}

FieldTypeDescriptionIndexed
weatherApiEnabledbooleanWeather integrationYes
hasAccessToAttendancebooleanAttendance moduleNo
hasLaborCostbooleanLabor cost moduleNo
featuresobjectFeature flagsNo
integrationsobjectActive integrationsNo

System Version Tables

Path: /VersionWeb/ and /VersionMobile/

FieldTypeDescription
versionstringApp version
timestampnumberRelease time
featuresobjectVersion features
platformstringTarget platform

Support Table

Path: /Support/{supportId}

FieldTypeDescription
userIdstringUser requesting
typestringIssue type
messagestringSupport message
createdAtnumberRequest time
statusstringTicket status

Database Indexes Summary

Performance Indexes by Table

  • Users: lastSeen, isAdmin
  • Companies: createdBy, notifyBefor, key, hasAccessToAttendance
  • Employees: companyId, userId, customEmplNumber
  • Notifications: time, type, status, statusEmployer, updatedAt
  • Chats: Member values, unread values
  • Messages: dialogId
  • Requests: shiftString
  • Applicants: companyId, userId
  • Posts: createdAt
  • Tokens: active
  • Integration Tables: Various timestamp and ID fields

Key Foreign Key Relationships

  1. Users ↔ Employees: Users.uid = Employees.userId
  2. Companies ↔ Employees: Companies.key = Employees.companyId
  3. Users ↔ Companies: Users.uid = Companies.createdBy
  4. Employees ↔ Schedules: Employees.uid = Schedule.uid
  5. Companies ↔ Positions: Nested within company document
  6. Positions ↔ Subcategories: Nested within position
  7. Chats ↔ Messages: Chats.chatId = Messages.chatId
  8. Employees ↔ Notifications: Employees.uid = Notifications.employeeId
  9. Requests ↔ Notifications: Requests.requestId = Notifications.requestId
  10. Companies ↔ All Entities: Most tables reference companyId