Back to tracker
Plugin tracker
Tools
Explore what tracked Claude Connectors and ChatGPT Plugins can actually do. Search by tool, Plugin, Brand, category, verb, or access requirement.
Latest snapshot2026-09-13USmethodology registry-public-v1
Searchable tools
119,491
Authless tools
7,773
Auth required
107,252
Described tools
64,388
119,491 tools
- Create Calendar Eventcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"event_data": { ...event fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new event in Google Calendar.
REQUIRED fields in event_data:
- title: string — event title
- start: ISO 8601 datetime — event start time
- end: ISO 8601 datetime — event end time
OPTIONAL fields:
- timeZone: string (e.g. 'UTC', 'America/New_York')
- isAllDay: boolean — whether event spans full day
- attendees: array of {email, optional, id} — invitees
- recurrence: object — {frequency, interval, weekdays, count, until}
- location: string or object — event location
- description: string — event notes
- colorId: string — color ID or hex color
- metadata: object — custom metadata in extended propertiesFieldCampFieldCamp
PluginrequiredOperations - Create Clientcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"client_data": { ...client fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new client in FieldCamp.
REQUIRED fields:
- client_data: Dictionary containing client information
CLIENT_DATA REQUIRED fields:
- firstName OR email — at least one of these is required.
- firstName: string (MUST split full names - "John Smith" → firstName: "John", lastName: "Smith")
- email: string
CLIENT_DATA OPTIONAL fields:
- lastName: string (can be empty "")
- propertyAddress: object with {street, city, state, country, zipCode, formattedAddress} (all optional; an address object, NOT a plain string)
- phoneNumber: object {countryCode: "+1", number: "5551234567", countryIdentifier: "us"}
- companyName, website, taxNumber: string
- billingAddress, companyAddress: object
- notes: string
- stage: ACCOUNT-SPECIFIC — call get_data_model("client") for this
account's real stage values (accounts rename/replace the defaults;
sending a stale default fails or mislabels the client)
- clientType: "business" or "individual"
- properties: array
- preferredTechnicianIds, jobFormIds: arrays of ids
(Clients have no `tags` field — it is not accepted, so do not send it.)
Example:
{
"firstName": "John",
"lastName": "Smith",
"email": "john@example.com",
"phoneNumber": {"countryCode": "+1", "number": "5551234567", "countryIdentifier": "us"},
"propertyAddress": {
"formattedAddress": "123 Main St, Toronto, Ontario, Canada",
"city": "Toronto",
"state": "Ontario",
"country": "Canada"
}
}FieldCampFieldCamp
PluginrequiredOperations - Create Custom Object Recordcreate · Create a record of a CUSTOM object (e.g. slug="unit").
Call get_data_model(slug) FIRST — `data` must be keyed by the canonical
field NAMES it returns (not labels), and `status` (optional initial
pipeline stage) must be one of its valid_statuses. Relation fields take
the target record's id (or array of ids for multi-relations).
Example: create_record("unit",
data={"serial_no": "GEN-002", "client_ref": "<client id>"},
status="active")FieldCampFieldCamp
PluginrequiredOperations - Create Documentcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"document_data": { ...document fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new invoice or estimate in FieldCamp.
REQUIRED fields in document_data:
- documentNumber: integer — this field is required. Obtain the next number
via the get_document_number tool (pass the same documentType) and use its
value here.
- documentType: 1 (Invoice) or 2 (Estimate) (default: 1)
OPTIONAL fields:
- clientId: MongoDB ObjectId
- title: string
- date: ISO date (default: today)
- dueDate: ISO date
- items: array of line items [{name, quantity, rate, description, taxIds}]
- discount: number
- discountType: 1 (percentage) or 2 (flat)
- subTotal: number
- total: number
- paymentStatus: "unpaid", "paid", "partial", "overdue". HONORED ONLY for
ESTIMATES (documentType=2). For INVOICES (documentType=1, the default) the
backend hard-forces paymentStatus="unpaid" no matter what you pass (silently
overwritten). To mark an invoice paid/partial, use the record_payment tool.
- paymentTerms: integer — number of days (e.g., 30 for Net 30, 0 for Due on receipt)
- privateNotes: string (internal) — or `comments` for client-facing text.
Documents have no `notes` field — it is not accepted, so do not send it.
- terms: string
- tags: array
MULTI-OPTION ESTIMATE (give the customer choices): set documentType=2,
isMultiOption=true, and provide estimateOptions instead of a single items[].
Each option = {name, description?, isDefault?, lineItems:[{name, quantity,
rate, description?}]}. Omit top-level items[] when using estimateOptions.
Example (create invoice):
{
"documentNumber": 1,
"documentType": 1,
"clientId": "68efbd5a689d240560536cd6",
"items": [
{"name": "HVAC Repair", "quantity": 1, "rate": 150, "description": "Emergency repair"}
],
"dueDate": "2026-02-28"
}
Example (multi-option estimate):
{
"documentNumber": 1, "documentType": 2, "isMultiOption": true,
"clientId": "68efbd5a689d240560536cd6",
"estimateOptions": [
{"name": "Good", "lineItems": [{"name": "Basic clean", "quantity": 1, "rate": 100}]},
{"name": "Best", "isDefault": true, "lineItems": [{"name": "Deep clean", "quantity": 1, "rate": 250}]}
]
}FieldCampFieldCamp
PluginrequiredOperations - Create Jobcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"job_data": { ...job fields... }, "notes": "optional"}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new job in FieldCamp.
REQUIRED parameters:
- job_data: Dictionary containing job information
OPTIONAL parameters:
- notes: Additional notes for the job (default: "")
JOB_DATA REQUIRED fields:
- clientId: MongoDB ObjectId (from search_database or get_client_by_id)
- jobType: "one-off", "recurring", or "multi-day"
- jobNumber: string or number
- startDateTime: ISO 8601 format (e.g., "2026-01-25T09:00:00.000Z")
- jobAddress: object with {city, state, country, formattedAddress}
JOB_DATA OPTIONAL fields:
- jobTypeId: id from get_job_types — the account's job-type catalog
("Annual PM" vs "6-Month Checkup"). Distinct from jobType above.
- targetRecordId + targetObjectSlug: link this job to a custom-object
record (e.g. targetObjectSlug="unit", targetRecordId=<record id from
list_records>). This is how PM jobs attach to the asset they service.
- billToClientId: bill a different client than clientId (property
manager / homeowner split).
- endDateTime: ISO 8601 format
- jobPhone: object {countryCode: "+1", number: "xxx", countryIdentifier: "us"}
- assignedToTeams: array of team IDs
- jobItems: array of line-item objects. Each REQUIRES `itemName` (string) + `price`
(per-unit number); `quantity` defaults to 1 and `total` is auto-computed
(price*quantity). Reference an existing item with `itemId` (24-hex items id — NOT
productServiceId/id); omit itemId for an ad-hoc line. E.g.
[{"itemName": "Air filter", "price": 20, "quantity": 2}]
- ⚠️ linkedRecords is NOT accepted (rejected with 400 — the backend silently drops
it). Use targetRecordId + targetObjectSlug (above) to link a record instead.
- subTotal, tax, total, discount: numbers
- jobStatus: ACCOUNT-SPECIFIC — call get_data_model("job") for this
account's real stage values before setting one. Create does NOT validate
(it stores whatever string is sent), so a stale/guessed value silently
mislabels the job for filtering/UI. Defaults to "scheduled" if omitted.
- priority: "low", "medium", "high"
- timezone: string (e.g., "America/Toronto")
- anyTime: boolean
- serviceDuration: number (seconds)
- scheduleLater: boolean
RECURRING JOBS: set jobType="recurring" AND provide recurringOptions — a list
like [{"frequency": "weekly", "interval": 1, "duration": {"value": 1, "unit":
"month"}}] (frequency = daily/weekly/monthly; interval = every N periods).
Complex patterns (specific weekdays, nth-weekday, days-of-month) use
customSettings {monthlyType, nthWeekday, daysOfMonth, weekDays}; if the
pattern is non-trivial or unclear, confirm the exact recurringOptions with
the user instead of guessing.
Example:
{
"clientId": "68efbd5a689d240560536cd6",
"jobType": "one-off",
"jobNumber": "JOB-001",
"jobStatus": "scheduled",
"jobAddress": {
"formattedAddress": "123 Main St, Toronto, Ontario, Canada",
"city": "Toronto",
"state": "Ontario",
"country": "Canada"
},
"startDateTime": "2026-01-25T09:00:00.000Z",
"endDateTime": "2026-01-25T17:00:00.000Z"
}FieldCampFieldCamp
PluginrequiredOperations - Create Product/Servicecreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"product_service_data": { ...fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new product or service in FieldCamp.
REQUIRED parameters:
- product_service_data: Dictionary containing product/service information
PRODUCT_SERVICE_DATA REQUIRED fields:
- name: string
- type: "Product" or "Service"
- price: number
PRODUCT_SERVICE_DATA OPTIONAL fields:
- description: string
- properties: array
- isTaxExempt/exemptFromTax: boolean (default: false)
- duration: number (minutes, for services)
- isActive: boolean (default: true)
- isInventoried/trackInventory: boolean (default: false). If true, `inventory`
(below) is REQUIRED — the backend creates a stock row and 400s/500s without it.
- categoryIds: array of category IDs
- inventory: object — required when tracking is on. Shape:
{
"locationId": "<24-hex warehouse ObjectId>", // REQUIRED. This is the
// warehouse key — NOT "warehouseId"/"warehouse"/"location"
// (those are not accepted). Get one from get_warehouses.
"sku": "SKU-001", // REQUIRED, must be GLOBALLY unique (duplicate 500s)
"quantity": 10, // integer on-hand count (default 0)
"lowStockAlert": 5, // integer reorder threshold (default 5)
"binLocation": "A-1" // optional
}
- taxIds: array of tax IDs
- formIds: array
- settings: object with {onlineBooking, allowFillForm, serviceDuration, bookingType}
- cost: number — internal unit cost (never client-facing); drives the estimate
phase-margin breakdown (product cost → Material, service cost → Labor)
- unitOfMeasurementId: string — unit of measurement id (sq ft, hour, each, …);
valid ids from GET /api/unit-measures; reads return populated unitOfMeasurement
Example:
{
"name": "GPU",
"type": "Product",
"price": 100,
"description": "High-performance graphics card",
"isActive": true,
"exemptFromTax": false,
"trackInventory": false
}FieldCampFieldCamp
PluginrequiredOperations - Create Purchase Ordercreate · Create a purchase order (order stock from a vendor) in FieldCamp.
REQUIRED in po_data:
- vendorId: the supplier to order from (use get_vendors to find it).
- items: non-empty array of line items. Each item: {itemId, quantity,
price}; set displayType:'kit' to order an inventory kit (the backend
expands it into its component items).
OPTIONAL in po_data:
- poNumber, expectedDeliveryDate (ISO date), notes.
Call get_vendors for the vendorId and get_products_services / get_inventory
for item ids before creating.FieldCampFieldCamp
PluginrequiredOperations - Create Requestcreate · ⚠️ CALL SHAPE — pass arguments exactly as: {"request_data": { ...request fields... }}
All record fields go INSIDE the *_data object, NOT at the top level (top-level keys are rejected as "unexpected keyword argument").
Create a new service request in FieldCamp.
REQUIRED fields in request_data:
- clientId: MongoDB ObjectId of the client
OPTIONAL fields:
- source: string (default: "manual")
- description: string
- urgency: string enum — "low", "medium", "high", "critical" (default: "medium")
- requestAddress: object {formattedAddress, city, state, country}
- startDate: ISO 8601 format
- endDate: ISO 8601 format
- stage: ACCOUNT-SPECIFIC (request pipeline is org-configurable) — call
get_data_model("request") for this account's real stage slugs.
Default: "new_request". Built-in default slugs:
new_request, unscheduled, overdue, inspection_scheduled,
inspection_complete, quote_created, quote_sent, converted,
lost_no_response, lost_reject_quote, cancelled, duplicate
- assignedTo: array of user MongoDB ObjectIds
- notes: string
- tags: array of strings
- estimatedValue: number
- items: array of line items [{itemId, itemName, quantity, rate}]. ⚠️ itemId
is REQUIRED on each item and MUST be a real product/service id from
get_products_services — items without a valid itemId cause a server error.
If you have no product id, OMIT items entirely (use description/estimatedValue).
- taxes: array of tax objects [{taxId, name, rate, taxType}]
Example:
{
"clientId": "68efbd5a689d240560536cd6",
"description": "HVAC repair needed",
"urgency": "high",
"stage": "new_request"
}FieldCampFieldCamp
PluginrequiredOperations - Create Taskcreate · Create a new task in FieldCamp.
REQUIRED parameters:
- name: Task name/title
- scheduleDateTime: ISO 8601 format (e.g., "2026-01-25T14:00:00.000Z")
OPTIONAL parameters:
- instructions: Detailed task instructions
- priority: "low", "normal", "high", "urgent" (default: "normal")
- category: "admin", "maintenance", "follow_up", "inspection" (default: "follow_up")
- assignedToId: MongoDB ObjectId of user to assign (search users collection)
- clientId: MongoDB ObjectId of linked client
- linkType: "client", "job", "estimate", "invoice"
- jobId, estimateId, invoiceId: MongoDB ObjectIds for linked entities
- propertyAddress: string
- scheduleType: "once", "daily", "weekly", "monthly" (default: "once"). For a
recurring task pass a non-"once" value AND a recurrenceRule — recurrence is
driven by recurrenceRule; scheduleType is the stored label.
- scheduleEndDate: ISO 8601 format (for recurring tasks)
- allDay: boolean (default: false)
- duration: minutes (default: 30)
- recurrenceRule: e.g., "FREQ=DAILY;INTERVAL=1" (for recurring)
- recurrenceCount: number of occurrences
- reminderType: "email", "sms", "push"
- reminderTime: minutes before task (default: 15)
- tags: array of strings
- emailTeam: boolean - notify assignee (default: false)FieldCampFieldCamp
PluginrequiredOperations - Create Tax Ratecreate · Create a tax rate in FieldCamp.
REQUIRED in tax_data:
- name: tax name (e.g. 'GST').
- rate: percentage as a number (e.g. 5 for 5%).
OPTIONAL in tax_data:
- taxType: 1 = exclusive (default), other values per settings.
- description, applyOnAllItems (bool), countryId, stateId,
effectiveDate (ISO date), applicationRules (array).
The new tax id feeds the `taxIds` arrays on create_document and
create_product_service. Admin / settings permission required.FieldCampFieldCamp
PluginrequiredOperations - Create Vendorcreate · Create a vendor / supplier in FieldCamp.
REQUIRED:
- name: vendor name.
OPTIONAL:
- email: must be unique for the org (backend rejects a duplicate).
- phone: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape:
{"countryCode": "+1", "number": "4155550100", "countryIdentifier": "us"}
- address: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape (sub-fields optional; at minimum pass
{"formattedAddress": "..."}):
{"formattedAddress": "...", "city": "...", "state": "..."}
Returns the created vendor. Use its id as `preferredVendorId` on
create_product_service / update_product_service. Call get_vendors first to
check whether the vendor already exists.FieldCampFieldCamp
PluginrequiredOperations - Create Visitcreate · Create a new visit/appointment for a job.
REQUIRED parameters:
- jobId: MongoDB ObjectId of the job (get from search_database or get_job_by_id)
- visitStartDateTime: ISO 8601 format (e.g., "2026-01-25T14:00:00.000Z")
- visitEndDateTime: ISO 8601 format (e.g., "2026-01-25T16:00:00.000Z")
- teamId: List of team-member IDs. Pass as array (preferred, e.g. ["t1", "t2"]) or JSON-string (e.g. '["t1","t2"]'). Both forms are accepted; the server normalizes to an array on the wire.
OPTIONAL parameters:
- visitStatus: account-specific — call get_data_model("visit") for valid values (default: "scheduled")
- priority: "low", "medium", "high" (default: "medium")
- scheduleLater: "true" or "false" as string (default: "false")
- anyTime: "true" or "false" as string - flexible time (default: "false")
- isExtraVisit: "true" or "false" as string - extra visit beyond original (default: "false")
- skillsId: required skills for the visitFieldCampFieldCamp
PluginrequiredOperations - Create Warehousecreate · Create a warehouse / inventory location in FieldCamp.
REQUIRED:
- name: warehouse name.
OPTIONAL:
- warehouseType: stored as the warehouse type (e.g. 'Main Warehouse',
'Technician Truck/Van').
- address: composite OBJECT (dict), NOT a plain string — a bare string is
rejected by the backend. Shape (all sub-fields optional; at minimum pass
{"formattedAddress": "..."}):
{
"formattedAddress": "123 Main St, Austin, TX 78701, USA",
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"country": "USA",
"zipCode": "78701"
}
Returns the created warehouse. Use its id as fromWarehouseId / toWarehouseId
on transfer_inventory and as the `warehouse` filter on get_inventory. Call
get_warehouses first to check whether a matching location already exists.FieldCampFieldCamp
PluginrequiredOperations - Delete Calendar Eventdelete · Delete an event from Google Calendar.
REQUIRED:
- eventId: string — ID of the calendar event to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Clientdelete · Delete a client from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- client_id: MongoDB ObjectId of the client
OPTIONAL:
- forceDelete: "true" to permanently delete, "false" to soft delete (default: "false")
Set forceDelete="true" to permanently delete the client and all associated data.
Set forceDelete="false" to soft delete (can be recovered).FieldCampFieldCamp
PluginrequiredOperations - Delete Documentsdelete · Delete invoice(s) or estimate(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- document_ids: Array of document MongoDB ObjectIds to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Inventory Itemdelete · Delete inventory item(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- delete_ids: Array of inventory item MongoDB ObjectIds
OPTIONAL:
- current_warehouse_id: MongoDB ObjectId of warehouse (when an item exists
in multiple warehouses, this picks which one to delete)FieldCampFieldCamp
PluginrequiredOperations - Delete Jobdelete · Delete a single job from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- job_id: MongoDB ObjectId of the job
NOTE: This tool deletes ONE job at a time. If the user wants to delete multiple jobs,
call this tool separately for each job_id.FieldCampFieldCamp
PluginrequiredOperations - Delete Product/Servicedelete · Delete product(s) or service(s) from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- delete_ids: Array of product/service MongoDB ObjectIds to deleteFieldCampFieldCamp
PluginrequiredOperations - Delete Purchase Order(s)delete · Delete one or more purchase orders in FieldCamp.
REQUIRED:
- delete_ids: array of purchase order ids to delete (from
get_purchase_orders).
DESTRUCTIVE: removes the purchase orders and their line items. Confirm with
the user before calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Requestdelete · Delete a service request from FieldCamp (soft delete).
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- request_id: MongoDB ObjectId of the request
Sets the request status to 'Deleted' and removes related items and taxes.
Only the request creator or parent user can delete.FieldCampFieldCamp
PluginrequiredOperations - Delete Taskdelete · Delete a task from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- task_id: MongoDB ObjectId of the taskFieldCampFieldCamp
PluginrequiredOperations - Delete Tax Rate(s)delete · Delete one or more tax rates in FieldCamp.
REQUIRED:
- delete_ids: array of tax ids to delete (from get_taxes).
DESTRUCTIVE: soft-deletes the taxes (status='Deleted') and marks any
QuickBooks tax mappings deleted. Existing documents keep their stored tax
values. Admin / settings permission required. Confirm with the user before
calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Vendor(s)delete · Delete one or more vendors / suppliers in FieldCamp.
REQUIRED:
- delete_ids: array of vendor ids to delete (from get_vendors).
DESTRUCTIVE: the backend archives each vendor and its related data, then
removes the vendors and their purchase orders. Confirm with the user before
calling.FieldCampFieldCamp
PluginrequiredOperations - Delete Visitdelete · Delete a visit/appointment from FieldCamp.
⚠️ WARNING: This is a destructive operation!
REQUIRED:
- visitId: MongoDB ObjectId of the visitFieldCampFieldCamp
PluginrequiredOperations - Delete Warehouse(s)delete · Delete one or more warehouses / inventory locations in FieldCamp.
REQUIRED:
- delete_ids: array of warehouse ids to delete (from get_warehouses).
DESTRUCTIVE: the backend archives each warehouse and its related data, then
removes inventory transfers/items in those warehouses and flags affected
products as non-inventory. Confirm with the user before calling.FieldCampFieldCamp
PluginrequiredOperations - Email Document to Clientsend · Send an invoice or estimate to a client via email.
REQUIRED:
- to: array of recipient email addresses
- subject: email subject line
- message: email message body
OPTIONAL:
- documentId: MongoDB ID of the document (for tracking)
- documentType: 1=Invoice, 2=Estimate
- documentNumber: document number (for PDF filename)
- documentViewUrl: URL for 'View Document' button in email
- cc: array of CC email addresses
- bcc: array of BCC email addresses
- attachPdf: boolean — attach rendered PDF (default: false)FieldCampFieldCamp
PluginrequiredOperations - Fetch (open a record by id)fetch · Fetch the FULL record for a single type-prefixed id returned by `search`.
This is step two of the search→fetch retrieval pair: after `search` finds a
record, call `fetch` with its `id` to pull the complete details (all fields)
for clients, jobs, visits, products/services, invoices, estimates, requests,
and tasks. It routes to the correct underlying record lookup automatically
based on the id prefix — you do NOT need to know or call the entity-specific
get_*_by_id tool yourself.
PARAMETERS:
- id: the TYPE-PREFIXED id from a `search` result, e.g. "client:<id>",
"job:<id>", "invoice:<id>", "estimate:<id>", "request:<id>",
"product:<id>", "visit:<id>", "task:<id>" (or "custom:<slug>:<id>").
RETURNS a JSON object: {"id", "title", "text", "url", "metadata"} where
`text` is the full record serialized as readable JSON, `url` is the app deep
link, and `metadata` carries key fields (status, totals, type, ...).FieldCampFieldCamp
PluginrequiredOperations - Get Account Data Modelget · Return THIS account's LIVE, customized schema — the real pipeline status
values, allowed transitions, and custom fields for an object.
Pipelines, statuses and fields are CUSTOMIZABLE per account, so the default
status names mentioned in other tools may not match this account. Call this
BEFORE filtering/setting a status or creating/updating a record whenever you
are unsure of the valid values for THIS account — then use the exact values
it returns. Scoped to the caller's own organization.
object_type: "client", "job", "visit", "invoice", "estimate", "request",
"task", or "all" (default).
Also accepts any CUSTOM object slug (tenant-defined — e.g. "unit").
"all" lists custom objects by name only; pass the specific slug to get
its fields (keyed by canonical field NAME — use these exact names in
create_record/update_record `data`), stages, transitions, and
conversion actions (valid rule_id values for convert_record).FieldCampFieldCamp
PluginrequiredOperations - Get Activity Historyget · Get activity history for any entity (audit trail).
REQUIRED:
- module_id: MongoDB ObjectId of the record
- module_type: "job", "visit", or a CUSTOM-OBJECT SLUG. Custom-object records
DO have history: create/update/delete each write a History row keyed by the
object slug. Pass the `slug` field from list_object_definitions VERBATIM —
it is not the plural form and not the display name (real slugs look like
"warnty", "contract_renewal", "all_mode", whose namePlural is a separate
display-only field). A record with no history yet returns an empty list,
which means "nothing recorded for this record", not "unsupported".
NOT available here: "client" and "request". Client activity lives in a
separate clientHistory table this endpoint does not read, and request
activity is not recorded at all — both return an EMPTY result rather than
an error, so do not read an empty response as "nothing ever changed".
OPTIONAL:
- page: page number (default: 1)
- limit: max records per page (server-clamped to 30)
Returns chronological activity log including who made changes,
what was changed, descriptions, and timestamps.
Use for: "What changes were made to this job?", "History of this visit?"FieldCampFieldCamp
PluginrequiredOperations - Get Available Team Membersget · Get available team members for a specific time slot.
Checks both visit overlaps and team member schedules (weeklySchedule/specificHours).
REQUIRED parameters:
- visitStartDateTime: ISO 8601 start time in UTC
- visitEndDateTime: ISO 8601 end time in UTC
- timezone: string — user's timezone (e.g. 'Asia/Kolkata')
OPTIONAL:
- requiredSkillIds: array of skill IDs to filter by required skills
- excludeJobId: string — exclude this job from conflict checkFieldCampFieldCamp
PluginrequiredOperations - Get Business Analyticsget · Get business analytics and metrics data. This is the PREFERRED tool for
totals, sums, rankings, and trends (e.g. total outstanding A/R, top clients,
revenue over time) — it computes them server-side. Do not try to total these
yourself by listing records.
REQUIRED:
- metric: The metric to retrieve (see list below)
⚠️ ALWAYS pass start_date AND end_date. Most metrics return an EMPTY result
("data": []) when no date range is given. For an "all-time" total, pass a
wide range (e.g. start_date="2020-01-01" through a date in the future).
Example: outstandingRevenue over a wide range returns the current total
A/R; topRevenueClients returns the ranked client list.
OPTIONAL:
- start_date: ISO date (e.g., "2026-01-01")
- end_date: ISO date (e.g., "2026-01-31")
- group_by: "auto", "day", "week", "month", "quarter", "none" (default: "auto")
- breakdown_by: dimension to break down by (see list below). NOTE: breakdown_by
is applied PER-METRIC — not every dimension works with every metric, and a
dimension the chosen metric doesn't support is silently ignored (no error;
the result simply comes back without that breakdown).
- filters: array of filter objects
AVAILABLE METRICS:
Jobs: totalJobsForChart, jobCompletionRate, jobVolumeTrends, avgJobValue, avgJobDuration,
jobStatusDistribution, jobTypeDistribution, jobsByClient, jobsByAssignee
Visits: totalVisits, visitSuccessRate, avgVisitDuration, visitsPerJob
Financial: revenueTrends, paidRevenue, outstandingRevenue, overdueInvoiceAmount,
invoiceCount, avgInvoiceValue, collectionRate, topRevenueClients, avgDaysToPayment
Estimates: totalEstimates, estimateValue, estimateApprovalRate, estimateConversionRate
CRM: newClientsOverTime, totalClients, totalRequests, clientConversionRate,
requestConversionRate, clientsStages, requestsByStage
Tasks: totalTasks, taskCompletionRate, overdueTasksCount, tasksByStatus, tasksByPriority
Workforce: scheduledHoursByTechnician, jobsPerTechnician, technicianRevenue
Geographic: jobsByCity, revenueByCity, clientsByCity
BREAKDOWN DIMENSIONS: createdBy, assignedTo, teamId, clientId, clientType,
clientStage, jobStatus, paymentStatus, visitStatus, jobType, city, stateFieldCampFieldCamp
PluginrequiredOperations - Get Clientget · Get complete client details by MongoDB ObjectId.
PARAMETERS:
- client_id: MongoDB ObjectId of the client
Returns all client information including name, contact details, property address,
billing address, tags, custom fields, and metadata.FieldCampFieldCamp
PluginrequiredOperations - Get Client Documentsget · Get documents (invoices and estimates) for a specific client.
REQUIRED:
- client_id: MongoDB ObjectId of the client
OPTIONAL:
- view: Set to "assigned" to only see documents assigned to current user
Returns list of documents with document type (1=Invoice, 2=Estimate),
document number, status, payment status, title, total, and date.FieldCampFieldCamp
PluginrequiredOperations - Get Client Payment Historyget · Get payment history for a specific client.
REQUIRED:
- client_id: MongoDB ObjectId of the client
OPTIONAL:
- view: Set to "assigned" to only see payments from documents assigned to current user
Returns list of payments with document number, payment amount, payment date,
payment method, document total, and payment status. Sorted by payment date descending.FieldCampFieldCamp
PluginrequiredOperations - Get Client's Productsget · Get products associated with a specific client from their jobs.
REQUIRED:
- client_id: MongoDB ObjectId of the client
OPTIONAL:
- view: Set to "assigned" to only see products from jobs assigned to current user
Returns list of products with item name, description, quantity, price, total, and linked job number.FieldCampFieldCamp
PluginrequiredOperations - Get Company Infoget · Get company information and settings.
OPTIONAL:
- withCurrencyData: when True, backend enriches the response with extra
currency metadata. Default False (flag omitted from wire).
Returns company details including business name, address, phone, email,
website, timezone, currency, industry, mileage tracking settings,
labor rate settings, and other configuration.
Use for: Understanding business context (timezone, currency, industry)
before performing operations.FieldCampFieldCamp
PluginrequiredOperations - Get Company Scheduleget · Get the company's weekly business hours and specific hour exceptions (holidays, special hours).
Returns weeklySchedule (7 days) and specificHours (date-specific overrides).FieldCampFieldCamp
PluginrequiredOperations - Get Custom Object Recordget · Get one custom-object record by MongoDB ObjectId.
Returns the record's status (pipeline stage), its `data` object (keyed by
canonical field names — see get_data_model(slug)), and system timestamps.FieldCampFieldCamp
PluginrequiredOperations - Get Dispatch Suggestionsget · Get AI-powered dispatch suggestions for unassigned visits.
Recommends technicians based on workload, availability, and client relationships.
OPTIONAL parameters:
- visitId: string — get suggestions for a specific unassigned visit
- date: string (YYYY-MM-DD) — target date for finding unassigned visits (default: today)FieldCampFieldCamp
PluginrequiredOperations - Get Inventory Itemget · Get inventory item details by MongoDB ObjectId.
REQUIRED:
- inventory_id: MongoDB ObjectId of the inventory item
Returns complete inventory information including item details, warehouse,
quantity, SKU, and metadata.FieldCampFieldCamp
PluginrequiredOperations - Get Invoice/Estimateget · Get invoice or estimate details by MongoDB ObjectId.
PARAMETERS:
- document_id: MongoDB ObjectId of the invoice/estimate
Returns complete document information including line items, payments,
client details, and status.FieldCampFieldCamp
PluginrequiredOperations - Get Jobget · Get complete job details by MongoDB ObjectId.
PARAMETERS:
- job_id: MongoDB ObjectId of the job
- view: View options: 'all', 'own', 'viewAssigned' (default: 'all')
Returns job information including client, visits, line items, invoices, and metadata.FieldCampFieldCamp
PluginrequiredOperations - Get Job Typesget · List this account's job-type catalog — the named service types jobs are
classified by (e.g. "Annual PM", "6-Month Checkup"), each with an id,
description, and estimated duration.
Use the returned `id` as `jobTypeId` in create_job/update_job job_data.
Job types are account-defined; never guess a jobTypeId.
PARAMETERS:
- page / limit: pagination
- search: filter by title (contains, case-insensitive)FieldCampFieldCamp
PluginrequiredOperations - Get Next Document Numberget · Get the next available document number for invoices or estimates.
REQUIRED:
- documentType: integer — 1=Invoice, 2=EstimateFieldCampFieldCamp
PluginrequiredOperations - Get Next Job Numberget · Get the next available job number.
Returns the next sequential job number for job creation.
Useful for previewing the job number before creating a job.FieldCampFieldCamp
PluginrequiredOperations - Get Product/Serviceget · Get product or service details by MongoDB ObjectId.
PARAMETERS:
- product_service_id: MongoDB ObjectId of the product/service
Returns complete product/service information including name, type, price,
inventory status, tax settings, and custom properties.FieldCampFieldCamp
PluginrequiredOperations - Get Record Summaryget · Financial/progress rollups for one custom-object record, resolved
server-side in a single call: jobs targeting this record plus invoices
linked to them (all-time / windowed / paid totals and counts), and a
newest-first per-job invoiced history.
Use this for "how much have we spent on this unit?" / "repair or
replace?" questions instead of listing jobs and invoices yourself.FieldCampFieldCamp
PluginrequiredOperations - Get Requestget · Get complete service request details by MongoDB ObjectId.
REQUIRED:
- request_id: MongoDB ObjectId of the request
Returns full request including client details, line items (requestItems),
taxes (requestTaxes), stage, and all metadata.FieldCampFieldCamp
PluginrequiredOperations - Get Taskget · Get complete task details by MongoDB ObjectId.
REQUIRED:
- task_id: MongoDB ObjectId of the task
Returns task information including name, schedule, assignee, linked records,
status, and instructions.FieldCampFieldCamp
PluginrequiredOperations
What is Tool Explorer?
Tool Explorer indexes the callable tool names and descriptions attached to public registry profiles. It is useful for seeing what agents can actually invoke, not just which profile exists.
How do category and verb filters work?
Category filters use the live registry category rollup. Verb filters use the public tool insights rollup, so the page stays backed by the same read models as the tracker charts.
Why do auth requirements matter?
Auth requirements show whether a tool is likely usable without account connection, requires authentication, is private, or is unknown in the current snapshot.