Tables
108 tables
An undoable action on an inventory item: what changed (previous and new value), who did it, and whether it was undone.
Files json/ActionHistory.json csv/ActionHistory.csv · primary key Id · scoped by e.Item.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActionDescription | string | no | | |
ActionType | enum | no | | PropertyValueChange PropertyNameChange ItemNameChange ItemDescriptionChange ParentItemChange CategoryChange CalculationChange PropertyAdd PropertyDelete PropertyDataTypeChange |
AdditionalData | string | no | | |
CreatedAt | datetime | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsUndone | boolean | no | | |
ItemId | integer | no | Items.Id | |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
NewValue | string | no | | |
PreviousValue | string | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UndoneAt | datetime | yes | | |
UndoneByActionId | integer | yes | | |
UndoneByActionSyncId | guid | yes | | |
UserId | string | yes | | |
UserSyncId | guid | yes | | |
A user account (sign-in identity) and the organization it belongs to.
Files json/AspNetUsers.json csv/AspNetUsers.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | string | no | | Primary key, unique within this table. |
AccessFailedCount | integer | no | | Failed sign-in attempts since the last successful sign-in (reset on success). |
Email | stringmax 256 | yes | | User's email address. |
EmailConfirmed | boolean | no | | True once the user has confirmed their email address. |
FirstName | string | no | | User's first name. |
IsActive | boolean | no | | False when the account is deactivated and can no longer sign in. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastName | string | no | | User's last name. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LockoutEnabled | boolean | no | | True when the account can be locked out after repeated failed sign-ins. |
LockoutEnd | datetime | yes | | When a sign-in lockout ends (UTC); null or in the past when the account is not locked out. |
NormalizedEmail | stringmax 256 | yes | | Email in upper case, used for case-insensitive look-ups. |
NormalizedUserName | stringmax 256 | yes | | UserName in upper case, used for case-insensitive look-ups. |
OrganizationId | integer | no | Organizations.Id | Organization the user belongs to. |
PhoneNumber | string | yes | | User's phone number, if recorded. |
PhoneNumberConfirmed | boolean | no | | True once the user has confirmed their phone number. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TwoFactorEnabled | boolean | no | | True when the user signs in with a second factor (authenticator app). |
UserName | stringmax 256 | yes | | Sign-in name of the user (usually the same as the email address). |
ViewedChangelog | boolean | no | | Whether the user has viewed the changelog for the current version. |
One organization's automation rule: "when AutomationRule.TriggerEvent fires and AutomationRule.ConditionsJson holds, run AutomationRule.ActionType." Configured at Settings → Integrations → Automations and executed only by the web host's AutomationRunnerService.
Files json/AutomationRules.json csv/AutomationRules.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActionParamsJson | string | yes | | Action-specific configuration as JSON. |
ActionType | enum | no | | What to do when the rule fires.SendNotificationEmail CreateInvoiceFromJob DraftPurchaseOrderForLowStock AssignJob MarkInvoiceSent SetJobStatus QueueOnMyWayText |
ConditionsJson | string | yes | | Optional condition set evaluated against the event payload ({ "all": [ { "field", "op", "value" } ] }). |
ConsecutiveFailureCount | integer | no | | Consecutive failed runs; reset to 0 on any success. |
CreatedAt | datetime | no | | |
CreatedByUserId | stringmax 450 | yes | | Identity user id the rule runs as (actor attribution; resolved at run time). |
IsActive | boolean | no | | Inactive rules never fire. |
IsDeleted | boolean | no | | Soft delete flag. |
LastTriggeredUtc | datetime | yes | | UTC of the most recent time this rule enqueued a run. |
Name | stringmax 200 | no | | Owner-facing name, e.g. "Invoice completed jobs". |
OrganizationId | integer | no | Organizations.Id | Tenant scope. |
TriggerCount | integer | no | | How many runs this rule has enqueued (lifetime). |
TriggerEvent | stringmax 64 | no | | The event that fires this rule; one of WebhookEvents. |
UpdatedBy | stringmax 256 | yes | | |
UpdatedUtc | datetime | no | | UTC timestamp. |
Represents an instantiated bundle in inventory.
Files json/Bundles.json csv/Bundles.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActiveTransferId | integer | yes | | Transfer the bundle is currently travelling on; null when not in transit. |
ActiveTransferSyncId | guid | yes | | SyncId of the transfer in ActiveTransferId. |
BundleTemplateId | integer | no | BundleTemplates.Id | Bundle template this bundle was built from. |
BundleTemplateSyncId | guid | yes | | SyncId of the BundleTemplates row that BundleTemplateId points at. |
CreatedBy | string | no | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
DeletedBy | string | yes | | Email (or user name) of the user who deleted the bundle. |
DeletedDate | datetime | yes | | When the bundle was deleted (UTC); null unless IsDeleted is true. |
Description | string | yes | | Free-text description of the bundle. |
IsActive | boolean | no | | False once the bundle has been broken up into its items. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsInTransit | boolean | no | | True while the bundle is moving between locations on a transfer. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | no | Locations.Id | Location where the bundle currently is. |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
Name | string | no | | Bundle name. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
One line of a bundle template: name, quantity and optional item template; lines can nest.
Files json/BundleTemplateItems.json csv/BundleTemplateItems.csv · primary key Id · scoped by e.BundleTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BundleTemplateId | integer | no | BundleTemplates.Id | |
BundleTemplateSyncId | guid | yes | | SyncId of the BundleTemplates row that BundleTemplateId points at. |
CategoryId | integer | yes | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
Description | string | yes | | |
HasCalculatedProperties | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | yes | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | |
ParentTemplateItemId | integer | yes | BundleTemplateItems.Id | |
ParentTemplateItemSyncId | guid | yes | | SyncId of the BundleTemplateItems row that ParentTemplateItemId points at. |
Quantity | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A reusable recipe for a bundle: the item templates and quantities it is built from.
Files json/BundleTemplates.json csv/BundleTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
Description | string | yes | | Free-text description of the bundle template. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | Bundle template name. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
UpdatedBy | string | yes | | Email (or user name) of the user who last changed the row. |
VendorId | integer | yes | Vendors.Id | Vendor the bundle is usually bought from; null when none. |
VendorPartNumber | stringmax 100 | yes | | The vendor's part number for the bundle. |
VendorSyncId | guid | yes | | SyncId of the Vendors row that VendorId points at. |
WholesalePrice | decimal | yes | | Price paid for the whole bundle, in the organization's currency; null when not set. |
A link between two items that a calculated property relies on, so a change to the referenced item recalculates the dependent one.
Files json/CalculationDependencies.json csv/CalculationDependencies.csv · primary key Id · scoped by e.DependentItem.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | guid | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
DependentItemId | integer | no | Items.Id | The item that has the property depending on another item's property ie, the child in a parent-child relationship or the parent in a child-parent relationship |
DependentItemSyncId | guid | yes | | SyncId of the Items row that DependentItemId points at. |
Generation | integer | no | | Generation/depth level in the hierarchy (1-based) 1 = direct parent/child, 2 = grandparent/grandchild, etc. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
PropertyReferenceId | guid | no | CalculationPropertyReferences.Id | |
ReferencedItemId | integer | no | Items.Id | The item that is being depended on ie, the parent in a parent-child relationship or the child in a child-parent relationship |
ReferencedItemSyncId | guid | yes | | SyncId of the Items row that ReferencedItemId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
A property that a property calculation reads, or writes, as part of its formula.
Files json/CalculationPropertyReferences.json csv/CalculationPropertyReferences.csv · primary key Id · scoped by (e.PropertyCalculation.Property != null && (e.PropertyCalculation.Property.Item != null && e.PropertyCalculation.Property.Item.OrganizationId == org) || (e.PropertyCalculation.Property.BundleTemplateItem != null && e.PropertyCalculation.Property.BundleTemplateItem.BundleTemplate.OrganizationId == org) || (e.PropertyCalculation.Property.KitItem != null && e.PropertyCalculation.Property.KitItem.Kit.OrganizationId == org)) || (e.PropertyCalculation.TemplateProperty != null && e.PropertyCalculation.TemplateProperty.ItemTemplate.OrganizationId == org)
| Column | Type | Empty? | References | Description |
Id | guid | no | | Primary key, unique within this table. |
Direction | enum | no | | Self Parent Child |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrderIndex | integer | no | | |
PropertyCalculationId | integer | no | PropertyCalculations.Id | |
PropertyCalculationSyncId | guid | yes | | SyncId of the PropertyCalculations row that PropertyCalculationId points at. |
ReferencedPropertyId | integer | yes | ItemProperties.Id | |
ReferencedPropertySyncId | guid | yes | | SyncId of the ItemProperties row that ReferencedPropertyId points at. |
ReferencedTemplatePropertyId | integer | yes | ItemTemplateProperties.Id | |
ReferencedTemplatePropertySyncId | guid | yes | | SyncId of the ItemTemplateProperties row that ReferencedTemplatePropertyId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A property that every item in a category carries (name, data type, default and validation).
Files json/CategoryProperties.json csv/CategoryProperties.csv · primary key Id · scoped by e.Category.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | no | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
DataType | enum | no | | Text Number Date Boolean Dropdown MultiSelect |
DefaultValue | string | yes | | |
DisplayOrder | integer | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsRequired | boolean | no | | |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Options | string | yes | | |
OverridesParentProperty | boolean | no | | |
PropertyName | stringmax 100 | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
ValidationPattern | string | yes | | |
A custom charge (fee or other line) on a job, with price, discount and cost.
Files json/CustomCharges.json csv/CustomCharges.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Cost | decimal | no | | What the charge costs the organization, in the organization's currency (for profit reporting). |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
Description | stringmax 500 | yes | | Optional longer description of the charge, up to 500 characters. |
DiscountAmount | decimal | no | | Flat discount taken off the charge after the percentage discount, in the organization's currency. |
DiscountPercent | decimal | no | | Line discount as a percentage (0-100), applied before the flat discount. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | no | Jobs.Id | Job the charge is on. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Name | stringmax 200 | no | | Name of the charge shown on the job and invoice, up to 200 characters. |
Price | decimal | no | | Price charged to the customer before discounts, in the organization's currency. |
SortOrder | integer | no | | Display order of the charge on the job (lowest first). |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
An address of a customer (a service site, or the mailing address).
Files json/CustomerAddresses.json csv/CustomerAddresses.csv · primary key Id · scoped by e.Customer.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Address | stringmax 200 | yes | | Street address, line 1. |
Address2 | stringmax 200 | yes | | Street address, line 2 (suite, unit). |
City | stringmax 100 | yes | | City. |
Country | stringmax 100 | yes | | Country. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
CustomerId | integer | no | Customers.Id | Customer this address belongs to. |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
IsActive | boolean | no | | False when the address has been retired and is no longer offered for new jobs or orders. |
IsMailingAddress | boolean | no | | True when this is the customer's mailing address. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Name | stringmax 100 | no | | Label for the address, for example 'Main Office' or 'Rental Property 1'. |
Notes | stringmax 500 | yes | | Notes about the site (gate codes, parking, access), up to 500 characters. |
PostalCode | stringmax 20 | yes | | ZIP or postal code. |
State | stringmax 50 | yes | | State or province. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A customer of the organization: contact details, billing information and notes.
Files json/Customers.json csv/Customers.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Address | stringmax 200 | yes | | Primary (billing) street address, line 1. |
Address2 | stringmax 200 | yes | | Primary address, line 2 (suite, unit). |
City | stringmax 100 | yes | | City of the primary address. |
CompanyName | stringmax 200 | yes | | Company or trading name when the customer is a business. |
Country | stringmax 100 | yes | | Country of the primary address. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
CreditLimit | decimal | no | | Credit limit, in the organization's currency (0 = none set). |
CurrentBalance | decimal | no | | Outstanding balance the customer owes, in the organization's currency. |
CustomerStatus | enum | no | | Staff flag for the customer: none, preferred or difficult.None Preferred Difficult |
CustomerType | enum | no | | Kind of customer (end customer, installer/contractor, distributor or commercial).EndCustomer Installer Distributor Commercial |
DeletedBy | string | yes | | Email (or user name) of the user who deleted the customer. |
DeletedDate | datetime | yes | | When the customer was deleted (UTC); null unless IsDeleted is true. |
Email | stringmax 256 | yes | | Customer's contact email address. |
IsActive | boolean | no | | False when the customer has been deactivated (kept for history, hidden from pickers). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsTaxExempt | boolean | yes | | True when the customer is tax exempt; null when not recorded. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MobilePhone | stringmax 20 | yes | | Mobile phone number, as entered (used for customer text messages). |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Name | stringmax 200 | no | | Customer display name (a person or business). |
Notes | string | yes | | Free-form internal notes about the customer. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PaymentTerms | enum | no | | Default payment terms for this customer's invoices (due on receipt, Net 15/30/45/60, COD or prepaid).DueOnReceipt Net15 Net30 Net45 Net60 COD Prepaid |
Phone | stringmax 20 | yes | | Main phone number, as entered. |
PostalCode | stringmax 20 | yes | | ZIP or postal code of the primary address. |
PriceTier | enum | no | | Price tier used to price jobs and orders for this customer.Standard Silver Gold Platinum Custom |
PrimaryContact | stringmax 100 | yes | | Name of the main contact person, when different from the customer name. |
State | stringmax 50 | yes | | State or province of the primary address. |
StoreCreditBalance | decimal | no | | Store credit available to the customer, in the organization's currency. |
StoreCreditNotes | string | yes | | Notes explaining the customer's store credit. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaxId | stringmax 50 | yes | | Customer's tax identification number, if recorded. |
WarningNotes | stringmax 1000 | yes | | Warning shown to staff whenever the customer is selected (for example 'Pays late'). |
A custom role: a named set of permissions an organization defines for its users.
Files json/CustomRoles.json csv/CustomRoles.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
CreatedById | string | yes | AspNetUsers.Id | |
CreatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CreatedById points at. |
Description | string | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | |
OrganizationId | integer | no | Organizations.Id | |
PermissionsJson | string | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
An individual checklist item within a section
Files json/EstimatePreInspectionTemplateItems.json csv/EstimatePreInspectionTemplateItems.csv · primary key Id · scoped by e.Section.Template.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CustomStatusOptionsOverride | string | yes | | Custom status options when StatusFieldTypeOverride = Custom. |
DisplayOrder | integer | no | | |
HasItemNotes | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemText | stringmax 500 | no | | |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SectionId | integer | no | EstimatePreInspectionTemplateSections.Id | |
SectionSyncId | guid | yes | | SyncId of the EstimatePreInspectionTemplateSections row that SectionId points at. |
StatusFieldTypeOverride | enum | yes | | Override the template's status field type for this specific item.CheckboxOnly PassFail PassNeedsAttentionFail PassNeedsAttentionFailNA Custom |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Template for pre-inspection checklists that can be used during job estimates
Files json/EstimatePreInspectionTemplates.json csv/EstimatePreInspectionTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | string | yes | | |
CreatedDate | datetime | no | | |
CustomStatusOptions | string | yes | | JSON array of custom status options when StatusFieldType = Custom e.g., ["Good", "Fair", "Poor"] |
Description | stringmax 500 | yes | | |
IsActive | boolean | no | | |
IsDefault | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | |
ModifiedDate | datetime | yes | | |
Name | stringmax 200 | no | | Template Name |
OrganizationId | integer | no | Organizations.Id | |
StatusFieldType | enum | no | | CheckboxOnly PassFail PassNeedsAttentionFail PassNeedsAttentionFailNA Custom |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A section/grouping within a pre-inspection template
Files json/EstimatePreInspectionTemplateSections.json csv/EstimatePreInspectionTemplateSections.csv · primary key Id · scoped by e.Template.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DisplayOrder | integer | no | | |
HasSectionNotes | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 200 | no | | Section Name |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateId | integer | no | EstimatePreInspectionTemplates.Id | |
TemplateSyncId | guid | yes | | SyncId of the EstimatePreInspectionTemplates row that TemplateId points at. |
Represents a global variable that can be used in calculations across all items and templates.
Files json/GlobalVariables.json csv/GlobalVariables.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
Description | stringmax 500 | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
Value | decimal | no | | The numeric value of the global variable. |
One CSV import run: the file, its vendor and template, status and row counts.
Files json/ImportJobs.json csv/ImportJobs.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BarcodeColumnsJson | string | yes | | |
CategoryColumnsJson | string | yes | | |
CategoryMappingJson | string | yes | | |
ColumnMappingJson | string | yes | | |
CompletedAt | datetime | yes | | |
CreatedAt | datetime | no | | |
CreatedBy | stringmax 100 | no | | |
CsvContent | string | yes | | |
DeletedAt | datetime | yes | | |
DeletedBy | string | yes | | |
DualPriceConfigJson | string | yes | | |
DuplicateResolutionJson | string | yes | | |
ErrorLog | stringmax 2000 | yes | | |
FailedRows | integer | no | | |
FileName | stringmax 200 | no | | |
FileSize | integer | no | | |
ImportTemplateId | integer | yes | ImportTemplates.Id | |
ImportTemplateSyncId | guid | yes | | SyncId of the ImportTemplates row that ImportTemplateId points at. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | |
PendingTemplateName | stringmax 200 | yes | | |
PrimaryBarcodeColumn | stringmax 200 | yes | | |
ProcessedRows | integer | no | | |
SplitColumnsConfigJson | string | yes | | |
SplitColumnsJson | string | yes | | |
StartedAt | datetime | yes | | |
Status | enum | no | | Pending Processing Completed Failed PartiallyCompleted Cancelled |
SuccessfulRows | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateAssignmentJson | string | yes | | |
TemplateColumnsJson | string | yes | | |
TotalRows | integer | no | | |
VendorId | integer | yes | Vendors.Id | |
VendorSyncId | guid | yes | | SyncId of the Vendors row that VendorId points at. |
A saved CSV column mapping for importing a vendor's price list or catalog.
Files json/ImportTemplates.json csv/ImportTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ColumnMappingJson | string | no | | |
CreatedAt | datetime | no | | |
CreatedBy | stringmax 100 | no | | |
DefaultCategoryId | integer | yes | ItemCategories.Id | |
Description | stringmax 500 | yes | | |
GlobalTransformationsJson | string | yes | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemOverridesJson | string | yes | | |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MatchingField | stringmax 50 | yes | | |
Name | stringmax 100 | no | | |
NameTransformationsJson | string | yes | | |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdateExistingItems | boolean | no | | |
UpdatedAt | datetime | no | | |
UpdatedBy | stringmax 100 | yes | | |
VendorId | integer | no | Vendors.Id | |
One line of an invoice: description, type, quantity, unit price and discount.
Files json/InvoiceLineItems.json csv/InvoiceLineItems.csv · primary key Id · scoped by e.Invoice.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ConfigurationSummary | stringmax 1000 | yes | | Text describing the line's configured add-ons, recorded when the invoice was finalized; null when none. |
CustomChargeSyncId | guid | yes | | SyncId of the job custom charge this invoice line was billed from; null otherwise. |
Description | stringmax 500 | no | | Line description printed on the invoice, up to 500 characters. |
DiscountAmount | decimal | no | | Flat line discount recorded when the invoice was finalized, in the organization's currency. |
DiscountPercent | decimal | no | | Line discount percentage (0-100) recorded when the invoice was finalized. |
InvoiceId | integer | no | Invoices.Id | Invoice the line is on. |
InvoiceSyncId | guid | yes | | SyncId of the Invoices row that InvoiceId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemType | enum | no | | Kind of line: material, labor, service or other.Material Labor Service Other |
JobItemId | integer | yes | | Job material line this invoice line was billed from; null otherwise. |
JobItemSyncId | guid | yes | | SyncId of the job material line in JobItemId. |
LaborItemSyncId | guid | yes | | SyncId of the job labor line this invoice line was billed from; null otherwise. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 1000 | yes | | Note printed under the line, up to 1000 characters. |
OriginalUnitPrice | decimal | yes | | Price per unit before line discounts, recorded when the invoice was finalized; null on older lines. |
Quantity | decimal | no | | Quantity billed (decimal, for example hours for a labor line). |
SalesOrderItemId | integer | yes | | Sales order line this invoice line was billed from; null otherwise. |
SalesOrderItemSyncId | guid | yes | | SyncId of the sales order line in SalesOrderItemId. |
SortOrder | integer | no | | Display order of the line on the invoice (lowest first). |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitOfMeasure | stringmax 50 | yes | | Unit the quantity is measured in (for example 'hr' or 'ea'); null when none. |
UnitPrice | decimal | no | | Price per unit after line discounts, in the organization's currency; the line total is Quantity x UnitPrice. |
A note on an invoice.
Files json/InvoiceNotes.json csv/InvoiceNotes.csv · primary key Id · scoped by e.Invoice.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
InvoiceId | integer | no | Invoices.Id | Invoice the note is on. |
InvoiceSyncId | guid | yes | | SyncId of the Invoices row that InvoiceId points at. |
IsInternal | boolean | no | | Hide from Customer |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
NoteText | string | no | | Note |
NoteType | enum | no | | Kind of note: general, payment, internal, customer communication or billing adjustment.General Payment Internal CustomerCommunication BillingAdjustment |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Represents a payment record for an invoice.
Files json/InvoicePayments.json csv/InvoicePayments.csv · primary key Id · scoped by e.Invoice.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Amount | decimal | no | | Amount paid (gross, before any processor fee), in the organization's currency. |
CreatedBy | stringmax 100 | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
FeeStatus | enum | no | | Whether InvoicePayment.ProcessorFee can be trusted yet.NotApplicable Pending Known Revised |
InvoiceId | integer | no | Invoices.Id | Invoice the payment is applied to. |
InvoiceSyncId | guid | yes | | SyncId of the Invoices row that InvoiceId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | stringmax 100 | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Notes | stringmax 500 | yes | | Notes about the payment, up to 500 characters. |
PaymentDate | datetime | no | | Date the payment was received, as entered. |
PaymentMethod | stringmax 50 | yes | | How the customer paid (for example Cash, Card or Check). |
Processor | enum | no | | Which processor took this payment, or PaymentProcessor.None for cash, cheque and anything else keyed in by hand.None Square Stripe |
ProcessorFee | decimal | yes | | What the processor kept, in the same currency as InvoicePayment.Amount. |
ProcessorTransactionId | stringmax 100 | yes | | The processor's own id for the payment (Stripe PaymentIntent, Square Payment). |
ReferenceNumber | stringmax 100 | yes | | Check number or transaction reference, if recorded. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
An invoice to a customer: number, dates, status, tax, discounts and amount paid.
Files json/Invoices.json csv/Invoices.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AmountPaid | decimal | no | | Total of the payments applied to the invoice, in the organization's currency. |
ConsolidatedIntoInvoiceId | integer | yes | Invoices.Id | The combined invoice this invoice was consolidated into; null when it has not been consolidated. |
ConsolidatedIntoInvoiceSyncId | guid | yes | | SyncId of the Invoices row that ConsolidatedIntoInvoiceId points at. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
CustomerAddressId | integer | yes | CustomerAddresses.Id | Customer address (service site) the invoice is for; null when none. |
CustomerAddressSyncId | guid | yes | | SyncId of the CustomerAddresses row that CustomerAddressId points at. |
CustomerId | integer | yes | Customers.Id | Customer billed. |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
Description | stringmax 2000 | yes | | Optional description of the invoice, up to 2000 characters. |
DueDate | datetime | no | | Date payment is due (date only; the time part is midnight). |
EmailedAt | datetime | yes | | When the payment-link email was last sent to the customer (UTC); null when never sent. |
EmailedTo | stringmax 200 | yes | | Email address the payment-link email was last sent to. |
InvoiceDate | datetime | no | | Date the invoice was issued (date only; the time part is midnight). |
InvoiceNumber | stringmax 50 | no | | Invoice number shown to the customer, for example INV-1042. |
InvoiceSequenceNumber | integer | yes | | Position of this invoice among the invoices of the same job or sales order: 1 = the original, 2 = the first supplemental invoice, and so on; null for a standalone invoice. |
IsConsolidatedInvoice | boolean | no | | True for an invoice that combines several other invoices (listed in SourceInvoiceIds). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsStandalone | boolean | no | | True for an invoice created on its own rather than from a job or sales order. |
JobDiscountFactor | decimal | no | | Multiplier the job-level discount applied to the lines, recorded when the invoice was finalized (0.9 = 10% off; 1 = no job discount or an older invoice). |
JobDiscountNote | stringmax 500 | yes | | Note explaining the job-level discount, printed with the discount row. |
JobDiscountPercent | decimal | yes | | Job-level discount percentage shown on the discount row (for example 10), recorded when the invoice was finalized; null for a fixed-amount or no discount. |
JobId | integer | yes | Jobs.Id | Job the invoice bills; null when not from a job. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Notes | string | yes | | Notes printed on the invoice for the customer. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PaidDate | datetime | yes | | When the invoice was paid in full (UTC); null until paid. |
PaymentInstructions | string | yes | | Payment instructions printed on the invoice. |
PaymentLinkCreatedAt | datetime | yes | | When the online payment link was created (UTC); null when none. |
PaymentLinkId | stringmax 200 | yes | | Id of the online payment link created for this invoice at the payment processor; null when none. |
PaymentLinkUrl | stringmax 500 | yes | | URL of the online payment link the customer opens to pay; null when none. |
SalesOrderId | integer | yes | SalesOrders.Id | Sales order the invoice bills; null when not from a sales order. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SentDate | datetime | yes | | When the invoice was first sent to the customer (UTC); null if never sent. |
SourceInvoiceIds | stringmax 4000 | yes | | For a consolidated invoice, JSON array of the ids of the invoices it combines, for example [123, 456, 789]. |
SourceInvoiceSyncIds | stringmax 4000 | yes | | For a consolidated invoice, JSON array of the SyncIds of the invoices it combines. |
Status | enum | no | | Invoice status: draft, sent, viewed, partially paid, paid, overdue, cancelled, outstanding or consolidated.Draft Sent Viewed PartiallyPaid Paid Overdue Cancelled Outstanding Consolidated |
StoreCreditApplied | decimal | no | | Store credit applied to the invoice, in the organization's currency. |
Subtotal | decimal | no | | Sum of the invoice lines (less any job discount) before tax, in the organization's currency. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaxAmountOverride | decimal | yes | | Pre-computed tax amount for consolidated invoices with mixed tax rates. |
TaxRate | decimal | no | | Tax rate as a percentage, for example 8.25. |
TaxableSubtotal | decimal | yes | | Taxable portion of the subtotal. |
Terms | stringmax 500 | yes | | Payment terms text printed on the invoice, for example 'Due on Receipt'. |
Represents a barcode associated with a specific inventory item.
Files json/ItemBarcodes.json csv/ItemBarcodes.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BarcodeValue | stringmax 100 | no | | Encoded barcode value. |
CreatedAt | datetime | no | | When the row was created (UTC). |
DeletedAt | datetime | yes | | When the barcode was removed (UTC); null unless IsDeleted is true. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsPrimary | boolean | no | | Indicates if this is the primary/default barcode for the item |
ItemId | integer | no | Items.Id | Inventory item the barcode is attached to. |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Type | stringmax 50 | no | | Flexible barcode type - user can define any type. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Represents a catalog entry for standard inventory items.
Files json/ItemCatalog.json csv/ItemCatalog.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Barcode | string | yes | | |
CategoryId | integer | yes | ItemCategories.Id | |
CreatedAt | datetime | no | | |
Description | string | yes | | |
Name | stringmax 100 | no | | Item Name |
OrganizationId | integer | no | Organizations.Id | |
UpdatedAt | datetime | yes | | |
Represents a property for an item catalog entry.
Files json/ItemCatalogProperty.json csv/ItemCatalogProperty.csv · primary key Id · scoped by e.ItemCatalog.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ItemCatalogId | integer | no | ItemCatalog.Id | |
PropertyName | stringmax 100 | no | | |
PropertyValue | string | no | | |
A category that items and templates are classified by (categories can be nested).
Files json/ItemCategories.json csv/ItemCategories.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | string | yes | | Free-text description of the category. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsSystemCategory | boolean | no | | True for a built-in category that is not edited or listed like user categories. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Category name, up to 100 characters. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ParentCategoryId | integer | yes | ItemCategories.Id | Parent category this category is nested under; null for a top-level category. |
ParentCategorySyncId | guid | yes | | SyncId of the ItemCategories row that ParentCategoryId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderId | integer | yes | TemplateBuilders.Id | Template builder that created this category automatically; null for a category created by hand. |
TemplateBuilderSyncId | guid | yes | | SyncId of the TemplateBuilders row that TemplateBuilderId points at. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Junction table for many-to-many relationship between Item and ItemCategory.
Files json/ItemCategoryAssignments.json csv/ItemCategoryAssignments.csv · primary key Id · scoped by e.Item.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | no | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemId | integer | no | Items.Id | |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A history entry for an inventory item: a move, property change or other change.
Files json/ItemChangeLogs.json csv/ItemChangeLogs.csv · primary key Id · scoped by e.Item != null && e.Item.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ChangeType | enum | no | | Created Updated Deleted LocationChanged ParentChanged PropertyChanged |
ChangedAt | datetime | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemId | integer | no | Items.Id | |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
NewLocationId | integer | yes | | |
NewLocationSyncId | guid | yes | | |
NewParentId | integer | yes | | |
NewParentSyncId | guid | yes | | |
NewValues | string | yes | | |
OldLocationId | integer | yes | | |
OldLocationSyncId | guid | yes | | |
OldParentId | integer | yes | | |
OldParentSyncId | guid | yes | | |
OldValues | string | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UserId | string | yes | AspNetUsers.Id | |
UserSyncId | guid | yes | | SyncId of the AspNetUsers row that UserId points at. |
A property value on an item, bundle line or kit line (name, value and data type).
Files json/ItemProperties.json csv/ItemProperties.csv · primary key Id · scoped by (e.Item != null && e.Item.OrganizationId == org) || (e.BundleTemplateItem != null && e.BundleTemplateItem.BundleTemplate.OrganizationId == org) || (e.KitItem != null && e.KitItem.Kit.OrganizationId == org)
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BundleTemplateItemId | integer | yes | BundleTemplateItems.Id | Bundle template line the property belongs to; null otherwise. |
BundleTemplateItemSyncId | guid | yes | | SyncId of the BundleTemplateItems row that BundleTemplateItemId points at. |
DataType | enum | no | | Kind of value the property holds (text, number, date, boolean, dropdown or multi-select).Text Number Date Boolean Dropdown MultiSelect |
IsLocalProperty | boolean | no | | True for a property added to this item by hand rather than copied from its template. |
IsOverwritten | boolean | no | | True when the value was set by hand on this item, so template updates no longer change it. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemId | integer | yes | Items.Id | Inventory item the property belongs to; null when it belongs to a bundle or kit line instead. |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
KitItemId | integer | yes | KitItems.Id | Kit line the property belongs to; null otherwise. |
KitItemSyncId | guid | yes | | SyncId of the KitItems row that KitItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Options | string | yes | | Comma-separated list of allowed values for dropdown and multi-select properties. |
PropertyName | string | no | | Property name, for example 'Unit Price', 'Cost' or 'Color'. |
PropertyValue | string | no | | Property value, stored as text whatever the data type. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
An inventory item: one physical unit or stock line, where it is, and what it was made from.
Files json/Items.json csv/Items.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActiveTransferId | integer | yes | | Transfer the item is currently travelling on; null when not in transit. |
ActiveTransferSyncId | guid | yes | | SyncId of the transfer in ActiveTransferId. |
AutoGeneratedName | stringmax 500 | yes | | Name generated from the template, kept even after the item is renamed. |
BundleId | integer | yes | Bundles.Id | Bundle this item belongs to; null when it is not part of a bundle. |
BundleSyncId | guid | yes | | SyncId of the Bundles row that BundleId points at. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | string | yes | | Free-text description of the item. |
DirectCategoryIds | string | yes | | JSON array of category ids assigned to the item directly rather than inherited from its template, for example [1,2]. |
DirectCategorySyncIds | string | yes | | JSON array of the SyncIds of the categories in DirectCategoryIds. |
HasCalculatedProperties | boolean | no | | True when one or more of the item's properties are calculated from other values. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsInTransit | boolean | no | | True while the item is moving between locations on a transfer. |
IsNameOverwritten | boolean | no | | True when a user renamed the item, so template name changes no longer update it. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastMovedAt | datetime | yes | | When the item was last moved (UTC). |
LastMovedBy | stringmax 100 | yes | | Email (or user name) of the user who last moved the item. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | yes | Locations.Id | Location where the item currently is; null when it has no location. |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
MoveHistory | string | yes | | JSON array of the item's past moves (from/to location, who and when). |
Name | string | no | | Display name of the item (usually generated from its template). |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ParentItemId | integer | yes | Items.Id | Item this item is a component of (for example a panel that belongs to a door); null when standalone. |
ParentItemSyncId | guid | yes | | SyncId of the Items row that ParentItemId points at. |
ReceivedItemId | integer | yes | ReceivedItems.Id | The ReceivedItems row whose CreatedItems include this row; null when none. |
SourcePurchaseOrderId | integer | yes | PurchaseOrders.Id | Purchase order the item was received from; null when it did not come from a purchase order. |
SourcePurchaseOrderSyncId | guid | yes | | SyncId of the PurchaseOrders row that SourcePurchaseOrderId points at. |
SourceShipmentId | integer | yes | PurchaseOrderShipments.Id | Purchase order shipment the item was received from (used to share out shipping cost). |
SourceShipmentSyncId | guid | yes | | SyncId of the PurchaseOrderShipments row that SourceShipmentId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateId | integer | yes | ItemTemplates.Id | Item template (catalog product) this item was created from; null when it has none. |
TemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that TemplateId points at. |
UnitsConsumed | integer | no | | For items sold by sub-units, how many units have already been drawn from this unit (0 = unopened). |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A minimum-stock rule for an item template, optionally per location, used for low-stock alerts.
Files json/ItemStockThresholds.json csv/ItemStockThresholds.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
CreatedBy | stringmax 100 | no | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | yes | Locations.Id | |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
MinimumStock | integer | no | | |
OrganizationId | integer | no | Organizations.Id | |
ReorderQuantity | integer | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | no | | |
UpdatedBy | stringmax 100 | no | | |
Represents a barcode associated with an item template.
Files json/ItemTemplateBarcodes.json csv/ItemTemplateBarcodes.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BarcodeValue | stringmax 100 | no | | Encoded barcode value. |
CreatedAt | datetime | no | | When the row was created (UTC). |
DeletedAt | datetime | yes | | When the barcode was removed (UTC); null unless IsDeleted is true. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsPrimary | boolean | no | | Indicates if this is the primary/default barcode for the template |
ItemTemplateId | integer | no | ItemTemplates.Id | Item template (product) the barcode is attached to. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Type | stringmax 50 | no | | Flexible barcode type - user can define any type. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Junction table for many-to-many relationship between ItemTemplate and ItemCategory.
Files json/ItemTemplateCategoryAssignments.json csv/ItemTemplateCategoryAssignments.csv · primary key Id · scoped by e.ItemTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | no | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
One option step ("Add-on" group) shown when adding a configurable item to a job: e.g. a garage door's "Color", "Panel", "Windows", "Premium Hardware".
Files json/ItemTemplateModifierGroups.json csv/ItemTemplateModifierGroups.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DisplayOrder | integer | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MaxTotalQuantity | integer | yes | | |
Name | stringmax 100 | no | | |
OrganizationId | integer | no | Organizations.Id | |
SelectionMode | enum | no | | ChooseOne ChooseOneOptional ChooseManyWithQuantity |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
One choice within an ItemTemplateModifierGroup, e.g. Color -> "Weathered Grey" (+25% of base) or Windows -> "Clear Window Short, Pan" (+$28.25 per lite).
Files json/ItemTemplateModifierOptions.json csv/ItemTemplateModifierOptions.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DisplayOrder | integer | no | | |
IsDefault | boolean | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifierGroupId | integer | no | ItemTemplateModifierGroups.Id | |
ModifierGroupSyncId | guid | yes | | SyncId of the ItemTemplateModifierGroups row that ModifierGroupId points at. |
Name | stringmax 150 | no | | |
OrganizationId | integer | no | Organizations.Id | |
PriceType | enum | no | | Fixed PercentOfBase |
PriceValue | decimal | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
One quantity price break for an item template (Bulk Pricing).
Files json/ItemTemplatePriceTiers.json csv/ItemTemplatePriceTiers.csv · primary key Id · scoped by e.ItemTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | Item template (product) the price break belongs to. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MinQuantity | integer | no | | Smallest quantity at which UnitPrice applies. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitPrice | decimal | no | | Price per unit at or above MinQuantity, in the organization's currency. |
Represents a property for an item template.
Files json/ItemTemplateProperties.json csv/ItemTemplateProperties.csv · primary key Id · scoped by e.ItemTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DataType | enum | no | | Kind of value the property holds (text, number, date, boolean, dropdown or multi-select).Text Number Date Boolean Dropdown MultiSelect |
IsLocalProperty | boolean | no | | True for a property added to this template by hand rather than by its template builder. |
IsOverwritten | boolean | no | | True when the value was set by hand, so template builder updates no longer change it. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | Item template the property belongs to. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Options | string | yes | | Comma-separated list of allowed values for dropdown and multi-select properties. |
PropertyName | stringmax 100 | no | | Property name, for example 'Unit Price', 'Cost' or 'Color'. |
PropertyValue | string | no | | Property value, stored as text whatever the data type. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Represents a template for creating inventory items
Files json/ItemTemplates.json csv/ItemTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AutoGeneratedName | stringmax 500 | yes | | Name generated by the template builder, kept even after the template is renamed. |
CategoryId | integer | yes | ItemCategories.Id | Legacy single category of the template (categories are now assigned through the template-category links). |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | string | yes | | Free-text description of the product. |
DirectCategoryIds | string | yes | | JSON array of category ids assigned to the template directly (not by its template builder), for example [1,2,3]. |
DirectCategorySyncIds | string | yes | | JSON array of the SyncIds of the categories in DirectCategoryIds. |
ImportJobId | integer | yes | ImportJobs.Id | CSV import that created this template; null when it was not imported. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsDraft | boolean | no | | True for a template created automatically that has not been finalized yet. |
IsMiscItem | boolean | no | | True for a miscellaneous item: added to jobs with a per-job price and notes, and never tracked as stock. |
IsNameOverwritten | boolean | no | | True when a user renamed the template, so template builder name changes no longer update it. |
IsParentTemplate | boolean | no | | True for a parent (grouping) template whose variants are its child templates; a parent carries no stock and cannot be added to jobs. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Product name shown in the catalog, up to 100 characters. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ParentTemplateId | integer | yes | ItemTemplates.Id | Parent template this template is grouped under as a variant; null when not grouped. |
ParentTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ParentTemplateId points at. |
PreferredVendorSyncId | guid | yes | | SyncId of the vendor this item is normally reordered from (no int FK); null when none is set. |
SellByUnits | boolean | no | | True when the product is sold in smaller units (for example a gallon sold by the ounce) instead of whole units. |
SubUnitParentTemplateSyncId | guid | yes | | On a hidden sub-unit template, the SyncId of the whole-unit template it sells units of; null otherwise. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderId | integer | yes | TemplateBuilders.Id | Template builder that generated this template; null when created by hand. |
TemplateBuilderSyncId | guid | yes | | SyncId of the TemplateBuilders row that TemplateBuilderId points at. |
UnitName | stringmax 50 | yes | | Name of the sub-unit when SellByUnits is true (for example 'oz'). |
UnitsPerParent | integer | yes | | Number of sub-units in one whole unit when SellByUnits is true (for example 128 ounces per gallon). |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
VendorPartNumber | stringmax 100 | yes | | The preferred vendor's own part / catalogue number for this item, max 100 characters. |
A link between two similar item templates (type of similarity, score and notes).
Files json/ItemTemplateSimilarities.json csv/ItemTemplateSimilarities.csv · primary key Id · scoped by e.ItemTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | stringmax 450 | no | | |
CreatedDate | datetime | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
SimilarItemTemplateId | integer | no | ItemTemplates.Id | |
SimilarItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that SimilarItemTemplateId points at. |
SimilarityScore | decimal | no | | |
SimilarityType | stringmax 50 | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedBy | stringmax 450 | yes | | |
UpdatedDate | datetime | yes | | |
A user assigned to work a scheduled job.
Files json/JobAssignments.json csv/JobAssignments.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CreatedBy | stringmax 256 | yes | | Email (or user name) of the user who made the assignment. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | no | Jobs.Id | Job the user is assigned to. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 200 | yes | | Note attached to the assignment, up to 200 characters. |
OrganizationId | integer | no | | Organization (tenant) this row belongs to. |
ScheduleGroupId | integer | yes | ScheduleGroups.Id | Schedule group (division or crew) the user was assigned under; null when none. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UserId | string | no | AspNetUsers.Id | User assigned to work the job. |
Custom charge within an estimate option
Files json/JobEstimateOptionCharges.json csv/JobEstimateOptionCharges.csv · primary key Id · scoped by e.EstimateOption.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Cost | decimal | no | | |
Description | stringmax 500 | yes | | |
DisplayOrder | integer | no | | |
EstimateOptionId | integer | no | JobEstimateOptions.Id | |
EstimateOptionSyncId | guid | yes | | SyncId of the JobEstimateOptions row that EstimateOptionId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 200 | no | | Charge Name |
Price | decimal | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Labor item within an estimate option
Files json/JobEstimateOptionLabors.json csv/JobEstimateOptionLabors.csv · primary key Id · scoped by e.EstimateOption.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CustomerRate | decimal | no | | |
Description | stringmax 200 | no | | |
DisplayOrder | integer | no | | |
EmployeeCostRate | decimal | no | | |
EstimateOptionId | integer | no | JobEstimateOptions.Id | |
EstimateOptionSyncId | guid | yes | | SyncId of the JobEstimateOptions row that EstimateOptionId points at. |
EstimatedHours | decimal | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LaborRateId | integer | yes | LaborRates.Id | Labor Rate |
LaborRateSyncId | guid | yes | | SyncId of the LaborRates row that LaborRateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
OverheadFactor | decimal | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Material item within an estimate option
Files json/JobEstimateOptionMaterials.json csv/JobEstimateOptionMaterials.csv · primary key Id · scoped by e.EstimateOption.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Description | stringmax 200 | no | | |
DiscountPercent | decimal | no | | Discount % |
DisplayOrder | integer | no | | |
EstimateOptionId | integer | no | JobEstimateOptions.Id | |
EstimateOptionSyncId | guid | yes | | SyncId of the JobEstimateOptions row that EstimateOptionId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | yes | ItemTemplates.Id | Item Template |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
Quantity | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitCost | decimal | no | | |
UnitPrice | decimal | no | | |
Represents an option in a job estimate (e.g., "Basic Package", "Premium Package").
Files json/JobEstimateOptions.json csv/JobEstimateOptions.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedDate | datetime | no | | When the row was created (UTC). |
Description | stringmax 500 | yes | | Description of the option shown to the customer. |
DisplayOrder | integer | no | | Display order of the option (lowest first). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsRecommended | boolean | no | | True for the option the organization recommends. |
IsSelected | boolean | no | | True for the option the customer chose. |
JobId | integer | no | Jobs.Id | Job the estimate option belongs to. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Option Name |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A completed item response in a job's pre-inspection checklist
Files json/JobEstimatePreInspectionItems.json csv/JobEstimatePreInspectionItems.csv · primary key Id · scoped by e.JobInspection.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CompletedById | string | yes | AspNetUsers.Id | Completed By |
CompletedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CompletedById points at. |
CompletedDate | datetime | yes | | |
DisplayOrder | integer | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemText | stringmax 500 | no | | |
JobInspectionId | integer | no | JobEstimatePreInspections.Id | |
JobInspectionSyncId | guid | yes | | SyncId of the JobEstimatePreInspections row that JobInspectionId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | |
SectionName | stringmax 200 | yes | | |
SectionNotes | string | yes | | Section-level notes (stored on first item of section for simplicity) |
StatusValue | stringmax 100 | yes | | The selected status value - "Pass", "Fail", "true", "false", etc. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateItemId | integer | yes | EstimatePreInspectionTemplateItems.Id | Reference to the template item (null if ad-hoc item added during inspection) |
TemplateItemSyncId | guid | yes | | SyncId of the EstimatePreInspectionTemplateItems row that TemplateItemId points at. |
TemplateSectionId | integer | yes | EstimatePreInspectionTemplateSections.Id | Reference to the section (for ordering and grouping) |
TemplateSectionSyncId | guid | yes | | SyncId of the EstimatePreInspectionTemplateSections row that TemplateSectionId points at. |
A completed pre-inspection checklist for a specific job
Files json/JobEstimatePreInspections.json csv/JobEstimatePreInspections.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CompletedDate | datetime | yes | | |
CreatedBy | string | yes | | |
CreatedDate | datetime | no | | |
CustomTitle | stringmax 200 | yes | | User can override the title for this specific job's checklist |
IncludeInPdf | boolean | no | | |
InspectedById | string | yes | AspNetUsers.Id | Inspected By |
InspectedBySyncId | guid | yes | | SyncId of the AspNetUsers row that InspectedById points at. |
InspectedDate | datetime | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | no | Jobs.Id | |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LockedDate | datetime | yes | | When the job started - checklist becomes read-only after this |
ModifiedBy | string | yes | | |
ModifiedDate | datetime | yes | | |
Status | enum | no | | NotStarted InProgress Completed |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateId | integer | no | EstimatePreInspectionTemplates.Id | |
TemplateSyncId | guid | yes | | SyncId of the EstimatePreInspectionTemplates row that TemplateId points at. |
Snapshot of a pre-inspection checklist state for audit purposes
Files json/JobEstimatePreInspectionSnapshots.json csv/JobEstimatePreInspectionSnapshots.csv · primary key Id · scoped by e.JobInspection.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | string | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobInspectionId | integer | no | JobEstimatePreInspections.Id | |
JobInspectionSyncId | guid | yes | | SyncId of the JobEstimatePreInspections row that JobInspectionId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
SnapshotData | string | no | | JSON serialization of the full checklist state at time of snapshot |
SnapshotDate | datetime | no | | |
SnapshotType | enum | no | | SentToCustomer PreEdit JobStarted ManualSave |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A configured add-on choice on a job line — SNAPSHOT semantics, like JobItem.UnitPrice.
Files json/JobItemModifierSelections.json csv/JobItemModifierSelections.csv · primary key Id · scoped by e.JobItem.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
GroupName | stringmax 100 | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobItemId | integer | no | JobItems.Id | |
JobItemSyncId | guid | yes | | SyncId of the JobItems row that JobItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifierOptionId | integer | yes | ItemTemplateModifierOptions.Id | |
ModifierOptionSyncId | guid | yes | | SyncId of the ItemTemplateModifierOptions row that ModifierOptionId points at. |
OptionName | stringmax 150 | no | | |
Quantity | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitUpcharge | decimal | no | | |
A material line on a job: the item or template, quantity, price, discount and cost.
Files json/JobItems.json csv/JobItems.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualItemId | integer | yes | Items.Id | Inventory item used to fulfil the line, once known. |
ActualItemSyncId | guid | yes | | SyncId of the Items row that ActualItemId points at. |
DeliveredQuantity | integer | no | | Quantity already delivered to or used at the job. |
DiscountAmount | decimal | no | | Flat discount taken off the line total after the percentage discount, in the organization's currency. |
DiscountPercent | decimal | no | | Line discount as a percentage (0-100), applied before the flat discount. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsPriceOverridden | boolean | no | | True when the unit price was set by hand, so price-tier repricing leaves it alone. |
ItemTemplateId | integer | no | ItemTemplates.Id | Product (item template) on the line. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
JobId | integer | no | Jobs.Id | Job the material line is on. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | Notes on the line, up to 500 characters. |
PreferredItemIds | string | yes | | JSON array of the specific inventory item ids to use for this line (for unique items); null for standard stock. |
PreferredItemSyncIds | string | yes | | JSON array of the SyncIds of the items in PreferredItemIds. |
PreferredSourceLocationIds | string | yes | | JSON array of location ids to take the stock from first, for example [3,7]; null for no preference. |
PreferredSourceLocationSyncIds | string | yes | | JSON array of the SyncIds of the locations in PreferredSourceLocationIds. |
Quantity | integer | no | | Quantity of the product on the job (whole units, or sub-units for a sub-unit product). |
ReservedDate | datetime | yes | | When stock was reserved for the line (UTC); null when not reserved. |
Status | enum | no | | Fulfilment state of the line: planned, reserved, used (delivered), returned or cancelled.Planned Reserved Used Returned Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitCost | decimal | no | | Cost of one unit to the organization, in the organization's currency. |
UnitPrice | decimal | no | | Customer price for one unit before line discounts, in the organization's currency. |
UsedDate | datetime | yes | | When the line was delivered or used (UTC); null until then. |
A job (work order): customer, address, status, schedule, estimate and totals.
Files json/Jobs.json csv/Jobs.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualLaborCost | decimal | no | | Cost of the labor actually worked on the job, in the organization's currency. |
ActualMaterialCost | decimal | no | | Cost of the materials actually delivered to the job, in the organization's currency. |
CompletedDate | datetime | yes | | When the job was completed (UTC); null until completed. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
CustomChargesTotal | decimal | no | | Customer price of the custom charges after line discounts, before the job discount and tax. |
CustomerAddressId | integer | yes | CustomerAddresses.Id | Customer address (service site) where the work is done; null when none selected. |
CustomerAddressSyncId | guid | yes | | SyncId of the CustomerAddresses row that CustomerAddressId points at. |
CustomerId | integer | no | Customers.Id | Customer the job is for. |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
Description | stringmax 500 | yes | | Short description of the work, up to 500 characters. |
DiscountAmount | decimal | yes | | Job-level discount as a fixed amount in the organization's currency; null when a percentage or no discount applies. |
DiscountNote | stringmax 500 | yes | | Note explaining the job-level discount, shown on the invoice. |
DiscountPercent | decimal | yes | | Job-level discount as a percentage (0-100) applied to every line; null when a fixed amount or no discount applies. |
DownPaymentAmount | decimal | yes | | Money collected before any invoice existed, in the organization's currency; null when none. |
DownPaymentAppliedUtc | datetime | yes | | Set when the down payment transferred to an invoice (exactly once). |
DownPaymentDate | datetime | yes | | Date the down payment was taken, as entered. |
DownPaymentMethod | stringmax 50 | yes | | How the down payment was paid (for example Cash, Card or Check). |
DownPaymentNote | stringmax 500 | yes | | Note about the down payment. |
EmailedAt | datetime | yes | | When the payment-link email was last sent to the customer (UTC); null when never sent. |
EmailedTo | stringmax 200 | yes | | Email address the payment-link email was last sent to. |
EstimatedLaborCost | decimal | no | | Estimated cost of the job's labor to the organization, in the organization's currency. |
EstimatedMaterialCost | decimal | no | | Estimated cost of the job's materials to the organization (quantity x unit cost), in the organization's currency. |
HasMultipleOptions | boolean | no | | True when the estimate offers the customer several options to choose from. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobNumber | stringmax 50 | no | | Job number shown to staff and customers, for example J-2026-0042. |
JobSiteLocationId | integer | yes | Locations.Id | Inventory location that represents this job's site (where materials are delivered). |
JobSiteLocationSyncId | guid | yes | | SyncId of the Locations row that JobSiteLocationId points at. |
JobStatusDefinitionId | integer | yes | JobStatusDefinitions.Id | The organization's custom status definition the job is in, when custom statuses are used. |
JobStatusDefinitionSyncId | guid | yes | | SyncId of the JobStatusDefinitions row that JobStatusDefinitionId points at. |
JobType | stringmax 100 | no | | Free-text job category, for example 'Installation' or 'Repair'. |
LaborPrice | decimal | no | | Customer price of the labor lines after line discounts, before the job discount and tax. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MaterialPrice | decimal | no | | Customer price of the material lines after line discounts, before the job discount and tax. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Notes | string | yes | | Internal notes typed on the job (separate from the job timeline). |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PaymentLinkCreatedAt | datetime | yes | | When the online payment link was created (UTC); null when none. |
PaymentLinkId | stringmax 200 | yes | | Id of the online payment link created for this job at the payment processor; null when none. |
PaymentLinkUrl | stringmax 500 | yes | | URL of the online payment link the customer opens to pay; null when none. |
PaymentStatus | stringmax 50 | yes | | Payment state, separate from the workflow status: Unpaid, Partial, Paid, Overpaid or Refunded. |
ScheduledDate | datetime | yes | | Scheduled start in the organization's local time (no time zone); null when unscheduled. |
ScheduledDurationMinutes | integer | yes | | Planned length of the scheduled visit in minutes. |
SelectedOptionId | integer | yes | JobEstimateOptions.Id | Estimate option the customer chose, for a multi-option estimate. |
SelectedOptionSyncId | guid | yes | | SyncId of the JobEstimateOptions row that SelectedOptionId points at. |
StartDate | datetime | yes | | When work actually started (UTC); null until the job is in progress. |
Status | enum | no | | Workflow status of the job (draft, estimated, scheduled, in progress, completed, invoiced, paid, cancelled, and so on).Draft Estimated Scheduled InProgress Completed Invoiced Paid Cancelled Outstanding InspectionInProgress AwaitingOptionSelection |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaxCustomCharges | boolean | no | | True when tax applies to the job's custom charges (copied from the organization settings when the job is created). |
TaxLabor | boolean | no | | True when tax applies to the job's labor (copied from the organization settings when the job is created). |
TaxMaterials | boolean | no | | True when tax applies to the job's materials (copied from the organization settings when the job is created). |
TaxRate | decimal | no | | Tax rate as a percentage (for example 8.25), copied from the organization settings when the job is created. |
A job status the organization defines (name, color, order and allowed transitions).
Files json/JobStatusDefinitions.json csv/JobStatusDefinitions.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AllowedTransitionSyncIds | string | yes | | JSON array of the SyncIds of the statuses a job may move to from this one. |
AllowedTransitionsJson | string | yes | | Can Transition To |
AllowsInvoicing | boolean | no | | True when a job in this status can be invoiced. |
ColorHex | stringmax 7 | yes | | Color |
CountsAsActive | boolean | no | | True when jobs in this status count as active work. |
CountsAsCompleted | boolean | no | | True when jobs in this status count as completed. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
Description | stringmax 200 | yes | | Description of the status. |
DisplayOrder | integer | no | | Display order of the status (lowest first). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsSystemStatus | boolean | no | | True for a built-in status that maps to one of the standard job statuses. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Name | stringmax 50 | no | | Status Name |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
RequiresCompletionFields | boolean | no | | True when completion details must be filled in before a job enters this status. |
RequiresScheduleDate | boolean | no | | True when a job needs a scheduled date to enter this status. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
SystemStatusType | enum | yes | | Standard job status this definition stands for; null for a purely custom status.Draft Estimated Scheduled InProgress Completed Invoiced Paid Cancelled Outstanding InspectionInProgress AwaitingOptionSelection |
An entry on a job's timeline: a note, status change, photo, signature or other update.
Files json/JobUpdates.json csv/JobUpdates.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AttachmentName | stringmax 200 | yes | | Original file name of the attachment. |
AttachmentUrl | stringmax 500 | yes | | Path or link of the attached file (photo, signature or document); null when there is none. |
CreatedBy | stringmax 100 | no | | Email (or user name) of the user who wrote the entry. |
CreatedByName | stringmax 100 | yes | | Display name of the user who wrote the entry. |
CreatedDate | datetime | no | | When the entry was written (UTC). |
Description | stringmax 2000 | no | | Text of the entry, up to 2000 characters. |
IsInternal | boolean | no | | True for a staff-only entry that is not shown to the customer. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | no | Jobs.Id | Job the timeline entry belongs to. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
NewStatus | enum | yes | | For a status change, the job's new status; otherwise null.Draft Estimated Scheduled InProgress Completed Invoiced Paid Cancelled Outstanding InspectionInProgress AwaitingOptionSelection |
OldStatus | enum | yes | | For a status change, the job's previous status; otherwise null.Draft Estimated Scheduled InProgress Completed Invoiced Paid Cancelled Outstanding InspectionInProgress AwaitingOptionSelection |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdateType | enum | no | | Kind of entry (general note, progress update, issue, status change, photo, signature, text message, and so on).GeneralNote ProgressUpdate Issue CustomerRequest ChangeOrder Delay MaterialNote CompletionNote StatusChange ScheduleChange Payment Return Photo Signature TextMessage |
One line of a kit (a planned set of items for a transfer); lines can nest.
Files json/KitItems.json csv/KitItems.csv · primary key Id · scoped by e.Kit.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | yes | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
Description | string | yes | | |
HasCalculatedProperties | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | yes | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
KitId | integer | no | Kits.Id | |
KitSyncId | guid | yes | | SyncId of the Kits row that KitId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | |
ParentKitItemId | integer | yes | KitItems.Id | |
ParentKitItemSyncId | guid | yes | | SyncId of the KitItems row that ParentKitItemId points at. |
Quantity | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A kit: a named set of items planned to move together in transfers.
Files json/Kits.json csv/Kits.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
Description | string | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | Kit Name |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
A labor line on a job: task, labor rate, hours, customer rate, discount and employee cost.
Files json/LaborItems.json csv/LaborItems.csv · primary key Id · scoped by e.Job.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualHours | decimal | no | | Hours actually worked (decimal); 0 until logged. |
CustomerPriceOverride | decimal | yes | | Fixed customer price for the whole line that replaces hours x rate; null to price by the hour. |
CustomerRate | decimal | no | | Hourly rate billed to the customer, in the organization's currency. |
Description | stringmax 200 | no | | What the work is, up to 200 characters. |
DiscountAmount | decimal | no | | Flat discount taken off the line total after the percentage discount, in the organization's currency. |
DiscountPercent | decimal | no | | Line discount as a percentage (0-100), applied before the flat discount. |
EmployeeCost | decimal | no | | Hourly cost of the employee to the organization, in the organization's currency. |
EstimatedHours | decimal | no | | Hours quoted for the work (decimal, for example 1.5). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | no | Jobs.Id | Job the labor line is on. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LaborRateId | integer | yes | LaborRates.Id | Labor rate the line was priced from; null when priced by hand. |
LaborRateSyncId | guid | yes | | SyncId of the LaborRates row that LaborRateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Notes on the labor line. |
OverheadFactor | decimal | no | | Multiplier applied to the employee cost to cover overhead (1 = none). |
Status | enum | no | | State of the labor line: planned, scheduled, in progress, completed or cancelled.Planned Scheduled InProgress Completed Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaskTemplateId | integer | yes | TaskTemplates.Id | Task template the line was created from; null when typed by hand. |
TaskTemplateSyncId | guid | yes | | SyncId of the TaskTemplates row that TaskTemplateId points at. |
TechnicianId | string | yes | AspNetUsers.Id | User (technician) the work is booked to; null when unassigned. |
WorkDate | datetime | yes | | Date the work is planned for or was done, as entered. |
A labor rate: the hourly rate charged for a kind of work, and its employee cost and overhead.
Files json/LaborRates.json csv/LaborRates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
Description | stringmax 500 | yes | | Description of the rate. |
EmployeeCost | decimal | yes | | Hourly cost of the employee to the organization, in the organization's currency; null when unknown. |
HourlyRate | decimal | no | | Hourly rate charged to the customer, in the organization's currency. |
IsActive | boolean | no | | False when the rate is retired and no longer offered. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Email (or user name) of the user who last changed the row. |
ModifiedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Name | stringmax 100 | no | | Rate Name |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
OverheadFactor | decimal | no | | Multiplier applied to the employee cost to cover overhead (1 = none). |
RateType | enum | no | | Kind of rate (standard, emergency, weekend, after hours, skill level, custom or flat).Standard Emergency Weekend AfterHours SkillLevel Custom Flat |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A place that holds inventory (warehouse, truck, bin, job site); locations can be nested.
Files json/Locations.json csv/Locations.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Address | string | yes | | Street address of the location, as entered. |
CreatedAt | datetime | no | | When the row was created (UTC). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsSystemLocation | boolean | no | | True for a built-in location created by the app (such as 'No Location'). |
JobId | integer | yes | | Job this location is the job site for; null for other locations. |
JobSyncId | guid | yes | | SyncId of the job in JobId. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationTypeId | integer | no | LocationTypes.Id | Kind of location (warehouse, vehicle, job site, and so on). |
LocationTypeSyncId | guid | yes | | SyncId of the LocationTypes row that LocationTypeId points at. |
Name | string | no | | Location name (for example 'Main Warehouse' or 'Truck 3'). |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ParentLocationId | integer | yes | Locations.Id | Location this one sits inside (for example the warehouse a shelf is in); null for a top-level location. |
ParentLocationSyncId | guid | yes | | SyncId of the Locations row that ParentLocationId points at. |
Status | enum | no | | Location status: active, inactive, maintenance or temporary.Active Inactive Maintenance Temporary |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
One item moved in a location transfer.
Files json/LocationTransferItems.json csv/LocationTransferItems.csv · primary key Id · scoped by e.Transfer.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DestinationLocationId | integer | yes | Locations.Id | Destination of this line when it differs from the transfer's; null otherwise. |
DestinationLocationSyncId | guid | yes | | SyncId of the Locations row that DestinationLocationId points at. |
DestinationWaypointId | integer | yes | TransferWaypoints.Id | Waypoint this line is delivered to; null for the final destination. |
DestinationWaypointSyncId | guid | yes | | SyncId of the TransferWaypoints row that DestinationWaypointId points at. |
FailedAt | datetime | yes | | When the line was marked failed (UTC). |
FailedById | string | yes | AspNetUsers.Id | User who marked the line failed. |
FailedBySyncId | guid | yes | | SyncId of the AspNetUsers row that FailedById points at. |
FailureReason | string | yes | | Why the line failed; null unless it failed. |
GroupedItemIds | string | yes | | Comma-separated ids of all inventory items grouped on this line, for example '123,124,125'. |
GroupedItemSyncIds | string | yes | | Comma-separated SyncIds of the items in GroupedItemIds. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemId | integer | yes | Items.Id | Inventory item moved; null for a line with no stock behind it (miscellaneous items, stock shortfalls, sub-units). |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
ItemTemplateId | integer | yes | ItemTemplates.Id | Product (item template) the line is for. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
JobItemId | integer | yes | JobItems.Id | Job material line this transfer line supplies; null otherwise. |
JobItemSyncId | guid | yes | | SyncId of the JobItems row that JobItemId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationTransferLogId | integer | no | LocationTransferLogs.Id | Transfer the line belongs to. |
Notes | string | yes | | Notes on the line. |
Quantity | integer | no | | Units on the line. |
QuantityDelivered | integer | yes | | Units delivered to the destination; null until delivery. |
QuantityPicked | integer | yes | | Units picked (scanned) so far; null before picking starts. |
QuantityReturned | integer | no | | Units returned from a line with no stock behind it (value adjustment only). |
SalesOrderItemId | integer | yes | SalesOrderItems.Id | Sales order line this transfer line fulfils; null otherwise. |
SalesOrderItemSyncId | guid | yes | | SyncId of the SalesOrderItems row that SalesOrderItemId points at. |
Scanned | boolean | no | | True when the item was scanned during the transfer. |
ScannedAt | datetime | yes | | When the item was scanned (UTC). |
ScannedById | string | yes | AspNetUsers.Id | User who scanned the item. |
ScannedBySyncId | guid | yes | | SyncId of the AspNetUsers row that ScannedById points at. |
Status | enum | no | | State of the line: pending, in transit, delivered, failed or returned.Pending InTransit Delivered Failed Returned |
SubUnitDrawsJson | string | yes | | For a sub-unit line, JSON list of the stock rows the units were drawn from, as [{"i":"<item SyncId>","u":10}]. |
SubUnitShortfallUnits | integer | no | | For a sub-unit line, units not backed by stock (outstanding, net of returns). |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferSyncId | guid | yes | | SyncId of the transfer in LocationTransferLogId. |
A transfer of items between locations: source, destination, status and dates.
Files json/LocationTransferLogs.json csv/LocationTransferLogs.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CompletedById | string | yes | AspNetUsers.Id | User who completed (received) the transfer; null until completed. |
CompletedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CompletedById points at. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CurrentWaypointId | integer | yes | TransferWaypoints.Id | Waypoint the transfer is currently at or heading to; null when the transfer has no waypoints. |
CurrentWaypointSyncId | guid | yes | | SyncId of the TransferWaypoints row that CurrentWaypointId points at. |
DestinationLocationId | integer | yes | Locations.Id | Location the stock goes to; null when the items are being removed from inventory. |
DestinationLocationSyncId | guid | yes | | SyncId of the Locations row that DestinationLocationId points at. |
HasWaypoints | boolean | no | | True when the transfer stops at intermediate locations (waypoints) on the way to its destination. |
InitiatedById | string | yes | AspNetUsers.Id | User who created the transfer; null when unknown on this device. |
InitiatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that InitiatedById points at. |
IsJobTransfer | boolean | no | | True for a transfer made for a job. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsSalesOrderTransfer | boolean | no | | True for a transfer that fulfils a sales order. |
JobId | integer | yes | Jobs.Id | Job this transfer supplies; null for other transfers. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Free-text notes on the transfer. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
RequiresApproval | boolean | no | | True when the transfer needed approval before it could go ahead. |
SalesOrderId | integer | yes | SalesOrders.Id | Sales order this transfer fulfils; null for other transfers. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SourceLocationId | integer | yes | Locations.Id | Location the stock leaves; null when the items had no location. |
SourceLocationSyncId | guid | yes | | SyncId of the Locations row that SourceLocationId points at. |
Status | enum | no | | Transfer status: draft, pending, in transit (including at or between waypoints), completed, cancelled or failed.Draft Pending InTransit AtWaypoint InTransitToWaypoint InTransitToDestination Completed Cancelled Failed |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferDate | datetime | no | | When the transfer was started (UTC). |
TransportVehicleId | integer | yes | Locations.Id | Vehicle (a location of a transport-vehicle type) carrying the transfer; null when none. |
TransportVehicleSyncId | guid | yes | | SyncId of the Locations row that TransportVehicleId points at. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A kind of location (e.g. warehouse, truck, shelf) the organization defines.
Files json/LocationTypes.json csv/LocationTypes.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ConsumesInventory | boolean | no | | True when stock delivered to locations of this type is used up (removed from on-hand inventory). |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | string | yes | | Free-text description of the location type. |
IsJobSite | boolean | no | | True when locations of this type are job sites. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsSystemType | boolean | no | | True for a built-in type that cannot be deleted. |
IsTransportVehicle | boolean | no | | True when locations of this type are vehicles that carry stock between locations. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Location type name, up to 100 characters. |
OrganizationId | integer | no | Organizations.Id | Organization that owns the type (built-in system types carry a placeholder organization). |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A record that a user dismissed a notification.
Files json/NotificationDismissals.json csv/NotificationDismissals.csv · primary key Id · scoped by e.Notification.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
DismissedDate | datetime | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
NotificationId | integer | no | Notifications.Id | |
NotificationSyncId | guid | yes | | SyncId of the Notifications row that NotificationId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UserId | string | yes | AspNetUsers.Id | |
UserSyncId | guid | yes | | SyncId of the AspNetUsers row that UserId points at. |
An in-app notification for the organization or one user.
Files json/Notifications.json csv/Notifications.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedDate | datetime | no | | |
DismissedByUserId | string | yes | AspNetUsers.Id | |
DismissedDate | datetime | yes | | |
ExpiresDate | datetime | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LinkUrl | stringmax 500 | yes | | |
Message | stringmax 500 | yes | | |
OrganizationId | integer | no | Organizations.Id | |
Priority | integer | no | | |
RelatedInvoiceId | integer | yes | | |
RelatedInvoiceSyncId | guid | yes | | |
RelatedJobId | integer | yes | | |
RelatedJobSyncId | guid | yes | | |
RelatedPurchaseOrderId | integer | yes | | |
RelatedPurchaseOrderSyncId | guid | yes | | |
RelatedTransferId | integer | yes | | |
RelatedTransferSyncId | guid | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Title | stringmax 200 | no | | |
Type | enum | no | | General TransferInProgress JobInProgress PaymentDue PaymentOverdue LowStock TransferApprovalNeeded JobScheduled SystemAlert ShipmentDeliveryToday |
UserId | string | yes | AspNetUsers.Id | |
UserSyncId | guid | yes | | SyncId of the AspNetUsers row that UserId points at. |
A request to demote or deactivate an Organization Admin.
Files json/OrganizationAdminRemovalRequests.json csv/OrganizationAdminRemovalRequests.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Action | enum | no | | Demote Deactivate |
CreatedUtc | datetime | no | | UTC timestamp. |
EffectiveUtc | datetime | no | | OrganizationAdminRemovalRequest.CreatedUtc + 14 days: after this the target can no longer contest and the change is applied. |
NewRole | stringmax 64 | yes | | For AdminRemovalAction.Demote: Manager or User. |
OrganizationId | integer | no | Organizations.Id | |
Reason | stringmax 500 | yes | | Optional note from the requester, shown to the target. |
RequestedByEmail | stringmax 256 | no | | |
RequestedByUserId | stringmax 450 | no | | The Organization Admin who asked (AspNetUsers.Id); equals the target for a self-removal. |
ResolutionNote | stringmax 500 | yes | | Why a request lapsed or was superseded, e.g. "The requester is no longer an active Organization Admin." |
ResolvedByEmail | stringmax 256 | yes | | Who closed it (target, requester, System Admin); null when the notice period ran out. |
ResolvedUtc | datetime | yes | | When the request left AdminRemovalStatus.Pending. |
Status | enum | no | | Pending Approved Contested Cancelled Applied |
TargetEmail | stringmax 256 | no | | |
TargetUserId | stringmax 450 | no | | The Organization Admin being removed (AspNetUsers.Id). |
A job type the organization defines (e.g. install, repair, maintenance).
Files json/OrganizationJobTypes.json csv/OrganizationJobTypes.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | string | yes | | |
CreatedDate | datetime | no | | |
Description | stringmax 500 | yes | | |
DisplayOrder | integer | no | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | |
ModifiedDate | datetime | yes | | |
Name | stringmax 100 | no | | Job Type Name |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Per-organization activation record for an optional module (see Flex.Modules.ModuleCatalog).
Files json/OrganizationModules.json csv/OrganizationModules.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActivatedBy | stringmax 256 | yes | | |
ActivatedUtc | datetime | yes | | UTC timestamp. |
BillingProvider | stringmax 50 | no | | Provider key: "sandbox", "square", "stripe", "manual". |
BillingReference | stringmax 200 | yes | | Provider-side subscription/order id, if any. |
CreatedDate | datetime | no | | |
DeactivatedBy | stringmax 256 | yes | | |
DeactivatedUtc | datetime | yes | | UTC timestamp. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedDate | datetime | yes | | |
ModuleKey | stringmax 50 | no | | Key from ModuleKeys / ModuleCatalog. |
MonthlyPrice | decimal | no | | Monthly price agreed at activation. |
NextBillingUtc | datetime | yes | | UTC timestamp. |
Notes | stringmax 500 | yes | | Free-form notes (e.g. "comped for pilot", "invoice #123"). |
OrganizationId | integer | no | Organizations.Id | |
Status | enum | no | | Active Inactive PendingPayment PastDue |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
The organization (company account) that owns all of this data.
Files json/Organizations.json csv/Organizations.csv · primary key Id · scoped by e.Id == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BillingCustomerId | string | yes | | The billing provider's customer id for the organization; null when not subscribed. |
BillingEmail | string | yes | | Email address billing messages are sent to. |
BillingProvider | string | yes | | "stripe" once a subscription exists; null while trial/comped/manual. |
BillingStatus | enum | no | | Subscription state: trial, active, past due, suspended or comped.Trial Active PastDue Suspended Comped |
BillingSubscriptionId | string | yes | | The billing provider's subscription id; null when not subscribed. |
IncludedSeats | integer | no | | Seats (active users) covered by the base plan; extra active users are billed per seat. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LogoContentType | string | yes | | Media type of the logo image, for example image/png. |
LogoPath | string | yes | | Stored path of the organization's logo image; null when none. |
Name | string | no | | Organization (company) name. |
PastDueSinceUtc | datetime | yes | | UTC timestamp. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TrialEndsUtc | datetime | yes | | UTC timestamp. |
The organization's settings: company details, invoicing, tax and feature options.
Files json/OrganizationSettings.json csv/OrganizationSettings.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AllowNegativeInventory | boolean | no | | True lets out-of-stock items be added to jobs, letting stock go negative instead of blocking the job. |
AllowPartialPayments | boolean | no | | Payment setting: whether customers may pay part of a balance. |
BlockedStates | stringmax 500 | yes | | Comma-separated US state codes left out of the state pickers, for example 'AK,HI'. |
CounterSalesMode | boolean | no | | True for the simplified counter-sales flow (stock is used when a line is added; no transfers); false for the full transfer workflow. |
CreatedBy | string | yes | | Email (or user name) of the user who created the row. |
CreatedDate | datetime | no | | When the row was created (UTC). |
DefaultDepositPercentage | decimal | yes | | Payment setting: default deposit as a percentage of the order total (0-100). |
DefaultPaymentInstructions | string | yes | | Payment instructions printed on new invoices by default. |
DefaultPaymentTerms | stringmax 500 | yes | | Payment terms text used on new invoices by default, for example 'Due on Receipt'. |
DefaultTaxRate | decimal | no | | Tax rate (percentage, for example 8.25) copied to new jobs and invoices. |
DeviceLeaseDays | integer | no | | Days a field device may stay unsynced before it locks to read-only; enforced by the mobile app (Phase 3). |
EmailReplyToAddress | stringmax 256 | yes | | Reply-To address on emails sent to customers (invoices, orders); null to use the default. |
Industry | stringmax 50 | yes | | Industry the organization chose (for example 'field-service' or 'retail'), which decides the recommended modules; null = general. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobsDisplayName | stringmax 50 | no | | Name the app uses for jobs in menus and titles (default 'Jobs'). |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | Older last-changed-by field; see UpdatedBy. |
ModifiedDate | datetime | yes | | Older last-changed timestamp (UTC); see UpdatedDate. |
OperationMode | enum | no | | How the business works: service provider (jobs), distributor (sales orders) or hybrid (both).ServiceProvider Distributor Hybrid |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PaymentProcessingEnabled | boolean | no | | True when online card payments are turned on. |
PaymentProcessor | enum | no | | Card payment processor in use: None, Square or Stripe.None Square Stripe |
PaymentReceiptEmailTemplate | string | yes | | Payment setting: text of the payment receipt email. |
RequireDepositOnOrders | boolean | no | | Payment setting: whether orders require a deposit. |
RequireTwoFactor | boolean | no | | When true, every user of the organization must sign in with an authenticator code in every Flex app (web, desktop, phone and office; API keys and MCP are unaffected), and the setting is changed only in the web app: a user without an authenticator is held on the web app's setup page until they enrol… |
SalesOrdersDisplayName | stringmax 50 | no | | Name the app uses for sales orders in menus and titles (default 'Sales Orders'). |
SendPaymentReceipts | boolean | no | | Payment setting: whether customers are emailed a receipt for payments. |
SetupCompletedUtc | datetime | yes | | When the first-run setup checklist was completed or dismissed (UTC); null while it is still shown. |
ShowJobsMenu | boolean | no | | True to show the Jobs menu. |
ShowSalesOrdersMenu | boolean | no | | True to show the Sales Orders menu. |
SquareApplicationId | stringmax 200 | yes | | Square application id used for card payments. |
SquareEnvironment | enum | no | | Square environment: sandbox (testing) or production.Sandbox Production |
SquareLocationId | stringmax 200 | yes | | Square location id payments are taken under. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaxCustomCharges | boolean | no | | Default for new jobs: tax applies to custom charges. |
TaxLabor | boolean | no | | Default for new jobs: tax applies to labor. |
TaxMaterials | boolean | no | | Default for new jobs: tax applies to materials. |
UpdatedBy | string | yes | | Email (or user name) of the user who last changed the row. |
UpdatedDate | datetime | yes | | When the settings were last changed (UTC). |
One outbound SMS to a customer, org-scoped and synced (table "OutboundTextMessages").
Files json/OutboundTextMessages.json csv/OutboundTextMessages.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Body | stringmax 1600 | no | | Message text. |
CustomerId | integer | yes | Customers.Id | |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
DeliveredUtc | datetime | yes | | Server-authoritative. |
Error | stringmax 500 | yes | | Provider/relay failure text when Status is Failed (server-authoritative). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
JobId | integer | yes | Jobs.Id | |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
Kind | enum | no | | OnMyWay |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedDate | datetime | yes | | |
OrganizationId | integer | no | Organizations.Id | |
ProviderMessageId | stringmax 100 | yes | | Provider-side message id once accepted (server-authoritative). |
RequestedById | stringmax 450 | yes | | AspNetUsers.Id of the requesting user (string PK, preserved across devices). |
RequestedBySyncId | guid | yes | | SyncId of the requesting user, carried for cross-device FK resolution. |
RequestedUtc | datetime | no | | UTC timestamp. |
SentUtc | datetime | yes | | Server-authoritative. |
Status | enum | no | | Queued Sent Delivered Failed |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
ToNumber | stringmax 20 | no | | Destination in E.164 form ("+17065551212"); see Flex.Messaging.PhoneNumbers. |
Represents a payment transaction processed through Square or other payment processors
Files json/Payments.json csv/Payments.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Amount | decimal | no | | Amount of the payment (or refund), in Currency. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Currency | stringmax 3 | no | | ISO 4217 currency code of the amount, for example USD. |
CustomerEmail | stringmax 200 | yes | | Email address the customer gave with the payment. |
CustomerId | integer | no | Customers.Id | Customer who paid. |
CustomerPhone | stringmax 20 | yes | | Phone number the customer gave with the payment. |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
ErrorMessage | stringmax 2000 | yes | | Error reported by the payment processor when the payment failed. |
FailedAt | datetime | yes | | When the payment failed (UTC); null unless it failed. |
InvoiceId | integer | yes | Invoices.Id | Invoice being paid; null when the payment is for a job or sales order instead. |
InvoiceSyncId | guid | yes | | SyncId of the Invoices row that InvoiceId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
IsRefund | boolean | no | | True when this row is a refund of an earlier payment. |
JobId | integer | yes | Jobs.Id | Job being paid; null when the payment is for an invoice or sales order instead. |
JobSyncId | guid | yes | | SyncId of the Jobs row that JobId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 1000 | yes | | Notes about the payment, up to 1000 characters. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ProcessedById | stringmax 450 | yes | AspNetUsers.Id | User who took the payment; null when unknown on this device. |
ProcessedBySyncId | guid | yes | | SyncId of the AspNetUsers row that ProcessedById points at. |
RefundedPaymentId | integer | yes | Payments.Id | For a refund, the payment that was refunded; null otherwise. |
RefundedPaymentSyncId | guid | yes | | SyncId of the Payments row that RefundedPaymentId points at. |
SalesOrderId | integer | yes | SalesOrders.Id | Sales order being paid; null when the payment is for an invoice or job instead. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SquareOrderId | stringmax 200 | yes | | The payment processor's order id for this payment, when it has one. |
SquarePaymentId | stringmax 200 | no | | The payment processor's id for this payment. |
SquareReceiptUrl | stringmax 500 | yes | | Link to the payment processor's receipt for this payment. |
Status | enum | no | | Processing state: pending, completed, failed, refunded, partially refunded or cancelled.Pending Completed Failed Refunded PartiallyRefunded Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Type | enum | no | | What the payment was for: full payment, deposit, balance payment, partial payment or refund.FullPayment Deposit BalancePayment PartialPayment Refund |
A saved mapping from a CSV column name to an item property, used by imports.
Files json/PresetProperties.json csv/PresetProperties.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
CreatedBy | stringmax 100 | no | | |
CsvColumnName | stringmax 200 | no | | |
DataType | stringmax 20 | no | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | |
PropertyName | stringmax 100 | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
UpdatedBy | stringmax 100 | yes | | |
An arithmetic formula applied to ONE tier of a price tier group (Bulk Pricing).
Files json/PriceTierGroupCalculations.json csv/PriceTierGroupCalculations.csv · primary key Id · scoped by e.PriceTierGroup.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Formula | stringmax 300 | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MinQuantity | integer | no | | |
PriceTierGroupId | integer | no | PriceTierGroups.Id | |
PriceTierGroupSyncId | guid | yes | | SyncId of the PriceTierGroups row that PriceTierGroupId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Membership of an item template in a price tier group.
Files json/PriceTierGroupMembers.json csv/PriceTierGroupMembers.csv · primary key Id · scoped by e.PriceTierGroup.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
PriceTierGroupId | integer | no | PriceTierGroups.Id | |
PriceTierGroupSyncId | guid | yes | | SyncId of the PriceTierGroups row that PriceTierGroupId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A "like items" group for quantity tier pricing (Bulk Pricing).
Files json/PriceTierGroups.json csv/PriceTierGroups.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 200 | no | | |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
A formula that calculates a property value from other properties, variables and reference tables.
Files json/PropertyCalculations.json csv/PropertyCalculations.csv · primary key Id · scoped by (e.Property != null && (e.Property.Item != null && e.Property.Item.OrganizationId == org) || (e.Property.BundleTemplateItem != null && e.Property.BundleTemplateItem.BundleTemplate.OrganizationId == org) || (e.Property.KitItem != null && e.Property.KitItem.Kit.OrganizationId == org)) || (e.TemplateProperty != null && e.TemplateProperty.ItemTemplate.OrganizationId == org)
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
Expression | string | no | | |
IsEnabled | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemCatalogPropertyId | integer | yes | ItemCatalogProperty.Id | The ItemCatalogProperty row whose Calculations include this row; null when none. |
ItemPropertyId | integer | yes | ItemProperties.Id | |
ItemPropertySyncId | guid | yes | | SyncId of the ItemProperties row that ItemPropertyId points at. |
ItemTemplatePropertyId | integer | yes | ItemTemplateProperties.Id | |
ItemTemplatePropertySyncId | guid | yes | | SyncId of the ItemTemplateProperties row that ItemTemplatePropertyId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | string | no | | |
Priority | integer | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
One line of a purchase order: item or bundle template, quantities ordered, shipped and received, and unit price.
Files json/PurchaseOrderItems.json csv/PurchaseOrderItems.csv · primary key Id · scoped by e.PurchaseOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BundleTemplateId | integer | yes | BundleTemplates.Id | Bundle template ordered; null for a product line. |
BundleTemplateSyncId | guid | yes | | SyncId of the BundleTemplates row that BundleTemplateId points at. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | stringmax 500 | no | | Line description as entered on the order, up to 500 characters. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | yes | ItemTemplates.Id | Product (item template) ordered; null for a bundle line. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LineTotal | decimal | yes | | Line total in the order's currency; null when not calculated. |
Notes | string | yes | | Notes on the line. |
PurchaseOrderId | integer | no | PurchaseOrders.Id | Purchase order the line is on. |
PurchaseOrderSyncId | guid | yes | | SyncId of the PurchaseOrders row that PurchaseOrderId points at. |
QuantityOrdered | integer | no | | Units ordered. |
QuantityReceived | integer | no | | Units received into stock so far. |
QuantityShipped | integer | no | | Units the vendor has shipped, as recorded on the order. |
ReceivedDate | datetime | yes | | When the line was received (UTC); null until received. |
ShipmentId | integer | yes | PurchaseOrderShipments.Id | Shipment the line travels on; null when not assigned to a shipment. |
ShipmentSyncId | guid | yes | | SyncId of the PurchaseOrderShipments row that ShipmentId points at. |
Status | enum | no | | Receiving state of the line: pending, shipped, delivered, received or cancelled.Pending Shipped Delivered Received Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitPrice | decimal | yes | | Price per unit in the order's currency (becomes each received item's cost); null when not priced. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
VendorPartNumber | stringmax 100 | yes | | The vendor's part number for the line. |
A purchase order to a vendor: number, status, dates, destination and totals.
Files json/PurchaseOrders.json csv/PurchaseOrders.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CreatedById | string | yes | AspNetUsers.Id | User who created the order; null when unknown on this device. |
CreatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CreatedById points at. |
Currency | stringmax 3 | no | | ISO 4217 currency code of the prices on the order, for example USD. |
DeletedAt | datetime | yes | | When the order was deleted (UTC); null unless IsDeleted is true. |
DeletedById | string | yes | AspNetUsers.Id | User who deleted the order. |
DeletedBySyncId | guid | yes | | SyncId of the AspNetUsers row that DeletedById points at. |
ExpectedDeliveryDate | datetime | yes | | Expected delivery date as entered: the organization's local calendar date; null when unknown. |
ExternalOrderNumber | stringmax 50 | yes | | The vendor's own order or confirmation number. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Free-text notes on the order. |
OrderDate | datetime | no | | Order date as entered: the organization's local calendar date (no time zone). |
OrderNumber | stringmax 50 | no | | The organization's purchase order number (entered or generated). |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ReceivedById | string | yes | AspNetUsers.Id | User who received the order; null until received. |
ReceivedBySyncId | guid | yes | | SyncId of the AspNetUsers row that ReceivedById points at. |
ReceivedDate | datetime | yes | | When the order was fully received (UTC); null until then. |
ReceivingLocationId | integer | no | Locations.Id | Location where the order's stock is received by default. |
ReceivingLocationSyncId | guid | yes | | SyncId of the Locations row that ReceivingLocationId points at. |
Status | enum | no | | Order status: draft, ordered, shipped, partially shipped, delivered, partially received, received or cancelled.Draft Ordered Shipped PartialShipped Delivered PartialReceived Received Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TotalCost | decimal | yes | | Order total in Currency; null when not calculated. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
UpdatedById | string | yes | AspNetUsers.Id | User who last changed the order. |
UpdatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that UpdatedById points at. |
VendorContactEmail | stringmax 100 | yes | | Vendor contact email for this order. |
VendorContactPhone | stringmax 20 | yes | | Vendor contact phone for this order. |
VendorId | integer | yes | Vendors.Id | Vendor the order is placed with; null for a one-off vendor typed on the order. |
VendorName | stringmax 200 | yes | | Name of a one-off vendor that is not in the vendor list. |
VendorSyncId | guid | yes | | SyncId of the Vendors row that VendorId points at. |
A shipment against a purchase order: shipping company, tracking, dates, status and cost.
Files json/PurchaseOrderShipments.json csv/PurchaseOrderShipments.csv · primary key Id · scoped by e.PurchaseOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualDeliveryDate | datetime | yes | | When the shipment was delivered. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CreatedById | string | yes | AspNetUsers.Id | User who recorded the shipment. |
CreatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CreatedById points at. |
DeletedAt | datetime | yes | | When the shipment was deleted (UTC); null unless IsDeleted is true. |
DeletedById | string | yes | AspNetUsers.Id | User who deleted the shipment. |
DeletedBySyncId | guid | yes | | SyncId of the AspNetUsers row that DeletedById points at. |
EstimatedDeliveryDate | datetime | yes | | Expected delivery date, as entered. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastStatusCheckDate | datetime | yes | | When the tracking status was last checked. |
LastStatusUpdate | stringmax 200 | yes | | Latest tracking status text recorded for the shipment. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Notes on the shipment. |
PurchaseOrderId | integer | no | PurchaseOrders.Id | Purchase order the shipment belongs to. |
PurchaseOrderSyncId | guid | yes | | SyncId of the PurchaseOrders row that PurchaseOrderId points at. |
ShipDate | datetime | yes | | When the shipment left the vendor. |
ShippingCompany | stringmax 100 | yes | | Carrier, for example UPS, FedEx or USPS. |
ShippingCost | decimal | yes | | Shipping charged for the shipment, in the order's currency; shared out over the received items. |
ShippingCostAllocationMethod | enum | no | | How the shipment's shipping cost is shared out over its items when they are received.ByItemCost ByItemCount ByWeight BySize |
Status | enum | no | | Shipment status: ordered, pending, shipped, in transit, out for delivery, delivered, cancelled or returned.Ordered Pending Shipped InTransit OutForDelivery Delivered Cancelled Returned |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TrackingNumber | stringmax 100 | yes | | Carrier tracking number. |
TrackingUrl | stringmax 500 | yes | | Full tracking link for the shipment. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
Weight | decimal | yes | | Shipment weight, as entered. |
A quantity of one purchase-order line received into a location during a receiving session.
Files json/ReceivedItems.json csv/ReceivedItems.csv · primary key Id · scoped by e.ReceivingSession.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBundleId | integer | yes | Bundles.Id | Bundle created by this receipt, for a bundle line; null otherwise. |
CreatedBundleSyncId | guid | yes | | SyncId of the Bundles row that CreatedBundleId points at. |
DestinationLocationId | integer | no | Locations.Id | Location the received stock was put in. |
DestinationLocationSyncId | guid | yes | | SyncId of the Locations row that DestinationLocationId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Notes on the receipt. |
PassedQualityCheck | boolean | yes | | Result of the quality check: true passed, false failed, null not checked. |
PurchaseOrderItemId | integer | no | PurchaseOrderItems.Id | Purchase order line that was received. |
PurchaseOrderItemSyncId | guid | yes | | SyncId of the PurchaseOrderItems row that PurchaseOrderItemId points at. |
QualityNotes | string | yes | | Notes from the quality check. |
QuantityReceived | integer | no | | Units received. |
ReceivedAt | datetime | no | | When the stock was received (UTC). |
ReceivingSessionId | integer | no | ReceivingSessions.Id | Receiving session this receipt belongs to. |
ReceivingSessionSyncId | guid | yes | | SyncId of the ReceivingSessions row that ReceivingSessionId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
One receiving pass against a purchase order: who received what, when.
Files json/ReceivingSessions.json csv/ReceivingSessions.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CompletedAt | datetime | yes | | When receiving finished (UTC); null while in progress. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Notes on the session. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PurchaseOrderId | integer | no | PurchaseOrders.Id | Purchase order being received. |
PurchaseOrderSyncId | guid | yes | | SyncId of the PurchaseOrders row that PurchaseOrderId points at. |
ReceivedById | string | yes | AspNetUsers.Id | User who did the receiving. |
ReceivedBySyncId | guid | yes | | SyncId of the AspNetUsers row that ReceivedById points at. |
StartedAt | datetime | no | | When receiving started (UTC). |
Status | enum | no | | Session state: in progress, completed, cancelled or partially completed.InProgress Completed Cancelled PartiallyCompleted |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A reference value (type, key, value and effective dates) that calculations look up.
Files json/ReferenceTables.json csv/ReferenceTables.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
EffectiveDate | datetime | no | | |
ExpiryDate | datetime | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
Key | string | no | | |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Type | string | no | | |
Value | decimal | no | | |
A dated reminder / to-do that shows on the scheduling calendar alongside jobs but is not a job (no customer, items or workflow).
Files json/ReminderTasks.json csv/ReminderTasks.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AssignedToId | string | yes | AspNetUsers.Id | Optional single assignee — the raw AspNetUsers id (string), stored as-is and universal across devices. |
ColorHex | stringmax 7 | yes | | Hex color (e.g. "#2e7d32") used for calendar rendering; null falls back to a default. |
CompletedAt | datetime | yes | | When the reminder was marked done (UTC); null while outstanding. |
CreatedAt | datetime | no | | When the row was created (UTC). |
DurationMinutes | integer | no | | Length of the reminder in minutes (used to compute the calendar end); default 60. |
IsAllDay | boolean | no | | True when the reminder occupies the whole day (start time ignored on the calendar). |
IsCompleted | boolean | no | | True once the reminder has been marked done. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 2000 | yes | | Optional free-text notes, up to 2000 characters. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ScheduledStart | datetime | no | | Scheduled start in the organization's local time (wall-clock, no time zone / Kind Unspecified), the same convention as Job.ScheduledDate. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Title | stringmax 200 | no | | Short label shown on the calendar (required). |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
One line of a sales order: item template, quantity ordered, picked and shipped, and price.
Files json/SalesOrderItems.json csv/SalesOrderItems.csv · primary key Id · scoped by e.SalesOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Description | stringmax 500 | no | | Line description (the product name when the line was added), up to 500 characters. |
DiscountAmount | decimal | no | | Flat discount on the line, in the organization's currency. |
DiscountPercent | decimal | no | | Line discount as a percentage (0-100). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemId | integer | yes | Items.Id | Specific inventory item on the line, when one was chosen. |
ItemSyncId | guid | yes | | SyncId of the Items row that ItemId points at. |
ItemTemplateId | integer | yes | ItemTemplates.Id | Product (item template) ordered; null for a free-text line. |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LineTotal | decimal | no | | Line total, in the organization's currency. |
Notes | string | yes | | Notes on the line. |
PreferredItemIds | string | yes | | JSON array of the specific inventory item ids to use for this line (for unique items); null for standard stock. |
PreferredItemSyncIds | string | yes | | JSON array of the SyncIds of the items in PreferredItemIds. |
PreferredSourceLocationIds | string | yes | | JSON array of location ids to take the stock from first, for example [3,7]; null for no preference. |
PreferredSourceLocationSyncIds | string | yes | | JSON array of the SyncIds of the locations in PreferredSourceLocationIds. |
QuantityBackordered | decimal | no | | Quantity on backorder. |
QuantityOrdered | decimal | no | | Quantity ordered. |
QuantityPicked | decimal | no | | Quantity picked (scanned) so far. |
QuantityShipped | decimal | no | | Quantity shipped so far. |
SalesOrderId | integer | no | SalesOrders.Id | Sales order the line is on. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UnitCost | decimal | no | | Cost per unit to the organization, in the organization's currency (0 when unknown). |
UnitPrice | decimal | no | | Price per unit, in the organization's currency. |
A sales order to a customer: number, dates, status, payment and fulfillment, and totals.
Files json/SalesOrders.json csv/SalesOrders.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualDeliveryDate | datetime | yes | | When the order was delivered; null until delivered. |
AmountPaid | decimal | no | | Amount paid so far, in the organization's currency. |
CreatedById | string | yes | AspNetUsers.Id | User who created the order; null when unknown on this device. |
CreatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CreatedById points at. |
CreatedDate | datetime | no | | When the row was created (UTC). |
CustomerId | integer | no | Customers.Id | Customer the order is for. |
CustomerPONumber | stringmax 100 | yes | | The customer's own purchase order reference. |
CustomerSyncId | guid | yes | | SyncId of the Customers row that CustomerId points at. |
DeliveryAddressId | integer | yes | CustomerAddresses.Id | Customer address the order is delivered to; null when none. |
DeliveryAddressSyncId | guid | yes | | SyncId of the CustomerAddresses row that DeliveryAddressId points at. |
EmailedAt | datetime | yes | | When the payment-link email was last sent to the customer (UTC); null when never sent. |
EmailedTo | stringmax 200 | yes | | Email address the payment-link email was last sent to. |
FulfillmentStatus | stringmax 50 | yes | | Tracks the aggregate status of all transfers associated with this Sales Order. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Free-text notes on the order. |
OrderDate | datetime | no | | Order date as entered: the organization's local calendar date (no time zone). |
OrderNumber | stringmax 50 | no | | Order number assigned by the app, for example SO26090007. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
PaymentLinkCreatedAt | datetime | yes | | When the online payment link was created (UTC); null when none. |
PaymentLinkId | stringmax 200 | yes | | Id of the online payment link created for this order at the payment processor; null when none. |
PaymentLinkUrl | stringmax 500 | yes | | URL of the online payment link the customer opens to pay; null when none. |
PaymentStatus | stringmax 50 | yes | | Payment status: Pending, Partial, Paid, Overdue, Refunded, Invoiced or Cancelled. |
PaymentTerms | stringmax 100 | yes | | Payment terms text, for example 'Net 30'. |
RequestedDeliveryDate | datetime | yes | | Delivery date the customer asked for, as a local calendar date; null when none. |
ShippingCost | decimal | no | | Shipping charged on the order, in the organization's currency. |
Status | stringmax 50 | no | | Order status: Pending, Picking, Packed, Shipped, Delivered, Complete or Cancelled. |
StoreCreditApplied | decimal | no | | Store credit applied to the order, in the organization's currency. |
SubTotal | decimal | no | | Sum of the line totals, in the organization's currency. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaxAmount | decimal | no | | Tax charged on the order, in the organization's currency. |
TaxRate | decimal | no | | Tax rate as a percentage, for example 8.25 (0 for a tax-exempt customer). |
TotalAmount | decimal | no | | Order total (subtotal + tax + shipping), in the organization's currency. |
UpdatedById | string | yes | AspNetUsers.Id | User who last changed the order. |
UpdatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that UpdatedById points at. |
UpdatedDate | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A shipment of a sales order: carrier, tracking, dates and cost.
Files json/SalesOrderShipments.json csv/SalesOrderShipments.csv · primary key Id · scoped by e.SalesOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualDeliveryDate | datetime | yes | | When the shipment was delivered. |
Carrier | stringmax 100 | yes | | Carrier, for example UPS or FedEx. |
CreatedById | string | yes | AspNetUsers.Id | User who recorded the shipment. |
CreatedBySyncId | guid | yes | | SyncId of the AspNetUsers row that CreatedById points at. |
CreatedDate | datetime | no | | When the row was created (UTC). |
EstimatedDeliveryDate | datetime | yes | | Expected delivery date, as entered. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | Notes on the shipment. |
SalesOrderId | integer | no | SalesOrders.Id | Sales order the shipment belongs to. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
ShipDate | datetime | yes | | When the shipment was sent. |
ShippingCost | decimal | yes | | Shipping cost, in the organization's currency. |
ShippingMethod | stringmax 50 | yes | | Shipping service or method, for example 'Ground'. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TrackingNumber | stringmax 100 | yes | | Carrier tracking number. |
TransferId | integer | yes | LocationTransferLogs.Id | Transfer that moved the shipped stock; null when none. |
TransferSyncId | guid | yes | | SyncId of the LocationTransferLogs row that TransferId points at. |
Weight | decimal | yes | | Shipment weight, as entered. |
A location a sales order is picked from, in priority order.
Files json/SalesOrderSourceLocations.json csv/SalesOrderSourceLocations.csv · primary key Id · scoped by e.SalesOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedDate | datetime | no | | |
IsFullyPicked | boolean | no | | Whether this location has been fully picked |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | no | Locations.Id | |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
Notes | string | yes | | Notes about this source location selection |
Priority | integer | no | | Priority order for picking (1 = highest priority) |
SalesOrderId | integer | no | SalesOrders.Id | |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
A link between a sales order and a location transfer that picks or ships it.
Files json/SalesOrderTransfers.json csv/SalesOrderTransfers.csv · primary key Id · scoped by e.SalesOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedDate | datetime | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | string | yes | | |
SalesOrderId | integer | no | SalesOrders.Id | |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
ShippedWithoutTracking | boolean | no | | Indicates the user chose to ship without tracking information. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferId | integer | no | LocationTransferLogs.Id | |
TransferSyncId | guid | yes | | SyncId of the LocationTransferLogs row that TransferId points at. |
TransferType | stringmax 50 | no | | |
An entry on a sales order's timeline (note, status change or other update).
Files json/SalesOrderUpdates.json csv/SalesOrderUpdates.csv · primary key Id · scoped by e.SalesOrder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedBy | stringmax 100 | no | | Email (or user name) of the user who wrote the entry. |
CreatedByName | stringmax 100 | yes | | Display name of the user who wrote the entry. |
CreatedDate | datetime | no | | When the entry was written (UTC). |
Description | stringmax 2000 | no | | Text of the entry. |
IsInternal | boolean | no | | Internal Note |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
NewStatus | stringmax 50 | yes | | For a status change, the order's new status; otherwise null. |
OldStatus | stringmax 50 | yes | | For a status change, the order's previous status; otherwise null. |
SalesOrderId | integer | no | SalesOrders.Id | Sales order the timeline entry belongs to. |
SalesOrderSyncId | guid | yes | | SyncId of the SalesOrders row that SalesOrderId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdateType | enum | no | | Kind of entry: general note, status change, payment, fulfilment, shipment, return or cancellation.GeneralNote StatusChange PaymentUpdate FulfillmentUpdate ShipmentUpdate Return Cancellation |
Junction: a user belongs to a ScheduleGroup.
Files json/ScheduleGroupMembers.json csv/ScheduleGroupMembers.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | When the row was created (UTC). |
DisplayOrder | integer | no | | Display order of the member within the group (lowest first). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsLead | boolean | no | | Crew lead / foreman flag — shown first on the board. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | | Organization (tenant) this row belongs to. |
ScheduleGroupId | integer | no | ScheduleGroups.Id | Schedule group the user belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UserId | string | no | AspNetUsers.Id | User who is a member of the group. |
An organizational grouping of users for scheduling (division, crew, team).
Files json/ScheduleGroups.json csv/ScheduleGroups.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ColorHex | stringmax 7 | yes | | Hex color (e.g. "#2e7d32") used for calendar/board rendering. |
CreatedAt | datetime | no | | When the row was created (UTC). |
Description | stringmax 500 | yes | | Optional description of the group, up to 500 characters. |
DisplayOrder | integer | no | | Sort position of the group on the calendar and dispatch board (lowest first). |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Group name (for example a division, crew or team). |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
ParentGroupId | integer | yes | ScheduleGroups.Id | Parent group this group sits under (for example the division a crew belongs to); null for a top-level group. |
ParentGroupSyncId | guid | yes | | SyncId of the ScheduleGroups row that ParentGroupId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A low-stock alert raised when an item template falls below its threshold.
Files json/StockAlerts.json csv/StockAlerts.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AcknowledgedAt | datetime | yes | | |
AcknowledgedBy | stringmax 100 | yes | | |
CreatedAt | datetime | no | | |
CurrentStock | integer | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | yes | Locations.Id | |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
Notes | stringmax 500 | yes | | |
OrganizationId | integer | no | Organizations.Id | |
Status | enum | no | | Active Acknowledged Resolved Dismissed |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
ThresholdLevel | integer | no | | |
An item template a task template uses, with its quantity and whether it is optional.
Files json/TaskTemplateItems.json csv/TaskTemplateItems.csv · primary key Id · scoped by e.TaskTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
IsOptional | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemTemplateId | integer | no | ItemTemplates.Id | |
ItemTemplateSyncId | guid | yes | | SyncId of the ItemTemplates row that ItemTemplateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
Quantity | decimal | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaskTemplateId | integer | no | TaskTemplates.Id | |
TaskTemplateSyncId | guid | yes | | SyncId of the TaskTemplates row that TaskTemplateId points at. |
A labor rate a task template uses, with the number of workers and whether it is the lead.
Files json/TaskTemplateLaborRates.json csv/TaskTemplateLaborRates.csv · primary key Id · scoped by e.TaskTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
IsLead | boolean | no | | Is Lead Worker |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LaborRateId | integer | no | LaborRates.Id | |
LaborRateSyncId | guid | yes | | SyncId of the LaborRates row that LaborRateId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Notes | stringmax 500 | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TaskTemplateId | integer | no | TaskTemplates.Id | |
TaskTemplateSyncId | guid | yes | | SyncId of the TaskTemplates row that TaskTemplateId points at. |
WorkerCount | integer | no | | Number of Workers |
A reusable task (set of labor and materials) that can be added to jobs.
Files json/TaskTemplates.json csv/TaskTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
Category | stringmax 100 | yes | | |
CreatedBy | string | yes | | |
CreatedDate | datetime | no | | |
DefaultLaborRateId | integer | yes | LaborRates.Id | Default Labor Rate |
DefaultLaborRateSyncId | guid | yes | | SyncId of the LaborRates row that DefaultLaborRateId points at. |
Description | stringmax 1000 | yes | | |
EstimatedHoursMax | decimal | no | | Estimated Hours (Max) |
EstimatedHoursMin | decimal | no | | Estimated Hours (Min) |
Instructions | string | yes | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
ModifiedBy | string | yes | | |
ModifiedDate | datetime | yes | | |
Name | stringmax 200 | no | | Task Name |
OrganizationId | integer | no | Organizations.Id | |
SafetyNotes | string | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Junction table: Links a Template Builder to categories applied to ALL generated items.
Files json/TemplateBuilderGlobalCategories.json csv/TemplateBuilderGlobalCategories.csv · primary key Id · scoped by e.TemplateBuilder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | no | ItemCategories.Id | |
CategorySyncId | guid | no | | SyncId of the ItemCategories row that CategoryId points at. |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderId | integer | no | TemplateBuilders.Id | |
TemplateBuilderSyncId | guid | no | | SyncId of the TemplateBuilders row that TemplateBuilderId points at. |
A property definition within a Template Builder.
Files json/TemplateBuilderProperties.json csv/TemplateBuilderProperties.csv · primary key Id · scoped by e.TemplateBuilder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
DataType | enum | no | | Text Number Date Boolean Dropdown MultiSelect |
DefaultValue | stringmax 255 | yes | | |
DeletedAt | datetime | yes | | |
DisplayOrder | integer | no | | |
ExcludeFromCombinations | boolean | no | | |
ExcludeFromName | boolean | no | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
PropertyName | stringmax 255 | no | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderId | integer | no | TemplateBuilders.Id | |
TemplateBuilderSyncId | guid | yes | | SyncId of the TemplateBuilders row that TemplateBuilderId points at. |
Junction table: Links a property option to categories.
Files json/TemplateBuilderPropertyOptionCategories.json csv/TemplateBuilderPropertyOptionCategories.csv · primary key Id · scoped by e.TemplateBuilderPropertyOption.TemplateBuilderProperty.TemplateBuilder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CategoryId | integer | no | ItemCategories.Id | |
CategorySyncId | guid | no | | SyncId of the ItemCategories row that CategoryId points at. |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderPropertyOptionId | integer | no | TemplateBuilderPropertyOptions.Id | |
TemplateBuilderPropertyOptionSyncId | guid | no | | SyncId of the TemplateBuilderPropertyOptions row that TemplateBuilderPropertyOptionId points at. |
An option value for a Template Builder property.
Files json/TemplateBuilderPropertyOptions.json csv/TemplateBuilderPropertyOptions.csv · primary key Id · scoped by e.TemplateBuilderProperty.TemplateBuilder.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
CreatedAt | datetime | no | | |
DisplayOrder | integer | no | | |
IsHidden | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateBuilderPropertyId | integer | no | TemplateBuilderProperties.Id | |
TemplateBuilderPropertySyncId | guid | yes | | SyncId of the TemplateBuilderProperties row that TemplateBuilderPropertyId points at. |
Value | stringmax 255 | no | | |
Template Builder - defines a schema with property options that generates ItemTemplate combinations.
Files json/TemplateBuilders.json csv/TemplateBuilders.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
AdminOnlyCost | boolean | no | | |
AdminOnlyPrice | boolean | no | | |
CategoryId | integer | yes | ItemCategories.Id | |
CategorySyncId | guid | yes | | SyncId of the ItemCategories row that CategoryId points at. |
CreatedAt | datetime | no | | |
DeletedAt | datetime | yes | | |
Description | stringmax 1000 | yes | | |
IsDeleted | boolean | no | | Soft delete: true means the row was deleted (kept for sync and history). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LastUsedCost | decimal | yes | | |
LastUsedPrice | decimal | yes | | |
Name | stringmax 255 | no | | |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
An approval request for a location transfer, and its decision.
Files json/TransferApprovals.json csv/TransferApprovals.csv · primary key Id · scoped by e.Transfer.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ApprovalDate | datetime | yes | | When the transfer was approved or rejected (UTC); null while pending. |
ApproverId | string | yes | AspNetUsers.Id | User who approved or rejected the transfer; null while pending. |
CreatedAt | datetime | no | | When the row was created (UTC). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationTransferLogId | integer | no | LocationTransferLogs.Id | Transfer that needs approval. |
RejectionReason | string | yes | | Why the transfer was rejected; null otherwise. |
RequestedDate | datetime | no | | When approval was requested (UTC). |
RequesterId | string | no | AspNetUsers.Id | User who asked for the transfer. |
Status | enum | no | | Approval state: pending, approved or rejected.Pending Approved Rejected |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferSyncId | guid | yes | | SyncId of the transfer in LocationTransferLogId. |
TransferValue | decimal | no | | Value of the stock on the transfer when approval was requested, in the organization's currency. |
UpdatedAt | datetime | yes | | When the row was last changed (UTC); null when never changed after creation. |
A reusable transfer plan: source, destination, waypoints and what is moved.
Files json/TransferTemplates.json csv/TransferTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BundleTemplateId | integer | yes | BundleTemplates.Id | |
BundleTemplateSyncId | guid | yes | | SyncId of the BundleTemplates row that BundleTemplateId points at. |
CreatedAt | datetime | no | | |
Description | string | yes | | |
DestinationLocationId | integer | yes | Locations.Id | |
DestinationLocationSyncId | guid | yes | | SyncId of the Locations row that DestinationLocationId points at. |
HasWaypoints | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
ItemFilters | string | yes | | |
KitId | integer | yes | Kits.Id | |
KitSyncId | guid | yes | | SyncId of the Kits row that KitId points at. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | |
OrganizationId | integer | no | Organizations.Id | |
SourceLocationId | integer | yes | Locations.Id | |
SourceLocationSyncId | guid | yes | | SyncId of the Locations row that SourceLocationId points at. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TemplateType | enum | no | | Bundle Kit |
UpdatedAt | datetime | yes | | |
Represents a predefined waypoint in a transfer template
Files json/TransferTemplateWaypoints.json csv/TransferTemplateWaypoints.csv · primary key Id · scoped by e.TransferTemplate.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
EstimatedTimeMinutes | integer | yes | | Estimated time to reach this waypoint (in minutes) from previous point |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | no | Locations.Id | |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
Notes | string | yes | | Additional notes about this waypoint |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferTemplateId | integer | no | TransferTemplates.Id | |
TransferTemplateSyncId | guid | yes | | SyncId of the TransferTemplates row that TransferTemplateId points at. |
WaypointOrder | integer | no | | The order of this waypoint in the transfer template (1-based) |
Represents an intermediate location in a transfer journey between source and destination
Files json/TransferWaypoints.json csv/TransferWaypoints.csv · primary key Id · scoped by e.Transfer.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ActualArrivalTime | datetime | yes | | Actual time items arrived at this waypoint |
DepartureTime | datetime | yes | | When items departed from this waypoint |
EstimatedArrivalTime | datetime | yes | | Expected time of arrival at this waypoint |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
LocationId | integer | no | Locations.Id | Location of the stop. |
LocationSyncId | guid | yes | | SyncId of the Locations row that LocationId points at. |
LocationTransferLogId | integer | no | LocationTransferLogs.Id | Transfer the waypoint belongs to. |
Notes | string | yes | | Additional notes about this waypoint |
Status | enum | no | | Current status of this waypoint in the journeyPending Arrived Departed Skipped Cancelled |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
TransferSyncId | guid | yes | | SyncId of the transfer in LocationTransferLogId. |
WaypointOrder | integer | no | | The order of this waypoint in the transfer journey (1-based) |
A vendor's offer for a bundle template: part number, price and order quantities.
Files json/VendorBundleTemplates.json csv/VendorBundleTemplates.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
BundleTemplateId | integer | no | BundleTemplates.Id | |
BundleTemplateSyncId | guid | yes | | SyncId of the BundleTemplates row that BundleTemplateId points at. |
CreatedAt | datetime | no | | |
IsActive | boolean | no | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
MinimumOrderQuantity | integer | yes | | |
OrderMultiple | integer | yes | | |
OrganizationId | integer | no | Organizations.Id | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | yes | | |
VendorDescription | stringmax 500 | yes | | |
VendorId | integer | no | Vendors.Id | |
VendorPartNumber | stringmax 100 | yes | | |
VendorPrice | decimal | yes | | |
VendorSyncId | guid | yes | | SyncId of the Vendors row that VendorId points at. |
VendorUrl | stringmax 500 | yes | | |
A vendor (supplier) the organization buys from.
Files json/Vendors.json csv/Vendors.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ContactEmail | stringmax 100 | yes | | Email address of the main contact. |
ContactName | stringmax 100 | yes | | Name of the main contact at the vendor. |
ContactPhone | stringmax 20 | yes | | Phone number of the main contact, as entered. |
CreatedAt | datetime | no | | When the row was created (UTC). |
CreatedBy | stringmax 100 | yes | | Email (or user name) of the user who created the row. |
DefaultShippingCompany | stringmax 100 | yes | | Carrier the vendor usually ships with (for example UPS). |
Description | stringmax 500 | yes | | Free-text notes about the vendor, up to 500 characters. |
IsActive | boolean | no | | False for a deactivated vendor (kept for history, not offered on new purchase orders). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
Name | stringmax 100 | no | | Vendor name, unique within the organization. |
OrganizationId | integer | no | Organizations.Id | Organization (tenant) this row belongs to. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
UpdatedAt | datetime | no | | When the vendor was last changed (UTC). |
UpdatedBy | stringmax 100 | yes | | Email (or user name) of the user who last changed the row. |
Website | stringmax 500 | yes | | Vendor's website address. |
Audit log for Square webhook events
Files json/WebhookLogs.json csv/WebhookLogs.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ErrorMessage | stringmax 2000 | yes | | |
EventId | stringmax 200 | no | | |
HttpMethod | stringmax 50 | yes | | |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | yes | Organizations.Id | |
PaymentId | integer | yes | Payments.Id | |
ProcessedAt | datetime | yes | | |
ProcessedSuccessfully | boolean | no | | |
RawPayload | string | no | | |
ReceivedAt | datetime | no | | |
RetryCount | integer | yes | | |
SquarePaymentId | stringmax 200 | yes | | |
StatusCode | integer | yes | | |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
WebhookType | stringmax 100 | no | | |
An outbound webhook subscription for an organization.
Files json/WebhookSubscriptions.json csv/WebhookSubscriptions.csv · primary key Id · scoped by e.OrganizationId == org
| Column | Type | Empty? | References | Description |
Id | integer | no | | Primary key, unique within this table. |
ConsecutiveFailureCount | integer | no | | Consecutive failed deliveries; reset to 0 on any success. |
CreatedAt | datetime | no | | |
CreatedByUserId | stringmax 450 | yes | | Identity user id of the creator; nullable for cross-device resolution. |
EventsCsv | stringmax 1024 | no | | Comma-joined event names this subscription wants (see WebhookEvents). |
IsActive | boolean | no | | Inactive subscriptions are skipped. |
IsDeleted | boolean | no | | Soft delete flag (mirrors the sync convention of other pull-only tables). |
IsPendingSync | boolean | no | | True if this record has local changes that haven't been pushed to the server. |
LastDeliveryUtc | datetime | yes | | UTC of the most recent delivery attempt (success or failure), when any. |
LastSyncedUtc | datetime | yes | | UTC timestamp of when this record was last successfully synced. |
OrganizationId | integer | no | Organizations.Id | Tenant scope. |
SyncId | guid | no | | Globally unique identifier for this record across all devices. |
SyncVersion | integer | no | | Increments each time the record is modified locally. |
Url | stringmax 2048 | no | | Destination URL. |