Contractor Foreman automation
Build a Contractor Foreman estimate from a scope list and send it
After a bathroom walkthrough the scope sits in your notes app as twenty short lines. Rebuilding it in the Contractor Foreman Items tab, line by line with item types and markups, is the evening job that delays the bid by days.
Cotlet does it in your own Contractor Foreman account with list_projects, list_estimates, create_estimate and send_estimate, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Official options
Can Contractor Foreman do this on its own?
Contractor Foreman has no API for estimates and its Zapier app only creates leads and customers (checked 11 Oct 2026). In the app, templates and CSV import speed up item entry, but turning a free-text scope list into typed, priced lines is manual.
By hand
How you do it in Contractor Foreman today
- From the main menu open Estimates (under Financial) and click + Estimate; on the Details tab choose the Project, then fill the required Title, Customer and Invoice Type.
- Open the Items tab, add sections, and use Add Items / Modify Section to enter each line by hand, import from the Cost Items Database, import a CSV built on the Estimate Import Template, or Import From Estimate or Template.
- Click View/Email PDF, pick a template, then click the Email (envelope) icon, tick the client in the Directory list and add CC addresses.
- Review the subject and message and click Send. Every scope line still has to be typed or matched to a cost item first, which is where the hours go and where a missed line becomes unpaid work.
With an agent
How to build a Contractor Foreman estimate from a scope list and send it
Prompt
Turn this scope list from the Johnson bathroom walkthrough into a Contractor Foreman estimate with 20% markup on materials, show me the total, then send it to the client for signature. - 01
Find the job and any earlier version
The agent locates the project with list_projects, then calls list_estimates for it. A draft or a sent estimate for the same scope means a revision, so it asks whether to start a new estimate instead of creating a duplicate the client might sign by mistake.
- 02
Turn each scope line into a priced item
Every line gets a Contractor Foreman item type (material, labor, equipment, subcontractor or other), a quantity and a unit. Lines with no price in your note are not guessed: the agent lists them and asks for a unit cost or a lump figure before it builds anything.
- 03
Apply your markup rules
Markup follows what you said per item type, for example 20 percent on materials and none on subcontractor quotes you pass through at cost. The agent shows subtotals by type and the grand total so the numbers can be checked before anything is saved.
- 04
Save the draft, then wait for the send
create_estimate stores the draft on the project. Sending to the client is a separate step that asks for your OK, and the agent names the recipient it will use so a wrong contact on the project is caught before the email leaves.
- 05
Stop when the project does not exist yet
Contractor Foreman can save an estimate with no project and create the project once it is approved, but this flow builds on an existing project. With no matching job, the agent says so and stops rather than attaching the estimate to a similar name.
What you get back
Example data
Draft estimate E-2291 saved: Johnson bathroom (P-0157)
14 lines: Material $3,240 (20% markup), Labor $4,680, Subcontractor $2,150 (plumbing, at cost)
Total: $10,070
Asked before building: unit cost for "niche tile", left as $0 line
After your OK: sent to Laura Johnson <laura.j@example.com> for e-signature Other ways to ask
- Build the estimate from this scope list but do not send it; I want to review it in Contractor Foreman first.
- Use the same lines as the Peterson bathroom estimate, change the tile allowance to $1,800 and send it to the Johnsons.
- Send the Johnson estimate again to Laura and CC her husband, with a short note that the price holds until the end of the month.
- List every estimate still in draft for more than a week, with project and total.
Before you automate it
What Contractor Foreman allows, and what to know first
- Contractor Foreman lets clients review and e-sign an estimate without creating an account, and records the signature with a timestamp and IP address.
- An Approved or Sent estimate in Contractor Foreman is locked, and has to be switched back to Bidding or Draft before its lines can change.
- When a client approves a Contractor Foreman estimate online, the option to create the project Gantt schedule from the estimate lines is not offered; it appears only when the status is set to Approved manually.
- The Contractor Foreman estimate email supports CC but not BCC, attaches the PDF automatically and logs every send in the estimate Activity History.
- Pricing from the 1build local cost database inside Contractor Foreman estimates is available only on the Plus, Pro and Unlimited plans.
send_estimate asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.
Sources: Contractor Foreman KB: How to create an Estimate and add Estimate Items · Contractor Foreman KB: CC contacts when you email an Estimate for approval · Contractor Foreman KB: Updating an Estimate that is not in Bidding · Contractor Foreman KB: Creating a Gantt chart from the Approved Estimate
REST
Call create_estimate from a script
curl
curl https://cotlet.dev/api/v1/contractor-foreman/create_estimate \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"project_id":"84557","title":"Johnson bathroom remodel","items":[{"name":"Demolition labor","type":"labor","quantity":16,"unit_cost":55,"markup_percent":0},{"name":"Porcelain floor tile","type":"material","quantity":60,"unit_cost":8.5,"markup_percent":20}],"notes":"Includes removal of existing tub surround. Excludes permit fees."}' Example response
{
"estimate_id": "E-2291",
"project_id": "84213",
"title": "Johnson bathroom",
"status": "draft",
"lines": [
{
"name": "Demolition labor",
"total": 968
},
{
"name": "Tile",
"total": 621
}
],
"total": 1589
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is contractor-foreman_create_estimate. Example data.
Schedule it in n8n, Make, Zapier or cronTools
Contractor Foreman tools this automation uses
| Tool | Parameters |
|---|---|
| list_projects | search, include_completed, limit, cursor |
| list_estimates | project_id, status, limit |
| create_estimate | project_id, title, items, notes |
| send_estimate | estimate_id, to, message |
Frequently asked questions
Can Contractor Foreman remind a client who has not signed the estimate?
Yes, by hand. Once the first email has gone out, a Send Reminder option appears on the estimate Review and Submit page and re-sends the original email with "Reminder" added to the subject. Contractor Foreman also notifies you when the client opens the estimate.
Give your agent access to Contractor Foreman.
Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Contractor Foreman.