Phases (Base Entity)
Phases define the workflow stages that activities progress through. Each activity type has its own set of phases — for example, an invoice moves through Draft, Sent, and Paid, while a sales opportunity moves through Qualification, Proposal, Negotiation, Won, or Lost.
The Datastore_Phase endpoint provides a unified view across all phase types. Use the subtype-specific endpoints (e.g., Datastore_Phase_ActivityInvoice) when you need phases for a single activity type.
Datastore_Phase is a base entity. Use the subtype-specific endpoints to query phases for a particular activity type. See Subtypes for the full list.
Endpoints
List All Phases
Retrieve all phases across all activity types.
/v1/odata/Datastore_PhaseSingle Phase
/v1/odata/Datastore_Phase({id})Subtypes
Each activity type has its own phase entity set:
| Subtype | OData Entity Set | Description |
|---|---|---|
| Appointment Phases | Datastore_Phase_ActivityAppointment | Appointment phases |
| Campaign Phases | Datastore_Phase_ActivityCampaign | Campaign phases |
| Document Phases | Datastore_Phase_ActivityDocument | Document phases |
| Email Phases | Datastore_Phase_ActivityEmail | Email phases |
| Event Phases | Datastore_Phase_ActivityEvent | Event phases |
| Invoice Phases | Datastore_Phase_ActivityInvoice | Invoice phases (Draft, Sent, Paid) |
| LinkedIn Message Phases | Datastore_Phase_ActivityLinkedInMessage | LinkedIn message phases |
| Offer Phases | Datastore_Phase_ActivityOffer | Quote/offer phases |
| Project Phases | Datastore_Phase_ActivityProject | Project phases |
| Sales Opportunity Phases | Datastore_Phase_ActivitySalesOpportunity | Opportunity pipeline stages |
| Sales Order Phases | Datastore_Phase_ActivitySalesOrder | Sales order phases |
| Subscription Phases | Datastore_Phase_ActivitySubscription | Subscription phases |
| Support Ticket Phases | Datastore_Phase_ActivitySupportTicket | Support ticket phases |
| Task Phases | Datastore_Phase_ActivityTask | Task phases |
| Work Order Phases | Datastore_Phase_ActivityWorkOrder | Work order phases |
To get the available phases for a specific activity type, query the subtype endpoint directly:
GET /v1/odata/Datastore_Phase_ActivityInvoice?$select=Name,Code
GET /v1/odata/Datastore_Phase_ActivitySalesOpportunity?$select=Name,Code,IsTerminal
Fields
Datastore Fields (inherited)
| Field | Type | Description |
|---|---|---|
Name | String | Phase name (e.g., "Draft", "Sent", "Paid") |
Code | String | Phase code identifier |
LocalizedName | String | Localized phase name |
IsDefault | Boolean | Whether this is the default phase |
Phase Fields
| Field | Type | Description |
|---|---|---|
Icon | String | Icon identifier for the phase |
ActionName | String | Action name to transition to this phase (e.g., "Send", "Pay") |
LocalizedActionName | String | Localized action name |
IsAssignable | Boolean | Whether the phase can be manually assigned |
IsTerminal | Boolean | Whether this is an end state (e.g., Won, Lost, Paid) |
Relationships
| Relationship | Target Entity | Cardinality | Description |
|---|---|---|---|
| Pipeline | Pipeline | N:1 | Pipeline this phase belongs to |
Expanding Relationships
/v1/odata/Datastore_Phase({id})?$expand=PipelineNavigating Relationships
/v1/odata/Datastore_Phase({id})/PipelineUsage
Changing an Activity Phase
To change the phase of an activity, update it with the phase ID:
POST /v1/odata/Activity_Invoice
{
"ID": "453ee597-6208-4b54-b511-da18fd31569d",
"Phase": {
"ID": "f0aed36c-2132-400f-92ac-e141a893cf0a"
}
}
Finding Terminal Phases
To find which phases represent an end state (e.g., Won/Lost for opportunities):
GET /v1/odata/Datastore_Phase_ActivitySalesOpportunity?$filter=IsTerminal eq true
Filtering Examples
:::warning Filtering by _Type is not supported
To narrow by phase subtype, query that subtype's own entity set instead (e.g. /v1/odata/Datastore_Phase_ActivityInvoice, /v1/odata/Datastore_Phase_ActivitySalesOpportunity). See Filtering by Type.
:::
/v1/odata/Datastore_Phase?$filter=Name eq '{Name}'&$top={top}/v1/odata/Datastore_Phase?$filter=Code eq '{Code}'&$top={top}/v1/odata/Datastore_Phase?$filter=IsTerminal eq {IsTerminal}&$top={top}/v1/odata/Datastore_Phase?$filter=IsAssignable eq {IsAssignable}&$top={top}