MCP tools
Every tool the MCP server registers, with its input fields.
The MCP server registers 122 tools in 18 modules, every entry of allTools in lib/mcp/tools/index.ts. Fields come from each tool's zod schema. How to connect, authenticate and add a tool: MCP server.
| Module | File | Tools |
|---|---|---|
| Accounts | lib/mcp/tools/crm-accounts.ts | 6 |
| Activities | lib/mcp/tools/crm-activities.ts | 5 |
| Campaigns | lib/mcp/tools/campaigns.ts | 19 |
| Contacts | lib/mcp/tools/crm-contacts.ts | 6 |
| Contracts | lib/mcp/tools/crm-contracts.ts | 5 |
| Documents | lib/mcp/tools/crm-documents.ts | 8 |
| Email accounts | lib/mcp/tools/crm-email-accounts.ts | 1 |
| Enrichment | lib/mcp/tools/crm-enrichment.ts | 4 |
| Leads | lib/mcp/tools/crm-leads.ts | 7 |
| Opportunities | lib/mcp/tools/crm-opportunities.ts | 6 |
| Orders | lib/mcp/tools/crm-orders.ts | 8 |
| Price lists | lib/mcp/tools/crm-price-lists.ts | 8 |
| Products | lib/mcp/tools/crm-products.ts | 5 |
| Projects | lib/mcp/tools/projects.ts | 18 |
| Reports | lib/mcp/tools/reports.ts | 2 |
| Target lists | lib/mcp/tools/crm-target-lists.ts | 7 |
| Targets | lib/mcp/tools/crm-targets.ts | 6 |
| Users | lib/mcp/tools/crm-users.ts | 1 |
Accounts
crm_create_account
Create a new CRM account
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
email | string (email) | no | ||
name | string | yes | ||
office_phone | string | no | ||
website | string | no |
crm_delete_account
Soft-delete a CRM account by ID (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_account
Get a single CRM account by ID (visible to the authenticated user)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_accounts
List CRM accounts visible to the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_search_accounts
Search accounts visible to the authenticated user by name or website (substring match)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | yes |
crm_update_account
Update an existing CRM account by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
assigned_to | string (uuid) | null | no | ||
description | string | no | ||
email | string (email) | no | ||
id | string (uuid) | yes | ||
name | string | no | ||
office_phone | string | no | ||
website | string | no |
Activities
crm_create_activity
Create a CRM activity (call/meeting/note/email/visit) and link to entities
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
date | string (date-time) | yes | ||
description | string | no | ||
duration | integer | no | ||
links | object[] | no | ||
outcome | string | no | ||
status | "scheduled" | "completed" | "cancelled" | no | "scheduled" | |
title | string | yes | ||
type | "call" | "meeting" | "note" | "email" | "visit" | yes |
crm_delete_activity
Soft-delete a CRM activity by ID (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_activity
Get a single CRM activity by ID with entity links
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_activities
List CRM activities created by the authenticated user, or all activities on a linked entity the user can read
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
entityId | string (uuid) | no | ||
entityType | string | no | ||
limit | number | no | 20 | |
offset | number | no | 0 | |
status | "scheduled" | "completed" | "cancelled" | no | ||
type | "call" | "meeting" | "note" | "email" | "visit" | no |
crm_update_activity
Update an existing CRM activity by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
date | string (date-time) | no | ||
description | string | no | ||
duration | integer | no | ||
id | string (uuid) | yes | ||
outcome | string | no | ||
status | "scheduled" | "completed" | "cancelled" | no | ||
title | string | no |
Campaigns
campaigns_assign_target_list
Assign a target list to a campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
campaign_id | string (uuid) | yes | ||
target_list_id | string (uuid) | yes |
campaigns_create
Create a new campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
from_name | string | no | ||
name | string | yes | ||
reply_to | string (email) | no | ||
template_id | string (uuid) | no |
campaigns_create_step
Add a step to a campaign sequence
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
campaign_id | string (uuid) | yes | ||
delay_days | integer | no | 0 | |
order | integer | yes | ||
send_to | "all" | "non_openers" | no | "all" | |
subject | string | yes | ||
template_id | string (uuid) | yes |
campaigns_create_template
Create a campaign email template
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
content_html | string | yes | ||
content_json | unknown | yes | ||
description | string | no | ||
name | string | yes | ||
subject_default | string | no |
campaigns_delete
Soft-delete a campaign (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_delete_step
Delete a campaign step by ID (hard delete — step has no status field)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_delete_template
Soft-delete a campaign template (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_get
Get a campaign by ID with steps and stats summary
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_get_stats
Get send/open/click/unsubscribe stats for a campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_get_template
Get a campaign template by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_list
List campaigns the caller is allowed to see
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
status | "draft" | "scheduled" | "sending" | "sent" | "paused" | no |
campaigns_list_templates
List campaign email templates the caller is allowed to see
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
campaigns_pause
Pause an active/sending campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_remove_target_list
Remove a target list from a campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
campaign_id | string (uuid) | yes | ||
target_list_id | string (uuid) | yes |
campaigns_resume
Resume a paused campaign
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_send
Trigger sending a campaign. Campaign must be in draft or scheduled status.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
campaigns_update
Update a campaign by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
from_name | string | no | ||
id | string (uuid) | yes | ||
name | string | no | ||
reply_to | string (email) | no | ||
template_id | string (uuid) | no |
campaigns_update_step
Update a campaign step by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
delay_days | integer | no | ||
id | string (uuid) | yes | ||
order | integer | no | ||
send_to | "all" | "non_openers" | no | ||
subject | string | no | ||
template_id | string (uuid) | no |
campaigns_update_template
Update a campaign template by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
content_html | string | no | ||
content_json | unknown | no | ||
description | string | no | ||
id | string (uuid) | yes | ||
name | string | no | ||
subject_default | string | no |
Contacts
crm_create_contact
Create a new CRM contact
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
email | string (email) | no | ||
first_name | string | no | ||
last_name | string | yes | ||
mobile_phone | string | no | ||
office_phone | string | no | ||
position | string | no |
crm_delete_contact
Soft-delete a CRM contact by ID (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_contact
Get a single CRM contact by ID (visible to the authenticated user)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_contacts
List CRM contacts visible to the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_search_contacts
Search contacts visible to the authenticated user by name, email, or phone (substring match)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | yes |
crm_update_contact
Update an existing CRM contact by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | string (uuid) | null | no | ||
assigned_to | string (uuid) | null | no | ||
email | string (email) | no | ||
first_name | string | no | ||
id | string (uuid) | yes | ||
last_name | string | no | ||
mobile_phone | string | no | ||
office_phone | string | no | ||
position | string | no |
Contracts
crm_create_contract
Create a new CRM contract with optional line items
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | string (uuid) | no | ||
assigned_to | string (uuid) | no | ||
currency | string | no | ||
description | string | no | ||
endDate | string (date-time) | no | ||
lineItems | object[] | no | ||
startDate | string (date-time) | no | ||
title | string | yes | ||
type | string | no | ||
value | number | yes |
crm_delete_contract
Soft-delete a CRM contract (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_contract
Get a single CRM contract by ID with line items
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_contracts
List CRM contracts visible to the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | string (uuid) | no | ||
limit | number | no | 20 | |
offset | number | no | 0 | |
status | "NOTSTARTED" | "INPROGRESS" | "SIGNED" | no |
crm_update_contract
Update an existing CRM contract by ID (does not modify line items — use separate operations)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | string (uuid) | no | ||
assigned_to | string (uuid) | no | ||
currency | string | no | ||
description | string | no | ||
endDate | string (date-time) | no | ||
id | string (uuid) | yes | ||
startDate | string (date-time) | no | ||
status | "NOTSTARTED" | "INPROGRESS" | "SIGNED" | no | ||
title | string | no | ||
type | string | no | ||
value | number | no |
Documents
crm_create_document
Create a document record and get a presigned upload URL
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
contentType | string | yes | ||
description | string | no | ||
document_name | string | yes | ||
visibility | string | no |
crm_delete_document
Soft-delete a document (sets status to DELETED)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_document
Get a single document by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_download_url
Get a presigned download URL for a document
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_upload_url
Get a presigned upload URL for an existing document
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_link_document
Link a document to an entity (account, contact, lead, opportunity, or task)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
document_id | string (uuid) | yes | ||
entityId | string (uuid) | yes | ||
entityType | "account" | "contact" | "lead" | "opportunity" | "task" | yes |
crm_list_documents
List documents, optionally filtered by linked entity type and ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
entityId | string (uuid) | no | ||
entityType | "account" | "contact" | "lead" | "opportunity" | "task" | no | ||
limit | number | no | 20 | |
offset | number | no | 0 |
crm_unlink_document
Remove a document link from an entity
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
document_id | string (uuid) | yes | ||
entityId | string (uuid) | yes | ||
entityType | "account" | "contact" | "lead" | "opportunity" | "task" | yes |
Email accounts
crm_list_email_accounts
List the authenticated user's connected email accounts
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
Enrichment
crm_enrich_contact
Enrich a single contact using Firecrawl + AI. Requires FIRECRAWL and OPENAI API keys configured. Returns enrichment record ID for tracking.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
contactId | string (uuid) | yes | ||
fields | object[] | yes |
crm_enrich_contact_bulk
Enrich multiple contacts in bulk (max 100). Dispatches async jobs.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
contactIds | string (uuid)[] | yes | ||
fields | object[] | yes |
crm_enrich_target
Enrich a single target with the E2B sandbox agent (async). Requires an ANTHROPIC key and E2B_API_KEY on the server.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
fields | object[] | yes | ||
targetId | string (uuid) | yes |
crm_enrich_target_bulk
Enrich multiple targets in bulk (max 100) with the E2B sandbox agent. Dispatches async jobs. Requires an ANTHROPIC key and E2B_API_KEY on the server.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
fields | object[] | yes | ||
targetIds | string (uuid)[] | yes |
Leads
crm_create_lead
Create a new CRM lead
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
campaign | string | no | ||
company | string | no | ||
description | string | no | ||
email | string (email) | no | ||
firstName | string | no | ||
jobTitle | string | no | ||
lastName | string | yes | ||
lead_source_id | string (uuid) | no | ||
lead_status_id | string (uuid) | no | ||
lead_type_id | string (uuid) | no | ||
phone | string | no | ||
refered_by | string | no |
crm_delete_lead
Soft-delete a CRM lead by ID (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_lead
Get a single CRM lead by ID (visible to the authenticated user)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_lead_options
List the lead statuses, sources and types configured in this CRM (id + name), for lead_status_id / lead_source_id / lead_type_id
No input fields.
crm_list_leads
List CRM leads visible to the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_search_leads
Search leads visible to the authenticated user by name, company, or email (substring match)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | yes |
crm_update_lead
Update an existing CRM lead by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
assigned_to | string (uuid) | null | no | ||
campaign | string | no | ||
company | string | no | ||
description | string | no | ||
email | string (email) | no | ||
firstName | string | no | ||
id | string (uuid) | yes | ||
jobTitle | string | no | ||
lastName | string | no | ||
lead_source_id | string (uuid) | null | no | ||
lead_status_id | string (uuid) | null | no | ||
lead_type_id | string (uuid) | null | no | ||
phone | string | no | ||
refered_by | string | no |
Opportunities
crm_create_opportunity
Create a new CRM opportunity
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
budget | integer | no | ||
close_date | string (date-time) | no | ||
currency | string | no | ||
description | string | no | ||
expected_revenue | integer | no | ||
name | string | yes | ||
next_step | string | no |
crm_delete_opportunity
Soft-delete a CRM opportunity by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_opportunity
Get a single CRM opportunity by ID (visible to the authenticated user)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_opportunities
List CRM opportunities visible to the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_search_opportunities
Search opportunities visible to the authenticated user by name or description (substring match)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | yes |
crm_update_opportunity
Update an existing CRM opportunity by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | string (uuid) | null | no | ||
assigned_to | string (uuid) | null | no | ||
budget | integer | no | ||
close_date | string (date-time) | no | ||
contact | string (uuid) | null | no | ||
currency | string | no | ||
description | string | no | ||
expected_revenue | integer | no | ||
id | string (uuid) | yes | ||
name | string | no | ||
next_step | string | no |
Orders
crm_cancel_order
Cancel an order
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_create_order
Create a draft order for an account; lines are priced from the customer's price list unless unitPrice is given
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
accountId | string | yes | ||
contactId | string | null | no | ||
lines | object[] | yes | ||
note | string | null | no | ||
requestedDeliveryDate | string | null | no | ||
shipping_city | string | null | no | ||
shipping_country | string | null | no | ||
shipping_postal_code | string | null | no | ||
shipping_state | string | null | no | ||
shipping_street | string | null | no |
crm_decide_order_approval
Approve or reject an order waiting for approval (manager or admin; a note is required to reject). Pass the order's updatedAt from crm_get_order to approve exactly the version you reviewed.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
decision | "APPROVED" | "REJECTED" | yes | ||
id | string | yes | ||
note | string | null | no | ||
updatedAt | string | no |
crm_get_order
Get an order with its lines and the actions you may take
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_list_orders
List orders you can see, newest first
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
accountId | string | no | ||
limit | number | no | 20 | |
offset | number | no | 0 | |
ownerId | string | no | ||
status | "DRAFT" | "PENDING_APPROVAL" | "READY" | "SENT" | "CONFIRMED" | "DELIVERED" | "INVOICED" | "PAID" | "CANCELLED" | "SYNC_FAILED" | no |
crm_set_order_status
Withdraw, reopen, retry, or advance an order to a later status (advance needs to)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
action | "withdraw" | "reopen" | "retry" | "advance" | yes | ||
id | string | yes | ||
to | "DRAFT" | "PENDING_APPROVAL" | "READY" | "SENT" | "CONFIRMED" | "DELIVERED" | "INVOICED" | "PAID" | "CANCELLED" | "SYNC_FAILED" | no |
crm_submit_order
Submit a draft: READY, or PENDING_APPROVAL when a sales rep priced a line below the list
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_update_order
Replace a draft order's header fields and full line list
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
contactId | string | null | no | ||
id | string | yes | ||
lines | object[] | yes | ||
note | string | null | no | ||
requestedDeliveryDate | string | null | no | ||
shipping_city | string | null | no | ||
shipping_country | string | null | no | ||
shipping_postal_code | string | null | no | ||
shipping_state | string | null | no | ||
shipping_street | string | null | no |
Price lists
crm_archive_price_list
Archive a price list (manager or admin; not external lists)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_create_price_list
Create a price list (manager or admin)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
currency | string | yes | ||
name | string | yes |
crm_delete_price_list_rule
Delete a price list rule (manager or admin; not external lists)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_get_price
Compute a product's price from a price list, or from the account's list (account list → default list → product price)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
accountId | string | no | ||
date | string | no | ||
priceListId | string | no | ||
productId | string | yes | ||
quantity | number | yes |
crm_get_price_list
Get a price list with its rules
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | yes |
crm_list_price_lists
List price lists (active by default)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
includeArchived | boolean | no | ||
limit | number | no | 20 | |
offset | number | no | 0 | |
source | "CRM" | "EXTERNAL" | no |
crm_update_price_list
Rename a price list, change its currency or (de)activate it (manager or admin; not external lists)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
currency | string | no | ||
id | string | yes | ||
isActive | boolean | no | ||
name | string | no |
crm_upsert_price_list_rule
Create or update a price list rule (Odoo-compatible fields; manager or admin; not external lists)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
appliesTo | "ALL" | "CATEGORY" | "PRODUCT" | yes | ||
base | "LIST_PRICE" | "COST" | "PRICE_LIST" | no | ||
basePriceListId | string | null | no | ||
categoryId | string | null | no | ||
computePrice | "FIXED" | "PERCENTAGE" | "FORMULA" | yes | ||
dateEnd | string | null | no | ||
dateStart | string | null | no | ||
fixedPrice | number | null | no | ||
minQuantity | number | null | no | ||
percentPrice | number | null | no | ||
priceDiscount | number | null | no | ||
priceListId | string | yes | ||
priceMaxMargin | number | null | no | ||
priceMinMargin | number | null | no | ||
priceRound | number | null | no | ||
priceSurcharge | number | null | no | ||
productId | string | null | no | ||
ruleId | string | no |
Products
crm_create_product
Create a new CRM product
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
billing_period | "MONTHLY" | "QUARTERLY" | "SEMIANNUALLY" | "ANNUALLY" | no | ||
categoryId | string (uuid) | no | ||
currency | string | yes | ||
description | string | no | ||
is_recurring | boolean | no | ||
name | string | yes | ||
sku | string | no | ||
tax_rate | number | no | ||
type | "PRODUCT" | "SERVICE" | yes | ||
unit | string | no | ||
unit_cost | number | no | ||
unit_price | number | yes |
crm_delete_product
Soft-delete a CRM product (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_product
Get a single CRM product by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_products
List CRM products (org-wide catalog)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
status | "DRAFT" | "ACTIVE" | "ARCHIVED" | no |
crm_update_product
Update an existing CRM product by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
billing_period | "MONTHLY" | "QUARTERLY" | "SEMIANNUALLY" | "ANNUALLY" | no | ||
categoryId | string (uuid) | no | ||
currency | string | no | ||
description | string | no | ||
id | string (uuid) | yes | ||
is_recurring | boolean | no | ||
name | string | no | ||
sku | string | no | ||
status | "DRAFT" | "ACTIVE" | "ARCHIVED" | no | ||
tax_rate | number | no | ||
type | "PRODUCT" | "SERVICE" | no | ||
unit | string | no | ||
unit_cost | number | no | ||
unit_price | number | no |
Projects
projects_add_comment
Add a comment to a task
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
comment | string | yes | ||
task | string (uuid) | yes |
projects_assign_document
Link a document to a task
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
document_id | string (uuid) | yes | ||
task_id | string (uuid) | yes |
projects_create_board
Create a new project board
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | yes | ||
icon | string | no | ||
title | string | yes | ||
visibility | string | no |
projects_create_section
Add a section (column) to a board
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
board | string (uuid) | yes | ||
title | string | yes |
projects_create_task
Create a task in a board section
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
content | string | no | ||
dueDateAt | string (date-time) | no | ||
priority | string | no | "Normal" | |
section | string (uuid) | yes | ||
title | string | yes |
projects_delete_board
Soft-delete a project board (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
projects_delete_section
Delete a section (must be empty — no tasks)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
projects_delete_task
Soft-delete a task (sets status to COMPLETE)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
projects_get_board
Get a project board with its sections and tasks
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
projects_get_task
Get a task by ID with comments and documents
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
projects_list_boards
List project boards the user owns or is shared with
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
projects_list_comments
List comments on a task
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
task | string (uuid) | yes |
projects_list_tasks
List tasks, optionally filtered by board, section, user, or status
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
board | string (uuid) | no | ||
limit | number | no | 20 | |
offset | number | no | 0 | |
section | string (uuid) | no | ||
status | "ACTIVE" | "PENDING" | "COMPLETE" | no | ||
user | string (uuid) | no |
projects_move_task
Move a task to a different section and/or position
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes | ||
position | integer | no | ||
section | string (uuid) | yes |
projects_update_board
Update a project board by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
icon | string | no | ||
id | string (uuid) | yes | ||
title | string | no | ||
visibility | string | no |
projects_update_section
Update a section title or position
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes | ||
position | integer | no | ||
title | string | no |
projects_update_task
Update a task by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
content | string | no | ||
dueDateAt | string (date-time) | no | ||
id | string (uuid) | yes | ||
priority | string | no | ||
taskStatus | "ACTIVE" | "PENDING" | "COMPLETE" | no | ||
title | string | no |
projects_watch_board
Watch or unwatch a project board
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
board_id | string (uuid) | yes | ||
watch | boolean | no | true |
Reports
reports_list
List available report configurations
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
category | "sales" | "leads" | "accounts" | "activity" | "campaigns" | "users" | no | ||
limit | number | no | 20 | |
offset | number | no | 0 |
reports_run
Run a report by category and get the data. Returns raw report data (use format param for CSV/PDF via the /api/reports/export endpoint).
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
category | "sales" | "leads" | "accounts" | "activity" | "campaigns" | "users" | yes | ||
dateFrom | string (date-time) | no | ||
dateTo | string (date-time) | no |
Target lists
crm_add_to_target_list
Add one or more targets to a target list
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
target_ids | string (uuid)[] | yes | ||
target_list_id | string (uuid) | yes |
crm_create_target_list
Create a new target list
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
name | string | yes |
crm_delete_target_list
Soft-delete a target list (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_target_list
Get a target list by ID with its members
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes | ||
limit | number | no | 20 | |
offset | number | no | 0 |
crm_list_target_lists
List target lists the caller is allowed to see
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_remove_from_target_list
Remove one or more targets from a target list
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
target_ids | string (uuid)[] | yes | ||
target_list_id | string (uuid) | yes |
crm_update_target_list
Update a target list by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | no | ||
id | string (uuid) | yes | ||
name | string | no |
Targets
crm_create_target
Create a new CRM target
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
company | string | no | ||
email | string (email) | no | ||
first_name | string | no | ||
last_name | string | yes | ||
mobile_phone | string | no | ||
office_phone | string | no | ||
position | string | no |
crm_delete_target
Soft-delete a CRM target by ID (sets deletedAt timestamp)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_get_target
Get a single CRM target by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (uuid) | yes |
crm_list_targets
List CRM targets created by the authenticated user
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 |
crm_search_targets
Search targets by name, email, or company (substring match)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | yes |
crm_update_target
Update an existing CRM target by ID
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
company | string | no | ||
email | string (email) | no | ||
first_name | string | no | ||
id | string (uuid) | yes | ||
last_name | string | no | ||
mobile_phone | string | no | ||
office_phone | string | no | ||
position | string | no |
Users
crm_list_users
List NextCRM users, to resolve a person to the user ID needed by assigned_to. Returns active users by default. Managers and admins additionally see email, role, status and last login.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | no | 20 | |
offset | number | no | 0 | |
query | string | no | ||
status | "ACTIVE" | "INACTIVE" | "PENDING" | "ALL" | no |