API ReferenceProject
project.create
Type: Mutation · Auth: Workspace-aware
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| opportunityId | unknown | No | — | ID of the associated opportunity |
| acceptedQuoteId | unknown | No | — | ID of the associated accepted quote |
| customerId | string | Yes | — | ID of the associated customer |
| siteId | unknown | No | — | ID of the associated site |
| primaryContactId | unknown | No | — | ID of the associated primary contact |
| name | string | Yes | — | Name |
| description | string | No | — | Description |
| status | enum(planning, active, on_hold, completed, canceled) | Yes | "planning" | Status |
| priority | unknown | Yes | "medium" | Priority |
| projectType | unknown | No | — | Project type |
| startDate | unknown | No | — | Start date |
| targetEndDate | unknown | No | — | Target end date |
| actualEndDate | unknown | No | — | Actual end date |
| projectManagerUserId | unknown | No | — | ID of the associated project manager user |
| percentComplete | unknown | No | — | Percent complete |
| materialBudget | unknown | No | — | Material budget |
| laborBudget | unknown | No | — | Labor budget |
| recurringBudget | unknown | No | — | Recurring budget |
| totalBudget | unknown | No | — | Total budget |
| discountTotal | unknown | No | — | Discount total |
| taxTotal | unknown | No | — | Tax total |
| scopeOfWork | string,null | No | — | Scope of work |
| assumptions | string,null | No | — | Assumptions |
| exclusions | string,null | No | — | Exclusions |
| warrantyTerms | string,null | No | — | Warranty terms |
| permitRequired | boolean | No | — | Permit required |
| permitNotes | string,null | No | — | Permit notes |
| insuranceRequirements | string,null | No | — | Insurance requirements |
| projectTimelineEstimate | string,null | No | — | Project timeline estimate |
| siteAccessInstructions | string,null | No | — | Site access instructions |
| aiSummary | string | No | — | Ai summary |
| riskLevel | unknown | No | — | Risk level |
| customerApprovalStatus | unknown | Yes | "not_required" | Customer approval status |
| changeOrderCount | unknown | No | — | Change order count |
| changeOrderValue | unknown | No | — | Change order value |
| engagementType | enum(direct_to_end_user, subcontracted_by_upstream, prime_with_subcontractors, upstream_and_downstream, service_only, warranty_only, internal, other) | No | "direct_to_end_user" | Engagement type |
| communicationPolicy | enum(unrestricted, through_upstream_only, direct_after_closeout, emergency_direct_only, internal_review_required) | No | "unrestricted" | Communication policy |
| deliveryBrandingMode | enum(our_brand, upstream_white_label, co_branded, internal_only) | No | "our_brand" | Delivery branding mode |
| postCloseoutServicePolicy | enum(transfers_to_end_user, remains_with_customer_of_record, remains_with_upstream, remains_with_property_manager, manual_review, no_service_relationship) | No | "transfers_to_end_user" | Post closeout service policy |
| endUserOrganizationId | unknown | No | — | ID of the associated end user organization |
| upstreamOrganizationId | unknown | No | — | ID of the associated upstream organization |
| workspaceId | string | No | — | ID of the associated workspace |
| visibilityMode | unknown | No | — | Visibility mode |
Example
{
"opportunityId": null,
"acceptedQuoteId": null,
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"siteId": null,
"primaryContactId": null,
"name": "Example Name",
"status": "planning",
"priority": "medium",
"customerApprovalStatus": "not_required"
}