Esc

↑↓ move↵ openIndex · Pagefind
REST reference · Preconstruction

CRM

208 endpoints208 implementedAll modules →
  1. GET /rest/v1.0/companies/{company_id}/crm/activitiesList activities
  2. POST /rest/v1.0/companies/{company_id}/crm/activitiesCreate activity
  3. GET /rest/v1.0/companies/{company_id}/crm/activities/{id}Get CRM follow-up
  4. PATCH /rest/v1.0/companies/{company_id}/crm/activities/{id}Edit an open CRM follow-up using its current updated_at value
  5. DELETE /rest/v1.0/companies/{company_id}/crm/activities/{id}Archive CRM follow-up
  6. POST /rest/v1.0/companies/{company_id}/crm/activities/{id}/completeComplete follow-up idempotently
  7. GET /rest/v1.0/companies/{company_id}/crm/activities/{id}/historyRead retained company intake history for scoped CRM record
  8. POST /rest/v1.0/companies/{company_id}/crm/activities/{id}/restoreRestore archived CRM follow-up
  9. GET /rest/v1.0/companies/{company_id}/crm/activities/calendarDownload open company intake CRM follow-ups as an iCalendar file
  10. POST /rest/v1.0/companies/{company_id}/crm/contact_importsCommit a reviewed create-only company contact import
  11. GET /rest/v1.0/companies/{company_id}/crm/contact_imports/{id}Read a company contact import receipt
  12. POST /rest/v1.0/companies/{company_id}/crm/contact_imports/previewPreview a bounded create-only company contact import
  13. GET /rest/v1.0/companies/{company_id}/crm/contactsList contacts
  14. POST /rest/v1.0/companies/{company_id}/crm/contactsCreate contact
  15. GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}Get contact
  16. PATCH /rest/v1.0/companies/{company_id}/crm/contacts/{id}Update contact
  17. DELETE /rest/v1.0/companies/{company_id}/crm/contacts/{id}Archive CRM contact
  18. POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/associateAssociate reviewed intake aggregate to existing project
  19. GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/association_previewPreview aggregate record counts before association
  20. GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/historyRead retained company intake history for scoped CRM record
  21. POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/mergeMerge a duplicate contact into another
  22. GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/personGet explicit master person link
  23. PUT /rest/v1.0/companies/{company_id}/crm/contacts/{id}/personLink contact to master person
  24. DELETE /rest/v1.0/companies/{company_id}/crm/contacts/{id}/personUnlink contact from master person
  25. POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/restoreRestore archived CRM contact
  26. GET /rest/v1.0/companies/{company_id}/crm/contacts/duplicatesFind likely duplicate contacts
  27. GET /rest/v1.0/companies/{company_id}/crm/contacts/exportExport one audited page of company intake contacts as CSV
  28. GET /rest/v1.0/companies/{company_id}/crm/forecastCurrent advisory opportunity forecast and observable stage aging
  29. GET /rest/v1.0/companies/{company_id}/crm/growth_cohortsCurrent-state opportunity outcome cohorts by UTC creation month and staff-attributed source
  30. GET /rest/v1.0/companies/{company_id}/crm/lead_formsList company lead intake forms
  31. POST /rest/v1.0/companies/{company_id}/crm/lead_formsCreate company lead intake form
  32. PATCH /rest/v1.0/companies/{company_id}/crm/lead_forms/{id}Update or deactivate lead intake form
  33. POST /rest/v1.0/companies/{company_id}/crm/lead_forms/{id}/rotateRotate lead intake form public token
  34. GET /rest/v1.0/companies/{company_id}/crm/lead_inquiriesList private company lead inquiries
  35. GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}Show private lead inquiry
  36. GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/conversion_previewPreview lead inquiry conversion and possible duplicates
  37. POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/convertConvert reviewed inquiry to company CRM contact and optional opportunity
  38. POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/dismissDismiss a private lead inquiry with reason
  39. POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/responsesRecord a staff-reported customer response
  40. POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/responses/{response_event_id}/voidVoid a mistaken staff-reported response
  41. PATCH /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/triageAssign and prioritize an unhandled inquiry
  42. GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/triage_eventsList private inquiry triage and response history
  43. GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/assignable_membersList eligible company inquiry reviewers
  44. GET /rest/v1.0/companies/{company_id}/crm/membersList company members and explicit CRM grants
  45. PATCH /rest/v1.0/companies/{company_id}/crm/members/{id}Set or revoke explicit company CRM grant
  46. PUT /rest/v1.0/companies/{company_id}/crm/members/{id}Set or revoke explicit company CRM grant
  47. GET /rest/v1.0/companies/{company_id}/crm/members/{id}/historyRead durable company CRM grant change history
  48. GET /rest/v1.0/companies/{company_id}/crm/opportunitiesList opportunities
  49. POST /rest/v1.0/companies/{company_id}/crm/opportunitiesCreate opportunity
  50. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}Get opportunity
  51. PATCH /rest/v1.0/companies/{company_id}/crm/opportunities/{id}Update opportunity
  52. DELETE /rest/v1.0/companies/{company_id}/crm/opportunities/{id}Archive CRM opportunity
  53. POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/associateAssociate reviewed intake aggregate to existing project
  54. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/association_previewPreview aggregate record counts before association
  55. POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/create_projectCreate one project from explicitly reviewed Won opportunity
  56. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/forecast_historyPaginated immutable opportunity forecast input history
  57. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/historyRead retained company intake history for scoped CRM record
  58. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/project_handoffRecover the prior project receipt after source leaves intake
  59. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/project_handoff_previewReview Won opportunity and every related record moved into a new project
  60. POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/restoreRestore archived CRM opportunity
  61. GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/source_historyPaginated staff-attributed opportunity source history
  62. GET /rest/v1.0/companies/{company_id}/crm/organizationsList CRM organizations
  63. POST /rest/v1.0/companies/{company_id}/crm/organizationsCreate CRM organization
  64. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}Get CRM organization
  65. PATCH /rest/v1.0/companies/{company_id}/crm/organizations/{id}Update CRM organization
  66. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/aliasesList identities resolved to this canonical identity
  67. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/duplicate_candidatesSuggest possible duplicate identities; review required
  68. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/historyList organization history
  69. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/peopleList organization people
  70. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projectsList visible organization project roles
  71. POST /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projectsAdd organization project role
  72. DELETE /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projects/{role_id}Remove organization project role
  73. PUT /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolutionResolve duplicate to canonical identity
  74. DELETE /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolutionUndo duplicate resolution
  75. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolution_previewPreview reversible duplicate resolution
  76. GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/timelineList explicit organization affiliations, visible project roles and identity events
  77. GET /rest/v1.0/companies/{company_id}/crm/peopleList CRM people
  78. POST /rest/v1.0/companies/{company_id}/crm/peopleCreate CRM person
  79. GET /rest/v1.0/companies/{company_id}/crm/people/{id}Get CRM person
  80. PATCH /rest/v1.0/companies/{company_id}/crm/people/{id}Update CRM person
  81. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliationsList person affiliations
  82. POST /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliationsAdd person affiliation
  83. PATCH /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations/{affiliation_id}Update person affiliation
  84. DELETE /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations/{affiliation_id}Remove person affiliation
  85. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/aliasesList identities resolved to this canonical identity
  86. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferencesRead recorded communication preferences for a person and resolved aliases
  87. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferences/eventsList append-only communication preference evidence across a person and resolved aliases
  88. POST /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferences/eventsRecord an immutable communication preference event on a person or resolved alias
  89. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/contactsList visible scoped contacts for person
  90. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/duplicate_candidatesSuggest possible duplicate identities; review required
  91. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/historyList person history
  92. PUT /rest/v1.0/companies/{company_id}/crm/people/{id}/resolutionResolve duplicate to canonical identity
  93. DELETE /rest/v1.0/companies/{company_id}/crm/people/{id}/resolutionUndo duplicate resolution
  94. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/resolution_previewPreview reversible duplicate resolution
  95. GET /rest/v1.0/companies/{company_id}/crm/people/{id}/timelineList the permission-scoped relationship timeline for a person and resolved aliases
  96. GET /rest/v1.0/companies/{company_id}/crm/projectsList eligible active destination projects
  97. GET /rest/v1.0/companies/{company_id}/crm/summaryCRM totals and exact USD pipeline forecast
  98. GET /rest/v1.0/projects/{project_id}/crm/action_centerRead the project CRM Action Center
  99. GET /rest/v1.0/projects/{project_id}/crm/activitiesList activities
  100. POST /rest/v1.0/projects/{project_id}/crm/activitiesCreate activity
  101. GET /rest/v1.0/projects/{project_id}/crm/activities/{id}Get CRM follow-up
  102. PATCH /rest/v1.0/projects/{project_id}/crm/activities/{id}Edit an open CRM follow-up using its current updated_at value
  103. DELETE /rest/v1.0/projects/{project_id}/crm/activities/{id}Archive CRM follow-up
  104. POST /rest/v1.0/projects/{project_id}/crm/activities/{id}/completeComplete follow-up idempotently
  105. GET /rest/v1.0/projects/{project_id}/crm/activities/{id}/historyRead retained company intake history for scoped CRM record
  106. POST /rest/v1.0/projects/{project_id}/crm/activities/{id}/restoreRestore archived CRM follow-up
  107. GET /rest/v1.0/projects/{project_id}/crm/activities/calendarDownload open project CRM follow-ups as an iCalendar file
  108. GET /rest/v1.0/projects/{project_id}/crm/contactsList contacts
  109. POST /rest/v1.0/projects/{project_id}/crm/contactsCreate contact
  110. GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}Get contact
  111. PATCH /rest/v1.0/projects/{project_id}/crm/contacts/{id}Update contact
  112. DELETE /rest/v1.0/projects/{project_id}/crm/contacts/{id}Archive CRM contact
  113. GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}/historyRead retained company intake history for scoped CRM record
  114. POST /rest/v1.0/projects/{project_id}/crm/contacts/{id}/mergeMerge a duplicate contact into another
  115. GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}/personGet explicit master person link
  116. PUT /rest/v1.0/projects/{project_id}/crm/contacts/{id}/personLink contact to master person
  117. DELETE /rest/v1.0/projects/{project_id}/crm/contacts/{id}/personUnlink contact from master person
  118. POST /rest/v1.0/projects/{project_id}/crm/contacts/{id}/restoreRestore archived CRM contact
  119. GET /rest/v1.0/projects/{project_id}/crm/contacts/duplicatesFind likely duplicate contacts
  120. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requestsList customer decision requests for staff
  121. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requestsCreate private customer decision draft
  122. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}Show customer decision request to staff
  123. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/correctCorrect decision request before customer response
  124. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/publishPublish decision request to one exact customer grant
  125. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/withdrawWithdraw unanswered decision request
  126. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/document_sharesList staff customer document shares
  127. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_sharesCreate a private customer document-share draft
  128. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}Show staff customer document-share history
  129. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}/publishPublish reviewed document to exact customer grants
  130. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}/withdrawWithdraw a customer document share
  131. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/grantsList current and revoked project contact grants
  132. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/grants/{id}/revokeRevoke a project contact grant and invalidate its access
  133. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/invitationsList reviewed customer access invitations
  134. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/invitationsIssue a one-time project contact invitation after staff review
  135. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/invitations/{id}/revokeRevoke a customer invitation
  136. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updatesList staff-reviewed customer project updates
  137. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updatesCreate a private customer project update draft
  138. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}Show staff-only project update and retained history
  139. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/correctAppend a reasoned correction to a draft or publication
  140. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/publishPublish an exact grant-scoped customer project update
  141. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/withdrawWithdraw a published customer project update
  142. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requestsList customer-submitted service requests for staff review
  143. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}Read a customer submission with staff intake metadata
  144. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/evidenceList customer-supplied service request evidence for project staff
  145. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/evidence/{evidence_id}/downloadDownload one customer-supplied service request evidence file
  146. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/intakeTake a customer submission into a staff service case
  147. GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/messagesList customer-authored follow-up messages on a project service request for staff
  148. POST /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/publishPublish a selected customer-visible service status and message
  149. GET /rest/v1.0/projects/{project_id}/crm/forecastCurrent advisory opportunity forecast and observable stage aging
  150. GET /rest/v1.0/projects/{project_id}/crm/growth_cohortsCurrent-state opportunity outcome cohorts by UTC creation month and staff-attributed source
  151. GET /rest/v1.0/projects/{project_id}/crm/installed_assetsList project installed assets
  152. POST /rest/v1.0/projects/{project_id}/crm/installed_assetsRecord an installed asset with handoff provenance
  153. GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}Read an installed asset and its change history
  154. PATCH /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}Version-check an installed asset correction
  155. GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/eventsPage through installed asset change history
  156. POST /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/retireRetire an installed asset with a version-checked note
  157. GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/service_casesRead retained service-case history for an asset
  158. GET /rest/v1.0/projects/{project_id}/crm/opportunitiesList opportunities
  159. POST /rest/v1.0/projects/{project_id}/crm/opportunitiesCreate opportunity
  160. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}Get opportunity
  161. PATCH /rest/v1.0/projects/{project_id}/crm/opportunities/{id}Update opportunity
  162. DELETE /rest/v1.0/projects/{project_id}/crm/opportunities/{id}Archive CRM opportunity
  163. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/bidding_handoffsList reviewed proposal-to-bidding handoff receipts for an opportunity
  164. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/forecast_historyPaginated immutable opportunity forecast input history
  165. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/historyRead retained company intake history for scoped CRM record
  166. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposalsList proposal revisions for a project opportunity
  167. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposalsCapture the current opportunity as a new draft proposal revision
  168. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}Show a proposal revision
  169. PATCH /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}Edit the current draft as its author
  170. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoffRead an internal proposal-to-bidding handoff receipt
  171. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoffCreate an internal draft bidding package from a reviewed CRM proposal
  172. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoff/review_previewReview an approved proposal before creating an internal draft bidding package
  173. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responsesList staff-recorded customer response evidence for an exact proposal revision
  174. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responsesRecord a staff-reported customer response with reviewed proposal and recipient evidence
  175. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses/{response_id}/voidVoid a staff-recorded response with a retained reason
  176. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses/review_previewReview the current approved proposal and selected recipient before recording a staff response
  177. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offersList frozen customer offers for an exact proposal revision
  178. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offersFreeze the current approved proposal as a customer offer and create a one-use unsent invitation link
  179. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidenceList staff-reported, unverified offer recipient authority evidence
  180. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidenceRecord a staff observation of the exact offer recipient's claimed authority
  181. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidence/{evidence_id}/voidVoid a staff-reported authority observation while retaining its history
  182. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/deliveriesList private offer email dispatch attempts and signed delivery events
  183. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/deliveriesSubmit a new one-use offer link to the configured email provider once
  184. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviewsList exact-grant staff identity evidence reviews for an offer
  185. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviewsSubmit staff identity evidence for exact customer grant and frozen offer
  186. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviews/{review_id}/decisionsIndependently approve, reject or revoke a staff identity evidence review
  187. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/revokeRevoke a customer offer invitation and all open portal sessions
  188. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/reviewApprove or reject a submitted proposal for internal review
  189. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/review_previewReview the current submitted proposal and obtain a fresh review token
  190. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/submitSubmit the current draft for internal review
  191. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/withdrawWithdraw the current draft or submitted proposal with a retained reason
  192. POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/restoreRestore archived CRM opportunity
  193. GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/source_historyPaginated staff-attributed opportunity source history
  194. GET /rest/v1.0/projects/{project_id}/crm/service_casesList private project customer service cases
  195. POST /rest/v1.0/projects/{project_id}/crm/service_casesRecord a staff-reported customer service request
  196. GET /rest/v1.0/projects/{project_id}/crm/service_cases/{id}Read a private service case and event history
  197. PATCH /rest/v1.0/projects/{project_id}/crm/service_cases/{id}Record a version-checked service case update
  198. GET /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/asset_linksList active installed assets linked to a service case
  199. POST /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/asset_linksLink a same-project active installed asset to a service case
  200. DELETE /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/asset_links/{link_id}Remove a case-to-asset association and retain history
  201. GET /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/work_linksList currently visible field work linked to a service case
  202. POST /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/work_linksLink one currently visible field work item to a service case
  203. DELETE /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/work_links/{link_id}Remove a currently visible service-to-field-work association
  204. GET /rest/v1.0/projects/{project_id}/crm/service_cases/response_queueRead the permission-scoped staff first-response worklist
  205. GET /rest/v1.0/projects/{project_id}/crm/summaryCRM totals and exact USD pipeline forecast
  206. GET /rest/v1.0/projects/{project_id}/crm/warranty_coveragesList reviewed project warranty coverage evidence
  207. POST /rest/v1.0/projects/{project_id}/crm/warranty_coveragesRecord reviewed project warranty coverage evidence
  208. GET /rest/v1.0/projects/{project_id}/crm/warranty_coverages/{id}Read one private project warranty coverage source
GET /rest/v1.0/companies/{company_id}/crm/activities

List activities

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[status]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[opportunity_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/activities

Create activity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Request body

  • activity
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/activities/{id}

Get CRM follow-up

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/activities/{id}

Edit an open CRM follow-up using its current updated_at value

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • activity
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/companies/{company_id}/crm/activities/{id}

Archive CRM follow-up

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

POST /rest/v1.0/companies/{company_id}/crm/activities/{id}/complete

Complete follow-up idempotently

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/activities/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/activities/{id}/restore

Restore archived CRM follow-up

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/companies/{company_id}/crm/activities/calendar

Download open company intake CRM follow-ups as an iCalendar file

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • search
    stringquery
  • filters[status]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[opportunity_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · string

No documented fields.

POST /rest/v1.0/companies/{company_id}/crm/contact_imports

Commit a reviewed create-only company contact import

v1.0Implemented

Parameters

  • company_id
    stringpathrequired

Request body

  • import
    objectrequired

Response · 200 · CrmContactImportReceipt

  • id
    integerrequired
  • company_id
    integerrequired
  • source_key
    stringrequired
  • request_key
    string (uuid)required
  • payload_sha256
    stringrequired
  • review_sha256
    stringrequired
  • acknowledged_duplicates
    booleanrequired
  • row_count
    integerrequired
  • created_count
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • rows
    object[]required
  • idempotent
    boolean
GET /rest/v1.0/companies/{company_id}/crm/contact_imports/{id}

Read a company contact import receipt

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmContactImportReceipt

  • id
    integerrequired
  • company_id
    integerrequired
  • source_key
    stringrequired
  • request_key
    string (uuid)required
  • payload_sha256
    stringrequired
  • review_sha256
    stringrequired
  • acknowledged_duplicates
    booleanrequired
  • row_count
    integerrequired
  • created_count
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • rows
    object[]required
  • idempotent
    boolean
POST /rest/v1.0/companies/{company_id}/crm/contact_imports/preview

Preview a bounded create-only company contact import

v1.0Implemented

Parameters

  • company_id
    stringpathrequired

Request body

  • import
    objectrequired

Response · 200 · CrmContactImportPreview

  • source_key
    stringrequired
  • payload_sha256
    stringrequired
  • review_sha256
    stringrequired
  • row_count
    integerrequired
  • valid_count
    integerrequired
  • error_count
    integerrequired
  • duplicate_suggestion_count
    integerrequired
  • rows
    object[]required
GET /rest/v1.0/companies/{company_id}/crm/contacts

List contacts

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[relationship]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/contacts

Create contact

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Request body

  • contact
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}

Get contact

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/contacts/{id}

Update contact

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • contact
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/companies/{company_id}/crm/contacts/{id}

Archive CRM contact

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/associate

Associate reviewed intake aggregate to existing project

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • association
    objectrequired

Response · 200 · object

  • row
    objectrequired
  • transferred
    objectrequired
GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/association_preview

Preview aggregate record counts before association

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • contacts
    integerrequired
  • opportunities
    integerrequired
  • activities
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/merge

Merge a duplicate contact into another

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • merge
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/contacts/{id}/person

Get explicit master person link

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object | null

  • person_id
    integerrequired
  • person_name
    stringrequired
PUT /rest/v1.0/companies/{company_id}/crm/contacts/{id}/person

Link contact to master person

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • person_link
    objectrequired

Response · 200 · object

  • person_id
    integerrequired
  • person_name
    stringrequired
DELETE /rest/v1.0/companies/{company_id}/crm/contacts/{id}/person

Unlink contact from master person

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · null

No documented fields.

POST /rest/v1.0/companies/{company_id}/crm/contacts/{id}/restore

Restore archived CRM contact

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/companies/{company_id}/crm/contacts/duplicates

Find likely duplicate contacts

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • email
    stringquery
  • first_name
    stringquery
  • last_name
    stringquery
  • organization
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/contacts/export

Export one audited page of company intake contacts as CSV

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • after_id
    integerquery
  • snapshot_max_id
    integerquery

Response · 200 · string

No documented fields.

GET /rest/v1.0/companies/{company_id}/crm/forecast

Current advisory opportunity forecast and observable stage aging

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Response · 200 · object

  • as_of
    string (date-time)required
  • currency
    anyrequired
  • open_count
    integerrequired
  • open_amount
    stringrequired
  • weighted_amount
    stringrequired
  • overdue_close_count
    integerrequired
  • unobserved_stage_aging_count
    integerrequired
  • observed_stage_age
    objectrequired
  • stages
    object[]required
  • transitions
    object[]required
GET /rest/v1.0/companies/{company_id}/crm/growth_cohorts

Current-state opportunity outcome cohorts by UTC creation month and staff-attributed source

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • months
    integerquery

Response · 200 · object

  • as_of
    string (date-time)required
  • months
    integerrequired
  • from_month
    stringrequired
  • rows
    object[]required
GET /rest/v1.0/companies/{company_id}/crm/lead_forms

List company lead intake forms

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Response · 200 · CrmLeadFormList

  • rows
    CrmLeadForm[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
POST /rest/v1.0/companies/{company_id}/crm/lead_forms

Create company lead intake form

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Request body

  • form
    objectrequired

Response · 201 · CrmLeadFormTokenReceipt

  • form
    CrmLeadFormrequired
  • public_token
    stringrequired
PATCH /rest/v1.0/companies/{company_id}/crm/lead_forms/{id}

Update or deactivate lead intake form

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • form
    objectrequired

Response · 200 · CrmLeadForm

  • id
    integerrequired
  • company_id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • active
    booleanrequired
  • version
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/lead_forms/{id}/rotate

Rotate lead intake form public token

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmLeadFormTokenReceipt

  • form
    CrmLeadFormrequired
  • public_token
    stringrequired
GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries

List private company lead inquiries

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • status
    stringquery
  • queue
    stringquery
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmLeadInquiryList

  • rows
    CrmLeadInquiry[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}

Show private lead inquiry

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmLeadInquiry

  • id
    integerrequired
  • company_id
    integerrequired
  • form_id
    integerrequired
  • request_key
    stringrequired
  • status
    stringrequired
  • version
    integerrequired
  • submitted_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    stringrequired
  • phone
    string | null
  • organization
    string | null
  • project_type
    string | null
  • project_location
    string | null
  • desired_start_date
    string | null
  • project_summary
    stringrequired
  • description
    stringrequired
  • marketing_consent
    boolean
  • assigned_to_id
    integer | nullrequired
  • priority
    stringrequired
  • response_due_at
    string | null (date-time)required
  • first_responded_at
    string | null (date-time)required
  • reviewed_at
    string | null
  • reviewed_by_id
    integer | null
  • review_reason
    string | null
  • converted_contact_id
    integer | null
  • converted_opportunity_id
    integer | null
GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/conversion_preview

Preview lead inquiry conversion and possible duplicates

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmLeadConversionPreview

  • inquiry
    CrmLeadInquiryrequired
  • duplicate_candidates
    object[]required
  • review_sha256
    stringrequired
POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/convert

Convert reviewed inquiry to company CRM contact and optional opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • conversion
    objectrequired

Response · 200 · CrmLeadConversionReceipt

  • inquiry
    CrmLeadInquiryrequired
  • contact_id
    integerrequired
  • opportunity_id
    integer | nullrequired
  • idempotent
    booleanrequired
POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/dismiss

Dismiss a private lead inquiry with reason

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • dismissal
    objectrequired

Response · 200 · CrmLeadInquiry

  • id
    integerrequired
  • company_id
    integerrequired
  • form_id
    integerrequired
  • request_key
    stringrequired
  • status
    stringrequired
  • version
    integerrequired
  • submitted_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    stringrequired
  • phone
    string | null
  • organization
    string | null
  • project_type
    string | null
  • project_location
    string | null
  • desired_start_date
    string | null
  • project_summary
    stringrequired
  • description
    stringrequired
  • marketing_consent
    boolean
  • assigned_to_id
    integer | nullrequired
  • priority
    stringrequired
  • response_due_at
    string | null (date-time)required
  • first_responded_at
    string | null (date-time)required
  • reviewed_at
    string | null
  • reviewed_by_id
    integer | null
  • review_reason
    string | null
  • converted_contact_id
    integer | null
  • converted_opportunity_id
    integer | null
POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/responses

Record a staff-reported customer response

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • response
    objectrequired

Response · 201 · CrmLeadTriageReceipt

  • inquiry
    CrmLeadInquiryrequired
  • event
    CrmLeadTriageEventrequired
POST /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/responses/{response_event_id}/void

Void a mistaken staff-reported response

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired
  • response_event_id
    integerpathrequired

Request body

  • void
    objectrequired

Response · 200 · CrmLeadTriageReceipt

  • inquiry
    CrmLeadInquiryrequired
  • event
    CrmLeadTriageEventrequired
PATCH /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/triage

Assign and prioritize an unhandled inquiry

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • triage
    objectrequired

Response · 200 · CrmLeadTriageReceipt

  • inquiry
    CrmLeadInquiryrequired
  • event
    CrmLeadTriageEventrequired
GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/{id}/triage_events

List private inquiry triage and response history

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmLeadTriageEventList

  • rows
    CrmLeadTriageEvent[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/lead_inquiries/assignable_members

List eligible company inquiry reviewers

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmLeadAssignableMembers

  • rows
    object[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/members

List company members and explicit CRM grants

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery
  • search
    stringquery

Response · 200 · object[]

  • user_id
    integerrequired
  • name
    stringrequired
  • email
    stringrequired
  • is_active
    booleanrequired
  • is_admin
    booleanrequired
  • level
    anyrequired
  • effective_level
    anyrequired
  • updated_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/members/{id}

Set or revoke explicit company CRM grant

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • crm_grant
    objectrequired

Response · 200 · object

  • user_id
    integerrequired
  • name
    stringrequired
  • email
    stringrequired
  • is_active
    booleanrequired
  • is_admin
    booleanrequired
  • level
    anyrequired
  • effective_level
    anyrequired
  • updated_at
    string | null (date-time)required
PUT /rest/v1.0/companies/{company_id}/crm/members/{id}

Set or revoke explicit company CRM grant

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • crm_grant
    objectrequired

Response · 200 · object

  • user_id
    integerrequired
  • name
    stringrequired
  • email
    stringrequired
  • is_active
    booleanrequired
  • is_admin
    booleanrequired
  • level
    anyrequired
  • effective_level
    anyrequired
  • updated_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/members/{id}/history

Read durable company CRM grant change history

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/opportunities

List opportunities

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[stage]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/opportunities

Create opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Request body

  • opportunity
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}

Get opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/opportunities/{id}

Update opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • opportunity
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/companies/{company_id}/crm/opportunities/{id}

Archive CRM opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/associate

Associate reviewed intake aggregate to existing project

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • association
    objectrequired

Response · 200 · object

  • row
    objectrequired
  • transferred
    objectrequired
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/association_preview

Preview aggregate record counts before association

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • contacts
    integerrequired
  • opportunities
    integerrequired
  • activities
    integerrequired
POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/create_project

Create one project from explicitly reviewed Won opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • handoff
    objectrequired

Response · 200 · object

  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • transferred
    objectrequired
  • replayed
    booleanrequired
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/forecast_history

Paginated immutable opportunity forecast input history

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • events
    object[]required
  • total
    integerrequired
  • page
    integerrequired
  • per_page
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/project_handoff

Recover the prior project receipt after source leaves intake

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object | null

  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • transferred
    objectrequired
  • replayed
    booleanrequired
GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/project_handoff_preview

Review Won opportunity and every related record moved into a new project

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • review_token
    stringrequired
  • transferred
    objectrequired
  • contact
    null | objectrequired
  • related_opportunities
    object[]required
  • related_activities
    object[]required
  • defaults
    objectrequired
POST /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/restore

Restore archived CRM opportunity

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/companies/{company_id}/crm/opportunities/{id}/source_history

Paginated staff-attributed opportunity source history

v1.0Implemented

Parameters

  • company_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • events
    object[]required
  • total
    integerrequired
  • page
    integerrequired
  • per_page
    integerrequired
GET /rest/v1.0/companies/{company_id}/crm/organizations

List CRM organizations

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • search
    stringquery
  • company_id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/organizations

Create CRM organization

v1.0Implemented

Parameters

  • company_id
    stringpathrequired

Request body

  • organization
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}

Get CRM organization

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/organizations/{id}

Update CRM organization

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • organization
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/aliases

List identities resolved to this canonical identity

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/duplicate_candidates

Suggest possible duplicate identities; review required

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
  • match_reasons
    string[]required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/history

List organization history

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/people

List organization people

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • person_id
    integerrequired
  • person_name
    stringrequired
  • role
    stringrequired
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projects

List visible organization project roles

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • organization_id
    integer
  • project_id
    integerrequired
  • project_name
    string
  • role
    stringrequired
POST /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projects

Add organization project role

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • project_role
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • organization_id
    integer
  • project_id
    integerrequired
  • project_name
    string
  • role
    stringrequired
DELETE /rest/v1.0/companies/{company_id}/crm/organizations/{id}/projects/{role_id}

Remove organization project role

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired
  • role_id
    stringpathrequired

Response · 200 · object

  • removed
    booleanrequired
PUT /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolution

Resolve duplicate to canonical identity

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • resolution
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
DELETE /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolution

Undo duplicate resolution

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • resolution
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • name
    stringrequired
  • website
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/resolution_preview

Preview reversible duplicate resolution

v1.0Implemented

Parameters

  • canonical_id
    integerqueryrequired
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object

  • source
    objectrequired
  • canonical
    objectrequired
  • source_links
    objectrequired
  • canonical_links
    objectrequired
  • review_token
    stringrequired
GET /rest/v1.0/companies/{company_id}/crm/organizations/{id}/timeline

List explicit organization affiliations, visible project roles and identity events

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmTimelineItem[]

  • kind
    stringrequired
  • source_id
    integerrequired
  • identity_id
    integerrequired
  • occurred_at
    string (date-time)required
  • project_id
    integer | nullrequired
  • project_name
    string | nullrequired
  • title
    stringrequired
  • detail
    string | nullrequired
  • href
    string | nullrequired
GET /rest/v1.0/companies/{company_id}/crm/people

List CRM people

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • search
    stringquery
  • company_id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/people

Create CRM person

v1.0Implemented

Parameters

  • company_id
    stringpathrequired

Request body

  • person
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}

Get CRM person

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
PATCH /rest/v1.0/companies/{company_id}/crm/people/{id}

Update CRM person

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • person
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations

List person affiliations

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • organization_id
    integerrequired
  • person_id
    integer
  • organization_name
    string
  • role
    stringrequired
POST /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations

Add person affiliation

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • affiliation
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • organization_id
    integerrequired
  • person_id
    integer
  • organization_name
    string
  • role
    stringrequired
PATCH /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations/{affiliation_id}

Update person affiliation

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired
  • affiliation_id
    stringpathrequired

Request body

  • affiliation
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • organization_id
    integerrequired
  • person_id
    integer
  • organization_name
    string
  • role
    stringrequired
DELETE /rest/v1.0/companies/{company_id}/crm/people/{id}/affiliations/{affiliation_id}

Remove person affiliation

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired
  • affiliation_id
    stringpathrequired

Response · 200 · object

  • removed
    booleanrequired
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/aliases

List identities resolved to this canonical identity

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferences

Read recorded communication preferences for a person and resolved aliases

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmPreferenceSummary

  • primary_person_id
    integerrequired
  • current_contact_points
    objectrequired
  • effective
    CrmPreferenceEffective[]required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferences/events

List append-only communication preference evidence across a person and resolved aliases

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmPreferenceEvent[]

  • id
    integerrequired
  • identity_id
    integerrequired
  • channel
    stringrequired
  • purpose
    stringrequired
  • status
    stringrequired
  • source
    stringrequired
  • evidence
    stringrequired
  • contact_point
    string | nullrequired
  • observed_at
    string (date-time)required
  • actor_id
    integerrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/companies/{company_id}/crm/people/{id}/communication_preferences/events

Record an immutable communication preference event on a person or resolved alias

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • preference_event
    objectrequired

Response · 201 · CrmPreferenceEvent

  • id
    integerrequired
  • identity_id
    integerrequired
  • channel
    stringrequired
  • purpose
    stringrequired
  • status
    stringrequired
  • source
    stringrequired
  • evidence
    stringrequired
  • contact_point
    string | nullrequired
  • observed_at
    string (date-time)required
  • actor_id
    integerrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/contacts

List visible scoped contacts for person

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • project_id
    integer | nullrequired
  • project_name
    string | nullrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • role
    string | nullrequired
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/duplicate_candidates

Suggest possible duplicate identities; review required

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
  • match_reasons
    string[]required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/history

List person history

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
PUT /rest/v1.0/companies/{company_id}/crm/people/{id}/resolution

Resolve duplicate to canonical identity

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • resolution
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
DELETE /rest/v1.0/companies/{company_id}/crm/people/{id}/resolution

Undo duplicate resolution

v1.0Implemented

Parameters

  • company_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • resolution
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • first_name
    stringrequired
  • last_name
    stringrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • notes
    string | nullrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • canonical_id
    integer | nullrequired
  • resolved_at
    string | null (date-time)required
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/resolution_preview

Preview reversible duplicate resolution

v1.0Implemented

Parameters

  • canonical_id
    integerqueryrequired
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object

  • source
    objectrequired
  • canonical
    objectrequired
  • source_links
    objectrequired
  • canonical_links
    objectrequired
  • review_token
    stringrequired
GET /rest/v1.0/companies/{company_id}/crm/people/{id}/timeline

List the permission-scoped relationship timeline for a person and resolved aliases

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • company_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmTimelineItem[]

  • kind
    stringrequired
  • source_id
    integerrequired
  • identity_id
    integerrequired
  • occurred_at
    string (date-time)required
  • project_id
    integer | nullrequired
  • project_name
    string | nullrequired
  • title
    stringrequired
  • detail
    string | nullrequired
  • href
    string | nullrequired
GET /rest/v1.0/companies/{company_id}/crm/projects

List eligible active destination projects

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • name
    stringrequired
GET /rest/v1.0/companies/{company_id}/crm/summary

CRM totals and exact USD pipeline forecast

v1.0Implemented

Parameters

  • company_id
    integerpathrequired

Response · 200 · object

  • contacts
    integerrequired
  • openOpportunities
    integerrequired
  • wonOpportunities
    integerrequired
  • overdueActivities
    integerrequired
  • openAmount
    stringrequired
  • weightedAmount
    stringrequired
  • currency
    anyrequired
GET /rest/v1.0/projects/{project_id}/crm/action_center

Read the project CRM Action Center

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • kind
    stringquery
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • as_of
    string (date-time)required
  • window_end
    string (date-time)required
  • kind
    string | nullrequired
  • total
    integerrequired
  • summary
    objectrequired
  • rows
    object[]required
GET /rest/v1.0/projects/{project_id}/crm/activities

List activities

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[status]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[opportunity_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/activities

Create activity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • activity
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/activities/{id}

Get CRM follow-up

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/projects/{project_id}/crm/activities/{id}

Edit an open CRM follow-up using its current updated_at value

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • activity
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/projects/{project_id}/crm/activities/{id}

Archive CRM follow-up

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

POST /rest/v1.0/projects/{project_id}/crm/activities/{id}/complete

Complete follow-up idempotently

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • kind
    anyrequired
  • contact_id
    integer | nullrequired
  • opportunity_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • due_at
    string | null (date-time)required
  • completed_at
    string | null (date-time)required
  • notes
    string | nullrequired
  • outcome
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/activities/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/activities/{id}/restore

Restore archived CRM follow-up

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/projects/{project_id}/crm/activities/calendar

Download open project CRM follow-ups as an iCalendar file

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • search
    stringquery
  • filters[status]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[opportunity_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · string

No documented fields.

GET /rest/v1.0/projects/{project_id}/crm/contacts

List contacts

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[relationship]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/contacts

Create contact

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • contact
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}

Get contact

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/projects/{project_id}/crm/contacts/{id}

Update contact

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • contact
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/projects/{project_id}/crm/contacts/{id}

Archive CRM contact

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/contacts/{id}/merge

Merge a duplicate contact into another

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • merge
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/contacts/{id}/person

Get explicit master person link

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · object | null

  • person_id
    integerrequired
  • person_name
    stringrequired
PUT /rest/v1.0/projects/{project_id}/crm/contacts/{id}/person

Link contact to master person

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired

Request body

  • person_link
    objectrequired

Response · 200 · object

  • person_id
    integerrequired
  • person_name
    stringrequired
DELETE /rest/v1.0/projects/{project_id}/crm/contacts/{id}/person

Unlink contact from master person

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · null

No documented fields.

POST /rest/v1.0/projects/{project_id}/crm/contacts/{id}/restore

Restore archived CRM contact

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/projects/{project_id}/crm/contacts/duplicates

Find likely duplicate contacts

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • email
    stringquery
  • first_name
    stringquery
  • last_name
    stringquery
  • organization
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • first_name
    stringrequired
  • last_name
    stringrequired
  • organization
    string | nullrequired
  • email
    string | nullrequired
  • phone
    string | nullrequired
  • role
    string | nullrequired
  • relationship
    anyrequired
  • source
    string | nullrequired
  • notes
    string | nullrequired
  • owner_id
    integer | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests

List customer decision requests for staff

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200 · object

  • rows
    object[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests

Create private customer decision draft

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • decision_request
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • purpose
    stringrequired
  • title
    stringrequired
  • body
    stringrequired
  • due_on
    string | null (date)required
  • options
    object[]required
  • state
    stringrequired
  • version
    integerrequired
  • recipient_grant_id
    integer | nullrequired
  • recipient_name
    string | nullrequired
  • recipient_email
    string | nullrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • response
    null | objectrequired
  • revisions
    object[]
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}

Show customer decision request to staff

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • purpose
    stringrequired
  • title
    stringrequired
  • body
    stringrequired
  • due_on
    string | null (date)required
  • options
    object[]required
  • state
    stringrequired
  • version
    integerrequired
  • recipient_grant_id
    integer | nullrequired
  • recipient_name
    string | nullrequired
  • recipient_email
    string | nullrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • response
    null | objectrequired
  • revisions
    object[]
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/correct

Correct decision request before customer response

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • correction
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • purpose
    stringrequired
  • title
    stringrequired
  • body
    stringrequired
  • due_on
    string | null (date)required
  • options
    object[]required
  • state
    stringrequired
  • version
    integerrequired
  • recipient_grant_id
    integer | nullrequired
  • recipient_name
    string | nullrequired
  • recipient_email
    string | nullrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • response
    null | objectrequired
  • revisions
    object[]
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/publish

Publish decision request to one exact customer grant

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • publication
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • purpose
    stringrequired
  • title
    stringrequired
  • body
    stringrequired
  • due_on
    string | null (date)required
  • options
    object[]required
  • state
    stringrequired
  • version
    integerrequired
  • recipient_grant_id
    integer | nullrequired
  • recipient_name
    string | nullrequired
  • recipient_email
    string | nullrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • response
    null | objectrequired
  • revisions
    object[]
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/decision_requests/{id}/withdraw

Withdraw unanswered decision request

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • withdrawal
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • purpose
    stringrequired
  • title
    stringrequired
  • body
    stringrequired
  • due_on
    string | null (date)required
  • options
    object[]required
  • state
    stringrequired
  • version
    integerrequired
  • recipient_grant_id
    integer | nullrequired
  • recipient_name
    string | nullrequired
  • recipient_email
    string | nullrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • response
    null | objectrequired
  • revisions
    object[]
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares

List staff customer document shares

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200 · object

  • rows
    CrmCustomerDocumentShare[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares

Create a private customer document-share draft

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • share
    objectrequired

Response · 201 · CrmCustomerDocumentShare

  • id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • filename
    stringrequired
  • content_type
    stringrequired
  • size_bytes
    integerrequired
  • state
    stringrequired
  • version
    integerrequired
  • source_file_id
    integerrequired
  • source_version_id
    integerrequired
  • source_review_needed
    booleanrequired
  • published_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_sha256
    stringrequired
  • review_confirmed
    booleanrequired
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}

Show staff customer document-share history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmCustomerDocumentShareDetail

  • id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • filename
    stringrequired
  • content_type
    stringrequired
  • size_bytes
    integerrequired
  • state
    stringrequired
  • version
    integerrequired
  • source_file_id
    integerrequired
  • source_version_id
    integerrequired
  • source_review_needed
    booleanrequired
  • published_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • recipients
    object[]required
  • revisions
    object[]required
  • source_sha256
    stringrequired
  • review_confirmed
    booleanrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}/publish

Publish reviewed document to exact customer grants

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • publication
    objectrequired

Response · 200 · CrmCustomerDocumentShare

  • id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • filename
    stringrequired
  • content_type
    stringrequired
  • size_bytes
    integerrequired
  • state
    stringrequired
  • version
    integerrequired
  • source_file_id
    integerrequired
  • source_version_id
    integerrequired
  • source_review_needed
    booleanrequired
  • published_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_sha256
    stringrequired
  • review_confirmed
    booleanrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/document_shares/{id}/withdraw

Withdraw a customer document share

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • withdrawal
    objectrequired

Response · 200 · CrmCustomerDocumentShare

  • id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • filename
    stringrequired
  • content_type
    stringrequired
  • size_bytes
    integerrequired
  • state
    stringrequired
  • version
    integerrequired
  • source_file_id
    integerrequired
  • source_version_id
    integerrequired
  • source_review_needed
    booleanrequired
  • published_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_sha256
    stringrequired
  • review_confirmed
    booleanrequired
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/grants

List current and revoked project contact grants

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200

No response body.

POST /rest/v1.0/projects/{project_id}/crm/customer_portal/grants/{id}/revoke

Revoke a project contact grant and invalidate its access

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • revoke
    objectrequired

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/customer_portal/invitations

List reviewed customer access invitations

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200

No response body.

POST /rest/v1.0/projects/{project_id}/crm/customer_portal/invitations

Issue a one-time project contact invitation after staff review

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • invitation
    objectrequired

Response · 201

No response body.

POST /rest/v1.0/projects/{project_id}/crm/customer_portal/invitations/{id}/revoke

Revoke a customer invitation

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • revoke
    objectrequired

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates

List staff-reviewed customer project updates

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200 · object

  • rows
    object[]required
  • total
    integerrequired
  • skip
    integerrequired
  • take
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates

Create a private customer project update draft

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • update
    CrmCustomerProjectUpdateContentrequired

Response · 201 · object

  • id
    integerrequired
  • title
    stringrequired
  • body
    stringrequired
  • status_label
    stringrequired
  • milestone_on
    string | null (date)required
  • state
    stringrequired
  • version
    integerrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_schedule_task_id
    integer | nullrequired
  • source_review_needed
    booleanrequired
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}

Show staff-only project update and retained history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • title
    stringrequired
  • body
    stringrequired
  • status_label
    stringrequired
  • milestone_on
    string | null (date)required
  • state
    stringrequired
  • version
    integerrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_schedule_task_id
    integer | nullrequired
  • source_review_needed
    booleanrequired
  • recipients
    object[]required
  • revisions
    object[]required
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/correct

Append a reasoned correction to a draft or publication

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • correction
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • title
    stringrequired
  • body
    stringrequired
  • status_label
    stringrequired
  • milestone_on
    string | null (date)required
  • state
    stringrequired
  • version
    integerrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_schedule_task_id
    integer | nullrequired
  • source_review_needed
    booleanrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/publish

Publish an exact grant-scoped customer project update

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • publication
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • title
    stringrequired
  • body
    stringrequired
  • status_label
    stringrequired
  • milestone_on
    string | null (date)required
  • state
    stringrequired
  • version
    integerrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_schedule_task_id
    integer | nullrequired
  • source_review_needed
    booleanrequired
POST /rest/v1.0/projects/{project_id}/crm/customer_portal/project_updates/{id}/withdraw

Withdraw a published customer project update

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • withdrawal
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • title
    stringrequired
  • body
    stringrequired
  • status_label
    stringrequired
  • milestone_on
    string | null (date)required
  • state
    stringrequired
  • version
    integerrequired
  • published_at
    string | null (date-time)required
  • corrected_at
    string | null (date-time)required
  • withdrawn_at
    string | null (date-time)required
  • recipient_grant_ids
    integer[]required
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • source_schedule_task_id
    integer | nullrequired
  • source_review_needed
    booleanrequired
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests

List customer-submitted service requests for staff review

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • sort
    stringquery

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}

Read a customer submission with staff intake metadata

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/evidence

List customer-supplied service request evidence for project staff

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • rows
    CrmCustomerServiceEvidence[]required
  • total
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/evidence/{evidence_id}/download

Download one customer-supplied service request evidence file

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • evidence_id
    integerpathrequired

Response · 200 · string (binary)

No documented fields.

POST /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/intake

Take a customer submission into a staff service case

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/messages

List customer-authored follow-up messages on a project service request for staff

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200

No response body.

POST /rest/v1.0/projects/{project_id}/crm/customer_portal/service_requests/{id}/publish

Publish a selected customer-visible service status and message

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • update
    objectrequired

Response · 200

No response body.

GET /rest/v1.0/projects/{project_id}/crm/forecast

Current advisory opportunity forecast and observable stage aging

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200 · object

  • as_of
    string (date-time)required
  • currency
    anyrequired
  • open_count
    integerrequired
  • open_amount
    stringrequired
  • weighted_amount
    stringrequired
  • overdue_close_count
    integerrequired
  • unobserved_stage_aging_count
    integerrequired
  • observed_stage_age
    objectrequired
  • stages
    object[]required
  • transitions
    object[]required
GET /rest/v1.0/projects/{project_id}/crm/growth_cohorts

Current-state opportunity outcome cohorts by UTC creation month and staff-attributed source

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • months
    integerquery

Response · 200 · object

  • as_of
    string (date-time)required
  • months
    integerrequired
  • from_month
    stringrequired
  • rows
    object[]required
GET /rest/v1.0/projects/{project_id}/crm/installed_assets

List project installed assets

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • search
    stringquery
  • status
    stringquery
  • location_id
    integerquery
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmInstalledAsset[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • asset_tag
    stringrequired
  • name
    stringrequired
  • manufacturer
    string | nullrequired
  • model
    string | nullrequired
  • serial_number
    string | nullrequired
  • location_id
    integer | nullrequired
  • installed_on
    string (date) | nullrequired
  • commissioned_on
    string (date) | nullrequired
  • handoff_reference
    stringrequired
  • evidence_note
    stringrequired
  • warranty_coverage_id
    integer | nullrequired
  • status
    stringrequired
  • version
    integerrequired
  • retired_at
    string (date-time) | nullrequired
  • retired_by_id
    integer | nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmInstalledAssetEvent[]required
  • event_total
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/installed_assets

Record an installed asset with handoff provenance

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • installed_asset
    objectrequired

Response · 201 · CrmInstalledAsset

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • asset_tag
    stringrequired
  • name
    stringrequired
  • manufacturer
    string | nullrequired
  • model
    string | nullrequired
  • serial_number
    string | nullrequired
  • location_id
    integer | nullrequired
  • installed_on
    string (date) | nullrequired
  • commissioned_on
    string (date) | nullrequired
  • handoff_reference
    stringrequired
  • evidence_note
    stringrequired
  • warranty_coverage_id
    integer | nullrequired
  • status
    stringrequired
  • version
    integerrequired
  • retired_at
    string (date-time) | nullrequired
  • retired_by_id
    integer | nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmInstalledAssetEvent[]required
  • event_total
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}

Read an installed asset and its change history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmInstalledAsset

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • asset_tag
    stringrequired
  • name
    stringrequired
  • manufacturer
    string | nullrequired
  • model
    string | nullrequired
  • serial_number
    string | nullrequired
  • location_id
    integer | nullrequired
  • installed_on
    string (date) | nullrequired
  • commissioned_on
    string (date) | nullrequired
  • handoff_reference
    stringrequired
  • evidence_note
    stringrequired
  • warranty_coverage_id
    integer | nullrequired
  • status
    stringrequired
  • version
    integerrequired
  • retired_at
    string (date-time) | nullrequired
  • retired_by_id
    integer | nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmInstalledAssetEvent[]required
  • event_total
    integerrequired
PATCH /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}

Version-check an installed asset correction

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • installed_asset
    objectrequired

Response · 200 · CrmInstalledAsset

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • asset_tag
    stringrequired
  • name
    stringrequired
  • manufacturer
    string | nullrequired
  • model
    string | nullrequired
  • serial_number
    string | nullrequired
  • location_id
    integer | nullrequired
  • installed_on
    string (date) | nullrequired
  • commissioned_on
    string (date) | nullrequired
  • handoff_reference
    stringrequired
  • evidence_note
    stringrequired
  • warranty_coverage_id
    integer | nullrequired
  • status
    stringrequired
  • version
    integerrequired
  • retired_at
    string (date-time) | nullrequired
  • retired_by_id
    integer | nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmInstalledAssetEvent[]required
  • event_total
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/events

Page through installed asset change history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmInstalledAssetEvents

  • rows
    CrmInstalledAssetEvent[]required
  • total
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/retire

Retire an installed asset with a version-checked note

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • retirement
    objectrequired

Response · 200 · CrmInstalledAsset

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • asset_tag
    stringrequired
  • name
    stringrequired
  • manufacturer
    string | nullrequired
  • model
    string | nullrequired
  • serial_number
    string | nullrequired
  • location_id
    integer | nullrequired
  • installed_on
    string (date) | nullrequired
  • commissioned_on
    string (date) | nullrequired
  • handoff_reference
    stringrequired
  • evidence_note
    stringrequired
  • warranty_coverage_id
    integer | nullrequired
  • status
    stringrequired
  • version
    integerrequired
  • retired_at
    string (date-time) | nullrequired
  • retired_by_id
    integer | nullrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmInstalledAssetEvent[]required
  • event_total
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/installed_assets/{id}/service_cases

Read retained service-case history for an asset

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmAssetCaseHistory

  • rows
    CrmAssetCaseHistoryRow[]required
  • total
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities

List opportunities

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • search
    stringquery
  • page
    integerquery
  • per_page
    integerquery
  • filters[stage]
    stringquery
  • filters[contact_id]
    stringquery
  • filters[owner_id]
    stringquery

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/opportunities

Create opportunity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • opportunity
    objectrequired

Response · 201 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}

Get opportunity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
PATCH /rest/v1.0/projects/{project_id}/crm/opportunities/{id}

Update opportunity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • opportunity
    objectrequired

Response · 200 · object

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • title
    stringrequired
  • contact_id
    integer | nullrequired
  • owner_id
    integer | nullrequired
  • stage
    anyrequired
  • amount
    stringrequired
  • currency
    anyrequired
  • probability
    integerrequired
  • expected_close_date
    string | null (date)required
  • scope
    string | nullrequired
  • loss_reason
    string | nullrequired
  • source_category
    stringrequired
  • source_detail
    string | nullrequired
  • archived_at
    string | null (date-time)required
DELETE /rest/v1.0/projects/{project_id}/crm/opportunities/{id}

Archive CRM opportunity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/bidding_handoffs

List reviewed proposal-to-bidding handoff receipts for an opportunity

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmBiddingHandoff[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • revision
    integerrequired
  • bid_package_id
    integerrequired
  • package_title
    stringrequired
  • source_sha256
    stringrequired
  • transfer_snapshot
    CrmBiddingTransferSnapshotrequired
  • created_at
    string (date-time)required
  • created_by_id
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/forecast_history

Paginated immutable opportunity forecast input history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • events
    object[]required
  • total
    integerrequired
  • page
    integerrequired
  • per_page
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/history

Read retained company intake history for scoped CRM record

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · object[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integer | nullrequired
  • actor_id
    integerrequired
  • item_type
    anyrequired
  • item_id
    integerrequired
  • action
    stringrequired
  • summary
    stringrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals

List proposal revisions for a project opportunity

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmProposal[]

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals

Capture the current opportunity as a new draft proposal revision

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}

Show a proposal revision

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
PATCH /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}

Edit the current draft as its author

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • proposal
    objectrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoff

Read an internal proposal-to-bidding handoff receipt

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmBiddingHandoffRead

  • handoff
    CrmBiddingHandoff | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoff

Create an internal draft bidding package from a reviewed CRM proposal

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • handoff
    objectrequired

Response · 200 · CrmBiddingHandoffCreated

  • handoff
    CrmBiddingHandoffrequired
  • replayed
    booleanrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/bidding_handoff/review_preview

Review an approved proposal before creating an internal draft bidding package

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • handoff
    objectrequired

Response · 200 · CrmBiddingHandoffPreview

  • proposal
    CrmBiddingTransferSnapshotrequired
  • package_title
    stringrequired
  • source_sha256
    stringrequired
  • review_token
    stringrequired
  • expires_at
    string (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses

List staff-recorded customer response evidence for an exact proposal revision

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmCustomerResponse[]

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • proposal_revision
    integerrequired
  • proposal_title
    stringrequired
  • proposal_amount
    stringrequired
  • proposal_currency
    stringrequired
  • contact_id
    integerrequired
  • decision
    stringrequired
  • recipient_name
    stringrequired
  • recipient_email
    string | nullrequired
  • recipient_phone
    string | nullrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses

Record a staff-reported customer response with reviewed proposal and recipient evidence

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • customer_response
    objectrequired

Response · 200 · CrmCustomerResponse

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • proposal_revision
    integerrequired
  • proposal_title
    stringrequired
  • proposal_amount
    stringrequired
  • proposal_currency
    stringrequired
  • contact_id
    integerrequired
  • decision
    stringrequired
  • recipient_name
    stringrequired
  • recipient_email
    string | nullrequired
  • recipient_phone
    string | nullrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses/{response_id}/void

Void a staff-recorded response with a retained reason

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • response_id
    stringpathrequired

Request body

  • void
    objectrequired

Response · 200 · CrmCustomerResponse

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • proposal_revision
    integerrequired
  • proposal_title
    stringrequired
  • proposal_amount
    stringrequired
  • proposal_currency
    stringrequired
  • contact_id
    integerrequired
  • decision
    stringrequired
  • recipient_name
    stringrequired
  • recipient_email
    string | nullrequired
  • recipient_phone
    string | nullrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/customer_responses/review_preview

Review the current approved proposal and selected recipient before recording a staff response

v1.0Implemented

Parameters

  • contact_id
    integerqueryrequired
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmCustomerResponsePreview

  • proposal
    CrmProposalrequired
  • recipient
    objectrequired
  • review_token
    stringrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers

List frozen customer offers for an exact proposal revision

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmCustomerOffer[]

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • proposal_revision
    integerrequired
  • proposal_title
    stringrequired
  • proposal_amount
    stringrequired
  • currency
    stringrequired
  • contact_id
    integerrequired
  • recipient_name
    stringrequired
  • recipient_email
    string (email)required
  • delivery_state
    stringrequired
  • mailbox_verification_required
    booleanrequired
  • pdf_sha256
    stringrequired
  • created_at
    string (date-time)required
  • expires_at
    string (date-time)required
  • invitation_redeemed_at
    string | null (date-time)required
  • revoked_at
    string | null (date-time)required
  • revoked_by_id
    integer | nullrequired
  • revoke_reason
    string | nullrequired
  • response
    object | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers

Freeze the current approved proposal as a customer offer and create a one-use unsent invitation link

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • offer
    objectrequired

Response · 201 · CrmCustomerOfferCreated

  • offer
    CrmCustomerOfferrequired
  • invitation_path
    stringrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidence

List staff-reported, unverified offer recipient authority evidence

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Response · 200 · CrmOfferAuthorityEvidence[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • recipient_name
    stringrequired
  • recipient_email
    string (email)required
  • organization_name
    string | nullrequired
  • contact_role
    string | nullrequired
  • artifact_sha256
    stringrequired
  • claimed_role
    stringrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
  • assurance
    stringrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidence

Record a staff observation of the exact offer recipient's claimed authority

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Request body

  • authority_evidence
    objectrequired

Response · 200 · CrmOfferAuthorityEvidence

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • recipient_name
    stringrequired
  • recipient_email
    string (email)required
  • organization_name
    string | nullrequired
  • contact_role
    string | nullrequired
  • artifact_sha256
    stringrequired
  • claimed_role
    stringrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
  • assurance
    stringrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/authority_evidence/{evidence_id}/void

Void a staff-reported authority observation while retaining its history

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired
  • evidence_id
    stringpathrequired

Request body

  • void
    objectrequired

Response · 200 · CrmOfferAuthorityEvidence

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • recipient_name
    stringrequired
  • recipient_email
    string (email)required
  • organization_name
    string | nullrequired
  • contact_role
    string | nullrequired
  • artifact_sha256
    stringrequired
  • claimed_role
    stringrequired
  • source
    stringrequired
  • evidence_reference
    string | nullrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • recorded_by_id
    integerrequired
  • created_at
    string (date-time)required
  • voided_at
    string | null (date-time)required
  • voided_by_id
    integer | nullrequired
  • void_reason
    string | nullrequired
  • assurance
    stringrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/deliveries

List private offer email dispatch attempts and signed delivery events

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Response · 200 · CrmOfferDeliveryAttempt[]

  • id
    integerrequired
  • offer_id
    integerrequired
  • recipient_email
    string (email)required
  • artifact_sha256
    stringrequired
  • status
    stringrequired
  • provider_kind
    stringrequired
  • provider_message_id
    string | nullrequired
  • delivery_evidence
    string | nullrequired
  • event_total
    integerrequired
  • events
    CrmOfferDeliveryEvent[]required
  • created_at
    string (date-time)required
  • completed_at
    string | null (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/deliveries

Submit a new one-use offer link to the configured email provider once

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Request body

  • delivery
    objectrequired

Response · 200 · CrmOfferDeliveryResult

  • delivery
    CrmOfferDeliveryAttemptrequired
  • replayed
    booleanrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviews

List exact-grant staff identity evidence reviews for an offer

v1.0Implemented

Parameters

  • page
    integerquery
  • per_page
    integerquery
  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Response · 200 · CrmOfferIdentityReview[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • grant_id
    integerrequired
  • principal_id
    integerrequired
  • recipient_email
    string (email)required
  • artifact_sha256
    stringrequired
  • method
    stringrequired
  • evidence_reference
    stringrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • expires_at
    string (date-time)required
  • submitted_by_id
    integerrequired
  • created_at
    string (date-time)required
  • decision_state
    stringrequired
  • assurance
    stringrequired
  • events
    object[]required
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviews

Submit staff identity evidence for exact customer grant and frozen offer

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Request body

  • identity_review
    objectrequired

Response · 200 · CrmOfferIdentityReview

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • grant_id
    integerrequired
  • principal_id
    integerrequired
  • recipient_email
    string (email)required
  • artifact_sha256
    stringrequired
  • method
    stringrequired
  • evidence_reference
    stringrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • expires_at
    string (date-time)required
  • submitted_by_id
    integerrequired
  • created_at
    string (date-time)required
  • decision_state
    stringrequired
  • assurance
    stringrequired
  • events
    object[]required
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/identity_reviews/{review_id}/decisions

Independently approve, reject or revoke a staff identity evidence review

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired
  • review_id
    stringpathrequired

Request body

  • decision
    objectrequired

Response · 200 · CrmOfferIdentityReview

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • offer_id
    integerrequired
  • contact_id
    integerrequired
  • grant_id
    integerrequired
  • principal_id
    integerrequired
  • recipient_email
    string (email)required
  • artifact_sha256
    stringrequired
  • method
    stringrequired
  • evidence_reference
    stringrequired
  • evidence_note
    stringrequired
  • observed_at
    string (date-time)required
  • expires_at
    string (date-time)required
  • submitted_by_id
    integerrequired
  • created_at
    string (date-time)required
  • decision_state
    stringrequired
  • assurance
    stringrequired
  • events
    object[]required
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/offers/{offer_id}/revoke

Revoke a customer offer invitation and all open portal sessions

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired
  • offer_id
    stringpathrequired

Request body

  • revoke
    objectrequired

Response · 200 · CrmCustomerOffer

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • proposal_id
    integerrequired
  • proposal_revision
    integerrequired
  • proposal_title
    stringrequired
  • proposal_amount
    stringrequired
  • currency
    stringrequired
  • contact_id
    integerrequired
  • recipient_name
    stringrequired
  • recipient_email
    string (email)required
  • delivery_state
    stringrequired
  • mailbox_verification_required
    booleanrequired
  • pdf_sha256
    stringrequired
  • created_at
    string (date-time)required
  • expires_at
    string (date-time)required
  • invitation_redeemed_at
    string | null (date-time)required
  • revoked_at
    string | null (date-time)required
  • revoked_by_id
    integer | nullrequired
  • revoke_reason
    string | nullrequired
  • response
    object | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/review

Approve or reject a submitted proposal for internal review

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • review
    objectrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/review_preview

Review the current submitted proposal and obtain a fresh review token

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmProposalReviewPreview

  • proposal
    CrmProposalrequired
  • review_token
    stringrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/submit

Submit the current draft for internal review

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/proposals/{proposal_id}/withdraw

Withdraw the current draft or submitted proposal with a retained reason

v1.0Implemented

Parameters

  • project_id
    stringpathrequired
  • id
    stringpathrequired
  • proposal_id
    stringpathrequired

Request body

  • withdrawal
    objectrequired

Response · 200 · CrmProposal

  • id
    integerrequired
  • opportunity_id
    integerrequired
  • revision
    integerrequired
  • status
    stringrequired
  • title
    stringrequired
  • scope
    string | nullrequired
  • exclusions
    string | nullrequired
  • valid_until
    string | null (date)required
  • estimate_lines
    CrmEstimateLine[]required
  • amount
    stringrequired
  • currency
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • submitted_at
    string | null (date-time)required
  • reviewed_by_id
    integer | nullrequired
  • reviewed_at
    string | null (date-time)required
  • review_reason
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/restore

Restore archived CRM opportunity

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 204

No response body.

GET /rest/v1.0/projects/{project_id}/crm/opportunities/{id}/source_history

Paginated staff-attributed opportunity source history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · object

  • events
    object[]required
  • total
    integerrequired
  • page
    integerrequired
  • per_page
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/service_cases

List private project customer service cases

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery
  • status
    stringquery

Response · 200 · CrmServiceCase[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • contact_id
    integer | nullrequired
  • location_id
    integer | nullrequired
  • assigned_to_id
    integer | nullrequired
  • status
    stringrequired
  • priority
    stringrequired
  • response_due_at
    string (date-time) | nullrequired
  • first_response_at
    string (date-time) | nullrequired
  • resolved_at
    string (date-time) | nullrequired
  • closed_at
    string (date-time) | nullrequired
  • warranty_coverage_id
    integer | nullrequired
  • warranty_decision
    stringrequired
  • warranty_rationale
    string | nullrequired
  • version
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmServiceCaseEvent[]required
  • reported_at
    string (date-time) | nullrequired
  • reported_on
    string (date) | nullrequired
  • reported_at_original
    string | nullrequired
  • report_source
    string | nullrequired
  • report_evidence
    string | nullrequired
  • warranty_review_reference
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/service_cases

Record a staff-reported customer service request

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • service_case
    objectrequired

Response · 201 · CrmServiceCase

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • contact_id
    integer | nullrequired
  • location_id
    integer | nullrequired
  • assigned_to_id
    integer | nullrequired
  • status
    stringrequired
  • priority
    stringrequired
  • response_due_at
    string (date-time) | nullrequired
  • first_response_at
    string (date-time) | nullrequired
  • resolved_at
    string (date-time) | nullrequired
  • closed_at
    string (date-time) | nullrequired
  • warranty_coverage_id
    integer | nullrequired
  • warranty_decision
    stringrequired
  • warranty_rationale
    string | nullrequired
  • version
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmServiceCaseEvent[]required
  • reported_at
    string (date-time) | nullrequired
  • reported_on
    string (date) | nullrequired
  • reported_at_original
    string | nullrequired
  • report_source
    string | nullrequired
  • report_evidence
    string | nullrequired
  • warranty_review_reference
    string | nullrequired
GET /rest/v1.0/projects/{project_id}/crm/service_cases/{id}

Read a private service case and event history

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmServiceCase

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • contact_id
    integer | nullrequired
  • location_id
    integer | nullrequired
  • assigned_to_id
    integer | nullrequired
  • status
    stringrequired
  • priority
    stringrequired
  • response_due_at
    string (date-time) | nullrequired
  • first_response_at
    string (date-time) | nullrequired
  • resolved_at
    string (date-time) | nullrequired
  • closed_at
    string (date-time) | nullrequired
  • warranty_coverage_id
    integer | nullrequired
  • warranty_decision
    stringrequired
  • warranty_rationale
    string | nullrequired
  • version
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmServiceCaseEvent[]required
  • reported_at
    string (date-time) | nullrequired
  • reported_on
    string (date) | nullrequired
  • reported_at_original
    string | nullrequired
  • report_source
    string | nullrequired
  • report_evidence
    string | nullrequired
  • warranty_review_reference
    string | nullrequired
PATCH /rest/v1.0/projects/{project_id}/crm/service_cases/{id}

Record a version-checked service case update

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • service_case
    objectrequired

Response · 200 · CrmServiceCase

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • title
    stringrequired
  • description
    string | nullrequired
  • contact_id
    integer | nullrequired
  • location_id
    integer | nullrequired
  • assigned_to_id
    integer | nullrequired
  • status
    stringrequired
  • priority
    stringrequired
  • response_due_at
    string (date-time) | nullrequired
  • first_response_at
    string (date-time) | nullrequired
  • resolved_at
    string (date-time) | nullrequired
  • closed_at
    string (date-time) | nullrequired
  • warranty_coverage_id
    integer | nullrequired
  • warranty_decision
    stringrequired
  • warranty_rationale
    string | nullrequired
  • version
    integerrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
  • updated_at
    string (date-time)required
  • events
    CrmServiceCaseEvent[]required
  • reported_at
    string (date-time) | nullrequired
  • reported_on
    string (date) | nullrequired
  • reported_at_original
    string | nullrequired
  • report_source
    string | nullrequired
  • report_evidence
    string | nullrequired
  • warranty_review_reference
    string | nullrequired
POST /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/asset_links

Link a same-project active installed asset to a service case

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • asset_link
    objectrequired

Response · 201 · CrmCaseAssetLink

  • id
    integerrequired
  • case_id
    integerrequired
  • asset_id
    integerrequired
  • asset_tag
    stringrequired
  • asset_name
    stringrequired
  • asset_status
    stringrequired
  • created_at
    string (date-time)required
  • created_by_id
    integerrequired
POST /rest/v1.0/projects/{project_id}/crm/service_cases/{id}/work_links

Link one currently visible field work item to a service case

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Request body

  • work_link
    objectrequired

Response · 201 · CrmServiceWorkLink

  • id
    integerrequired
  • case_id
    integerrequired
  • kind
    stringrequired
  • target_id
    integerrequired
  • target_label
    stringrequired
  • target_url
    stringrequired
  • created_at
    string (date-time)required
  • created_by_id
    integerrequired
GET /rest/v1.0/projects/{project_id}/crm/service_cases/response_queue

Read the permission-scoped staff first-response worklist

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • filter
    stringquery
  • page
    integerquery
  • per_page
    integerquery

Response · 200 · CrmServiceResponseQueue

  • as_of
    string (date-time)required
  • filter
    string | nullrequired
  • total
    integerrequired
  • summary
    objectrequired
  • rows
    CrmServiceResponseRow[]required
GET /rest/v1.0/projects/{project_id}/crm/summary

CRM totals and exact USD pipeline forecast

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Response · 200 · object

  • contacts
    integerrequired
  • openOpportunities
    integerrequired
  • wonOpportunities
    integerrequired
  • overdueActivities
    integerrequired
  • openAmount
    stringrequired
  • weightedAmount
    stringrequired
  • currency
    anyrequired
GET /rest/v1.0/projects/{project_id}/crm/warranty_coverages

List reviewed project warranty coverage evidence

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • page
    integerquery
  • per_page
    integerquery
  • search
    stringquery
  • location_id
    integerquery

Response · 200 · CrmWarrantyCoverage[]

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • component_name
    stringrequired
  • location_id
    integer | nullrequired
  • starts_on
    string (date)required
  • ends_on
    string (date)required
  • issuer_name
    stringrequired
  • source_reference
    stringrequired
  • evidence_note
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
POST /rest/v1.0/projects/{project_id}/crm/warranty_coverages

Record reviewed project warranty coverage evidence

v1.0Implemented

Parameters

  • project_id
    integerpathrequired

Request body

  • warranty_coverage
    objectrequired

Response · 201 · CrmWarrantyCoverage

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • component_name
    stringrequired
  • location_id
    integer | nullrequired
  • starts_on
    string (date)required
  • ends_on
    string (date)required
  • issuer_name
    stringrequired
  • source_reference
    stringrequired
  • evidence_note
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required
GET /rest/v1.0/projects/{project_id}/crm/warranty_coverages/{id}

Read one private project warranty coverage source

v1.0Implemented

Parameters

  • project_id
    integerpathrequired
  • id
    integerpathrequired

Response · 200 · CrmWarrantyCoverage

  • id
    integerrequired
  • company_id
    integerrequired
  • project_id
    integerrequired
  • component_name
    stringrequired
  • location_id
    integer | nullrequired
  • starts_on
    string (date)required
  • ends_on
    string (date)required
  • issuer_name
    stringrequired
  • source_reference
    stringrequired
  • evidence_note
    stringrequired
  • created_by_id
    integerrequired
  • created_at
    string (date-time)required

Ask the OS

Reading this page

Ask anything about this page. Answers use what you're reading as context.

Suggested

    AI · may be imperfect · sample data where shown

    Open file