Insightly MCP by usefulapi
Read and write Insightly contacts, organisations, leads, opportunities, tasks and notes.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"insightly": {
"url": "https://insightly.usefulapi.io/mcp"
}
}
}Remote endpoints
https://insightly.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (21)
🟢insightly_get_current_user
Fetch the user the API key belongs to (USER_ID, name, email, admin flag). A cheap way to confirm the key and pod are right, and to get your own id for owner fields. Insightly: GET /Users/Me.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_users(top, skip, count_total)
List the users in the Insightly instance — needed to resolve OWNER_USER_ID / RESPONSIBLE_USER_ID. Insightly: GET /Users.
Input Schema
{
"type": "object",
"properties": {
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"count_total": {
"description": "true = also return the total number of matching records (response becomes {total_count, items}).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_records(object, field_name, field_value, updated_after_utc, brief, ...)
List records of one type — Contacts, Organisations, Leads, Opportunities, Projects, Tasks, Events or Notes — optionally filtered by one field value and/or last-updated time. With field_name + field_value (both required together) or updated_after_utc this uses GET /<Object>/Search; otherwise GET /<Object>. Field names are Insightly's UPPER_SNAKE names, e.g. EMAIL_ADDRESS, LAST_NAME, ORGANISATION_NAME, OPPORTUNITY_STATE, LEAD_RATING, or a custom field such as Industry__c.
Input Schema
{
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects",
"Tasks",
"Events",
"Notes"
],
"description": "Record type."
},
"field_name": {
"description": "Field to filter on, e.g. EMAIL_ADDRESS.",
"type": "string"
},
"field_value": {
"description": "Value the field must equal.",
"type": "string"
},
"updated_after_utc": {
"description": "Only records updated after this time, yyyy-mm-ddThh:mm:ssZ (e.g. 2026-04-09T16:58:14Z).",
"type": "string"
},
"brief": {
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster.",
"type": "boolean"
},
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"count_total": {
"description": "true = also return the total number of matching records (response becomes {total_count, items}).",
"type": "boolean"
}
},
"required": [
"object"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_get_record(object, id)
Fetch a single Contact, Organisation, Lead, Opportunity, Project, Task, Event or Note by id, with its custom fields, tags and links. Insightly: GET /<Object>/{id}.
Input Schema
{
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects",
"Tasks",
"Events",
"Notes"
],
"description": "Record type."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's numeric id."
}
},
"required": [
"object",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_record_activity(object, id, kind, updated_after_utc, brief, ...)
List the Notes, Tasks or Events attached to one Contact, Organisation, Lead, Opportunity or Project — the activity history of that record. Insightly: GET /<Object>/{id}/Notes | Tasks | Events.
Input Schema
{
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"description": "The parent record's type."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The parent record's numeric id."
},
"kind": {
"type": "string",
"enum": [
"Notes",
"Tasks",
"Events"
],
"description": "Which activity to list."
},
"updated_after_utc": {
"description": "Only items updated after this time, yyyy-mm-ddThh:mm:ssZ.",
"type": "string"
},
"brief": {
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster.",
"type": "boolean"
},
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"count_total": {
"description": "true = also return the total number of matching records (response becomes {total_count, items}).",
"type": "boolean"
}
},
"required": [
"object",
"id",
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_search_by_tag(object, tag, brief, top, skip, ...)
List Contacts, Organisations, Leads, Opportunities or Projects carrying a tag. Insightly: GET /<Object>/SearchByTag?tagName=.
Input Schema
{
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"description": "Record type."
},
"tag": {
"type": "string",
"minLength": 1,
"description": "The tag name."
},
"brief": {
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster.",
"type": "boolean"
},
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"count_total": {
"description": "true = also return the total number of matching records (response becomes {total_count, items}).",
"type": "boolean"
}
},
"required": [
"object",
"tag"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_pipelines(top, skip)
List the sales and project pipelines (PIPELINE_ID, name, whether for opportunities or projects). Insightly: GET /Pipelines.
Input Schema
{
"type": "object",
"properties": {
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_pipeline_stages(top, skip)
List every pipeline stage (STAGE_ID, PIPELINE_ID, name, order) — map an opportunity's or project's STAGE_ID to a stage name. Insightly: GET /PipelineStages.
Input Schema
{
"type": "object",
"properties": {
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_lead_statuses(include_converted, top, skip)
List the lead statuses defined in the instance (LEAD_STATUS_ID, name, type). Insightly: GET /LeadStatuses.
Input Schema
{
"type": "object",
"properties": {
"include_converted": {
"description": "Also include statuses used for converted leads.",
"type": "boolean"
},
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢insightly_list_lead_sources(top, skip)
List the lead sources defined in the instance (LEAD_SOURCE_ID, name). Insightly: GET /LeadSources.
Input Schema
{
"type": "object",
"properties": {
"top": {
"description": "Max records to return, 1-500 (API default 100).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"skip": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_create_contact(salutation, first_name, last_name, title, email_address, ...)
Create a contact (first_name is required). Insightly: POST /Contacts.
Input Schema
{
"type": "object",
"properties": {
"salutation": {
"description": "e.g. Mr, Ms, Dr.",
"type": "string"
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name (required)."
},
"last_name": {
"description": "Last name.",
"type": "string"
},
"title": {
"description": "Job title.",
"type": "string"
},
"email_address": {
"description": "Primary email.",
"type": "string"
},
"phone": {
"description": "Business phone.",
"type": "string"
},
"phone_mobile": {
"description": "Mobile phone.",
"type": "string"
},
"organisation_id": {
"description": "Id of the contact's organisation.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"description": "Owning user's id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"background": {
"description": "Background / description text.",
"type": "string"
},
"address_mail_street": {
"type": "string"
},
"address_mail_city": {
"type": "string"
},
"address_mail_state": {
"type": "string"
},
"address_mail_postcode": {
"type": "string"
},
"address_mail_country": {
"type": "string"
},
"social_linkedin": {
"description": "LinkedIn URL.",
"type": "string"
},
"email_opted_out": {
"description": "Opted out of email.",
"type": "boolean"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"first_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_update_contact(contact_id, salutation, first_name, last_name, title, ...)
Update a contact. Only the fields you pass are changed (v3.1 partial update). Insightly: PUT /Contacts with CONTACT_ID.
Input Schema
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The contact's numeric id."
},
"salutation": {
"description": "e.g. Mr, Ms, Dr.",
"type": "string"
},
"first_name": {
"description": "First name.",
"type": "string"
},
"last_name": {
"description": "Last name.",
"type": "string"
},
"title": {
"description": "Job title.",
"type": "string"
},
"email_address": {
"description": "Primary email.",
"type": "string"
},
"phone": {
"description": "Business phone.",
"type": "string"
},
"phone_mobile": {
"description": "Mobile phone.",
"type": "string"
},
"organisation_id": {
"description": "Id of the contact's organisation.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"description": "Owning user's id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"background": {
"description": "Background / description text.",
"type": "string"
},
"address_mail_street": {
"type": "string"
},
"address_mail_city": {
"type": "string"
},
"address_mail_state": {
"type": "string"
},
"address_mail_postcode": {
"type": "string"
},
"address_mail_country": {
"type": "string"
},
"social_linkedin": {
"description": "LinkedIn URL.",
"type": "string"
},
"email_opted_out": {
"description": "Opted out of email.",
"type": "boolean"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_create_organisation(organisation_name, website, phone, background, owner_user_id, ...)
Create an organisation (company). Insightly: POST /Organisations.
Input Schema
{
"type": "object",
"properties": {
"organisation_name": {
"type": "string",
"minLength": 1,
"description": "Organisation name (required)."
},
"website": {
"type": "string"
},
"phone": {
"type": "string"
},
"background": {
"description": "Background / description text.",
"type": "string"
},
"owner_user_id": {
"description": "Owning user's id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"address_billing_street": {
"type": "string"
},
"address_billing_city": {
"type": "string"
},
"address_billing_state": {
"type": "string"
},
"address_billing_postcode": {
"type": "string"
},
"address_billing_country": {
"type": "string"
},
"social_linkedin": {
"description": "LinkedIn URL.",
"type": "string"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"organisation_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_update_organisation(organisation_id, organisation_name, website, phone, background, ...)
Update an organisation. Only the fields you pass are changed. Insightly: PUT /Organisations with ORGANISATION_ID.
Input Schema
{
"type": "object",
"properties": {
"organisation_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The organisation's numeric id."
},
"organisation_name": {
"description": "Organisation name.",
"type": "string"
},
"website": {
"type": "string"
},
"phone": {
"type": "string"
},
"background": {
"description": "Background / description text.",
"type": "string"
},
"owner_user_id": {
"description": "Owning user's id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"address_billing_street": {
"type": "string"
},
"address_billing_city": {
"type": "string"
},
"address_billing_state": {
"type": "string"
},
"address_billing_postcode": {
"type": "string"
},
"address_billing_country": {
"type": "string"
},
"social_linkedin": {
"description": "LinkedIn URL.",
"type": "string"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"organisation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_create_lead(salutation, first_name, last_name, title, email, ...)
Create a lead (last_name is required). Insightly's schema also marks lead_status_id and lead_source_id as required — get valid ids from insightly_list_lead_statuses / insightly_list_lead_sources. Insightly: POST /Leads.
Input Schema
{
"type": "object",
"properties": {
"salutation": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name (required)."
},
"title": {
"description": "Job title.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"phone": {
"type": "string"
},
"mobile": {
"type": "string"
},
"organisation_name": {
"description": "Company name (free text — leads are not linked to organisations).",
"type": "string"
},
"industry": {
"type": "string"
},
"website": {
"type": "string"
},
"employee_count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_rating": {
"description": "Rating, e.g. 1-5.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_description": {
"description": "Description / notes on the lead.",
"type": "string"
},
"lead_status_id": {
"description": "Status id — see insightly_list_lead_statuses.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_source_id": {
"description": "Source id — see insightly_list_lead_sources.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"address_street": {
"type": "string"
},
"address_city": {
"type": "string"
},
"address_state": {
"type": "string"
},
"address_postcode": {
"type": "string"
},
"address_country": {
"type": "string"
},
"email_opted_out": {
"type": "boolean"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_update_lead(lead_id, salutation, first_name, last_name, title, ...)
Update a lead. Only the fields you pass are changed. Insightly: PUT /Leads with LEAD_ID.
Input Schema
{
"type": "object",
"properties": {
"lead_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The lead's numeric id."
},
"salutation": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"description": "Last name.",
"type": "string"
},
"title": {
"description": "Job title.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"phone": {
"type": "string"
},
"mobile": {
"type": "string"
},
"organisation_name": {
"description": "Company name (free text — leads are not linked to organisations).",
"type": "string"
},
"industry": {
"type": "string"
},
"website": {
"type": "string"
},
"employee_count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_rating": {
"description": "Rating, e.g. 1-5.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_description": {
"description": "Description / notes on the lead.",
"type": "string"
},
"lead_status_id": {
"description": "Status id — see insightly_list_lead_statuses.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"lead_source_id": {
"description": "Source id — see insightly_list_lead_sources.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"address_street": {
"type": "string"
},
"address_city": {
"type": "string"
},
"address_state": {
"type": "string"
},
"address_postcode": {
"type": "string"
},
"address_country": {
"type": "string"
},
"email_opted_out": {
"type": "boolean"
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"lead_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_create_opportunity(opportunity_name, opportunity_details, organisation_id, bid_amount, bid_currency, ...)
Create a sales opportunity (opportunity_name is required). Insightly: POST /Opportunities.
Input Schema
{
"type": "object",
"properties": {
"opportunity_name": {
"type": "string",
"minLength": 1,
"description": "Opportunity name (required)."
},
"opportunity_details": {
"description": "Description.",
"type": "string"
},
"organisation_id": {
"description": "Id of the linked organisation.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bid_amount": {
"description": "Bid value.",
"type": "number"
},
"bid_currency": {
"description": "ISO currency code, e.g. USD.",
"type": "string"
},
"bid_type": {
"description": "BID_TYPE — how the bid is priced, using a value your Insightly instance accepts.",
"type": "string"
},
"bid_duration": {
"description": "Number of bid periods (for non-fixed bid types).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"probability": {
"description": "Win probability, 0-100.",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"forecast_close_date": {
"description": "Forecast close date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"category_id": {
"description": "Opportunity category id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"opportunity_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_update_opportunity(opportunity_id, opportunity_name, opportunity_details, organisation_id, bid_amount, ...)
Update an opportunity's value, probability, dates, owner or details. Only the fields you pass are changed. Insightly: PUT /Opportunities with OPPORTUNITY_ID.
Input Schema
{
"type": "object",
"properties": {
"opportunity_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The opportunity's numeric id."
},
"opportunity_name": {
"description": "Opportunity name.",
"type": "string"
},
"opportunity_details": {
"description": "Description.",
"type": "string"
},
"organisation_id": {
"description": "Id of the linked organisation.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"bid_amount": {
"description": "Bid value.",
"type": "number"
},
"bid_currency": {
"description": "ISO currency code, e.g. USD.",
"type": "string"
},
"bid_type": {
"description": "BID_TYPE — how the bid is priced, using a value your Insightly instance accepts.",
"type": "string"
},
"bid_duration": {
"description": "Number of bid periods (for non-fixed bid types).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"probability": {
"description": "Win probability, 0-100.",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"forecast_close_date": {
"description": "Forecast close date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"category_id": {
"description": "Opportunity category id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"opportunity_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_create_task(title, details, due_date, start_date, status, ...)
Create a task (title is required). Insightly requires OWNER_USER_ID and COMPLETED on a task: if owner_user_id is omitted it is filled with the API key's own user (via GET /Users/Me), and completed defaults to false. Insightly: POST /Tasks.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Task title (required)."
},
"details": {
"description": "Task description.",
"type": "string"
},
"due_date": {
"description": "Due date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"start_date": {
"description": "Start date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"status": {
"description": "Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them).",
"type": "string"
},
"priority": {
"description": "Priority number.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"percent_complete": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"completed": {
"description": "Whether the task is done.",
"type": "boolean"
},
"category_id": {
"description": "Task category id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"description": "Assignee's user id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"description": "Owner's user id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"project_id": {
"description": "Link the task to this project.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"opportunity_id": {
"description": "Link the task to this opportunity.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"title"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_update_task(task_id, title, details, due_date, start_date, ...)
Update a task — mark it completed, change due date, status, assignee or details. Only the fields you pass are changed. Insightly: PUT /Tasks with TASK_ID.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The task's numeric id."
},
"title": {
"description": "Task title.",
"type": "string"
},
"details": {
"description": "Task description.",
"type": "string"
},
"due_date": {
"description": "Due date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"start_date": {
"description": "Start date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00).",
"type": "string"
},
"status": {
"description": "Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them).",
"type": "string"
},
"priority": {
"description": "Priority number.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"percent_complete": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"completed": {
"description": "Whether the task is done.",
"type": "boolean"
},
"category_id": {
"description": "Task category id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"responsible_user_id": {
"description": "Assignee's user id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"owner_user_id": {
"description": "Owner's user id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"project_id": {
"description": "Link the task to this project.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"opportunity_id": {
"description": "Link the task to this opportunity.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom field values to set.",
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"description": "The value (null clears it).",
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"required": [
"field_name",
"field_value"
]
}
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴insightly_add_note(object, id, title, body)
Add a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project. Insightly: POST /<Object>/{id}/Notes.
Input Schema
{
"type": "object",
"properties": {
"object": {
"type": "string",
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"description": "The record type to attach the note to."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's numeric id."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Note title (required)."
},
"body": {
"description": "Note body (may contain HTML).",
"type": "string"
}
},
"required": [
"object",
"id",
"title"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence