JobNimbus MCP by usefulapi

Manage JobNimbus contacts, jobs, tasks, estimates and invoices from chat.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,348Tokens (tool definitions)
~2.8 KBTypical response size
Significant attention impact (4.96% of 128k context)

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-http

What it can do

Tool inventory

Tools (20)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded20 tools
verifiedversion not recorded20 tools