AgentSkillsCN

Projects

当您需要管理ConnectWise PSA项目时,可使用此技能:创建、更新、管理项目各阶段、项目模板以及资源分配。本技能涵盖项目生命周期、预算编制、计费方式以及项目工单管理,是MSP通过ConnectWise PSA提供项目制服务的有力保障。

SKILL.md
--- frontmatter
description: >
  Use this skill when working with ConnectWise PSA projects - creating, updating,
  managing project phases, templates, and resource allocation. Covers project
  lifecycle, budgeting, billing methods, and project tickets. Essential for MSPs
  delivering project-based services through ConnectWise PSA.
triggers:
  - connectwise project
  - project management
  - create project connectwise
  - project phase
  - project template
  - project resource
  - project budget
  - project billing
  - project ticket
  - project schedule

ConnectWise PSA Project Management

Overview

Projects in ConnectWise PSA track larger bodies of work that span multiple tickets, phases, and resources. Projects support templates, phases, budgeting, resource allocation, and various billing methods. This skill covers project CRUD operations, phases, templates, resources, and project tickets.

API Endpoint

code
Base: /project/projects

Project Status Values

Standard project statuses in ConnectWise PSA:

Status IDNameDescription
1OpenActive project
2ClosedCompleted project
3On HoldTemporarily paused
4CancelledCancelled project
5WaitingAwaiting approval/resources

Query /project/projects/statuses for configurable statuses.

Project Types

Type IDNameDescription
1ProjectStandard project
2TemplateProject template

Complete Project Field Reference

Core Fields

FieldTypeRequiredDescription
idintSystemAuto-generated unique identifier
namestring(100)YesProject name
companyobjectYes{id: companyId} - Client company
contactobjectNo{id: contactId} - Primary contact
siteobjectNo{id: siteId} - Company site
boardobjectNo{id: boardId} - Service board for tickets
statusobjectNo{id: statusId}
typeobjectNo{id: typeId}

Manager and Team Fields

FieldTypeRequiredDescription
managerobjectNo{id: memberId} - Project manager
teamarrayNoArray of team member objects
departmentobjectNo{id: departmentId}
locationobjectNo{id: locationId}

Timeline Fields

FieldTypeRequiredDescription
estimatedStartdateNoPlanned start date
estimatedEnddateNoPlanned end date
actualStartdateSystemWhen project actually started
actualEnddateSystemWhen project completed
scheduledStartdatetimeNoScheduled start datetime
scheduledEnddatetimeNoScheduled end datetime

Budget Fields

FieldTypeRequiredDescription
estimatedHoursdecimalNoTotal estimated hours
actualHoursdecimalSystemHours logged to date
budgetAnalysisstringNoOverBudget, OnBudget, UnderBudget
budgetHoursdecimalNoBudget cap in hours
budgetAmountdecimalNoBudget cap in dollars
percentCompletedecimalNoCompletion percentage (0-100)

Billing Fields

FieldTypeRequiredDescription
billingMethodstringNoActualRates, FixedFee, NotToExceed, OverrideRate
billingRateTypestringNoWorkRole, StaffMember
billingAmountdecimalNoFixed fee or override rate
billProjectAfterClosedFlagbooleanNoAllow billing after closed
billTimestringNoBillable, DoNotBill, NoCharge
billExpensesstringNoBillable, DoNotBill, NoCharge
billProductsstringNoBillable, DoNotBill, NoCharge
agreementobjectNo{id: agreementId} - Linked agreement

Description Fields

FieldTypeRequiredDescription
descriptionstringNoProject description
customerPOstring(50)NoCustomer PO number
restrictDownPaymentFlagbooleanNoRestrict down payment
downpaymentdecimalNoDown payment amount

Project Phases

Phases break projects into manageable chunks with their own timelines and budgets.

Phase Endpoint

code
/project/projects/{projectId}/phases

Phase Fields

FieldTypeRequiredDescription
idintSystemPhase identifier
descriptionstring(100)YesPhase name
boardobjectNo{id: boardId}
statusobjectNo{id: statusId}
wbsCodestring(50)NoWork breakdown structure code
scheduledStartdatetimeNoPhase start date
scheduledEnddatetimeNoPhase end date
scheduledHoursdecimalNoPlanned hours
actualStartdatetimeSystemWhen phase started
actualEnddatetimeSystemWhen phase completed
actualHoursdecimalSystemHours logged
billTimestringNoBillable, DoNotBill, NoCharge
markAsMilestoneFlagbooleanNoMark as milestone

Create Phase

http
POST /project/projects/{projectId}/phases
Content-Type: application/json

{
  "description": "Phase 1: Discovery",
  "scheduledStart": "2024-03-01",
  "scheduledEnd": "2024-03-15",
  "scheduledHours": 40,
  "wbsCode": "1.1"
}

Project Templates

Templates provide reusable project structures with pre-defined phases and tickets.

Get Templates

http
GET /project/projects?conditions=type/id=2

Create Project from Template

http
POST /project/projects
Content-Type: application/json

{
  "name": "Client Onboarding - ACME Corp",
  "company": {"id": 12345},
  "templateFlag": false,
  "projectTemplateId": 100
}

When using projectTemplateId, ConnectWise copies:

  • All phases from template
  • Project tickets associated with phases
  • Budget and billing settings
  • Team assignments (if configured)

Project Tickets

Project tickets are service tickets linked to a project and phase.

Get Project Tickets

http
GET /project/projects/{projectId}/tickets

Create Project Ticket

http
POST /service/tickets
Content-Type: application/json

{
  "summary": "Configure Active Directory",
  "board": {"id": 1},
  "company": {"id": 12345},
  "project": {"id": 5000},
  "phase": {"id": 5001}
}

Project Ticket Fields

FieldTypeDescription
projectobject{id: projectId}
phaseobject{id: phaseId}

Resource Allocation

Team Member Assignment

http
POST /project/projects/{projectId}/teamMembers
Content-Type: application/json

{
  "member": {"id": 123},
  "projectRole": {"id": 1},
  "startDate": "2024-03-01",
  "endDate": "2024-06-01",
  "hoursScheduled": 160
}

Project Team Endpoint

code
/project/projects/{projectId}/teamMembers

Team Member Fields

FieldTypeDescription
memberobject{id: memberId}
projectRoleobject{id: roleId}
workRoleobject{id: workRoleId}
startDatedateAssignment start
endDatedateAssignment end
hoursScheduleddecimalPlanned hours

Billing Methods

Billing Method Options

MethodDescription
ActualRatesBill at standard work role rates
FixedFeeFixed project price
NotToExceedActual rates with cap
OverrideRateCustom hourly rate

Fixed Fee Project

http
POST /project/projects
Content-Type: application/json

{
  "name": "Website Redesign",
  "company": {"id": 12345},
  "billingMethod": "FixedFee",
  "billingAmount": 15000.00
}

Not-to-Exceed Project

http
POST /project/projects
Content-Type: application/json

{
  "name": "System Migration",
  "company": {"id": 12345},
  "billingMethod": "NotToExceed",
  "budgetAmount": 25000.00
}

API Operations

Create Project

http
POST /project/projects
Content-Type: application/json

{
  "name": "Office 365 Migration - ACME Corp",
  "company": {"id": 12345},
  "status": {"id": 1},
  "manager": {"id": 100},
  "estimatedStart": "2024-03-01",
  "estimatedEnd": "2024-05-01",
  "estimatedHours": 200,
  "billingMethod": "ActualRates",
  "description": "Migrate from on-premises Exchange to Office 365"
}

Get Project

http
GET /project/projects/{id}

Update Project

http
PATCH /project/projects/{id}
Content-Type: application/json

{
  "percentComplete": 50,
  "estimatedEnd": "2024-05-15"
}

Close Project

http
PATCH /project/projects/{id}
Content-Type: application/json

{
  "status": {"id": 2},
  "actualEnd": "2024-05-10"
}

Search Projects

http
GET /project/projects?conditions=company/id=12345 and status/id=1

Common Query Patterns

Active projects for company:

code
conditions=company/id=12345 and status/id=1

Projects by manager:

code
conditions=manager/id=100 and status/id=1

Overdue projects:

code
conditions=estimatedEnd<[2024-02-01] and status/id=1

Projects over budget:

code
conditions=budgetAnalysis="OverBudget"

Template projects:

code
conditions=type/id=2

Best Practices

  1. Use templates - Create templates for repeatable projects
  2. Define phases - Break large projects into phases
  3. Set realistic budgets - Include contingency time
  4. Assign project manager - Every project needs an owner
  5. Link to agreement - For managed services project work
  6. Track completion % - Update regularly for visibility
  7. Use WBS codes - Helps with reporting and organization
  8. Close completed projects - Don't leave finished projects open

Error Handling

ErrorCauseResolution
Company requiredMissing company referenceInclude company: {id: x}
Name requiredMissing project nameProvide name field
Invalid statusStatus doesn't existQuery statuses endpoint
Invalid managerMember doesn't existVerify member ID
Template not foundInvalid projectTemplateIdQuery templates first

Related Skills