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
Name | Type | Description |
---|---|---|
id | uuid | The unique identifier for the object. |
key | slug | A unique, URL-friendly identifier for the project. |
name | string | The name of the project. |
notes | string | Any notes that have been given. |
statusId | string | The project status. Can be: "tentative" (Tentative), "not_started" (Not Started), "in_progress" (In Progress), "paused" (Paused), or "completed" (Completed). |
start | date | The start date. Will be in the form YYYY-MM-DD , if set. |
end | date | The end date. Will be in the form YYYY-MM-DD , if set. |
code | string | The project code. |
poNumber | string | The purchase order number. |
billingTypeId | string | The billing type for the project. Can be either "tm" (Time & Materials), "fixed" (Fixed Fee), "fixed_recurring" (Fixed Monthly), or "non_billable" (Non-Billable). |
isBillable | boolean | A calculated value based off the billingTypeId . It will be true unless billingTypeId is set to "non_billable" where it will be false . |
currency | string | The currency code for the project. |
revenueRecognitionMethod | string | The 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). |
fixedFee | number | Depreciated. This field will always return null .The fixed fee for a project. Only available if billingTypeId is set to "fixed" . |
fixedRecurringFee | number | Depreciated. This field will always return null .The fixed recurring fee. Only available if the billingTypeId is set to "fixed_recurring" . |
fixedRecurringStart | date | Depreciated. This field will always return null .The fixed recurring start date. Only available if the billingTypeId is set to "fixed_recurring" . |
fixedRecurringEnd | date | Depreciated. This field will always return null .The fixed recurring end date. Only available if the billingTypeId is set to "fixed_recurring" . |
useRoles | boolean | Flag to determine if the project should use roles. |
useBudget | boolean | Flag to determine if the project should have a budget. |
budgetMode | string | The 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). |
useMonthlyBudget | boolean | Flag to determine if the project should have a monthly budget. |
monthlyBudgetMode | string | The monthly budget mode. Only available if useMonthlyBudget is set to true . Possible values are "summary" (Summary budget) or "detailed" (Detailed budget). |
requiresNotes | boolean | Flag to determine if time entries recorded against the project are required to enter notes. |
requiresTasks | boolean | Flag to determine if time entries recorded against the project are required to select a task. |
recordStatusId | string | The status of the project object. Possible values are: "active" (Active) or "archived" (Archived). |
isProductive | boolean | Flag to determine whether the project time is attributable to productive utilization. Only relevant for projects of the internal client; otherwise it will return null . |
createdAt | timestamp | The timestamp when the object was created. |
client | object | A simple object to the related client. See attributes. |
practice | object | A simple object to the related practice, if defined. See attributes. |
projectType | object | A simple object to the related project type, if defined. See attributes. |
tags | array of objects | The list of associated tags. See attributes. |
budget | object | The budget for the project. Only available if useBudget is true . See attributes. |
monthlyBudget | object | The monthly budget for the project. Only available if useMonthlyBudget is true . See attributes. |
Client attributes
Name | Type | Description |
---|---|---|
id | uuid | The unique identifier for the object. |
name | string | The name of the client. |
Practice attributes
Name | Type | Description |
---|---|---|
id | uuid | The unique identifier for the object. |
name | string | The name of the practice. |
Project type attributes
Name | Type | Description |
---|---|---|
id | uuid | The unique identifier for the object. |
name | string | The name of the project type. |
Tag attributes
Name | Type | Description |
---|---|---|
id | uuid | The unique identifier for the object. |
name | string | The name of the tag. |
Budget attributes
Name | Type | Description |
---|---|---|
revenue | number | The total budgeted revenue. This is the sum of servicesRevenue , otherRevenue , and billableExpenses . |
servicesRevenue | number | If 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. |
otherRevenue | number | If 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. |
billableExpenses | number | If the value of budgetMode or monthlyBudgetMode is "summary" , this will be a raw value. Otherwise, this will be the sum of billable expenses. |
nonBillableExpenses | number | If the value of budgetMode or monthlyBudgetMode is "summary" , this will be a raw value. Otherwise, this will be the sum of non-billable expenses. |
billableHours | number | If the value of budgetMode or monthlyBudgetMode is "summary" , this will be a raw value. Otherwise, this will be the sum of billable hours. |
nonBillableHours | number | If the value of budgetMode or monthlyBudgetMode is "summary" , this will be a raw value. Otherwise, this will be the sum of non-billable hours. |