Local services & SaaS
Faire
Orders, inventory, reorders and messages for wholesale brands.
12 endpoints
Your AI agent turns service requests into work orders, schedules them on your technicians, invoices yesterday's finished jobs and logs the checks. Sign in to RazorSync once in your own Cloud Browser. No token request, no developer.
9 tools Read and write
RazorSync has no MCP server and no ChatGPT or Claude app. It documents a JSON API with a "unique token" header, but there is no self-service way to create the token; you contact support (RazorSync help, checked 8 Nov 2026). Cotlet runs 9 RazorSync tools hosted, over MCP for agents and REST for scripts, in your own RazorSync login.
| What you need | RazorSync API | By hand | Cotlet |
|---|---|---|---|
| Customers and work orders | With a token | Yes, one by one | Yes |
| Schedule a technician | With a token | Yes, one by one | Yes, after your OK |
| Invoice and send | With a token | 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: RazorSync help: API Documentation · RazorSync help: contact · RazorSync 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 RazorSync password, and no schedule, invoice or payment goes through until you approve it. Who can see your session
Sign in to RazorSync in a Cloud Browser. Create a Cotlet account, open RazorSync in its Cloud Browser, sign in to your company portal with your office 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.
RazorSync shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned RazorSync on after connecting? Refresh the connector and the 9 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: razorsync_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: razorsync_write Search matches name, phone, email and address, so a repeat caller is found before a duplicate is made.
Returns customers with ID, contact details and service locations. Pass the customer_id to create_work_order.
MCP callrazorsync_read → list_customers
REST endpointGET https://cotlet.dev/api/v1/razorsync/customers
| Name | Type | Description |
|---|---|---|
| query string | string | Name, phone, email or street address. |
| page integer | integer | Page number. Default: 1. |
{
"customers": [
{
"customer_id": "30418",
"name": "Greenway Apartments",
"phone": "555-0193",
"email": "office@example.com",
"service_address": "220 Elm Ave, Columbus, OH 43215"
}
],
"page": 1
} 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 callrazorsync_write → create_customer
REST endpointPOST https://cotlet.dev/api/v1/razorsync/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": "30502",
"name": "Priya Nair",
"service_address": "18 Cedar Ct, Columbus, OH 43206"
} A new work order stays unscheduled until it is put on a technician and a time. Your notification settings decide who hears about it.
Returns work orders with customer, description, technician, scheduled time and status.
MCP callrazorsync_read → list_work_orders
REST endpointGET https://cotlet.dev/api/v1/razorsync/work-orders
| Name | Type | Description |
|---|---|---|
| date_from string | string | ISO date. |
| date_to string | string | ISO date. |
| status string | string | unscheduled, scheduled, in_progress or complete. |
| technician string | string | Technician name. |
| page integer | integer | Page number. Default: 1. |
{
"work_orders": [
{
"work_order_id": "WO-7731",
"customer": "Greenway Apartments",
"description": "Unit 4B dishwasher leak",
"technician": "Marcus",
"scheduled": "2026-11-12T09:00",
"status": "Scheduled"
}
],
"page": 1
} Creates the work order with description and service location. It stays unscheduled until schedule_work_order, so it runs at once.
MCP callrazorsync_write → create_work_order
REST endpointPOST https://cotlet.dev/api/v1/razorsync/customers/{customer_id}/work-orders
| Name | Type | Description |
|---|---|---|
| customer_id string required | string | Customer ID from list_customers. |
| description string required | string | What the customer needs. |
| service_type string | string | Service type as named in your account. |
{
"customer_id": "customer_8c41d2",
"description": "description"
} {
"work_order_id": "WO-7790",
"customer": "Priya Nair",
"description": "Garbage disposal not working",
"status": "Unscheduled"
} Puts the work order on the technician's schedule. Your RazorSync notification settings decide whether the customer gets a message. By default you confirm each call; you can switch that off for this tool.
MCP callrazorsync_write → schedule_work_order
REST endpointPOST https://cotlet.dev/api/v1/razorsync/work-orders/{work_order_id}/schedule
| Name | Type | Description |
|---|---|---|
| work_order_id string required | string | Work order number from list_work_orders. |
| technician string required | string | Technician name. |
| start string required | string | ISO date and time. |
| duration_min integer | integer | Minutes. Default: 60. |
{
"work_order_id": "WO-7790",
"technician": "Marcus",
"start": "2026-11-13T14:00",
"duration_min": 90
} {
"work_order_id": "WO-7790",
"technician": "Marcus",
"scheduled": "2026-11-13T14:00",
"status": "Scheduled"
} An invoice is built from the work order and stays unsent until you OK the send. 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 for a collections list.
MCP callrazorsync_read → list_invoices
REST endpointGET https://cotlet.dev/api/v1/razorsync/invoices
| Name | Type | Description |
|---|---|---|
| status string | string | unpaid, paid or all. Default: all. |
| older_than_days integer | integer | Only invoices older than this. |
| page integer | integer | Page number. Default: 1. |
{
"invoices": [
{
"invoice_id": "INV-4410",
"customer": "Greenway Apartments",
"total": "1,180.00",
"balance": "1,180.00",
"date": "2026-10-05",
"status": "Unpaid"
}
],
"page": 1
} Creates the invoice from the work order's line items. It stays unsent until send_invoice, so it runs at once.
MCP callrazorsync_write → create_invoice
REST endpointPOST https://cotlet.dev/api/v1/razorsync/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-4472",
"work_order_id": "WO-7731",
"total": "265.00",
"status": "Unsent"
} Sends the invoice 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 callrazorsync_write → send_invoice
REST endpointPOST https://cotlet.dev/api/v1/razorsync/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-4472",
"status": "Sent",
"sent_to": [
"office@example.com"
],
"total": "265.00"
} Adds the payment and lowers the balance. No card is charged. By default you confirm each call; you can switch that off for this tool.
MCP callrazorsync_write → record_payment
REST endpointPOST https://cotlet.dev/api/v1/razorsync/invoices/{invoice_id}/payments
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Invoice number from list_invoices. |
| amount string required | string | Amount, e.g. 1180.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-4410",
"payment": {
"method": "Check",
"amount": "1,180.00",
"reference": "2209"
},
"balance": "0.00"
} Your signed-in RazorSync profile, AES-256-GCM encrypted, in Finland. No password.
The 9 RazorSync tools, never the session cookie.
What your login sees: customers, work orders, prices, invoices.
Card charges, users and permissions, price list edits, deletes.
You sign in again yourself, in the same Cloud Browser.
Disable for agents, reset the browser, or change your RazorSync 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 RazorSync moves a button on the schedule 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 RazorSync |
| Schedule a work order | Move it; a message already sent stays sent |
| Create an invoice | Yes, edit or void it before sending |
| Record a payment | Delete the payment in RazorSync |
| Send an invoice | No |
3 of 9 tools ask first: schedule_work_order, send_invoice, record_payment. A new customer, a work order or an unsent invoice reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.
{
"name": "schedule_work_order",
"arguments": {
"work_order_id": "WO-7790",
"technician": "Marcus",
"start": "2026-11-13T14:00",
"duration_min": 90
}
} curl -X POST https://cotlet.dev/api/v1/razorsync/work-orders/WO-7790/schedule \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"technician":"Marcus","start":"2026-11-13T14:00","duration_min":90}' {
"work_order_id": "WO-7790",
"technician": "Marcus",
"scheduled": "2026-11-13T14:00",
"status": "Scheduled"
} A cron job or n8n flow can call the same tools over REST at /api/v1/razorsync with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.
About $42 a monthfor an appliance repair business with 4 technicians, 7,220 credits. Your RazorSync plan stays as it is.
| Job | Calls | Credits |
|---|---|---|
| Request into a work order | 3 × 50 | 1,500 |
| Open work orders scheduled | 4 × 22 | 880 |
| Yesterday's jobs invoiced and sent | 13 × 22 | 2,860 |
| Unpaid list, weekly | 2 × 4 | 80 |
| Checks logged | 2 × 20 | 400 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 7,220 |
RazorSync 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 |
|---|---|---|
| RazorSync API | Customers, work orders, scheduling and invoices in JSON for your own developer. | Token through support; you build and host the code. |
| By hand | Every screen of RazorSync, one record at a time. | Your office time. |
If your developer already has a RazorSync token, building on the API is cheaper for simple reads. To open, schedule and invoice work orders by asking in ChatGPT or Claude, Cotlet works in the RazorSync account you already have.
Prefer code? Our public repo has a ready RazorSync 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 RazorSync 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 RazorSync tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev, open RazorSync under Integrations in the console and sign in to RazorSync in its Cloud Browser. The trial starts with your first app and asks for no card.
Sign up at cotlet.dev, log in to RazorSync 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 RazorSync account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in RazorSync: turn service requests into work orders; schedule unscheduled work orders; invoice completed work orders. You ask in plain words, and anything that reaches other people waits for your OK first.
No. RazorSync has no ChatGPT or Claude connector of its own and RazorSync 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 schedule after your OK.
Yes, with Cotlet. ChatGPT builds the invoice from the completed work order and emails it to the customer after your OK.
No. Cotlet works through your own RazorSync sign-in, so you skip the support request for a token. It can do what your login can do in RazorSync.
Run it on a schedule, for example every morning at 7 for last night's requests, or ask it when one arrives. Nothing needs to change in RazorSync.
Only in how it is called. Both carry the same 9 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with RazorSync.
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