Pipeline deals represent opportunities moving through your sales process. Each deal is tied to a company and a pipeline stage, and can optionally link to a contact, site, and owner. Moving a deal to a closed-won or closed-lost stage automatically updates its status.Documentation Index
Fetch the complete documentation index at: https://developers.novala.ai/llms.txt
Use this file to discover all available pages before exploring further.
Required scope
All pipeline endpoints require thepipeline scope on your API key.
Deal statuses
| Status | Meaning |
|---|---|
open | Deal is active and in progress. |
won | Deal was won. Set automatically when moved to a closed-won stage. |
lost | Deal was lost. Set automatically when moved to a closed-lost stage. |
List deals
GET /api/v1/pipeline/deals
Returns a paginated list of deals for the authenticated tenant.
Query parameters
Filter by pipeline stage UUID.
Filter by deal status. One of:
open, won, lost.Filter by company UUID.
Filter by owner (user) UUID.
1-based page index.
Results per page. Maximum
100.Response
Create a deal
POST /api/v1/pipeline/deals
Creates a new pipeline deal. The deal’s probability is inherited from the stage. Status is set to open at creation.
Request body
Deal name. Maximum 200 characters.
UUID of the company this deal is with. Must belong to your tenant.
UUID of the pipeline stage to place the deal in. Must belong to your tenant.
UUID of the primary contact for this deal.
UUID of the site associated with this deal.
UUID of the user who owns this deal. Defaults to the authenticated user when using session auth.
Expected deal value as a decimal string (for example,
"45000.00").Expected close date in
YYYY-MM-DD format.Array of product objects associated with the deal.
Internal notes about the deal.
Custom field key-value map.
Response
Returns201 Created with { "data": { deal object } }. Returns 404 Not Found if companyId or stageId do not belong to your tenant.
Get a deal
GET /api/v1/pipeline/deals/{id}
Retrieves a deal with its full detail: company, stage, contact, site, owner, and up to 20 recent activities.
Path parameters
UUID of the deal.
Response fields
Update a deal
PATCH /api/v1/pipeline/deals/{id}
Partially updates a deal. Only include fields you want to change. Moving a deal to a closed-won or closed-lost stage automatically sets the status and actualCloseDate.
Path parameters
UUID of the deal.
Request body
All fields are optional.Updated deal name.
UUID of the new stage. Probability updates automatically from the stage. If the stage is marked
isClosedWon, status becomes won; if isClosedLost, status becomes lost.Updated company UUID.
Updated contact UUID. Pass
null to remove.Updated site UUID. Pass
null to remove.Updated owner UUID. Pass
null to unassign.Updated deal value.
Updated expected close date (
YYYY-MM-DD). Pass null to clear.Updated internal notes.
Replaces all custom field values.
Response
Returns200 OK with { "data": { updated deal } }.