Explore the Teamwork CRM data model

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

Pulling data from Teamwork CRM 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 pull your Teamwork CRM 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

Contact

Documentation: https://developer.teamwork.com/crm/api/ref/contacts/get-contactsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
HubID int - -
ProjectsID int - -
FirstName string - -
LastName string - -
Title string - -
OwnerID int User → ID -
CompanyID int Company → ID -
PrimaryEmail string - -
TimezoneID int Timezone → ID -
AddressLine1 string - -
AddressLine2 string - -
City string - -
StateOrCounty string - -
Zipcode string - -
CountryID int Country → ID -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

CustomField

Documentation: https://developer.teamwork.com/crm/api/ref/custom-fields/get-custom-fieldsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Kind string - -
Key string - -
FieldType string - -
IsMandatory boolean - -
IsShownWhenAdding boolean - -
OrderIndex decimal - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

CustomFieldOption

Column Type Relates to Notes
RemoteID string - -
CustomFieldRemoteID string CustomField → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID int - -
Option string - -

ContactCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID int Contact → ID -
CustomFieldKey string CustomField → Key -
RefersToCompanyID int - -
RefersToContactID int Contact → ID -
Value string - -
RefersToUserID int User → ID -

ContactCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
ContactCustomFieldValueRemoteID string ContactCustomFieldValue → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ParentRemoteID string - -
OptionNumber int - -
Value string - -

Company

Documentation: https://developer.teamwork.com/crm/api/ref/companies/get-companiesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
OwnerID int User → ID -
PrimaryEmail string - -
Website string - -
HubID int - -
ProjectsID int - -
TimezoneID int Timezone → ID -
AddressLine1 string - -
AddressLine2 string - -
City string - -
StateOrCounty string - -
Zipcode string - -
CountryID int Country → ID -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

CompanyCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
CompanyRemoteID string Company → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CompanyID int Company → ID -
CustomFieldKey string CustomField → Key -
RefersToCompanyID int - -
RefersToContactID int Contact → ID -
Value string - -
RefersToUserID int User → ID -

CompanyCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
CompanyCustomFieldValueRemoteID string CompanyCustomFieldValue → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ParentRemoteID string - -
OptionNumber int - -
Value string - -

Pipeline

Documentation: https://developer.teamwork.com/crm/api/ref/pipelines/get-pipelinesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
IsQualified boolean - -
OrderIndex decimal - -
TotalValue decimal - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

Stage

Documentation: https://developer.teamwork.com/crm/api/ref/stages/get-stagesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
OrderIndex decimal - -
Probability decimal - -
RottingDuration decimal -
  • 8 Oct 2021 The number of days before deals in this stage are considered rotten
PipelineID int Pipeline → ID -
DealsCount int - -
DeletedAt datetime - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

User

Documentation: https://developer.teamwork.com/crm/api/ref/users/get-usersjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
FirstName string - -
LastName string - -
Title string - -
IsAdmin boolean - -
FollowingCount int - -
State string - -
IsProjectsContact boolean - -
IsGlobalAdmin boolean - -
ActivatedAt datetime - -
TimeFormatID int - -
DateFormatID int - -
WeekStartsSunday boolean - -
EmailNotifications boolean - -
PrimaryEmail string - -
TimezoneID int Timezone → ID -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

Product

Documentation: https://developer.teamwork.com/crm/api/ref/products/get-productsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
State string - -
OwnerID int User → ID -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

ProductPrice

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ProductID int Product → ID -
CurrencyID int Currency → ID -
Price decimal - -

Deal

Documentation: https://developer.teamwork.com/crm/api/ref/Deals/get-Dealsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Title string - -
ExpectedCloseDate datetime - -
ClosedAt datetime - -
CustomValue decimal - -
State string - -
IsQualified boolean -
  • 8 Oct 2021 An opportunity is a qualified lead
QualifiedAt datetime - -
QualifiedByUserID int User → ID -
OwnerID int User → ID -
StageID int Stage → ID -
CompanyID int Company → ID -
CurrencyID int Currency → ID -
ContactsCount int - -
TotalValue decimal - -
LostReasonID int LostReason → ID -
WonReasonID int WonReason → ID -
RottingSince datetime - -
NextIncompleteActivityID int Activity → ID -
TeamworkProjectID int -
  • 8 Oct 2021 Links back to your Teamwork account, if available
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

DealProduct

Column Type Relates to Notes
RemoteID string - -
DealRemoteID string Deal → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
DealID int Deal → ID -
ProductID int Product → ID -
Discount decimal - -
Price decimal - -
Quantity decimal - -

DealContact

Column Type Relates to Notes
RemoteID string - -
DealRemoteID string Deal → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
DealID int Deal → ID -
ContactID int Contact → ID -
IsMain boolean - -

DealCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
DealRemoteID string Deal → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
DealID int Deal → ID -
CustomFieldKey string CustomField → Key -
RefersToCompanyID int - -
RefersToContactID int Contact → ID -
Value string - -
RefersToUserID int User → ID -

DealCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
DealCustomFieldValueRemoteID string DealCustomFieldValue → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ParentRemoteID string - -
OptionNumber int - -
Value string - -

Activity

Documentation: https://developer.teamwork.com/crm/api/ref/Activitys/get-Activitysjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Description string - -
IsAllDay boolean - -
Title string - -
StartDate datetime - -
Duration decimal - -
DueDate datetime - -
IsComplete boolean - -
CompletedAt datetime - -
AssigneesCount int - -
ContactsCount int - -
CompletedByUser int User → ID -
ActivityTypeID int ActivityType → ID -
DealID int Deal → ID -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

ActivityContact

Column Type Relates to Notes
RemoteID string - -
ActivityRemoteID string Activity → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ActivityID int Activity → ID -
ContactID int Contact → ID -

ActivityAssignee

Column Type Relates to Notes
RemoteID string - -
ActivityRemoteID string Activity → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ActivityID int Activity → ID -
UserID int User → ID -

ActivityReminder

Column Type Relates to Notes
RemoteID string - -
ActivityRemoteID string Activity → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
ActivityID int Activity → ID -
Time decimal - -
TimeUnit string - -

ActivityReminderAssignee

Column Type Relates to Notes
RemoteID string - -
ActivityReminderRemoteID string ActivityReminder → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ActivityReminderID int ActivityReminder → ID -
UserID int User → ID -

Timezone

Documentation: https://developer.teamwork.com/crm/api/ref/timezones/get-timezonesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Reference string - -
OffsetMinutes decimal - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

Country

Documentation: https://developer.teamwork.com/crm/api/ref/currencies/get-currenciesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Code string - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

Currency

Documentation: https://developer.teamwork.com/crm/api/ref/currencies/get-currenciesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Code string - -
Symbol string - -
DecimalPoints int - -
State string - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

WonReason

Documentation: https://developer.teamwork.com/crm/api/ref/won-reasons/get-won-reasonsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Deleted boolean - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

LostReason

Documentation: https://developer.teamwork.com/crm/api/ref/lost-reasons/get-Lost-reasonsjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Deleted boolean - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

ActivityType

Documentation: https://developer.teamwork.com/crm/api/ref/activity-types/get-activity-typesjson

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
OrderIndex int - -
Icon string - -
Color string - -
UsedByCount int - -
UpdatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -
CreatedAt datetime - -

Need more?

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