The first page of the document DocMake makes from the sample values on this page.
Operations
Request for Information
A request for information is how a contractor asks the design team a question that the drawings do not answer, in a form that can be tracked and later relied on. It is deliberately narrow. One question, the documents it arises from, the date it was asked, the date an answer is needed, and the answer with a name against it. An RFI that asks three questions at once gets one answer and two arguments six months later.
The reason RFIs get logged rather than emailed is that they carry commercial consequence. A late answer can stall a work face, and a changed answer can turn into a variation, so the request records the date the response is required by, what is on hold while it is open, and whether the responder thinks a change instruction follows. Keeping cost and programme exposure on the face of the request means nobody has to reconstruct months later why a work package sat idle for eleven days.
Good RFIs propose. A question that just says the drawings clash puts the whole burden on the designer, whereas a question that sets out two workable options with their cost and buildability lets a designer answer in a day. The proposed solution block is also where the contractor's own competence gets recorded, which matters when the same clash turns up at three other levels of the same building.
The response half of the document belongs to the design team: the answer, any revised drawing references, whether the answer changes the contract requirement, and the signature. Rendering the whole record from JSON means the project system can emit each RFI as a numbered PDF for the contract file, push the same data into the drawing register, and pull the open ones into a weekly log without anyone maintaining a parallel spreadsheet.
Blanks to fill
| rfi_number | RFI number |
| revision | Revision |
| project_name | Project |
| project_number | Project number |
| site_address | Site address |
| location_on_site | Location |
| discipline | Discipline |
| work_package | Work package |
| priority | Priority |
| response_required_by | Response required by |
| raised_by_company | Raised by |
| directed_to_company | Directed to |
| raised_by_person | Contact |
| directed_to_person | For the attention of |
| raised_date | Date raised |
| copied_to | Copied to |
| subject | Subject |
| question | Question |
| background | Background |
| work_on_hold | Work on hold pending the answer |
| cost_exposure | Cost exposure if unresolved |
| programme_exposure | Programme exposure if unresolved |
| attachments | Attachments |
| response | Response |
| status | Status |
| closed_date | Closed |
| days_open | Days open |
| change_instruction_follows | Change instruction follows |
| change_reference | Change reference |
| response_by | Answered by |
| response_role | Role |
| response_date | Date answered |
| company_name | Company |
| references[] | One per item, so a row is added for every item in the list |
| options[] | One per item, so a row is added for every item in the list |
| revised_documents[] | One per item, so a row is added for every item in the list |
The data behind the preview
This is the exact JSON that produced the document above. Change the values, POST them to the API, and you get your version back as DOCX or PDF. Lists grow and shrink with your data; the layout adapts.
- 01 Sign up free and duplicate this template into your workspace.
- 02 Adjust the wording and branding in the visual editor.
- 03 Fill it in the app, share it as a form link, or call the API.
{
"company_name": "Kestrel M&E Ltd",
"rfi_number": "RFI-2026-0142",
"revision": "0",
"project_name": "Cascade Street mixed use development",
"project_number": "PRJ-2026-114",
"site_address": "Cascade Street, Bristol BS1 6TR, United Kingdom",
"raised_by_company": "Kestrel M&E Ltd, mechanical and electrical subcontractor",
"raised_by_person": "Priya Raman, Project Engineer",
"raised_date": "September 14, 2026",
"directed_to_company": "Prentice Ward Architects, contract administrator",
"directed_to_person": "Julia Prentice, Project Architect",
"copied_to": "Harbor Build Group (Owen Marsh, Site Manager), Loxley Consulting Engineers (structural), Marchmont QS",
"discipline": "Mechanical services and structure",
"work_package": "M&E package, riser 2 distribution, levels 3 to 6",
"location_on_site": "Riser 2, grid line D4, levels 4 and 5",
"priority": "High, work face affected",
"response_required_by": "September 18, 2026",
"subject": "Clash between the riser 2 chilled water flow and return and the level 4 transfer beam downstand",
"question": "The chilled water flow and return in riser 2 are shown on M-2204 revision C passing horizontally through grid D4 at 2,750 mm above finished floor level on level 4. Drawing S-1140 revision F shows a 600 mm transfer beam downstand at the same grid, which leaves 2,150 mm of clear zone. The two 150 mm insulated pipes plus supports need 520 mm and cannot pass at the level shown. Please confirm which of the options below is to be adopted, or issue a coordinated detail.",
"background": "The clash was found during the level 4 coordination review on September 11 after the structural revision F was issued on September 4. Revision E of S-1140 showed the transfer beam one bay north at grid D5, where riser 2 has clear passage. The mechanical layout has not changed since revision C.",
"references": [
{
"document": "M-2204, Level 4 mechanical services layout",
"revision": "C",
"detail": "Riser 2 horizontal distribution, grid D3 to D6"
},
{
"document": "S-1140, Level 4 framing plan",
"revision": "F",
"detail": "Transfer beam TB-04 at grid D4, 600 mm downstand"
},
{
"document": "A-3012, Level 4 reflected ceiling plan",
"revision": "D",
"detail": "Ceiling zone 2,700 mm to finished floor level, no bulkhead shown at D4"
},
{
"document": "Specification section 23 21 13",
"revision": "Issue 2",
"detail": "Clause 3.4, minimum clearance and access to valves and flanged joints"
}
],
"options": [
{
"label": "Option A",
"description": "Drop both pipes to 2,050 mm above finished floor level under the beam and form a bulkhead in the ceiling across grid D3 to D5",
"cost_effect": "Additional bulkhead framing and plasterboard, additional supports and two sets of offsets. Estimated at $18,600.",
"programme_effect": "Six working days on the level 4 ceiling grid",
"contractor_preference": "Yes"
},
{
"label": "Option B",
"description": "Route both pipes around the beam through the adjacent bay at grid D5 and back into riser 2 above the beam",
"cost_effect": "Longer pipe run, four additional changes of direction, higher pressure drop and a pump duty review. Estimated at $31,400 plus the design fee for the duty check.",
"programme_effect": "Nine working days plus the duty review",
"contractor_preference": "No"
},
{
"label": "Option C",
"description": "Penetrate the transfer beam web with two 200 mm sleeves at the position shown on the sketch attached",
"cost_effect": "Sleeve fabrication only, estimated at $4,200, subject to the structural engineer accepting the penetrations",
"programme_effect": "Two working days if accepted before September 21",
"contractor_preference": "No"
}
],
"work_on_hold": "Level 4 riser 2 pipework installation, and with it the level 4 ceiling grid behind it. Four operatives were redeployed to level 5 on September 14 rather than stood down.",
"cost_exposure": "Standing time is avoided by redeployment, but the level 4 ceiling follows the pipework, so each week of delay pushes the ceiling and the level 4 commissioning behind the sectional handover date.",
"programme_exposure": "Level 4 riser 2 has four days of float remaining against the sectional handover date of October 2, 2026. An answer after September 18 uses that float.",
"attachments": "Coordination sketch SK-ME-114 showing the three options in section at grid D4, and a screenshot of the federated model at the clash location dated September 11, 2026.",
"response": "Option A is to be adopted. The transfer beam at D4 cannot be penetrated, so option C is rejected on structural grounds, and option B is rejected as the pump duty review would not be completed within the programme. Drop the flow and return to 2,050 mm as proposed and form a bulkhead from grid D3 to D5 with the head height maintained at 2,400 mm minimum below the bulkhead. The ceiling drawing is revised accordingly. The valve access required by specification clause 3.4 must be maintained with an access panel at grid D4, position to be agreed on site with the architect before the ceiling is boarded.",
"response_by": "Julia Prentice",
"response_role": "Project Architect, Prentice Ward Architects, with structural confirmation from Loxley Consulting Engineers dated September 17, 2026",
"response_date": "September 17, 2026",
"revised_documents": [
{
"document": "A-3012, Level 4 reflected ceiling plan",
"revision": "E",
"issued": "September 17, 2026"
},
{
"document": "M-2204, Level 4 mechanical services layout",
"revision": "D",
"issued": "September 18, 2026"
}
],
"change_instruction_follows": "Yes",
"change_reference": "CO-018, issued by Harbor Build Group to Kestrel M&E Ltd on September 21, 2026",
"status": "Closed, answered within the required date and superseded by change order CO-018",
"closed_date": "September 21, 2026",
"days_open": "3 working days from raised to answered, 5 to formal closure"
} Generate this document via the API
One template plus changing data is the whole point. The list of blanks above is the contract, and every new set of values comes back in the same layout: fill it in the app, hand someone a form link, or POST the JSON and get the file straight back.
The request below carries this page's own values, so it runs as soon as the template exists in your workspace. Swap the values for yours and the response is your document.
curl -X POST https://app.docmake.io/api/v1/render \
-H "Authorization: Bearer $DOCMAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--output request-for-information.pdf \
--data-binary @- <<'JSON'
{
"template_id": "tmpl_your_template_id",
"format": "pdf",
"data": {
"company_name": "Kestrel M&E Ltd",
"rfi_number": "RFI-2026-0142",
"revision": "0",
"project_name": "Cascade Street mixed use development",
"project_number": "PRJ-2026-114",
"site_address": "Cascade Street, Bristol BS1 6TR, United Kingdom",
"raised_by_company": "Kestrel M&E Ltd, mechanical and electrical subcontractor",
"raised_by_person": "Priya Raman, Project Engineer",
"raised_date": "September 14, 2026",
"directed_to_company": "Prentice Ward Architects, contract administrator",
"directed_to_person": "Julia Prentice, Project Architect",
"copied_to": "Harbor Build Group (Owen Marsh, Site Manager), Loxley Consulting Engineers (structural), Marchmont QS",
"discipline": "Mechanical services and structure",
"work_package": "M&E package, riser 2 distribution, levels 3 to 6",
"location_on_site": "Riser 2, grid line D4, levels 4 and 5",
"priority": "High, work face affected",
"response_required_by": "September 18, 2026",
"subject": "Clash between the riser 2 chilled water flow and return and the level 4 transfer beam downstand",
"question": "The chilled water flow and return in riser 2 are shown on M-2204 revision C passing horizontally through grid D4 at 2,750 mm above finished floor level on level 4. Drawing S-1140 revision F shows a 600 mm transfer beam downstand at the same grid, which leaves 2,150 mm of clear zone. The two 150 mm insulated pipes plus supports need 520 mm and cannot pass at the level shown. Please confirm which of the options below is to be adopted, or issue a coordinated detail.",
"background": "The clash was found during the level 4 coordination review on September 11 after the structural revision F was issued on September 4. Revision E of S-1140 showed the transfer beam one bay north at grid D5, where riser 2 has clear passage. The mechanical layout has not changed since revision C.",
"references": [
{
"document": "M-2204, Level 4 mechanical services layout",
"revision": "C",
"detail": "Riser 2 horizontal distribution, grid D3 to D6"
},
{
"document": "S-1140, Level 4 framing plan",
"revision": "F",
"detail": "Transfer beam TB-04 at grid D4, 600 mm downstand"
},
{
"document": "A-3012, Level 4 reflected ceiling plan",
"revision": "D",
"detail": "Ceiling zone 2,700 mm to finished floor level, no bulkhead shown at D4"
},
{
"document": "Specification section 23 21 13",
"revision": "Issue 2",
"detail": "Clause 3.4, minimum clearance and access to valves and flanged joints"
}
],
"options": [
{
"label": "Option A",
"description": "Drop both pipes to 2,050 mm above finished floor level under the beam and form a bulkhead in the ceiling across grid D3 to D5",
"cost_effect": "Additional bulkhead framing and plasterboard, additional supports and two sets of offsets. Estimated at $18,600.",
"programme_effect": "Six working days on the level 4 ceiling grid",
"contractor_preference": "Yes"
},
{
"label": "Option B",
"description": "Route both pipes around the beam through the adjacent bay at grid D5 and back into riser 2 above the beam",
"cost_effect": "Longer pipe run, four additional changes of direction, higher pressure drop and a pump duty review. Estimated at $31,400 plus the design fee for the duty check.",
"programme_effect": "Nine working days plus the duty review",
"contractor_preference": "No"
},
{
"label": "Option C",
"description": "Penetrate the transfer beam web with two 200 mm sleeves at the position shown on the sketch attached",
"cost_effect": "Sleeve fabrication only, estimated at $4,200, subject to the structural engineer accepting the penetrations",
"programme_effect": "Two working days if accepted before September 21",
"contractor_preference": "No"
}
],
"work_on_hold": "Level 4 riser 2 pipework installation, and with it the level 4 ceiling grid behind it. Four operatives were redeployed to level 5 on September 14 rather than stood down.",
"cost_exposure": "Standing time is avoided by redeployment, but the level 4 ceiling follows the pipework, so each week of delay pushes the ceiling and the level 4 commissioning behind the sectional handover date.",
"programme_exposure": "Level 4 riser 2 has four days of float remaining against the sectional handover date of October 2, 2026. An answer after September 18 uses that float.",
"attachments": "Coordination sketch SK-ME-114 showing the three options in section at grid D4, and a screenshot of the federated model at the clash location dated September 11, 2026.",
"response": "Option A is to be adopted. The transfer beam at D4 cannot be penetrated, so option C is rejected on structural grounds, and option B is rejected as the pump duty review would not be completed within the programme. Drop the flow and return to 2,050 mm as proposed and form a bulkhead from grid D3 to D5 with the head height maintained at 2,400 mm minimum below the bulkhead. The ceiling drawing is revised accordingly. The valve access required by specification clause 3.4 must be maintained with an access panel at grid D4, position to be agreed on site with the architect before the ceiling is boarded.",
"response_by": "Julia Prentice",
"response_role": "Project Architect, Prentice Ward Architects, with structural confirmation from Loxley Consulting Engineers dated September 17, 2026",
"response_date": "September 17, 2026",
"revised_documents": [
{
"document": "A-3012, Level 4 reflected ceiling plan",
"revision": "E",
"issued": "September 17, 2026"
},
{
"document": "M-2204, Level 4 mechanical services layout",
"revision": "D",
"issued": "September 18, 2026"
}
],
"change_instruction_follows": "Yes",
"change_reference": "CO-018, issued by Harbor Build Group to Kestrel M&E Ltd on September 21, 2026",
"status": "Closed, answered within the required date and superseded by change order CO-018",
"closed_date": "September 21, 2026",
"days_open": "3 working days from raised to answered, 5 to formal closure"
}
}
JSON tmpl_your_template_id is
a stand-in: build this template in the visual editor and copy the id it shows, or create one with POST /api/v1/templates. Keys, formats, strict mode and batches are in the API reference.
Or let an AI assistant do it
The DocMake MCP server lets Claude and other assistants make this document the same way. Install it once:
claude mcp add docmake \
--env DOCMAKE_API_KEY=dm_your_api_key \
-- npx -y @docmake/mcp@latest Then ask for the document in plain words:
Make a PDF from my Request for Information template with RFI number "RFI-2026-0142" and revision "0".
More operations templates
Change Order
The instructed change, where it came from, what it costs line by line, what it does to the programme, and the contract sum it leaves behind.
View template →Daily Site Report
The day on site in one sheet: weather, crew, plant, work done, deliveries and what held the job up.
View template →Field Service Report
One engineer visit written down: the fault, the time on site, the parts fitted, the tests that proved it and the customer signature.
View template →