Project object

A scope of work for a client. The project object contains the top-level information for projects in your workspace.

Example

{
  "id": "095e0780-48bf-472c-8deb-2fc3ebc7d90c",
  "key": "vendor-portal",
  "name": "Vendor Portal",
  "notes": "The client would like to develop a mobile app that rewards its customers for repeat purchases.",
  "statusId": "in_progress",
  "start": "2021-09-01",
  "end": "2022-01-31",
  "code": "P-2021-00068",
  "poNumber": "DM-2021-02059",
  "billingTypeId": "fixed_recurring",
  "isBillable": true,
  "currency": "USD",
  "revenueRecognitionMethod": "manual",
  "fixedFee": null,
  "fixedRecurringFee": null,
  "fixedRecurringStart": null,
  "fixedRecurringEnd": null,
  "useRoles": true,
  "useBudget": true,
  "budgetMode": "detailed",
  "useMonthlyBudget": true,
  "monthlyBudgetMode": "detailed",
  "requiresNotes": true,
  "requiresTasks": true,
  "recordStatusId": "active",
  "isProductive": null,
  "createdAt": "2022-03-15T14:59:18.825Z",
  "client": {
    "id": "d5afaffe-09e5-4d73-b02c-905b40fc6c22",
    "name": "Acme Company"
  },
  "practice": {
    "id": "40f95471-7f7c-4ffa-b838-8dcccab0f54a",
    "name": "Digital Transformation"
  },
  "projectType": {
    "id": "9b0927a6-35a1-4795-a4ca-10167b05f7de",
    "name": "Content Management"
  },
  "tags": [
    {
      "id": "626db436-98bf-40cb-9937-c382af5d818c",
      "name": "Atlanta Office"
    },
    {
      "id": "9f26fb15-23f1-49a6-8558-c19ad4338472",
      "name": "Data Analytics"
    }
  ],
  "budget": {
    "revenue": 602500,
    "servicesRevenue": 600000,
    "otherRevenue": 2000,
    "billableExpenses": 500,
    "nonBillableExpenses": 150,
    "billableHours": 150,
    "nonBillableHours": 10
  },
  "monthlyBudget": {
    "revenue": 51220,
    "servicesRevenue": 50000,
    "otherRevenue": 920,
    "billableExpenses": 300,
    "nonBillableExpenses": 50,
    "billableHours": 10,
    "nonBillableHours": 2
  }
}

Attributes

NameTypeDescription
iduuidThe unique identifier for the object.
keyslugA unique, URL-friendly identifier for the project.
namestringThe name of the project.
notesstringAny notes that have been given.
statusIdstringThe project status. Can be: "tentative" (Tentative), "not_started" (Not Started), "in_progress" (In Progress), "paused" (Paused), or "completed" (Completed).
startdateThe start date. Will be in the form YYYY-MM-DD, if set.
enddateThe end date. Will be in the form YYYY-MM-DD, if set.
codestringThe project code.
poNumberstringThe purchase order number.
billingTypeIdstringThe billing type for the project. Can be either "tm" (Time & Materials), "fixed" (Fixed Fee), "fixed_recurring" (Fixed Monthly), or "non_billable" (Non-Billable).
isBillablebooleanA calculated value based off the billingTypeId. It will be true unless billingTypeId is set to "non_billable" where it will be false.
currencystringThe currency code for the project.
revenueRecognitionMethodstringThe revenue recognition method. Will only be available if the billingTypeId is set to "fixed" or "fixed_recurring". Possible values are "invoiced" (As Invoiced) or "manual" (Manual).
fixedFeenumberDepreciated. This field will always return null.

The fixed fee for a project. Only available if billingTypeId is set to "fixed".
fixedRecurringFeenumberDepreciated. This field will always return null.

The fixed recurring fee. Only available if the billingTypeId is set to "fixed_recurring".
fixedRecurringStartdateDepreciated. This field will always return null.

The fixed recurring start date. Only available if the billingTypeId is set to "fixed_recurring".
fixedRecurringEnddateDepreciated. This field will always return null.

The fixed recurring end date. Only available if the billingTypeId is set to "fixed_recurring".
useRolesbooleanFlag to determine if the project should use roles.
useBudgetbooleanFlag to determine if the project should have a budget.
budgetModestringThe budget mode. Only available if useBudget is set to true. Possible values are "summary" (Summary budget), "detailed" (Detailed budget), or "aggregated" (Detailed budget aggregated from tasks).
useMonthlyBudgetbooleanFlag to determine if the project should have a monthly budget.
monthlyBudgetModestringThe monthly budget mode. Only available if useMonthlyBudget is set to true. Possible values are "summary" (Summary budget) or "detailed" (Detailed budget).
requiresNotesbooleanFlag to determine if time entries recorded against the project are required to enter notes.
requiresTasksbooleanFlag to determine if time entries recorded against the project are required to select a task.
recordStatusIdstringThe status of the project object. Possible values are: "active" (Active) or "archived" (Archived).
isProductivebooleanFlag to determine whether the project time is attributable to productive utilization. Only relevant for projects of the internal client; otherwise it will return null.
createdAttimestampThe timestamp when the object was created.
clientobjectA simple object to the related client. See attributes.
practiceobjectA simple object to the related practice, if defined. See attributes.
projectTypeobjectA simple object to the related project type, if defined. See attributes.
tagsarray of objectsThe list of associated tags. See attributes.
budgetobjectThe budget for the project. Only available if useBudget is true. See attributes.
monthlyBudgetobjectThe monthly budget for the project. Only available if useMonthlyBudget is true. See attributes.

Client attributes

NameTypeDescription
iduuidThe unique identifier for the object.
namestringThe name of the client.

Practice attributes

NameTypeDescription
iduuidThe unique identifier for the object.
namestringThe name of the practice.

Project type attributes

NameTypeDescription
iduuidThe unique identifier for the object.
namestringThe name of the project type.

Tag attributes

NameTypeDescription
iduuidThe unique identifier for the object.
namestringThe name of the tag.

Budget attributes

NameTypeDescription
revenuenumberThe total budgeted revenue. This is the sum of servicesRevenue, otherRevenue, and billableExpenses.
servicesRevenuenumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of hours times rate for either the detailed budget or the aggregated tasks.
otherRevenuenumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of other items to bill.
billableExpensesnumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of billable expenses.
nonBillableExpensesnumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of non-billable expenses.
billableHoursnumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of billable hours.
nonBillableHoursnumberIf the value of budgetMode or monthlyBudgetMode is "summary", this will be a raw value. Otherwise, this will be the sum of non-billable hours.