Sales CRM API

Full-featured Sales CRM with leads, accounts, contacts, opportunities, quotes, activities, teams, territories, approvals, custom fields, scoring, and more.

All endpoints prefixed with /api/v1/sales

Leads

Lead management — create, convert, assign, subscribe/unsubscribe.

POST /api/v1/sales/leads

Create a new lead.

Auth: Bearer token · sales.create

Request Body
json
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "john@company.com",
  "company": "Acme Corp",
  "source": "website",
  "phone": "+1234567890"
}
GET /api/v1/sales/leads

List leads with pagination, filtering, and role-based visibility.

Auth: Bearer token · sales.view

Query Parameters
Parameter Type Description
page number Page number
limit number Items per page
search string Search by name/email/company
status string Filter by status
source string Filter by lead source
assignedTo number Filter by assigned user
GET /api/v1/sales/leads/stats

Get lead statistics (total, by status, by source, conversion rate).

Auth: Bearer token · sales.view

GET /api/v1/sales/leads/available-sources

Get available lead sources for dropdowns.

Auth: Bearer token · sales.view

GET /api/v1/sales/leads/:id

Get lead by ID with all details.

Auth: Bearer token · sales.view

PUT /api/v1/sales/leads/:id

Update a lead's details.

Auth: Bearer token · sales.edit

POST /api/v1/sales/leads/:id/convert

Convert a lead to an opportunity (and optionally create account/contact).

Auth: Bearer token · sales.edit

POST /api/v1/sales/leads/:id/unsubscribe

Unsubscribe a lead from communications.

Auth: Bearer token · sales.edit

POST /api/v1/sales/leads/:id/resubscribe

Resubscribe a lead.

Auth: Bearer token · sales.edit

GET /api/v1/sales/leads/:id/unsubscribe/preview

Preview cascade effects of unsubscribing a lead.

Auth: Bearer token · sales.view

POST /api/v1/sales/leads/bulk/assign

Bulk assign leads to a user.

Auth: Bearer token · sales.edit

Request Body
json
{
  "leadIds": [1, 2, 3],
  "assignedTo": 5
}
GET /api/v1/sales/leads/unsubscribe-settings

Get unsubscribe settings.

Auth: Bearer token

PUT /api/v1/sales/leads/unsubscribe-settings

Update unsubscribe settings.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/leads/:id

Delete a lead.

Auth: Bearer token · sales.delete

Contacts

Contact management with account linking and subscription controls.

POST /api/v1/sales/contacts

Create a new contact.

Auth: Bearer token · sales.create

Request Body
json
{
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane@acme.com",
  "accountId": 1,
  "phone": "+1234567890",
  "title": "VP Sales"
}
GET /api/v1/sales/contacts

List contacts with pagination and role-based visibility.

Auth: Bearer token · sales.view

GET /api/v1/sales/contacts/stats

Get contact statistics.

Auth: Bearer token · sales.view

GET /api/v1/sales/contacts/by-account/:accountId

Get all contacts for a specific account.

Auth: Bearer token · sales.view

GET /api/v1/sales/contacts/:id

Get contact by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/contacts/:id

Update a contact.

Auth: Bearer token · sales.edit

POST /api/v1/sales/contacts/:id/set-primary

Set contact as primary for their account.

Auth: Bearer token · sales.edit

POST /api/v1/sales/contacts/:id/unsubscribe

Unsubscribe a contact.

Auth: Bearer token · sales.edit

POST /api/v1/sales/contacts/:id/resubscribe

Resubscribe a contact.

Auth: Bearer token · sales.edit

GET /api/v1/sales/contacts/:id/unsubscribe/preview

Preview cascade effects of unsubscribing.

Auth: Bearer token · sales.view

POST /api/v1/sales/contacts/bulk/assign

Bulk assign contacts to a user.

Auth: Bearer token · sales.edit

GET /api/v1/sales/contacts/unsubscribe-settings

Get unsubscribe settings.

Auth: Bearer token

PUT /api/v1/sales/contacts/unsubscribe-settings

Update unsubscribe settings.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/contacts/:id

Delete a contact.

Auth: Bearer token · sales.delete

Accounts

Company/organization account management.

POST /api/v1/sales/accounts

Create a new account.

Auth: Bearer token · sales.create

Request Body
json
{
  "name": "Acme Corp",
  "website": "https://acme.com",
  "industry": "Technology",
  "billingAddress": { ... },
  "phone": "+1234567890"
}
GET /api/v1/sales/accounts

List accounts with pagination and role-based visibility.

Auth: Bearer token · sales.view

GET /api/v1/sales/accounts/stats

Get account statistics.

Auth: Bearer token · sales.view

GET /api/v1/sales/accounts/:id

Get account by ID.

Auth: Bearer token · sales.view

GET /api/v1/sales/accounts/:id/children

Get child accounts (subsidiary hierarchy).

Auth: Bearer token · sales.view

PUT /api/v1/sales/accounts/:id

Update an account.

Auth: Bearer token · sales.edit

POST /api/v1/sales/accounts/:id/copy-address

Copy billing address to shipping address.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/accounts/:id

Delete an account.

Auth: Bearer token · sales.delete

Opportunities

Sales pipeline opportunity tracking.

POST /api/v1/sales/opportunities

Create a new opportunity.

Auth: Bearer token · sales.create

Request Body
json
{
  "name": "Enterprise Deal",
  "accountId": 1,
  "amount": 50000,
  "stage": "qualification",
  "closeDate": "2026-06-30"
}
GET /api/v1/sales/opportunities

List opportunities with pipeline filtering.

Auth: Bearer token · sales.view

GET /api/v1/sales/opportunities/stats

Get opportunity statistics and pipeline metrics.

Auth: Bearer token · sales.view

GET /api/v1/sales/opportunities/by-lead/:leadId

Get opportunities created from a specific lead.

Auth: Bearer token · sales.view

GET /api/v1/sales/opportunities/:id

Get opportunity by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/opportunities/:id

Update an opportunity.

Auth: Bearer token · sales.edit

POST /api/v1/sales/opportunities/:id/close-won

Mark opportunity as closed-won.

Auth: Bearer token · sales.edit

POST /api/v1/sales/opportunities/:id/close-lost

Mark opportunity as closed-lost.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/opportunities/:id

Delete an opportunity.

Auth: Bearer token · sales.delete

Quotes

Sales quote generation with line items.

POST /api/v1/sales/quotes

Create a new quote.

Auth: Bearer token · sales.create

GET /api/v1/sales/quotes

List quotes with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/quotes/stats

Get quote statistics.

Auth: Bearer token · sales.view

GET /api/v1/sales/quotes/:id

Get quote by ID with line items.

Auth: Bearer token · sales.view

PUT /api/v1/sales/quotes/:id

Update a quote.

Auth: Bearer token · sales.edit

POST /api/v1/sales/quotes/:id/send

Send a quote to the customer.

Auth: Bearer token · sales.edit

POST /api/v1/sales/quotes/:id/lines

Add a line item to a quote.

Auth: Bearer token · sales.edit

PUT /api/v1/sales/quotes/:id/lines/:lineId

Update a quote line item.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/quotes/:id/lines/:lineId

Delete a quote line item.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/quotes/:id

Delete a quote.

Auth: Bearer token · sales.delete

Activities

Tasks, calls, meetings, and other activity tracking.

POST /api/v1/sales/activities

Create a new activity.

Auth: Bearer token · sales.create

Request Body
json
{
  "type": "call",
  "subject": "Follow-up call",
  "dueDate": "2026-06-01",
  "entityType": "lead",
  "entityId": 42
}
GET /api/v1/sales/activities

List activities with pagination and role-based visibility.

Auth: Bearer token · sales.view

GET /api/v1/sales/activities/stats

Get activity statistics.

Auth: Bearer token · sales.view

GET /api/v1/sales/activities/upcoming

Get upcoming activities (due within specified days).

Auth: Bearer token · sales.view

GET /api/v1/sales/activities/overdue

Get overdue activities.

Auth: Bearer token · sales.view

GET /api/v1/sales/activities/by-entity/:entityType/:entityId

Get activities for a specific entity (lead, contact, account, opportunity).

Auth: Bearer token · sales.view

GET /api/v1/sales/activities/:id

Get activity by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/activities/:id

Update an activity.

Auth: Bearer token · sales.edit

POST /api/v1/sales/activities/:id/complete

Mark an activity as completed.

Auth: Bearer token · sales.edit

POST /api/v1/sales/activities/:id/cancel

Cancel an activity.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/activities/:id

Delete an activity.

Auth: Bearer token · sales.delete

Teams

Sales team management with member assignment.

POST /api/v1/sales/teams

Create a new team.

Auth: Bearer token · sales.create

GET /api/v1/sales/teams

List teams with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/teams/:id

Get team by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/teams/:id

Update a team.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/teams/:id

Delete a team.

Auth: Bearer token · sales.delete

POST /api/v1/sales/teams/:id/members

Add a member to a team.

Auth: Bearer token · sales.edit

GET /api/v1/sales/teams/:id/members

Get team members.

Auth: Bearer token · sales.view

DELETE /api/v1/sales/teams/:id/members/:userId

Remove a member from a team.

Auth: Bearer token · sales.edit

Territories

Sales territory definitions.

POST /api/v1/sales/territories

Create a new territory.

Auth: Bearer token · sales.create

GET /api/v1/sales/territories

List territories.

Auth: Bearer token · sales.view

GET /api/v1/sales/territories/:id

Get territory by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/territories/:id

Update a territory.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/territories/:id

Delete a territory.

Auth: Bearer token · sales.delete

User Territories

Assign territories to users.

POST /api/v1/sales/user-territories

Assign a territory to a user.

Auth: Bearer token · sales.edit

GET /api/v1/sales/user-territories

List user territory assignments.

Auth: Bearer token · sales.view

DELETE /api/v1/sales/user-territories/:id

Remove a territory assignment.

Auth: Bearer token · sales.edit

POST /api/v1/sales/user-territories/bulk-assign

Bulk assign territories to a user.

Auth: Bearer token · sales.edit

GET /api/v1/sales/user-territories/user/:userId

Get territories for a specific user.

Auth: Bearer token · sales.view

POST /api/v1/sales/user-territories/user/:userId/set-primary

Set primary territory for a user.

Auth: Bearer token · sales.edit

Approvals

Request and manage approval workflows.

POST /api/v1/sales/approvals

Request a new approval.

Auth: Bearer token · sales.create

GET /api/v1/sales/approvals

List approvals with pagination and filtering.

Auth: Bearer token · sales.view

GET /api/v1/sales/approvals/pending

Get pending approvals for the current user.

Auth: Bearer token

GET /api/v1/sales/approvals/pending/count

Get pending approval count.

Auth: Bearer token

GET /api/v1/sales/approvals/entity/:entityType/:entityId

Get approvals for a specific entity.

Auth: Bearer token · sales.view

GET /api/v1/sales/approvals/status/:status

Get approvals by status.

Auth: Bearer token · sales.view

GET /api/v1/sales/approvals/:id

Get approval by ID.

Auth: Bearer token · sales.view

POST /api/v1/sales/approvals/:id/approve

Approve a request.

Auth: Bearer token · sales.approve

POST /api/v1/sales/approvals/:id/reject

Reject a request.

Auth: Bearer token · sales.approve

POST /api/v1/sales/approvals/:id/cancel

Cancel a pending request.

Auth: Bearer token

Approval Workflows

Define multi-step approval workflows.

GET /api/v1/sales/approval-workflows

List all approval workflows.

Auth: Bearer token · sales.view

GET /api/v1/sales/approval-workflows/:id

Get a workflow with its steps.

Auth: Bearer token · sales.view

POST /api/v1/sales/approval-workflows

Create a new workflow.

Auth: Bearer token · tenant_admin

PATCH /api/v1/sales/approval-workflows/:id

Update a workflow.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/approval-workflows/:id

Delete a workflow.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/approval-workflows/:id/steps

Add a step to a workflow.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/approval-workflows/:workflowId/steps/:stepId

Delete a step from a workflow.

Auth: Bearer token · tenant_admin

Assignment

Entity assignment with rules, AI recommendations, and bulk operations.

POST /api/v1/sales/assignment/assign

Assign a single entity to a user.

Auth: Bearer token · sales.edit

POST /api/v1/sales/assignment/bulk-assign

Bulk assign entities.

Auth: Bearer token · sales.edit

GET /api/v1/sales/assignment/users

Get list of assignable users.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment/rules

List assignment rules.

Auth: Bearer token · sales.view

POST /api/v1/sales/assignment/rules

Create a new assignment rule.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/assignment/rules/:id

Get assignment rule by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/assignment/rules/:id

Update an assignment rule.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/assignment/rules/:id

Delete an assignment rule.

Auth: Bearer token · tenant_admin

PUT /api/v1/sales/assignment/rules/reorder

Reorder assignment rules.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/assignment/rules/:id/toggle

Toggle rule active/inactive.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/assignment/rules/:id/duplicate

Duplicate an assignment rule.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/assignment/rules/:id/preview

Preview rule for a specific entity.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment/preview

Preview all assignment rules.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment/settings

Get assignment settings.

Auth: Bearer token

PUT /api/v1/sales/assignment/settings

Update assignment settings.

Auth: Bearer token · tenant_admin

Assignment Log

Assignment history and statistics.

GET /api/v1/sales/assignment-log

List assignment logs with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment-log/:id

Get assignment log by ID.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment-log/entity/:entityType/:entityId

Get assignment history for an entity.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment-log/user/:userId

Get assignments for a user.

Auth: Bearer token · sales.view

GET /api/v1/sales/assignment-log/user/:userId/stats

Get assignment statistics for a user.

Auth: Bearer token · sales.view

Custom Fields

Define and manage custom field definitions and values on any entity.

POST /api/v1/sales/custom-fields

Create a new custom field definition.

Auth: Bearer token · tenant_admin

Request Body
json
{
  "entityType": "lead",
  "name": "Industry Vertical",
  "fieldType": "select",
  "options": ["SaaS", "FinTech", "Healthcare"]
}
GET /api/v1/sales/custom-fields

List all custom fields with filtering.

Auth: Bearer token · sales.view

GET /api/v1/sales/custom-fields/grouped

Get all active fields grouped by entity type.

Auth: Bearer token · sales.view

GET /api/v1/sales/custom-fields/entity/:entityType

Get active fields for a specific entity type.

Auth: Bearer token · sales.view

GET /api/v1/sales/custom-fields/:id

Get a custom field by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/custom-fields/:id

Update a custom field definition.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/custom-fields/:id

Delete a custom field and all its values.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/custom-fields/values/:entityType/:entityId

Get all custom field values for an entity.

Auth: Bearer token · sales.view

PUT /api/v1/sales/custom-fields/values/:entityType/:entityId

Set custom field values for an entity.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/custom-fields/values/:entityType/:entityId

Delete all custom field values for an entity.

Auth: Bearer token · sales.edit

Customer Timeline

Single Customer View — unified activity timeline for contacts and accounts.

POST /api/v1/sales/customer-timeline

Add a timeline event.

Auth: Bearer token · sales.create

GET /api/v1/sales/customer-timeline

List timeline events with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/event-types

Get distinct event types.

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/contact/:contactId

Get timeline for a contact (Single Customer View).

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/contact/:contactId/summary

Get timeline summary for a contact.

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/account/:accountId

Get timeline for an account.

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/unified/:entityType/:entityId

Get unified 360-degree timeline for any entity.

Auth: Bearer token · sales.view

GET /api/v1/sales/customer-timeline/:id

Get timeline event by ID.

Auth: Bearer token · sales.view

POST /api/v1/sales/customer-timeline/:id/hide

Hide a timeline event.

Auth: Bearer token · sales.edit

POST /api/v1/sales/customer-timeline/:id/unhide

Unhide a timeline event.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/customer-timeline/:id

Delete a timeline event.

Auth: Bearer token · sales.delete

Lead Scoring

Scoring profiles, rules, and score calculations.

GET /api/v1/sales/scoring/profiles

List all scoring profiles.

Auth: Bearer token · sales.view

POST /api/v1/sales/scoring/profiles

Create a new scoring profile.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/scoring/profiles/:id

Get a scoring profile.

Auth: Bearer token · sales.view

PUT /api/v1/sales/scoring/profiles/:id

Update a scoring profile.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/scoring/profiles/:id

Delete a scoring profile.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/scoring/config/:profileId

Get scoring configuration (weights) for a profile.

Auth: Bearer token · sales.view

PUT /api/v1/sales/scoring/config/:profileId/weights

Update category weights for a profile.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/scoring/rules

Create a scoring rule.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/scoring/rules

List scoring rules.

Auth: Bearer token · sales.view

GET /api/v1/sales/scoring/rules/:id

Get a scoring rule.

Auth: Bearer token · sales.view

PUT /api/v1/sales/scoring/rules/:id

Update a scoring rule.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/scoring/rules/:id

Delete a scoring rule.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/scoring/trigger

Trigger score calculation for an entity.

Auth: Bearer token · sales.edit

POST /api/v1/sales/scoring/batch-trigger

Batch trigger score calculations.

Auth: Bearer token · sales.edit

Reports

Sales dashboard and analytics.

GET /api/v1/sales/reports/dashboard

Get main dashboard metrics.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/pipeline

Get pipeline overview.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/performance

Get sales performance by user.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/forecast

Get sales forecast.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/activity-summary

Get activity summary.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/top-leads

Get top leads.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/win-loss

Get win/loss analysis.

Auth: Bearer token · sales.view

GET /api/v1/sales/reports/sales-cycle

Get sales cycle metrics.

Auth: Bearer token · sales.view

Reminders

Personal reminders and due notifications.

GET /api/v1/sales/reminders

Get reminders for the current user.

Auth: Bearer token

GET /api/v1/sales/reminders/pending

Get pending reminders (due now).

Auth: Bearer token

GET /api/v1/sales/reminders/upcoming

Get upcoming reminders.

Auth: Bearer token

Industries

Industry reference data for accounts and leads.

POST /api/v1/sales/industries

Create a new industry.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/industries

List industries with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/industries/active

Get all active industries (for dropdowns).

Auth: Bearer token · sales.view

GET /api/v1/sales/industries/:id

Get industry by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/industries/:id

Update an industry.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/industries/:id

Delete an industry.

Auth: Bearer token · tenant_admin

Automations

Sales automation rules and triggers.

POST /api/v1/sales/automations

Create a new automation rule.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/automations

List automation rules.

Auth: Bearer token · sales.view

GET /api/v1/sales/automations/:id

Get an automation rule.

Auth: Bearer token · sales.view

PUT /api/v1/sales/automations/:id

Update an automation rule.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/automations/:id

Delete an automation rule.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/automations/:id/toggle

Enable/disable an automation rule.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/automations/:id/run

Manually trigger an automation rule.

Auth: Bearer token · tenant_admin

Email Signatures

Personal email signature management.

GET /api/v1/sales/email-signatures

List all email signatures for the current user.

Auth: Bearer token

POST /api/v1/sales/email-signatures

Create a new email signature.

Auth: Bearer token

PUT /api/v1/sales/email-signatures/:id

Update an email signature.

Auth: Bearer token

DELETE /api/v1/sales/email-signatures/:id

Delete an email signature.

Auth: Bearer token

POST /api/v1/sales/email-signatures/:id/set-default

Set an email signature as default.

Auth: Bearer token

Web Forms

Embeddable web forms for lead capture.

POST /api/v1/sales/webforms

Create a new web form.

Auth: Bearer token · sales.create

GET /api/v1/sales/webforms

List web forms.

Auth: Bearer token · sales.view

GET /api/v1/sales/webforms/active

Get all active web forms.

Auth: Bearer token · sales.view

GET /api/v1/sales/webforms/:id

Get web form by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/webforms/:id

Update a web form.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/webforms/:id

Delete a web form.

Auth: Bearer token · sales.delete

GET /api/v1/sales/webforms/:id/submissions

List submissions for a form.

Auth: Bearer token · sales.view

POST /api/v1/sales/webforms/:id/fields

Add a field to a form.

Auth: Bearer token · sales.edit

DELETE /api/v1/sales/webforms/:id/fields/:fieldId

Remove a field from a form.

Auth: Bearer token · sales.edit

POST /api/v1/sales/webforms/:id/preview

Preview form submission.

Auth: Bearer token · sales.view

GET /api/v1/sales/webforms/public/:formKey

Get public form by key.

Auth: None (public)

POST /api/v1/sales/webforms/public/:formKey/submit

Submit form data.

Auth: None (public)

Webhooks

Outbound and inbound webhook management.

POST /api/v1/sales/webhooks

Create a new outbound webhook.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/webhooks

List outbound webhooks.

Auth: Bearer token · sales.view

GET /api/v1/sales/webhooks/:id

Get webhook by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/webhooks/:id

Update a webhook.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/webhooks/:id

Delete a webhook.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/webhooks/:id/test

Test webhook delivery.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/webhooks/deliveries

List webhook delivery logs.

Auth: Bearer token · sales.view

GET /api/v1/sales/webhooks/deliveries/:id

Get delivery log details.

Auth: Bearer token · sales.view

Imports

Bulk data import from CSV files.

POST /api/v1/sales/imports

Upload import file and create import job.

Auth: Bearer token · sales.create

GET /api/v1/sales/imports

List import jobs with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/imports/:id

Get import job details.

Auth: Bearer token · sales.view

GET /api/v1/sales/imports/:id/preview

Preview import data and field mappings.

Auth: Bearer token · sales.view

POST /api/v1/sales/imports/:id/start

Start processing an import job.

Auth: Bearer token · sales.create

GET /api/v1/sales/imports/:id/errors

Get import errors.

Auth: Bearer token · sales.view

POST /api/v1/sales/imports/:id/cancel

Cancel an import job.

Auth: Bearer token · sales.edit

POST /api/v1/sales/imports/validate-mapping

Validate field mapping before import.

Auth: Bearer token · sales.view

Support Tickets

Internal support ticket management.

POST /api/v1/sales/support

Create a new support ticket.

Auth: Bearer token

GET /api/v1/sales/support

List support tickets.

Auth: Bearer token

GET /api/v1/sales/support/:id

Get support ticket by ID.

Auth: Bearer token

PUT /api/v1/sales/support/:id

Update a support ticket.

Auth: Bearer token

POST /api/v1/sales/support/:id/comments

Add a comment to a ticket.

Auth: Bearer token

GET /api/v1/sales/support/:id/comments

List comments on a ticket.

Auth: Bearer token

GET /api/v1/sales/support/categories

Get available support categories.

Auth: Bearer token

GET /api/v1/sales/support/priorities

Get available support priorities.

Auth: Bearer token

API Keys

API key management for programmatic access.

GET /api/v1/sales/api-keys/metadata

Get available scopes and environments.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/api-keys

List all API keys.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/api-keys/:id

Get API key by ID.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/api-keys

Create a new API key. The full key is returned only once.

Auth: Bearer token · tenant_admin

POST /api/v1/sales/api-keys/:id/revoke

Revoke an active API key.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/api-keys/:id

Permanently delete a revoked API key.

Auth: Bearer token · tenant_admin

Audit Logs

Audit trail for sales entity changes.

GET /api/v1/sales/audit

List audit logs with pagination and filtering.

Auth: Bearer token · sales.view

GET /api/v1/sales/audit/entity/:entityType/:entityId

Get audit logs for a specific entity.

Auth: Bearer token · sales.view

GET /api/v1/sales/audit/user/:userId

Get audit logs for a specific user.

Auth: Bearer token · sales.view

GET /api/v1/sales/audit/types

Get available entity types and actions.

Auth: Bearer token · sales.view

Reference Data

Configurable reference data (dropdown values, statuses, etc.).

POST /api/v1/sales/reference-data

Create a new reference data entry.

Auth: Bearer token · tenant_admin

GET /api/v1/sales/reference-data

List reference data with pagination.

Auth: Bearer token · sales.view

GET /api/v1/sales/reference-data/:id

Get reference data by ID.

Auth: Bearer token · sales.view

PUT /api/v1/sales/reference-data/:id

Update reference data.

Auth: Bearer token · tenant_admin

DELETE /api/v1/sales/reference-data/:id

Delete reference data.

Auth: Bearer token · tenant_admin

PUT /api/v1/sales/reference-data/update-sort-order

Update sort order for multiple entries.

Auth: Bearer token · tenant_admin