Construction answering service: an AI agent that answers every job site call
Set up a construction answering service with an AI phone agent. It answers contractors' calls, takes job details, and hands urgent calls to your crew lead.
A construction answering service picks up the calls your crew cannot take from a roof, a trench, or a loud site. With Hail, an AI phone agent answers your business number, asks the questions you choose, and calls a person on your team when a call cannot wait. You can read call records through your AI assistant. Optional webhooks let your own code react to calls.
This guide shows how to set it up for a general contractor, a remodeler, or a trade contractor. You choose the questions and who takes urgent calls. Your AI assistant can apply these rules through Hail MCP.
What a contractor answering service must handle
Calls to a contractor are not all the same. A homeowner who wants a kitchen quote can wait until tomorrow. A site super who says a delivery truck is at the gate cannot. Write down your call types first. The agent follows that list.
| Call type | What the agent does | When it hands over to a person | What you get after |
|---|---|---|---|
| New project inquiry (remodel, addition, roof) | Asks for name, address, project type, timeline, and the best callback time | No transfer for routine inquiries. The office reviews the details. | Call record; recording if available |
| Existing client with a question about their job | Asks for the job address and the question | When the client reports a problem on site (leak, damage, open wall in rain) | call.transferred webhook if a person took the call |
| Supplier or delivery at the site | Asks for the company, the site address, and what is waiting | At once, to the crew lead for that day | call.transferred webhook |
| Subcontractor scheduling | Asks for the trade, the job, and the date they want | No transfer for routine requests. The office reviews the date. | call.completed webhook |
| Inspector or city office | Asks for the name, the permit or job address, and the request | At once, to the owner | call.transferred webhook |
| Sales calls and spam | Says the company does not take sales calls, then ends the call | Never | Call record only |
Use clear rules for each call type. Test routine calls and urgent calls before you connect your public number.
Contractor answering service setup in Hail
You need a Hail account and a number that supports voice calls. Connect Hail to your AI assistant through the MCP setup guide. If you need a number, ask your assistant to show available numbers and their prices.
Replace the parts in capitals. Send this request with the phone agent instructions below.
Request for your AI assistant:
Create a phone agent for COMPANY NAME using Hail. Use the phone agent instructions I include below. Transfer urgent site problems and deliveries to CREW LEAD. Transfer inspectors, city offices, and emergency calls to OWNER. Ask me for missing business details and contact phone numbers. Ask which existing Hail number should use this agent. Show me the settings before you connect the number.
Your assistant can save the agent, add transfer contacts, and connect the number through MCP.
Answering service for contractors: the agent prompt
These instructions tell the phone agent how to handle callers. Include your service area, trades, and rules for urgent calls. Replace the parts in brackets. Send these instructions with the setup request above in the same message to your AI assistant.
Instructions for the phone agent:
You answer the phone for [Company], a [general contractor / remodeling / roofing] company in [service area]. Goal: collect the caller's details for the office. Do not give prices or book work. Do not promise when anyone will call or text. For every caller, get: name, callback number, job or project address, and the reason for the call. Ask one question at a time. New project: ask for the project type, the rough timeline, and the best time to call back. Record their preferred callback time. Do not promise a response time. Existing client with damage, a leak, or an unsafe site: hand over to the crew lead at once. Supplier or delivery waiting at a site: hand over to the crew lead at once. Inspector or city office: hand over to the owner at once. Subcontractor scheduling: take the trade, job, and requested date. Do not confirm the date or promise a text. Sales calls: say "We do not take sales calls. Goodbye." and end the call. If a caller reports a fire, a gas smell, or an injury, tell them to call 911 first. Then hand over to the owner. If no one answers the handover, take the caller's details and message. Do not promise a callback time.
The voice agent prompt builder can help you write the first draft. Test the prompt with your own phone before you route real calls.
How the handover to your crew lead works
When a caller needs a person, the agent uses its transfer_call tool. Hail calls the contact from your Hail number, so your crew lead sees the business number, not a stranger. The agent never sees the phone number itself.
The contact has 30 seconds to answer. If they answer, the agent says who is calling and why, then goes silent. Your crew lead talks to the caller directly. If no one answers, the agent comes back and offers to take a message.
The warm transfer guide explains the rules and limits in more detail.
Answering service for HVAC contractors
HVAC calls follow a different pattern. Heat and cooling are urgent by season. A family with no heat on a cold night cannot wait for the morning. A request for a new system quote can.
Change three parts of the template for an HVAC company:
- Urgent call types: no heat in cold weather, no cooling for an older adult or a baby in hot weather, a carbon monoxide alarm, a gas smell. For CO alarms and gas, the agent tells the caller to leave the building and call 911 or the gas utility first.
- Questions: the system type (furnace, heat pump, boiler, central air), the age of the system if they know it, and any error code on the thermostat.
- Handover notes: one note for the on-call technician ("no heat or no cooling with a person at risk"), one for the office ("maintenance plans and billing").
For routine calls, such as filter changes and tune-up requests, collect the details for the office. Use a separate agent if you run both a general contracting line and an HVAC service line. Each number routes to one agent for calls.
What you get after each call
If you set up webhooks, Hail can send call events to your server: call.received when it comes in, call.answered, and call.completed. Each payload has the call id, status, direction, the caller's number, your number, and the agent id. A handover sends call.transferred once your contact answers.
Recording is on by default for each workspace. When audio is available, you can listen from the call record.
The API route GET /v1/calls/{id}/recording gives a short-lived playback link.
Automatic text alerts need a webhook subscription and your own code.
Your code must decide which calls need an alert before it sends a text through the SMS API.
The webhook guide explains how to subscribe.
After-hours calls
The same agent answers at night and on weekends. You can use different handover notes for night calls, or name an on-call person for each week. The after-hours answering service guide covers night routing and when to wake a person up.
What it costs
Each answered minute costs the same as an outbound call minute. You pay for usage from a prepaid balance. There is no subscription. See the current rates, and estimate a month of calls with the voice agent cost calculator.
Checklist before you route real calls
- Write your call types and who takes each urgent one.
- Add each person who takes handovers as a contact, with a short note.
- Put your service area and trades in the prompt.
- Tell the agent never to give prices or dates.
- Call the number from your own phone. Test a new lead, a delivery, and a call where no one answers the handover.
- Listen to the recordings. Fix the prompt where the agent asked too much or too little.
- Route your public number only after the tests pass.
Set up the construction answering service with the API (optional)
Use this option if you prefer to set up the agent in your own code.
Keep your API key on your server, in HAIL_API_KEY. Use an existing Hail number that supports voice calls.
- Add your crew lead and owner as contacts. Each contact needs a phone number in a country where Hail sells numbers.
- Create the agent. Put the prompt above in
system_prompt. Add the people who take urgent calls inhandover_contacts, with a note that tells the agent when to call each one. - Route the number to the agent with
PATCH /v1/numbers/{id}andvoice_agent_id. Hail registers the number for inbound calls.
curl --fail-with-body --silent --show-error \
https://api.hail.so/v1/agents \
-H "Authorization: Bearer $HAIL_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"name": "Front desk",
"system_prompt": "PASTE THE PHONE AGENT INSTRUCTIONS ABOVE",
"first_message": "Thanks for calling. How can I help with your project?",
"handover_contacts": [
{ "contact_id": "CREW_LEAD_CONTACT_ID", "note": "Deliveries at a site, and damage or leaks on an active job." },
{ "contact_id": "OWNER_CONTACT_ID", "note": "Inspectors, city offices, injuries, fire, or a gas smell." }
]
}'
Each note can be 1 to 200 characters. You can add up to 10 people.
Hail adds an AI disclosure to the greeting by default. The phone agent then follows your instructions.