FieldPulse MCP by usefulapi

Read FieldPulse customers, jobs, estimates, invoices, assets and projects; create and update jobs.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
93%
Integridad del esquema
92%
Calidad de los nombres
76%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (8)

  • LOWTool 'fieldpulse_list_customer_contacts' name length outside 3-30 rangeen fieldpulse_list_customer_contacts
  • LOWTool 'fieldpulse_get_customer_contact' name length outside 3-30 rangeen fieldpulse_get_customer_contact
  • LOWTool 'fieldpulse_list_job_status_workflows' name length outside 3-30 rangeen fieldpulse_list_job_status_workflows
  • LOWTool 'fieldpulse_list_job_workflow_statuses' name length outside 3-30 rangeen fieldpulse_list_job_workflow_statuses
  • LOWTool 'fieldpulse_list_asset_categories' name length outside 3-30 rangeen fieldpulse_list_asset_categories
  • LOWTool 'fieldpulse_list_purchase_orders' name length outside 3-30 rangeen fieldpulse_list_purchase_orders
  • LOWTool 'fieldpulse_list_company_profiles' name length outside 3-30 rangeen fieldpulse_list_company_profiles
  • LOWTool 'fieldpulse_list_pipeline_statuses' name length outside 3-30 rangeen fieldpulse_list_pipeline_statuses

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,483Tokens (definiciones de herramientas)
~1.8 KBTamaño de respuesta típico
Impacto significativo en la atención (7.41% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "fieldpulse": {
      "url": "https://fieldpulse.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://fieldpulse.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (43)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢fieldpulse_list_customers(search, sort_by, sort_dir, page, limit)

List or search customers (name, email, phone, address, status, assigned user). GET /customers.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "searchable",
        "email",
        "phone",
        "address_1"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_customer(customer_id)

One customer by id. GET /customers/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_customer_contacts(customer_id, page, limit)

The contacts (people) of one customer. GET /customers/{customerId}/customer-contact.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_customer_contact(customer_id, contact_id)

One contact of a customer. GET /customers/{customerId}/customer-contact/{contactId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Customer contact id."
    }
  },
  "required": [
    "customer_id",
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_jobs(search, sort_by, sort_dir, created_from, created_to, ...)

List or search jobs (type, status, customer, schedule, assignments), optionally within a created-at range or by custom status ids. GET /jobs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "created_at",
        "updated_at"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "created_from": {
      "description": "Only jobs created at or after this time (yyyy-mm-dd or ISO 8601 with a timezone).",
      "type": "string"
    },
    "created_to": {
      "description": "Only jobs created at or before this time.",
      "type": "string"
    },
    "status_ids": {
      "description": "Only jobs in these custom status ids (see fieldpulse_list_job_workflow_statuses).",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "with_custom_fields": {
      "description": "Include each job's custom field values (customfields_with_related_data).",
      "type": "boolean"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_job(job_id, with_custom_fields)

One job by id, optionally with its custom field values. GET /jobs/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse job id."
    },
    "with_custom_fields": {
      "description": "Include custom field values.",
      "type": "boolean"
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_job_status_workflows(limit)

The job status workflows (use their ids with fieldpulse_list_job_workflow_statuses and when setting a custom job status). GET /jobs/status-workflows.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_job_workflow_statuses(limit)

The custom job statuses of all workflows, with their ids (for filtering jobs or setting a status). GET /jobs/status-workflow-statuses.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_estimates(search, sort_by, sort_dir, page, limit)

List or search estimates (customer, status, totals, line items). GET /estimates.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "description": "An attribute of the record, e.g. created_at.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,49}$"
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_estimate(estimate_id)

One estimate by id. GET /estimates/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "estimate_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse estimate id."
    }
  },
  "required": [
    "estimate_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_invoices(search, sort_by, sort_dir, page, limit)

List or search invoices (customer, status, totals, due dates). GET /invoices.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "description": "An attribute of the record, e.g. created_at.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,49}$"
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_invoice(invoice_id)

One invoice by id. GET /invoices/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_payments(search, sort_by, sort_dir, page, limit)

List or search payments (amount, method, date, invoice). GET /payments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "cuid",
        "method",
        "amount",
        "payment_date"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_payment(payment_id)

One payment by id. GET /payments/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse payment id."
    }
  },
  "required": [
    "payment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_assets(search, status, page, limit)

List or search customer assets (equipment) by install status. GET /assets.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "string",
      "enum": [
        "uninstalled",
        "installed",
        "retired"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_asset(asset_id)

One asset by id. GET /assets/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "asset_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse asset id."
    }
  },
  "required": [
    "asset_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_asset_categories(search, page, limit)

List asset categories. GET /assets-category.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_locations(object_type, object_id, page, limit)

List locations (service addresses) of a customer or a job. GET /locations.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job"
      ]
    },
    "object_id": {
      "description": "Id of the customer or job (needs object_type).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_location(location_id)

One location by id. GET /locations/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse location id."
    }
  },
  "required": [
    "location_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_projects(search, sort_by, sort_dir, page, limit)

List or search projects (status, completion). GET /projects.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "cuid",
        "name",
        "status_id",
        "completion_percentage"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_project(project_id)

One project by id. GET /projects/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse project id."
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_contracts(limit)

List contracts (maintenance agreements). GET /contracts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_contract(contract_id)

One contract by id. GET /contracts/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "contract_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse contract id."
    }
  },
  "required": [
    "contract_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_items(page, limit)

List the invoice item catalog (products and services with prices). GET /items.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_item(item_id)

One invoice item by id. GET /items/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "item_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse item id."
    }
  },
  "required": [
    "item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_purchase_orders(page, limit)

List purchase orders. GET /purchase-orders.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_purchase_order(purchase_order_id)

One purchase order by id. GET /purchase-orders/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse purchase order id."
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_vendors(search, limit)

List vendors (suppliers). GET /vendors.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_get_vendor(vendor_id)

One vendor by id. GET /vendors/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "vendor_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse vendor id."
    }
  },
  "required": [
    "vendor_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_company_profiles(search, page, limit)

The company profile(s) of this FieldPulse account (name, address, contact details, settings). GET /company-profile.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Free-text search string.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_users(limit)

List the account's users (team members) with ids for assignments. GET /users.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_teams(page, limit)

List the account's teams. GET /teams.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_tags(object_type, page, limit)

List tags for customers or jobs. GET /tags.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_lead_sources(page, limit)

List customer lead sources. GET /lead-source.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_pipeline_statuses(page, limit)

List customer pipeline statuses. GET /pipeline-status.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_custom_fields(object_type, page, limit)

List custom field definitions, optionally for one object type. GET /custom-fields.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job",
        "invoice",
        "item",
        "maintenance_agreement",
        "project",
        "asset",
        "material_list"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_comments(object_type, object_id, page, limit)

List comments on a record (customer, job, project, subtasks, invoice). GET /comments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "object_type": {
      "type": "string",
      "enum": [
        "customer",
        "job",
        "project",
        "subtasks",
        "invoice"
      ]
    },
    "object_id": {
      "description": "Id of the record (needs object_type).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_subtasks(status, assigned_user_id, sort_by, sort_dir, page, ...)

List subtasks (job checklist items) by status or assigned user. GET /subtasks.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "open",
        "close"
      ]
    },
    "assigned_user_id": {
      "description": "Only subtasks assigned to this user id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "due_date",
        "status",
        "title"
      ]
    },
    "sort_dir": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldpulse_list_timesheets(user_id, in_time, out_time, type, limit)

List timesheet entries (clock in/out), optionally for one user or a time window. GET /timesheets.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "user_id": {
      "description": "Only this user's entries.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "in_time": {
      "description": "Clock-in time filter (yyyy-mm-dd or ISO 8601 with a timezone).",
      "type": "string"
    },
    "out_time": {
      "description": "Clock-out time filter.",
      "type": "string"
    },
    "type": {
      "description": "Entry type, e.g. job.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "limit": {
      "description": "Records per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_create_customer(first_name, last_name, display_name, company_name, account_type, ...)

WRITE: create a customer (lead or account). Give first_name and/or last_name, or a unique display_name. Creates a new record every call; check fieldpulse_list_customers first to avoid duplicates. POST /customers.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "display_name": {
      "description": "Required by FieldPulse when first and last name are empty; must be unique.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "company_name": {
      "type": "string",
      "maxLength": 255
    },
    "account_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    },
    "email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "alt_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "secondary_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "secondary_phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "status": {
      "type": "string",
      "enum": [
        "lead",
        "opportunity",
        "current customer",
        "lost",
        "other",
        "inactive"
      ]
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "job_notes": {
      "type": "string",
      "maxLength": 4000
    },
    "assigned_to": {
      "description": "User id the customer is assigned to (see fieldpulse_list_users); null clears it.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "lead_source_id": {
      "description": "See fieldpulse_list_lead_sources.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "pipeline_status_id": {
      "description": "See fieldpulse_list_pipeline_statuses.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tags": {
      "description": "Existing customer tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "has_different_billing_address": {
      "type": "boolean"
    },
    "billing_address_1": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_address_2": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_city": {
      "type": "string",
      "maxLength": 255
    },
    "billing_state": {
      "type": "string",
      "maxLength": 255
    },
    "billing_zip_code": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_1": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_2": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_city": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_state": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_zip_code": {
      "type": "string",
      "maxLength": 255
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_update_customer(customer_id, first_name, last_name, display_name, company_name, ...)

WRITE: change fields of one customer (only the fields you pass). If FieldPulse asks for a name, include first_name/last_name or display_name. PUT /customers/{customerId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse customer id."
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "display_name": {
      "description": "Required by FieldPulse when first and last name are empty; must be unique.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "company_name": {
      "type": "string",
      "maxLength": 255
    },
    "account_type": {
      "type": "string",
      "enum": [
        "individual",
        "company"
      ]
    },
    "email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "alt_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "secondary_email": {
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "secondary_phone": {
      "description": "A valid phone number.",
      "type": "string",
      "maxLength": 255
    },
    "status": {
      "type": "string",
      "enum": [
        "lead",
        "opportunity",
        "current customer",
        "lost",
        "other",
        "inactive"
      ]
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "job_notes": {
      "type": "string",
      "maxLength": 4000
    },
    "assigned_to": {
      "description": "User id the customer is assigned to (see fieldpulse_list_users); null clears it.",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "lead_source_id": {
      "description": "See fieldpulse_list_lead_sources.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "pipeline_status_id": {
      "description": "See fieldpulse_list_pipeline_statuses.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "tags": {
      "description": "Existing customer tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "has_different_billing_address": {
      "type": "boolean"
    },
    "billing_address_1": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_address_2": {
      "type": "string",
      "maxLength": 1000
    },
    "billing_city": {
      "type": "string",
      "maxLength": 255
    },
    "billing_state": {
      "type": "string",
      "maxLength": 255
    },
    "billing_zip_code": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_1": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_2": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_city": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_state": {
      "type": "string",
      "maxLength": 255
    },
    "service_address_zip_code": {
      "type": "string",
      "maxLength": 255
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_create_job(customer_id, job_type, billing, subtitle, notes, ...)

WRITE: create a job for an existing customer. Needs customer_id, job_type and the numeric billing value FieldPulse requires; set a status (1-6) or a custom status_id + status_workflow_id. Creates a new job every call. POST /jobs.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Existing customer id."
    },
    "job_type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 150,
      "description": "Job type label, e.g. the service name."
    },
    "billing": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "The integer billing value FieldPulse requires for a job."
    },
    "subtitle": {
      "type": "string",
      "maxLength": 150
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "field_notes": {
      "type": "string",
      "maxLength": 5000
    },
    "status": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 = new, 2 = in progress, 3 = pending, 4 = completed, 5 = canceled, 6 = on the way."
    },
    "status_id": {
      "description": "A custom status id (see fieldpulse_list_job_workflow_statuses); needs status_workflow_id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status_workflow_id": {
      "description": "The status workflow of status_id (see fieldpulse_list_job_status_workflows).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_time": {
      "description": "Start, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "end_time": {
      "description": "End, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "due_date": {
      "description": "Due date, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "location_id": {
      "description": "A location of the customer (see fieldpulse_list_locations).",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "customer_contact_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "assignments": {
      "description": "Who the job is assigned to.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "team_id": {
            "description": "Team id (see fieldpulse_list_teams).",
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "assigned_members": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "description": "User ids (see fieldpulse_list_users)."
          }
        },
        "required": [
          "assigned_members"
        ]
      }
    },
    "tags": {
      "description": "Existing job tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "customer_id",
    "job_type",
    "billing"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fieldpulse_update_job(job_id, customer_id, job_type, billing, subtitle, ...)

WRITE: change a job: status, schedule, notes, assignments, location. FieldPulse requires customer_id, job_type and billing on every update, so this reads the job first and keeps those (and its current status) unless you pass new values. The read and the write are two requests; FieldPulse offers no version check. PUT /jobs/{jobId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FieldPulse job id."
    },
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "job_type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 150
    },
    "billing": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "subtitle": {
      "type": "string",
      "maxLength": 150
    },
    "notes": {
      "type": "string",
      "maxLength": 7500
    },
    "field_notes": {
      "type": "string",
      "maxLength": 5000
    },
    "status": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 = new, 2 = in progress, 3 = pending, 4 = completed, 5 = canceled, 6 = on the way."
    },
    "status_id": {
      "description": "A custom status id (see fieldpulse_list_job_workflow_statuses); needs status_workflow_id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status_workflow_id": {
      "description": "The status workflow of status_id (see fieldpulse_list_job_status_workflows).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_time": {
      "description": "Start, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "end_time": {
      "description": "End, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "due_date": {
      "description": "Due date, yyyy-mm-dd or ISO 8601 with a timezone.",
      "type": [
        "string",
        "null"
      ]
    },
    "location_id": {
      "description": "A location of the customer (see fieldpulse_list_locations).",
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "project_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "customer_contact_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "assignments": {
      "description": "Who the job is assigned to.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "team_id": {
            "description": "Team id (see fieldpulse_list_teams).",
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "assigned_members": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "description": "User ids (see fieldpulse_list_users)."
          }
        },
        "required": [
          "assigned_members"
        ]
      }
    },
    "tags": {
      "description": "Existing job tag ids (see fieldpulse_list_tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "required": [
    "job_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada43 herramientas