Exclusive: all our customers get a free six-month subscription to a next-gen data and AI learning platform

Explore the Projectworks API data model

See how the various Projectworks endpoints relate to each other, using our handy Entity Relationship Diagram

Pulling data from the Projectworks API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only sync your Projectworks API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

BillingContact

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Common/Common_GetBillingContacts

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ClientID long Client → ID -
ContactName string - -
ContactEmail string - -
ContactEmailCc string - -
ContactPhoneNumber string - -
PostalAddress1 string - -
PostalAddress2 string - -
PostalAddress3 string - -
CityOrState string - -
Postcode string - -
CountryCode string - -
Note string - -
IsActive boolean - -
UseCompanyAddress boolean - -
ExternalReference string - -
ModifiedDateUTC datetime - -

Client

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Clients

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ClientName string - -
AccountManagerID long User → ID -
OfficeID long Office → ID -
ClientTypeID long - -
DefaultRateCardID long - -
DefaultTaxTypeID long TaxType → ID -
DefaultCurrencyID long Currency → ID -
FinanceEmail string - -
FinancePhone string - -
FinanceNotes string - -
FinancePaymentTermTypeID long - -
FinancePaymentTermDays decimal - -
CurrencyID long Currency → ID -
IsActive boolean - -
AccountManagerName string - -
FinancePaymentTermTypeName string - -
ExternalReference string - -
PostalAddress1 string - -
PostalAddress2 string - -
PostalAddress3 string - -
CityOrState string - -
Postcode string - -
CountryCode string - -
CompanyTaxNumber string - -
ModifiedDateUTC datetime - -

Country

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Common/Common_GetCountries

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Code string - -
ModifiedDateUTC datetime - -

Currency

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Common/Common_GetCurrencies

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Code string - -
Symbol string - -
IsActive boolean - -
ModifiedDateUTC datetime - -

CustomField

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/CustomFields

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Label string - -
Group string - -
Order long - -
TypeID long - -
TypeName string - -
EntityTypeID long - -
EntityTypeName string - -
EntitySubTypeID long - -
EntitySubTypeName string - -
IsActive boolean - -
IsMandatory boolean - -
ModifiedDateUTC datetime - -

ExpenseClaim

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/ExpenseClaims

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
UserID long User → ID -
ProjectID long Project → ID -
ModuleID long Module → ID -
ExpenseClaimTypeID long - -
ExpenseClaimStatusID long - -
ExpenseClaimNumber string - -
IsReimbursable boolean - -
IsProcessed boolean - -
IsExported boolean - -
IsExportUpdateRequired boolean - -
IsPlanned boolean - -
ExportedBy string - -
ExportedDate datetime - -
Date datetime - -
Quantity decimal - -
PurchaseAmount decimal - -
Amount decimal - -
TaxAmount decimal - -
AmountWithoutTax decimal - -
AmountIncludesSalesTax boolean - -
CurrencyID long Currency → ID -
TaxTypeID long TaxType → ID -
IsBillable boolean - -
MarginAmount decimal - -
MarginPercent decimal - -
BillableAmount decimal - -
IncludeTaxInBudget boolean - -
Notes string - -
InvoiceDescription string - -
Response string - -
InvoiceID long - -
AccountingSystemReference string - -
AccountingSystemContactReference string - -
TrackingCategoryOptionReferenceOne string - -
TrackingCategoryOptionReferenceTwo string - -
RowVersion string - -
IsReadyForExport boolean - -
SupplierInvoiceReference string - -
PaymentDueDate datetime - -
ModifiedDateUTC datetime - -

Leave

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Leaves

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
UserID long User → ID -
StatusID long - -
DateSubmitted datetime - -
RequestComment string - -
ResponseComment string - -
IsReviewRequired boolean - -
ExternalReference string - -
IsExported boolean - -
IsExportUpdateRequired boolean - -
ExportedBy string - -
ExportedDate datetime - -
RowVersion string - -
IsReadyForExport boolean - -
ModifiedDateUTC datetime - -

Location

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Common/Common_GetLocations

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
TimeZone string - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
DefaultHolidayCalendarID long - -
IsActive boolean - -
ModifiedDateUTC datetime - -

Module

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Modules

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ModuleName string - -
ProjectID long Project → ID -
Budget decimal - -
GLCodeID long - -
GLCodeCode string - -
GLCodeName string - -
GLCodeTypeID long - -
GLCodeTypeName string - -
IsDiscount boolean - -
IsActive boolean - -
IsServices boolean - -
ExternalReference string - -
ModifiedDateUTC datetime - -

ModuleCustomFieldValue

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/CustomFields

Column Type Relates to Notes
RemoteID string - -
ModuleRemoteID string Module → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ModuleID long Module → ID -
Value string - -
CustomFieldID long CustomField → ID -

Office

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Offices

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
FullName string - -
PhoneNumber string - -
Website string - -
LocationID long Location → ID -
DefaultTaxTypeID long TaxType → ID -
CurrencyID long Currency → ID -
CountryID long Country → ID -
IsActive boolean - -
ExternalReference string - -
ModifiedDateUTC datetime - -

Project

Documentation: https://api.projectworksapp.com/swagger/ui/index#/Projects

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ProjectNumber string - -
ProjectName string - -
OfficeID long Office → ID -
ClientID long Client → ID -
ProjectTypeID long ProjectType → ID -
ProjectStatusID long ProjectStatus → ID -
ProjectBudgetTypeID long - -
HolidayCalendarID long - -
HolidayCalendarName string - -
DefaultRateCardID long - -
CurrencyID long Currency → ID -
ProjectManagerID long User → ID -
AccountManagerID long User → ID -
TaskSelfServiceModeID long - -
DefaultInvoicesToForecastAmount boolean - -
SendInvoicesToFinanceEmail boolean - -
SendInvoicesToBillingContactEmail boolean - -
QuoteSendInvoicesToFinanceEmail boolean - -
QuoteSendInvoicesToBillingContactEmail boolean - -
IsActive boolean - -
IsPendingExpenseBillable boolean - -
IsApprovedExpenseBillable boolean - -
IsNonReimbursableExpenseBillable boolean - -
StartDate datetime - -
EndDate datetime - -
DefaultPONumber string - -
DefaultInvoicePOType long - -
ProjectManagerName string - -
AccountManagerName string - -
TaskSelfServiceModeName string - -
ExternalReference string - -
DefaultBillingContactID long BillingContact → ID -
UseContactFromLastInvoice boolean - -
ModifiedDateUTC datetime - -

ProjectCustomFieldValue

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/CustomFields

Column Type Relates to Notes
RemoteID string - -
ProjectRemoteID string Project → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProjectID long Project → ID -
Value string - -
CustomFieldID long CustomField → ID -

ProjectStatus

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Projects/Projects_GetProjectStatuses

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
ModifiedDateUTC datetime - -

ProjectType

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Projects/Projects_GetProjectTypes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
ModifiedDateUTC datetime - -

Task

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Tasks

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
TaskName string - -
ModuleID long Module → ID -
TaskTypeID long - -
TaskTypeName string - -
StartDate datetime - -
EndDate datetime - -
IsOnTimesheet boolean - -
EnforceTimesheetDates boolean - -
IsCommentRequired boolean - -
UseDefaultRate boolean - -
DefaultRate decimal - -
IsScheduled boolean - -
IsAutoSchedule boolean - -
StatusID long - -
PercentComplete decimal - -
IsBillable boolean - -
ExternalReference string - -
ModifiedDateUTC datetime - -

TaskCustomFieldValue

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/CustomFields

Column Type Relates to Notes
RemoteID string - -
TaskRemoteID string Task → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
TaskID long Task → ID -
Value string - -
CustomFieldID long CustomField → ID -

TaxType

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Common/Common_GetTaxTypes

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Jurisdiction string - -
CurrencyID long Currency → ID -
TaxRate decimal - -
IsActive boolean - -
ExcludeTaxFromCost boolean - -
ModifiedDateUTC datetime - -

Team

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Teams

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
IsActive boolean - -
ModifiedDateUTC datetime - -

Timesheet

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Timesheets/Timesheets_Get

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
UserID long User → ID -
TaskID long Task → ID -
Date datetime - -
Minutes decimal - -
Comment string - -
ExternalIssueID string - -
IsReviewed boolean - -
FirstName string - -
LastName string - -
TaskName string - -
InvoiceNumber string - -
ModifiedDateUTC datetime - -

User

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/Users

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Email string - -
AlternateEmail string - -
FirstName string - -
LastName string - -
BirthDate datetime - -
Gender string - -
JobTitle string - -
EmployeeStartDate datetime - -
EmployeeEndDate datetime - -
IsActive boolean - -
ExternalReference string - -
ModifiedDateUTC datetime - -

UserCustomFieldValue

Documentation: https://api.projectworksapp.com/swagger/ui/index#!/CustomFields

Column Type Relates to Notes
RemoteID string - -
UserRemoteID string User → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
UserID long User → ID -
Value string - -
CustomFieldID long CustomField → ID -

ClientProject

Column Type Relates to Notes
RemoteID string - -
ClientRemoteID string Client → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ClientID long Client → ID -
ProjectID long Project → ID -

ClientBillingContact

Column Type Relates to Notes
RemoteID string - -
ClientRemoteID string Client → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ClientID long Client → ID -
BillingContactID long BillingContact → ID -

ClientType

Column Type Relates to Notes
RemoteID string - -
ClientRemoteID string Client → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -

CustomFieldProjectType

Column Type Relates to Notes
RemoteID string - -
CustomFieldRemoteID string CustomField → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
ProjectTypeID long ProjectType → ID -

CustomFieldProjectStatus

Column Type Relates to Notes
RemoteID string - -
CustomFieldRemoteID string CustomField → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
ProjectStatusID long ProjectStatus → ID -

CustomFieldOption

Column Type Relates to Notes
RemoteID string - -
CustomFieldRemoteID string CustomField → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
OptionID int - -
Text string - -
IsActive boolean - -
Group string - -
Order int - -

ExpenseClaimFile

Column Type Relates to Notes
RemoteID string - -
ExpenseClaimRemoteID string ExpenseClaim → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ExpenseClaimID long ExpenseClaim → ID -
FileName string - -

ModuleTask

Column Type Relates to Notes
RemoteID string - -
ModuleRemoteID string Module → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ModuleID long Module → ID -
TaskID long Task → ID -

ModuleCustomFieldOptionValue

Column Type Relates to Notes
RemoteID string - -
ModuleCustomFieldValueRemoteID string ModuleCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionID int CustomFieldOption → OptionID -

ProjectModule

Column Type Relates to Notes
RemoteID string - -
ProjectRemoteID string Project → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProjectID long Project → ID -
ModuleID long Module → ID -

ProjectCustomFieldOptionValue

Column Type Relates to Notes
RemoteID string - -
ProjectCustomFieldValueRemoteID string ProjectCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionID int CustomFieldOption → OptionID -

TaskUser

Column Type Relates to Notes
RemoteID string - -
TaskRemoteID string Task → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
TaskID long Task → ID -
UserID long User → ID -

TaskCustomFieldOptionValue

Column Type Relates to Notes
RemoteID string - -
TaskCustomFieldValueRemoteID string TaskCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionID int CustomFieldOption → OptionID -

UserCustomFieldOptionValue

Column Type Relates to Notes
RemoteID string - -
UserCustomFieldValueRemoteID string UserCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
OptionID int CustomFieldOption → OptionID -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.