Deals CRM
Overview
The Deals CRM provides a complete pipeline for managing business deals, real estate transactions, and commercial agreements. Track deals through stages (lead through won/lost), manage stakeholders, milestones, interactions, deadlines, and documents -- all with sentiment analysis on interactions and smart follow-up reminders.
Visual deal pipeline with stage progression and analytics.
Manage buyers, sellers, agents, attorneys, lenders, and more.
Automated follow-ups, deadline tracking, and sentiment-aware nudges.
Deal Stages
API Endpoints -- Deals
GET /api/v1/deals
Auth
List all deals. Optional filters:
?status=lead&deal_type=real_estate_purchase
POST /api/v1/deals
Auth
Create a new deal.
{
"title": "string",
"deal_type": "real_estate_purchase|real_estate_lease|commercial_purchase|commercial_lease",
"value": 500000,
"stage": "lead"
}
GET /api/v1/deals/:id
Auth
Get deal details with all related stakeholders, milestones, interactions, and deadlines.
PUT /api/v1/deals/:id
Auth
Update deal fields (title, value, description, etc.).
PUT /api/v1/deals/:id/stage
Auth
Advance a deal to the next stage.
{
"stage": "negotiation"
}
POST /api/v1/deals/:id/archive
Auth
Archive a deal (remove from active pipeline).
POST /api/v1/deals/:id/restore
Auth
Restore an archived deal back to the active pipeline.
DELETE /api/v1/deals/:id
Auth
Permanently delete a deal.
GET /api/v1/deals/pipeline
Auth
Get a pipeline summary with deal counts per stage and total values.
GET /api/v1/deals/analytics
Auth
Pipeline analytics including conversion rates, average deal size, and time-in-stage metrics.
GET /api/v1/deals/follow-ups
Auth
Get deals needing follow-up based on last interaction date.
GET /api/v1/deals/closing-soon
Auth
Get deals approaching their expected close date.
API Endpoints -- Stakeholders
GET /api/v1/deals/:deal_id/stakeholders
Auth
List all stakeholders for a deal.
POST /api/v1/stakeholders
Auth
Add a stakeholder to a deal.
{
"deal_id": "uuid",
"name": "string",
"role": "buyer|seller|agent|broker|attorney|lender|inspector|appraiser|title_company|other",
"email": "...",
"phone": "..."
}
PUT /api/v1/stakeholders/:id
Auth
Update stakeholder details.
DELETE /api/v1/stakeholders/:id
Auth
Remove a stakeholder from a deal.
API Endpoints -- Milestones
GET /api/v1/deals/:deal_id/milestones
Auth
List milestones for a deal with completion status.
POST /api/v1/milestones
Auth
Create a milestone for a deal.
{
"deal_id": "uuid",
"title": "string",
"due_date": "2026-04-01",
"description": "..."
}
PUT /api/v1/milestones/:id
Auth
Update milestone title, due date, or description.
POST /api/v1/milestones/:id/complete
Auth
Mark a milestone as completed.
DELETE /api/v1/milestones/:id
Auth
Delete a milestone.
API Endpoints -- Interactions
GET /api/v1/deals/:deal_id/interactions
Auth
List all interactions (calls, emails, meetings, notes) for a deal.
POST /api/v1/interactions
Auth
Log a new interaction. Types: call, email, meeting, note.
{
"deal_id": "uuid",
"type": "call",
"summary": "Discussed pricing...",
"stakeholder_ids": ["uuid"]
}
GET /api/v1/deals/:deal_id/sentiment
Auth
Get a sentiment summary across all interactions for a deal.
PUT /api/v1/interactions/:id
Auth
Update an interaction's summary or notes.
DELETE /api/v1/interactions/:id
Auth
Delete an interaction log entry.
API Endpoints -- Deadlines
GET /api/v1/deals/:deal_id/deadlines
Auth
List deadlines for a deal.
POST /api/v1/deadlines
Auth
Create a deadline for a deal.
{
"deal_id": "uuid",
"title": "string",
"due_date": "2026-04-15",
"reminder_days_before": 3
}
GET /api/v1/deadlines/overdue
Auth
Get all overdue deadlines across all deals.
GET /api/v1/deadlines/reminders
Auth
Get deadlines needing reminders (based on
reminder_days_before
setting).
PUT /api/v1/deadlines/:id
Auth
Update deadline title, due date, or reminder settings.
POST /api/v1/deadlines/:id/complete
Auth
Mark a deadline as completed.
DELETE /api/v1/deadlines/:id
Auth
Delete a deadline.
API Endpoints -- Documents
GET /api/v1/deals/:deal_id/documents
Auth
List all documents attached to a deal (contracts, invoices, photos, etc.).
POST /api/v1/deals/:deal_id/documents
Auth
Attach a document to a deal.
{
"title": "string",
"doc_type": "contract|invoice|photo|other",
"url": "https://..."
}
PUT /api/v1/deals/:deal_id/documents/:id
Auth
Update document metadata (title, doc_type).
DELETE /api/v1/deals/:deal_id/documents/:id
Auth
Remove a document from a deal.