Skip to main content

Handbook Types

Complete reference for all handbook-related types in the GraphQL API.

Handbook

A handbook entry containing both the generated content and the input data.

type Handbook {
handbookId: Int!
content: String
contentEs: String
createdAt: String!
updatedAt: String
data: HandbookData!
}

Fields

FieldTypeDescription
handbookIdInt!Unique identifier for the handbook
contentStringThe full generated handbook content (HTML)
contentEsStringThe Spanish translation of the handbook content (HTML). Null if not yet translated.
createdAtString!ISO 8601 timestamp when the handbook was created
updatedAtStringISO 8601 timestamp when the handbook was last updated
dataHandbookData!Input data used to generate this handbook

HandbookResponse

Response from handbook generation mutation.

type HandbookResponse {
content: String!
contentType: String
subscriptionType: SubscriptionType
}

Fields

FieldTypeDescription
contentString!The handbook content (HTML, base64-encoded DOCX, or plain text)
contentTypeStringThe MIME type for the content
subscriptionTypeSubscriptionTypeThe subscription type: SUBSCRIPTION or ONE_TIME

HandbookListItem

Lightweight handbook metadata for list views (does not include content).

type HandbookListItem {
handbookId: Int!
handbookType: String!
createdAt: String!
updatedAt: String
companyName: String
industry: String
subscriptionStatus: SubscriptionStatus
}

Fields

FieldTypeDescription
handbookIdInt!Unique identifier for the handbook
handbookTypeString!Type of handbook: "basic" or "comprehensive"
createdAtString!ISO 8601 timestamp when the handbook was created
updatedAtStringISO 8601 timestamp when the handbook was last updated
companyNameStringCompany name from the handbook data
industryStringIndustry type
subscriptionStatusSubscriptionStatusSubscription status of the handbook

HandbookListItemReseller

Reseller version of handbook list item with customer information.

type HandbookListItemReseller {
handbookId: Int!
handbookType: String!
createdAt: String!
updatedAt: String
companyName: String
handbookName: String
myState: String
industry: String
subscriptionStatus: SubscriptionStatus
customer: Customer
}

Fields

FieldTypeDescription
handbookIdInt!Unique identifier for the handbook
handbookTypeString!Type of handbook: "basic" or "comprehensive"
createdAtString!ISO 8601 timestamp when the handbook was created
updatedAtStringISO 8601 timestamp when the handbook was last updated
companyNameStringCompany name from the handbook data
handbookNameStringHandbook name if set
myStateStringPrimary state for the handbook
industryStringIndustry type
subscriptionStatusSubscriptionStatusSubscription status of the handbook
customerCustomerCustomer (user) this handbook belongs to

HandbookData

Input data used to generate a handbook. Contains all the configuration and settings.

type HandbookData {
# System Fields
subscriptionStatus: SubscriptionStatus
createdAt: String!
updatedAt: String
updateOnlyStage: String

# Core Information
myState: String
companyName: String
numberOfEmployees: String
multiState: String
multiStateSelectedStates: [StateList!]
industry: String
handbookName: String

# Employment Policies
fullTimeHours: Int
payPeriodFrequency: String
performanceReviewPeriod: String
trialPeriod: Boolean
trialPeriodDays: Int

# Benefits
paidHolidays: Boolean
paidHolidayNames: String
vacationBenefits: Boolean
vacationBenefitEligibleMonths: Int
vacationBenefitType: String
vacationHoursEarned: Int
vacationBenefitCarryover: Boolean
sickLeave: Boolean
sickLeaveDays: Int
sickHoursEarned: Int
maximumSickLeave: Int
workersComp: Boolean
healthInsurance: Boolean
healthInsurancePlans: [String!]
directDeposit: Boolean

# Policies
companyVehiclesPolicy: Boolean
companyVehiclesPolicyTitle: Boolean
socialMediaPolicy: Boolean
socialMediaPolicyTitle: Boolean
progressiveDisciplinePolicy: Boolean
progressiveDisciplinePolicyTitle: Boolean
recordingDevicePolicy: Boolean
recordingDevicePolicyTitle: Boolean
employeeDressPolicy: Boolean
employeeDressPolicyTitle: Boolean
travelAndExpensePolicy: Boolean
travelAndExpensePolicyTitle: Boolean
workFromHomePolicy: Boolean
workFromHomePolicyTitle: Boolean
virtualMeetingsPolicy: Boolean
virtualMeetingsPolicyTitle: Boolean

# Policy Title Fields
trialPeriodTitle: Boolean
paidHolidaysTitle: Boolean
vacationBenefitsTitle: Boolean
sickLeaveTitle: Boolean
healthInsuranceTitle: Boolean
directDepositTitle: Boolean

# Custom Content
missionStatement: Boolean
missionStatementTitle: Boolean
missionStatementText: String
"""
Appendix conditions as JSON object. When querying, this returns the stored JSON format.
When creating/updating handbooks, use the structured [AppendixConditionInput!] format
in HandbookRequest. See [Input Types](/docs/graphql-api/types/input-types/) for details.
"""
appendixConditions: JSON

# Additional Fields
hrManager: String
payrollManager: String
industryPolicies: [String!]
features: [String!]
waivercat_form_id: [String!]
}

Key Fields

FieldTypeDescription
subscriptionStatusSubscriptionStatusSubscription status of the handbook (set by system)
createdAtString!ISO 8601 timestamp when the data was created
updatedAtStringISO 8601 timestamp when the data was last updated
updateOnlyStageStringInternal field for update workflow

Note: Most fields in HandbookData correspond to fields in HandbookRequest input type. See the Input Types documentation for the complete list of input fields. The subscriptionStatus field is set by the system based on the subscriptionType parameter provided during handbook generation.

HandbooksList

List of handbooks with pagination information.

type HandbooksList {
handbooks: [HandbookListItem!]!
total: Int!
}

Fields

FieldTypeDescription
handbooks[HandbookListItem!]!Array of handbook metadata records (does not include content)
totalInt!Total number of handbooks matching the query (before pagination)

HandbooksListReseller

Reseller version of handbooks list with customer information.

type HandbooksListReseller {
handbooks: [HandbookListItemReseller!]!
total: Int!
}

Fields

FieldTypeDescription
handbooks[HandbookListItemReseller!]!Array of handbook metadata records (does not include content)
totalInt!Total number of handbooks matching the query (before pagination)

PolicyFeedResponse

Response from the policyFeed query containing policy updates.

type PolicyFeedResponse {
total: Int!
policyUpdates: [PolicyUpdateItem!]!
}

Fields

FieldTypeDescription
totalInt!Total number of policy updates found
policyUpdates[PolicyUpdateItem!]!Array of policy updates with full HTML content

PolicyUpdateItem

A single policy update item with full HTML content ready for insertion into handbooks.

type PolicyUpdateItem {
date: String!
month: Int!
year: Int!
scope: String!
title: String!
content: String!
summary: String
instructions: String
conditions: String
}

Fields

FieldTypeDescription
dateString!The date of the update in YYYY-MM-DD format
monthInt!Month of the update (1-12)
yearInt!Year of the update
scopeString!State code (e.g., CA, NY, TX) or US for federal updates that apply to all states
titleString!Title of the policy update
contentString!Full HTML content of the policy update ready to be inserted into a handbook
summaryStringBrief summary of the policy update from the related compliance update
instructionsStringInstructions for how to apply this update to your handbook
conditionsStringContext about when/why this update applies