Local services & SaaS
Faire
Orders, inventory, reorders and messages for wholesale brands.
12 endpoints
Your AI agent turns lead emails into work orders, balances tomorrow's dispatch board, invoices yesterday's finished jobs and logs the checks. Sign in to FieldEdge once in your own Cloud Browser. No API request form, no developer.
10 tools Read and write
FieldEdge has no MCP server and no ChatGPT or Claude app. Its Open API is real, but customers ask for access through an onboarding form and get credentials for an app FieldEdge provisions (developer portal, checked 8 Nov 2026). Cotlet runs 10 FieldEdge tools hosted, over MCP for agents and REST for scripts, in your own FieldEdge login.
| What you need | FieldEdge API | By hand | Cotlet |
|---|---|---|---|
| Work orders and customers | After approval | Yes, one by one | Yes |
| Dispatch a technician | After approval | Yes, one by one | Yes, after your OK |
| Invoice and send | After approval | Yes, one by one | Yes, sending after your OK |
| Ask in ChatGPT or Claude | No | No | Yes |
| Developer needed | Yes | No | No |
Checked 8 Nov 2026. Sources: FieldEdge Developer Portal · FieldEdge partners · FieldEdge pricing
Once, in a browser we host for you.
One address in its settings.
It drafts the work, you OK what customers get.
We never keep your FieldEdge password, and no dispatch, invoice or payment goes through until you approve it. Who can see your session
Sign in to FieldEdge in a Cloud Browser. Create a Cotlet account, open FieldEdge in its Cloud Browser, sign in with your office or dispatcher login and press Enable for agents.
Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.
Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.
FieldEdge shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned FieldEdge on after connecting? Refresh the connector and the 10 tools appear.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: fieldedge_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: fieldedge_write Search matches name, phone, email and address, so a repeat caller is found before a duplicate is made. The customer card shows equipment and service agreements.
Returns customers with their ID, contact details and service address. Pass the customer_id to get_customer and create_work_order.
MCP callfieldedge_read → list_customers
REST endpointGET https://cotlet.dev/api/v1/fieldedge/customers
| Name | Type | Description |
|---|---|---|
| query string | string | Name, phone, email or street address. |
| page integer | integer | Page number. Default: 1. |
{
"customers": [
{
"customer_id": "C-20418",
"name": "Mark Rivera",
"phone": "555-0182",
"email": "mark@example.com",
"service_address": "42 Oak St, Tampa, FL 33602"
}
],
"page": 1
} Returns the customer card: contacts, service locations, equipment on file, service agreements and the last work orders with their status.
MCP callfieldedge_read → get_customer
REST endpointGET https://cotlet.dev/api/v1/fieldedge/customers/{customer_id}
| Name | Type | Description |
|---|---|---|
| customer_id string required | string | Customer ID from list_customers. |
{
"customer_id": "customer_8c41d2"
} {
"customer_id": "C-20418",
"name": "Mark Rivera",
"equipment": [
{
"type": "Furnace",
"model": "Carrier 59SC5",
"installed": "2019-10-02"
}
],
"agreement": "Comfort Club, renews 2027-01-15",
"recent_work_orders": [
{
"work_order_id": "WO-88231",
"status": "Completed",
"date": "2026-04-11"
}
]
} Creates the customer and its first service location. Search list_customers first so a repeat caller does not become a duplicate. Reaches no one, so it runs at once.
MCP callfieldedge_write → create_customer
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/customers
| Name | Type | Description |
|---|---|---|
| name string required | string | Customer or company name. |
| phone string | string | Phone number. |
| email string | string | Email. |
| service_address string required | string | Street, city, state and ZIP. |
{
"name": "Jane Doe",
"service_address": "service address"
} {
"customer_id": "C-20502",
"name": "Priya Nair",
"service_address": "18 Cedar Ct, Tampa, FL 33606"
} A new work order stays unassigned until it is dispatched to a technician and a window. Your notification settings decide who hears about it.
Returns work orders with customer, task, technician, scheduled window and status. Filter by status such as Unassigned, Dispatched, In Progress or Completed.
MCP callfieldedge_read → list_work_orders
REST endpointGET https://cotlet.dev/api/v1/fieldedge/work-orders
| Name | Type | Description |
|---|---|---|
| date_from string | string | ISO date. |
| date_to string | string | ISO date. |
| status string | string | unassigned, dispatched, in_progress or completed. |
| technician string | string | Technician name. |
| page integer | integer | Page number. Default: 1. |
{
"work_orders": [
{
"work_order_id": "WO-88310",
"customer": "Mark Rivera",
"task": "Furnace tune-up",
"technician": "Luis",
"window": "2026-11-12 08:00-10:00",
"status": "Dispatched"
}
],
"page": 1
} Creates the work order with the task, description and an optional time window. It stays unassigned until dispatch_technician. Reaches no customer, so it runs at once.
MCP callfieldedge_write → create_work_order
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/customers/{customer_id}/work-orders
| Name | Type | Description |
|---|---|---|
| customer_id string required | string | Customer ID from list_customers. |
| task string required | string | Task or job type as named in your FieldEdge account. |
| description string | string | What the customer reported. |
| window_start string | string | ISO date and time. |
| window_end string | string | ISO date and time. |
{
"customer_id": "customer_8c41d2",
"task": "task"
} {
"work_order_id": "WO-88342",
"customer": "Priya Nair",
"task": "No heat diagnostic",
"status": "Unassigned"
} Puts the work order on the technician's row of the dispatch board. Your FieldEdge notification settings decide whether the customer and technician get a message. By default you confirm each call; you can switch that off for this tool.
MCP callfieldedge_write → dispatch_technician
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/work-orders/{work_order_id}/technician/dispatch
| Name | Type | Description |
|---|---|---|
| work_order_id string required | string | Work order number from list_work_orders. |
| technician string required | string | Technician name. |
| window_start string required | string | ISO date and time. |
| window_end string required | string | ISO date and time. |
{
"work_order_id": "WO-88342",
"technician": "Carlos",
"window_start": "2026-11-13T13:00",
"window_end": "2026-11-13T15:00"
} {
"work_order_id": "WO-88342",
"technician": "Carlos",
"window": "2026-11-13 13:00-15:00",
"status": "Dispatched"
} An invoice is built from the work order and stays a draft until it is sent. Payments are checks, cash and other manual types; no card is charged.
Returns invoices with total, balance and status. Use status unpaid and older_than_days to build a collections list.
MCP callfieldedge_read → list_invoices
REST endpointGET https://cotlet.dev/api/v1/fieldedge/invoices
| Name | Type | Description |
|---|---|---|
| status string | string | unpaid, paid or all. Default: all. |
| older_than_days integer | integer | Only invoices older than this. |
| customer_id string | string | One customer only. |
| page integer | integer | Page number. Default: 1. |
{
"invoices": [
{
"invoice_id": "INV-55120",
"customer": "Mark Rivera",
"total": "612.00",
"balance": "612.00",
"date": "2026-10-02",
"status": "Unpaid"
}
],
"page": 1
} Creates the invoice from the work order's items and labor. It stays a draft you can edit until send_invoice. Reaches no customer, so it runs at once.
MCP callfieldedge_write → create_invoice
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/work-orders/{work_order_id}/invoices
| Name | Type | Description |
|---|---|---|
| work_order_id string required | string | Work order number from list_work_orders. |
{
"work_order_id": "work_order_8c41d2"
} {
"invoice_id": "INV-55210",
"work_order_id": "WO-88231",
"total": "389.00",
"status": "Draft"
} Sends the invoice with your FieldEdge email template to the customer's billing email, or the addresses you pass. By default you confirm each call; you can switch that off for this tool.
MCP callfieldedge_write → send_invoice
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/invoices/{invoice_id}
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Invoice number from list_invoices. |
| to string[] | string[] | Recipient emails. Default: the customer's billing email. |
{
"invoice_id": "invoice_8c41d2"
} {
"invoice_id": "INV-55210",
"status": "Sent",
"sent_to": [
"mark@example.com"
],
"total": "389.00"
} Adds the payment and lowers the balance. No card is charged; card payments stay in FieldEdge. By default you confirm each call; you can switch that off for this tool.
MCP callfieldedge_write → record_payment
REST endpointPOST https://cotlet.dev/api/v1/fieldedge/invoices/{invoice_id}/payments
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Invoice number from list_invoices. |
| amount string required | string | Amount, e.g. 612.00. |
| method string required | string | check, cash or other. |
| reference string | string | Check number or note. |
{
"invoice_id": "invoice_8c41d2",
"amount": "amount",
"method": "method"
} {
"invoice_id": "INV-55120",
"payment": {
"method": "Check",
"amount": "612.00",
"reference": "4471"
},
"balance": "0.00"
} Your signed-in FieldEdge profile, AES-256-GCM encrypted, in Finland. No password.
The 10 FieldEdge tools, never the session cookie.
What your login sees: customers, work orders, prices, invoices.
Card charges, payroll, price book edits, users, deletes.
You sign in again yourself, in the same Cloud Browser.
Disable for agents, reset the browser, or change your FieldEdge password.
Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).
When FieldEdge moves a button on the dispatch board or renames a work order status, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Create a work order | Yes, cancel it in FieldEdge |
| Dispatch a technician | Move it; a message already sent stays sent |
| Create an invoice | Yes, edit or void the draft |
| Record a payment | Delete the payment in FieldEdge |
| Send an invoice | No |
3 of 10 tools ask first: dispatch_technician, send_invoice, record_payment. A new customer, a work order or a draft invoice reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.
{
"name": "dispatch_technician",
"arguments": {
"work_order_id": "WO-88342",
"technician": "Carlos",
"window_start": "2026-11-13T13:00",
"window_end": "2026-11-13T15:00"
}
} curl -X POST https://cotlet.dev/api/v1/fieldedge/work-orders/WO-88342/technician/dispatch \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"technician":"Carlos","window_start":"2026-11-13T13:00","window_end":"2026-11-13T15:00"}' {
"work_order_id": "WO-88342",
"technician": "Carlos",
"window": "2026-11-13 13:00-15:00",
"status": "Dispatched"
} A cron job or n8n flow can call the same tools over REST at /api/v1/fieldedge with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.
About $48 a monthfor an HVAC shop with 6 technicians, 8,280 credits. Your FieldEdge plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Lead email into a work order | 3 × 60 | 1,800 |
| Tomorrow's board checked and balanced | 4 × 22 | 880 |
| Yesterday's 8 jobs invoiced and sent | 17 × 22 | 3,740 |
| Unpaid invoice list, weekly | 3 × 4 | 120 |
| Checks logged, weekly (5) | 6 × 4 | 240 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 8,280 |
FieldEdge publishes no job counts, so the month is our example. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| FieldEdge Open API | Customers, work orders and invoices for your own developer. | Access on request through the onboarding form; you build and host the code. |
| usefulapi FieldEdge connector | Hosted MCP connection for ChatGPT and Claude, custom setup. | Runs on API credentials you get from FieldEdge first. |
| By hand | Every screen of FieldEdge, one record at a time. | Your time, during office hours. |
If your developer already has FieldEdge API access, building on it is cheaper for simple reads. To book, dispatch and invoice from ChatGPT or Claude this week, Cotlet works in the FieldEdge account you already have.
Prefer code? Our public repo has a ready FieldEdge MCP config for Claude Code, ChatGPT and Cursor, an agent skill and a small command-line tool. Add your Cotlet API key and your agent works in your own FieldEdge account.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the FieldEdge tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev, open FieldEdge under Integrations in the console and sign in to FieldEdge in its Cloud Browser. The trial starts with your first app and asks for no card.
Sign up at cotlet.dev, log in to FieldEdge once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your FieldEdge account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in FieldEdge: book service calls from lead emails; balance the dispatch board; invoice completed work orders. You ask in plain words, and anything that reaches other people waits for your OK first.
No. FieldEdge has no ChatGPT or Claude connector of its own and FieldEdge has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.
Yes, with Cotlet. ChatGPT finds or adds the customer, opens the work order and puts it on a technician's row of the dispatch board. Dispatching waits for your OK by default.
Yes, with Cotlet. ChatGPT builds the invoice from the completed work order and emails it to the customer after your OK. It can also list what is still unpaid.
Yes, with Cotlet. Ask "who is on tomorrow and how many calls each" and ChatGPT reads the work orders per technician and answers in plain words.
No. Cotlet works through your own FieldEdge sign-in, so you skip the API request form. It can do what your login can do in FieldEdge.
Run it on a schedule, for example every morning at 7 for last night's lead emails, or ask it when a call arrives. Nothing needs to change in FieldEdge.
Only in how it is called. Both carry the same 10 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with FieldEdge.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy