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

Explore the Teamwork CRM API data model

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

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

Activity

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

ActivityType

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

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

Company

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

Contact

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

Country

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

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

Currency

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

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

CustomField

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

ContactCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
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 -

DealCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
DealRemoteID string Deal → RemoteID -
WhenUpsertedIntoDataStore datetime - -
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 -

CompanyCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
CompanyRemoteID string Company → RemoteID -
WhenUpsertedIntoDataStore datetime - -
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 -

Deal

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

LostReason

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

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

Pipeline

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

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

Product

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

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

Stage

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

Timezone

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

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

User

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

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
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 - -
CreatedAt datetime - -
CreatedBy int User → ID -
UpdatedBy int User → ID -

WonReason

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

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

ActivityContact

Column Type Relates to Notes
RemoteID string - -
ActivityRemoteID string Activity → RemoteID -
WhenUpsertedIntoDataStore datetime - -
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 -
WhenUpsertedIntoDataStore datetime - -
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 -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
ActivityID int Activity → ID -
Time decimal - -
TimeUnit string - -

CustomFieldOption

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

ContactCustomFieldValueOption

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

DealCustomFieldValueOption

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

CompanyCustomFieldValueOption

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

DealContact

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

DealProduct

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

ProductPrice

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

ActivityReminderAssignee

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

Need more?

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