Customer Types
Complete reference for all customer-related types in the GraphQL API.
Customer
A customer (SSO user) belonging to a reseller. The userId is the external user ID from the reseller system, not the internal database ID.
type Customer {
userId: String!
email: String!
name: String
createdAt: String!
customerHandbookLimit: Int
}
Fields
| Field | Type | Description |
|---|---|---|
userId | String! | External user ID from the reseller system. This is the identifier used by the reseller to reference this user. |
email | String! | Email address of the customer. |
name | String | Full name of the customer. |
createdAt | String! | ISO 8601 timestamp of when the customer was created. |
customerHandbookLimit | Int | Per-user handbook generation limit for GraphQL API (null means use reseller's global default). |
CustomersList
List of customers with pagination information.
type CustomersList {
customers: [Customer!]!
total: Int!
}
Fields
| Field | Type | Description |
|---|---|---|
customers | [Customer!]! | Array of customer records |
total | Int! | Total number of customers matching the query (before pagination) |
BearerTokenResponse
Response containing a generated bearer token (JWT) for customer authentication.
type BearerTokenResponse {
token: String!
issuedAt: String!
expiresAt: String!
expiresIn: Int!
}
Fields
| Field | Type | Description |
|---|---|---|
token | String! | The JWT bearer token that can be used in Authorization header |
issuedAt | String! | ISO 8601 timestamp when the token was issued |
expiresAt | String! | ISO 8601 timestamp when the token expires |
expiresIn | Int! | Number of seconds until the token expires |
UpdateDefaultCustomerHandbookLimitResponse
Response for updating reseller handbook limit.
type UpdateDefaultCustomerHandbookLimitResponse {
limit: Int!
usersUpdated: Int
}
Fields
| Field | Type | Description |
|---|---|---|
limit | Int! | The updated global handbook limit |
usersUpdated | Int | Number of users that had their custom limits updated (if updateAllUserCustomLimits was true) |
HandbookVersionUser
User who created a handbook version.
type HandbookVersionUser {
id: String!
name: String
email: String
avatarUrl: String
}
Fields
| Field | Type | Description |
|---|---|---|
id | String! | Internal user ID |
name | String | User's display name |
email | String | User's email address |
avatarUrl | String | URL to user's avatar image |
HandbookVersionListItem
Handbook version metadata without content (used in list views).
type HandbookVersionListItem {
id: Int!
handbookId: Int!
handbookType: String!
createdAt: String!
versionNumber: Int!
user: HandbookVersionUser
}
Fields
| Field | Type | Description |
|---|---|---|
id | Int! | Version ID. -1 represents the current/latest version |
handbookId | Int! | Handbook ID this version belongs to |
handbookType | String! | Type of handbook (comprehensive or basic) |
createdAt | String! | ISO 8601 timestamp when this version was created |
versionNumber | Int! | Sequential version number |
user | HandbookVersionUser | User who created this version |
HandbookVersionsList
List of handbook versions with total count.
type HandbookVersionsList {
versions: [HandbookVersionListItem!]!
total: Int!
}
Fields
| Field | Type | Description |
|---|---|---|
versions | [HandbookVersionListItem!]! | Array of version metadata records |
total | Int! | Total number of versions |
HandbookVersionDetail
Handbook version with full content.
type HandbookVersionDetail {
id: Int!
handbookId: Int!
handbookType: String!
content: String!
createdAt: String!
versionNumber: Int!
user: HandbookVersionUser
}
Fields
| Field | Type | Description |
|---|---|---|
id | Int! | Version ID. -1 represents the current/latest version |
handbookId | Int! | Handbook ID this version belongs to |
handbookType | String! | Type of handbook (comprehensive or basic) |
content | String! | Full HTML content of this version |
createdAt | String! | ISO 8601 timestamp when this version was created |
versionNumber | Int! | Sequential version number |
user | HandbookVersionUser | User who created this version |
RestoreHandbookVersionResponse
Response from restoring a handbook version.
type RestoreHandbookVersionResponse {
success: Boolean!
restoredContent: String!
restoredVersion: HandbookVersionDetail
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the restore operation succeeded |
restoredContent | String! | The restored HTML content now active on the handbook |
restoredVersion | HandbookVersionDetail | The version that was restored |
UpdateHandbookContentResponse
Response from updating handbook content.
type UpdateHandbookContentResponse {
success: Boolean!
handbookId: Int!
handbookType: String!
updatedAt: String!
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the update succeeded |
handbookId | Int! | The handbook ID that was updated |
handbookType | String! | The handbook type that was updated |
updatedAt | String! | ISO 8601 timestamp when the update occurred |
TranslateHandbookResponse
Response from requesting a handbook translation to Spanish. Translation runs asynchronously in the background.
type TranslateHandbookResponse {
success: Boolean!
handbookId: Int!
message: String!
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the translation request was accepted |
handbookId | Int! | The handbook ID being translated |
message | String! | Status message about the translation (includes instructions to poll getHandbook for contentEs) |
SignatureSignee
A person who has been sent a signature request or has signed the handbook.
type SignatureSignee {
id: Int!
formId: String!
name: String!
email: String!
createdAt: String
updatedAt: String
signedAt: String
signedFileUrl: String
}
Fields
| Field | Type | Description |
|---|---|---|
id | Int! | Unique identifier for the signature request |
formId | String! | Firma form ID for this signature request |
name | String! | Full name of the signee |
email | String! | Email address of the signee |
createdAt | String | ISO 8601 timestamp when the signature was requested |
updatedAt | String | ISO 8601 timestamp of the last update |
signedAt | String | ISO 8601 timestamp when the signee signed. null if not yet signed |
signedFileUrl | String | URL to the signed PDF document. Only available after signing |
SignatureSigneesList
List of signature signees for a handbook.
type SignatureSigneesList {
signees: [SignatureSignee!]!
total: Int!
}
Fields
| Field | Type | Description |
|---|---|---|
signees | [SignatureSignee!]! | Array of signees with their signing status |
total | Int! | Total number of signees |
SendSignatureResponse
Response from sending signature requests. Processing runs in the background.
type SendSignatureResponse {
success: Boolean!
handbookId: Int!
message: String!
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the signature request was accepted |
handbookId | Int! | The handbook ID the signature request was sent for |
message | String! | Status message (includes instructions to poll getSignatureSignees) |
ResendSignatureResponse
Response from resending a signature request reminder.
type ResendSignatureResponse {
success: Boolean!
message: String!
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the resend succeeded |
message | String! | Status message |
RemoveSignatureResponse
Response from removing signature requests.
type RemoveSignatureResponse {
success: Boolean!
message: String!
}
Fields
| Field | Type | Description |
|---|---|---|
success | Boolean! | Whether the removal succeeded |
message | String! | Status message |
SignatureRecipientInput
Input type for specifying a signature request recipient.
input SignatureRecipientInput {
name: String!
email: String!
}
Fields
| Field | Type | Description |
|---|---|---|
name | String! | Full name of the recipient |
email | String! | Email address of the recipient |