[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Send Housecall Pro estimates with good, better, best options

> Draft a Housecall Pro estimate with named options from your price book, review it, then send it by email or text for the customer to approve.

Source: https://cotlet.dev/integrations/housecall-pro-api-mcp-server/send-multi-option-estimates

A homeowner asks for a water heater quote, and the same afternoon you build three priced options by hand in the estimate, one line item at a time, before you can send it.

Cotlet does it in your own Housecall Pro account with list\_customers, list\_price\_book, create\_estimate, add\_estimate\_option and send\_estimate, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=housecall-pro) [All Housecall Pro tools](https://cotlet.dev/integrations/housecall-pro-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Housecall Pro do this on its own?

Housecall Pro has no way to build an estimate from a message or a list (checked 14 Oct 2026). Its public API is MAX-plan only, with a limited-access key, and the reference documents reading a single estimate, not sending one. Every send is a manual click in the web portal or mobile app.

## How you do it in Housecall Pro today

1. Click the Create button in the top left of the web portal, choose Estimate, and search for the customer by name or click + New customer.
2. Type each service into the line item field to pull it from the Price book, or keep typing to make a custom line for this estimate only.
3. Save the estimate, then click + New option on the Estimate details page for every extra tier, naming each one (for example Good, Better, Best) and adding its own line items.
4. In the estimate header, choose whether the customer can approve a single option or several.
5. Click Send, check the preview, tick the options to include, pick Email or Text and send. Repeat for the next lead.

## How to send Housecall Pro estimates with good, better, best options

Prompt

```
Create an estimate for Dana Whitfield at 14 Elm Street for a water heater replacement with three options: a 40-gallon tank at $2,400, a 50-gallon tank at $3,100 and a tankless unit at $3,900. Show me the draft before you send it.
```

1. 01  
### Find the right customer and address  
list\_customers searches by name, email, phone or address, as the estimate screen does. If two profiles match, the agent shows both and asks which one, instead of choosing.
2. 02  
### Pull prices from the price book  
list\_price\_book returns your services and materials with their prices. A line that matches a price book item uses its price; anything else becomes a custom line for this estimate only, as in the app.
3. 03  
### Create the estimate and its options  
create\_estimate saves the draft with the first option, and add\_estimate\_option adds one call per extra tier, each with its own lines. Nothing reaches the customer yet, and a scheduled estimate follows the customer profile notification setting unless you turn the notice off.
4. 04  
### Show you the draft  
The agent reports each option with its lines and total, and which option the customer can approve alone or together. You fix a price or a name before anything is sent.
5. 05  
### Send it  
send\_estimate emails or texts the estimate with the options you picked. It asks for your OK by default, and checks the Mobile number first when you ask for text, because home and work numbers cannot receive texts.

### What you get back

Example data

```
Estimate est_8e41c2 for Dana Whitfield, 14 Elm Street
Option 1, 40-gallon tank: $2,400.00
Option 2, 50-gallon tank: $3,100.00
Option 3, tankless unit: $3,900.00
Customer can approve: one option
Sent by email to dana@example.com
Status: waiting for the customer
```

### Other ways to ask

- Build a good, better, best estimate from my water heater template and send it by text to the customer on the Maple Street lead.
- Copy last month's Smith estimate for the Jones family, change the second option to $3,250 and show me the total before sending.
- Every morning list estimates that are sent but not yet approved or declined, and draft a short follow-up message for each.
- Add a fourth option, a 5-year service plan at $480, to the open estimate for Dana Whitfield and leave it as a draft.

## What Housecall Pro allows, and what to know first

- Housecall Pro lets you add options to a saved estimate from a template or from scratch, and save an option built from scratch as a template.
- The customer can be allowed to approve one option or several, and the choice is set in the estimate header.
- When a customer approves an option they are asked for an e-signature, and the estimate status changes to Customer Approved; a decline shows Customer Declined, and you get the decision by email.
- A payment can only be taken on an estimate after it is converted into a job.
- A text goes out only if text messaging is turned on and approved for the account, the customer has a number in the Mobile field, and they have not replied STOP.

create\_estimate and send\_estimate ask for your OK by default. To run it on a schedule without you, switch confirmation off for those tools in your dashboard.

Sources: [Housecall Pro Help: How to Create an Estimate](https://help.housecallpro.com/en/articles/1185469-how-to-create-an-estimate) · [Housecall Pro Help: How to Use Multi-Option Estimates](https://help.housecallpro.com/en/articles/2883373-how-to-use-multi-option-estimates-web-mobile) · [Housecall Pro Help: How to Send an Estimate](https://help.housecallpro.com/en/articles/120533-how-to-send-an-estimate) · [Housecall Pro Help: E-Signatures on Estimates](https://help.housecallpro.com/en/articles/10040275-e-signatures-on-estimates)

## Call add\_estimate\_option from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/housecall-pro/estimates/est_8e41c2/option \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Tankless unit","line_items":[{"name":"Tankless water heater, installed","quantity":1,"unit_price":3900}]}'
```

Example response

```
{
"estimate_id": "est_8e41c2",
"option_id": "opt_3",
"name": "Tankless unit",
"line_items": [
{
"name": "Tankless water heater, installed",
"quantity": 1,
"unit_price": 3900
}
],
"total": 3900
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is housecall\_pro\_write → add\_estimate\_option. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/housecall-pro-api-mcp-server.md#automations)

## Housecall Pro tools this automation uses

__Cotlet Housecall Pro tools used to send Housecall Pro estimates with good, better, best options__
| Tool | Parameters |
| --------------------- | ---------------------------------------------------------------------------------------------------------------- |
| list\_customers | query, tag, limit, cursor |
| list\_price\_book | query, kind, limit, cursor |
| create\_estimate | customer\_id, address\_id, option\_name, line\_items, customer\_can\_approve, scheduled\_start, notify\_customer |
| add\_estimate\_option | estimate\_id, name, line\_items |
| send\_estimate | estimate\_id, channels, option\_ids, to, subject, message |

[All 15 Housecall Pro tools with descriptions](https://cotlet.dev/integrations/housecall-pro-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Housecall Pro to Cotlet?

Yes. You sign in to Housecall Pro yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Housecall Pro once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Housecall Pro automations

- [Chase past-due Housecall Pro invoices](https://cotlet.dev/integrations/housecall-pro-api-mcp-server/chase-past-due-invoices.md)
- [Bill a Housecall Pro job in stages with progress invoices](https://cotlet.dev/integrations/housecall-pro-api-mcp-server/bill-jobs-in-stages.md)
- [Housecall Pro API and MCP server: every tool](https://cotlet.dev/integrations/housecall-pro-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Housecall Pro.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Housecall Pro.

[Sign up free](https://cotlet.dev/app/signup?app=housecall-pro)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
