JobNimbus MCP by usefulapi
Manage JobNimbus contacts, jobs, tasks, estimates and invoices from chat.
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": {
"jobnimbus": {
"url": "https://jobnimbus.usefulapi.io/mcp"
}
}
}Remote endpoints
https://jobnimbus.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (20)
π’jobnimbus_get_account_settings(field)
Fetch the account's configuration: contact and job workflows with their statuses, task types, activity (note) types, file types and lead sources. Use it to find the exact record_type_name / status_name / source_name values the create and update tools need. Pass field (e.g. groups) to get just one setting. JobNimbus: GET /account/settings.
Input Schema
{
"type": "object",
"properties": {
"field": {
"description": "Return only this setting, e.g. groups.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_users
List the account's JobNimbus users (team members) with name, email, id and whether they are active. The id is what owners, sales_rep and owner_ids take. JobNimbus: GET /account/users.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_contacts(size, from, sort_field, sort_direction, filter)
List contacts (customers, leads, adjusters, subcontractorsβ¦), newest first by default, optionally filtered with an ElasticSearch-style query. Returns {count, results}. JobNimbus: GET /contacts.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort_field": {
"description": "Field to sort by (API default date_created), e.g. date_updated.",
"type": "string"
},
"sort_direction": {
"description": "Sort direction (API default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"filter": {
"description": "ElasticSearch-style bool query object, sent as the `filter` parameter. Examples: {\"must\":[{\"term\":{\"first_name\":\"john\"}}]}; {\"must\":[{\"range\":{\"date_updated\":{\"gte\":\"now-1d\"}}}]}; {\"must\":[{\"terms\":{\"jnid\":[\"a\",\"b\"]}}]}; {\"must\":[{\"term\":{\"record_type_name\":\"Customer\"}}]}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_get_contact(jnid)
Fetch a single contact by jnid: name, company, phones, email, address, workflow status, lead source, sales rep and custom fields. JobNimbus: GET /contacts/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The contact's jnid (JobNimbus record id)."
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_jobs(size, from, sort_field, sort_direction, filter, ...)
List jobs (projects), newest first by default, optionally filtered β e.g. by status {"must":[{"term":{"status_name":"Lead"}}]} or by the related contact via related_id. Returns {count, results}. JobNimbus: GET /jobs.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort_field": {
"description": "Field to sort by (API default date_created), e.g. date_updated.",
"type": "string"
},
"sort_direction": {
"description": "Sort direction (API default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"filter": {
"description": "ElasticSearch-style bool query object, sent as the `filter` parameter. Examples: {\"must\":[{\"term\":{\"first_name\":\"john\"}}]}; {\"must\":[{\"range\":{\"date_updated\":{\"gte\":\"now-1d\"}}}]}; {\"must\":[{\"terms\":{\"jnid\":[\"a\",\"b\"]}}]}; {\"must\":[{\"term\":{\"record_type_name\":\"Customer\"}}]}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"related_id": {
"description": "Only records related to this contact or job jnid (adds a related.id term to the filter).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_get_job(jnid)
Fetch a single job by jnid: name, number, workflow and status, address, sales rep, owners, related contacts and custom fields. JobNimbus: GET /jobs/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The job's jnid (JobNimbus record id)."
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_tasks(size, from, sort_field, sort_direction, filter, ...)
List tasks and appointments, optionally for one contact or job (related_id) or filtered, e.g. open ones: {"must":[{"term":{"is_completed":false}}]}. Returns {count, results}. JobNimbus: GET /tasks.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort_field": {
"description": "Field to sort by (API default date_created), e.g. date_updated.",
"type": "string"
},
"sort_direction": {
"description": "Sort direction (API default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"filter": {
"description": "ElasticSearch-style bool query object, sent as the `filter` parameter. Examples: {\"must\":[{\"term\":{\"first_name\":\"john\"}}]}; {\"must\":[{\"range\":{\"date_updated\":{\"gte\":\"now-1d\"}}}]}; {\"must\":[{\"terms\":{\"jnid\":[\"a\",\"b\"]}}]}; {\"must\":[{\"term\":{\"record_type_name\":\"Customer\"}}]}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"related_id": {
"description": "Only records related to this contact or job jnid (adds a related.id term to the filter).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_get_task(jnid)
Fetch a single task or appointment by jnid: title, type, start/end, priority, completion, owners and related records. JobNimbus: GET /tasks/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The task's jnid (JobNimbus record id)."
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_activities(size, from, sort_field, sort_direction, filter, ...)
List activity entries β notes plus system events such as status changes and record creation β optionally for one contact or job (related_id). Returns {count, activity}. JobNimbus: GET /activities.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort_field": {
"description": "Field to sort by (API default date_created), e.g. date_updated.",
"type": "string"
},
"sort_direction": {
"description": "Sort direction (API default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"filter": {
"description": "ElasticSearch-style bool query object, sent as the `filter` parameter. Examples: {\"must\":[{\"term\":{\"first_name\":\"john\"}}]}; {\"must\":[{\"range\":{\"date_updated\":{\"gte\":\"now-1d\"}}}]}; {\"must\":[{\"terms\":{\"jnid\":[\"a\",\"b\"]}}]}; {\"must\":[{\"term\":{\"record_type_name\":\"Customer\"}}]}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"related_id": {
"description": "Only records related to this contact or job jnid (adds a related.id term to the filter).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_files(size, from, sort_field, sort_direction, filter, ...)
List file attachments (photos, documents) with filename, content type, size, file type and the contact/job they belong to β optionally for one record (related_id). Metadata only; file bytes are not downloaded. Returns {count, files}. JobNimbus: GET /files.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sort_field": {
"description": "Field to sort by (API default date_created), e.g. date_updated.",
"type": "string"
},
"sort_direction": {
"description": "Sort direction (API default desc).",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"filter": {
"description": "ElasticSearch-style bool query object, sent as the `filter` parameter. Examples: {\"must\":[{\"term\":{\"first_name\":\"john\"}}]}; {\"must\":[{\"range\":{\"date_updated\":{\"gte\":\"now-1d\"}}}]}; {\"must\":[{\"terms\":{\"jnid\":[\"a\",\"b\"]}}]}; {\"must\":[{\"term\":{\"record_type_name\":\"Customer\"}}]}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"related_id": {
"description": "Only records related to this contact or job jnid (adds a related.id term to the filter).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_estimates(size, from)
List estimates with number, status, line items, subtotal, tax, total, margin, e-sign state and related job/contact. Returns {count, results}; count is the account total. JobNimbus: GET /v2/estimates.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_list_invoices(size, from)
List invoices with number, status, line items, total, total_paid, amount due, due date and related job/contact. Returns {count, results}; count is the account total. JobNimbus: GET /v2/invoices.
Input Schema
{
"type": "object",
"properties": {
"size": {
"description": "Records per page, 1-1000. Defaults to 25 here (the API's own default is 1000).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"from": {
"description": "Zero-based offset for pagination (default 0). Next page: from + size.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’jobnimbus_get_invoice(jnid)
Fetch a single invoice by jnid, including line items, payments applied, total, total_paid and due. JobNimbus: GET /v2/invoices/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The invoice's jnid (JobNimbus record id)."
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_create_contact(record_type_name, status_name, first_name, last_name, display_name, ...)
Create a contact. Give at least one of first_name, last_name, display_name or company. record_type_name (a contact workflow, e.g. Customer) and status_name (a status in that workflow, e.g. Lead) are required and must match the account settings (jobnimbus_get_account_settings). Workflow automations may fire. JobNimbus: POST /contacts.
Input Schema
{
"type": "object",
"properties": {
"record_type_name": {
"type": "string",
"minLength": 1,
"description": "Contact workflow name, e.g. Customer."
},
"status_name": {
"type": "string",
"minLength": 1,
"description": "Status within that workflow, e.g. Lead."
},
"first_name": {
"description": "First name.",
"type": "string"
},
"last_name": {
"description": "Last name.",
"type": "string"
},
"display_name": {
"description": "Display name.",
"type": "string"
},
"company": {
"description": "Company name.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"home_phone": {
"description": "Home phone.",
"type": "string"
},
"mobile_phone": {
"description": "Mobile phone.",
"type": "string"
},
"work_phone": {
"description": "Work phone.",
"type": "string"
},
"fax_number": {
"description": "Fax number.",
"type": "string"
},
"website": {
"description": "Website.",
"type": "string"
},
"description": {
"description": "Description / notes on the contact record.",
"type": "string"
},
"address_line1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state_text": {
"description": "State, e.g. UT.",
"type": "string"
},
"zip": {
"description": "Postal code.",
"type": "string"
},
"country_name": {
"description": "Country, e.g. United States.",
"type": "string"
},
"source_name": {
"description": "Lead source name, e.g. Referral β must be one of the account's lead sources.",
"type": "string"
},
"sales_rep": {
"description": "jnid of the user who is the sales rep.",
"type": "string"
},
"custom_fields": {
"description": "Custom fields by their JobNimbus name, e.g. {\"Claim Number\":\"124523-f\",\"Date of Loss\":1550692800} or {\"cf_string_1\":\"β¦\"}. Dates are unix seconds. is_active / is_archived are ignored.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"record_type_name",
"status_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_update_contact(jnid, record_type_name, status_name, first_name, last_name, ...)
Edit fields on an existing contact β only the fields you pass change. Changing status_name moves it along its workflow (automations may fire). Cannot delete or archive. JobNimbus: PUT /contacts/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The contact's jnid (JobNimbus record id)."
},
"record_type_name": {
"description": "Move to this contact workflow.",
"type": "string"
},
"status_name": {
"description": "New workflow status name.",
"type": "string"
},
"first_name": {
"description": "First name.",
"type": "string"
},
"last_name": {
"description": "Last name.",
"type": "string"
},
"display_name": {
"description": "Display name.",
"type": "string"
},
"company": {
"description": "Company name.",
"type": "string"
},
"email": {
"description": "Email address.",
"type": "string"
},
"home_phone": {
"description": "Home phone.",
"type": "string"
},
"mobile_phone": {
"description": "Mobile phone.",
"type": "string"
},
"work_phone": {
"description": "Work phone.",
"type": "string"
},
"fax_number": {
"description": "Fax number.",
"type": "string"
},
"website": {
"description": "Website.",
"type": "string"
},
"description": {
"description": "Description / notes on the contact record.",
"type": "string"
},
"address_line1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state_text": {
"description": "State, e.g. UT.",
"type": "string"
},
"zip": {
"description": "Postal code.",
"type": "string"
},
"country_name": {
"description": "Country, e.g. United States.",
"type": "string"
},
"source_name": {
"description": "Lead source name, e.g. Referral β must be one of the account's lead sources.",
"type": "string"
},
"sales_rep": {
"description": "jnid of the user who is the sales rep.",
"type": "string"
},
"custom_fields": {
"description": "Custom fields by their JobNimbus name, e.g. {\"Claim Number\":\"124523-f\",\"Date of Loss\":1550692800} or {\"cf_string_1\":\"β¦\"}. Dates are unix seconds. is_active / is_archived are ignored.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_create_job(name, record_type_name, status_name, description, address_line1, ...)
Create a job (project). name, record_type_name (a job workflow, e.g. Residential) and status_name (a status in it, e.g. Lead) are required and must match the account settings. Link the homeowner with primary_contact_id. Workflow automations may fire. JobNimbus: POST /jobs.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Job name, e.g. Smith Roof Replacement."
},
"record_type_name": {
"type": "string",
"minLength": 1,
"description": "Job workflow name."
},
"status_name": {
"type": "string",
"minLength": 1,
"description": "Status within that workflow."
},
"description": {
"description": "Job description.",
"type": "string"
},
"address_line1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state_text": {
"description": "State, e.g. UT.",
"type": "string"
},
"zip": {
"description": "Postal code.",
"type": "string"
},
"country_name": {
"description": "Country, e.g. United States.",
"type": "string"
},
"source_name": {
"description": "Lead source name β must be one of the account's lead sources.",
"type": "string"
},
"sales_rep": {
"description": "jnid of the user who is the sales rep.",
"type": "string"
},
"primary_contact_id": {
"description": "jnid of the job's primary contact (sent as primary.id).",
"type": "string"
},
"date_start": {
"description": "Start date, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"date_end": {
"description": "End date, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom fields by their JobNimbus name, e.g. {\"Claim Number\":\"124523-f\",\"Date of Loss\":1550692800} or {\"cf_string_1\":\"β¦\"}. Dates are unix seconds. is_active / is_archived are ignored.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"name",
"record_type_name",
"status_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_update_job(jnid, name, record_type_name, status_name, description, ...)
Edit fields on an existing job β e.g. move it to a new status_name, change the address, sales rep or dates. Only the fields you pass change; if JobNimbus rejects a status change, pass record_type_name alongside status_name. Automations may fire. Cannot delete or archive. JobNimbus: PUT /jobs/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The job's jnid (JobNimbus record id)."
},
"name": {
"description": "New job name.",
"type": "string"
},
"record_type_name": {
"description": "Job workflow name.",
"type": "string"
},
"status_name": {
"description": "New workflow status name.",
"type": "string"
},
"description": {
"description": "Job description.",
"type": "string"
},
"address_line1": {
"description": "Street address, line 1.",
"type": "string"
},
"address_line2": {
"description": "Street address, line 2.",
"type": "string"
},
"city": {
"description": "City.",
"type": "string"
},
"state_text": {
"description": "State, e.g. UT.",
"type": "string"
},
"zip": {
"description": "Postal code.",
"type": "string"
},
"country_name": {
"description": "Country, e.g. United States.",
"type": "string"
},
"source_name": {
"description": "Lead source name β must be one of the account's lead sources.",
"type": "string"
},
"sales_rep": {
"description": "jnid of the user who is the sales rep.",
"type": "string"
},
"primary_contact_id": {
"description": "jnid of the job's primary contact (sent as primary.id).",
"type": "string"
},
"date_start": {
"description": "Start date, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"date_end": {
"description": "End date, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"custom_fields": {
"description": "Custom fields by their JobNimbus name, e.g. {\"Claim Number\":\"124523-f\",\"Date of Loss\":1550692800} or {\"cf_string_1\":\"β¦\"}. Dates are unix seconds. is_active / is_archived are ignored.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_create_task(title, date_start, record_type_name, related_id, date_end, ...)
Create a task or appointment on a contact or job. title, date_start (unix seconds) and record_type_name (a task type from the account settings, e.g. Task or Appointment) are required; related_id links it to the contact/job. JobNimbus: POST /tasks.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Task title."
},
"date_start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Start (or due) time, unix seconds."
},
"record_type_name": {
"type": "string",
"minLength": 1,
"description": "Task type name, e.g. Task or Appointment."
},
"related_id": {
"type": "string",
"minLength": 1,
"description": "jnid of the contact or job this task belongs to (sent as related: [{id}])."
},
"date_end": {
"description": "End time, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"description": {
"description": "Task details.",
"type": "string"
},
"priority": {
"description": "Priority: 0 none, 1 high, 2 medium, 3 low.",
"type": "integer",
"minimum": 0,
"maximum": 3
},
"estimated_time": {
"description": "Estimated minutes.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"owner_ids": {
"description": "jnids of the users to assign (sent as owners: [{id}]).",
"type": "array",
"items": {
"type": "string"
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"title",
"date_start",
"record_type_name",
"related_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_update_task(jnid, title, date_start, date_end, description, ...)
Edit an existing task β reschedule it, change the title or priority, reassign it, or mark it complete with is_completed=true (reopen with false). Only the fields you pass change. Cannot delete. JobNimbus: PUT /tasks/{jnid}.
Input Schema
{
"type": "object",
"properties": {
"jnid": {
"type": "string",
"minLength": 1,
"description": "The task's jnid (JobNimbus record id)."
},
"title": {
"description": "New title.",
"type": "string"
},
"date_start": {
"description": "New start time, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"date_end": {
"description": "New end time, unix seconds.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"description": {
"description": "New details.",
"type": "string"
},
"priority": {
"description": "Priority: 0 none, 1 high, 2 medium, 3 low.",
"type": "integer",
"minimum": 0,
"maximum": 3
},
"is_completed": {
"description": "true marks the task done; false reopens it.",
"type": "boolean"
},
"estimated_time": {
"description": "Estimated minutes.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"actual_time": {
"description": "Minutes logged.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"owner_ids": {
"description": "jnids of the users to assign (sent as owners: [{id}]).",
"type": "array",
"items": {
"type": "string"
}
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"jnid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄jobnimbus_create_note(primary_id, note, record_type_name, is_private, actor)
Add a note (activity entry) to a contact or job's activity feed. record_type_name defaults to Note; use another activity type from the account settings if needed. JobNimbus: POST /activities.
Input Schema
{
"type": "object",
"properties": {
"primary_id": {
"type": "string",
"minLength": 1,
"description": "jnid of the contact or job the note belongs to (sent as primary.id)."
},
"note": {
"type": "string",
"minLength": 1,
"description": "The note text."
},
"record_type_name": {
"description": "Activity type name. Defaults to Note.",
"type": "string"
},
"is_private": {
"description": "Mark the note private.",
"type": "boolean"
},
"actor": {
"description": "Optional JobNimbus user email to act as. The record is created/edited with that user's permissions and shows them as the author. Needs an admin-level API key.",
"type": "string"
}
},
"required": [
"primary_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence