The first page of the document DocMake makes from the sample values on this page.
Operations
Toolbox Talk Record
A toolbox talk is a short presentation to the workforce on a single aspect of health and safety, delivered before work starts to the crew about to do the job. Ten to fifteen minutes is the figure Cal/OSHA suggests. The talk is the safety activity; this document is the proof it happened, and the two get confused until somebody asks for the second one.
The attendee table carries most of the weight, and it is a real repeating block: name, employer, trade and an acknowledgment line, one row per person, as long as the gang is that morning. On a site with several contractors the employer column is what lets each firm later pull out only its own people from a shared briefing.
Around the attendance the record holds the topic, the points actually made, the hazards specific to that day rather than the ones printed on the poster, and whatever the crew raised. Writing the questions down is worth the extra minute, because the same question asked twice in a fortnight says the control is not understood.
Anything arising needs a name against it and a deadline, or it stays conversation. Holding these talks is good practice nearly everywhere and a numbered requirement in only a few places, California construction and tunnelling among them, so what the record has to carry is a local question worth asking rather than assuming. A busy site runs several a week per gang, so the fields get filled on a phone at the point of work and the finished record is generated straight afterwards, filed against both the project and the individual, and left alone until somebody needs it.
Blanks to fill
| record_reference | Record reference |
| talk_date | Date |
| start_time | Start time |
| duration_minutes | Minutes |
| project_name | Project |
| project_number | Project number |
| site_location | Location on site |
| contractor | Delivered by |
| presenter_name | Presenter |
| presenter_role | Presenter role |
| topic | Topic |
| reason_for_topic | Why this topic today |
| related_documents | Related documents |
| presenter_declaration | Presenter declaration |
| reviewed_by | Reviewed by |
| review_date | Review date |
| company_name | Company |
| key_points[] | One per item, so a row is added for every item in the list |
| hazards[] | One per item, so a row is added for every item in the list |
| questions[] | One per item, so a row is added for every item in the list |
| attendees[] | One per item, so a row is added for every item in the list |
| actions[] | 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": "Stonegate Construction",
"record_reference": "TBT-2026-118",
"project_name": "Cranfold Riverside, block C",
"project_number": "SG-2214",
"site_location": "Level 3 slab, east side",
"contractor": "Stonegate Construction",
"talk_date": "9 September 2026",
"start_time": "07:15",
"duration_minutes": "15",
"presenter_name": "Iwan Prydderch",
"presenter_role": "Site Supervisor",
"topic": "Working near open edges on level 3",
"reason_for_topic": "The edge protection on the east side was moved on Monday for the crane lift and two bays are still open.",
"related_documents": "Method statement MS-118, the edge protection drawing EP-03, the site rules card.",
"key_points": [
{
"point": "Bays 4 and 5 on the east side have no edge protection until the mesh goes back on Thursday. Nobody works within two metres of that edge."
},
{
"point": "The temporary barrier and the red tape mark the line. If the tape is down, stop and tell the supervisor."
},
{
"point": "Harnesses are clipped to the running line, never to the scaffold tube."
},
{
"point": "Materials stay a metre back from any open edge, offcuts and empty pallets included."
}
],
"hazards": [
{
"hazard": "Falling from the open edge at bays 4 and 5",
"control_agreed": "Two metre exclusion zone, barrier and tape, harness on the running line for anybody who has to cross it."
},
{
"hazard": "Objects falling to the level below",
"control_agreed": "Toe boards refitted, nothing stored within a metre of the edge, level below closed for the lift."
},
{
"hazard": "Wind on the open deck",
"control_agreed": "Wind meter read at 07:00 and 13:00, deck cleared above 15 metres a second."
}
],
"questions": [
{
"raised_by": "Dawid Kowalczyk",
"question": "Who puts the tape back if it comes down during the shift?",
"answer_given": "Anybody who finds it down puts it back and tells the supervisor the same hour."
},
{
"raised_by": "Sonia Achebe",
"question": "Can we stack the mesh on level 3 before Thursday?",
"answer_given": "Only in the marked bay by the core, a metre back from the edge."
}
],
"attendees": [
{
"name": "Dawid Kowalczyk",
"employer": "Stonegate",
"trade": "Steel fixer",
"signature": "D. Kowalczyk"
},
{
"name": "Sonia Achebe",
"employer": "Stonegate",
"trade": "Steel fixer",
"signature": "S. Achebe"
},
{
"name": "Gordon Meiklejohn",
"employer": "Barrow Plant",
"trade": "Crane operator",
"signature": "G. Meiklejohn"
},
{
"name": "Tanya Broughton",
"employer": "Linforth",
"trade": "Groundworker",
"signature": "T. Broughton"
},
{
"name": "Marek Vrabel",
"employer": "Linforth",
"trade": "Groundworker",
"signature": "M. Vrabel"
},
{
"name": "Callie Ferndale",
"employer": "Stonegate",
"trade": "Apprentice",
"signature": "C. Ferndale"
}
],
"actions": [
{
"action": "Refit the mesh at bays 4 and 5",
"owner": "Iwan Prydderch",
"due": "11 September"
},
{
"action": "Replace the missing toe boards",
"owner": "Tanya Broughton",
"due": "9 September"
},
{
"action": "Put a wind meter in the site office",
"owner": "Helena Marchetti",
"due": "10 September"
}
],
"presenter_declaration": "I gave this talk to the people signed above, answered the questions raised and told everybody to stop work and speak to me if anything on the deck changes.",
"reviewed_by": "Helena Marchetti, Site Manager",
"review_date": "9 September 2026"
} 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 toolbox-talk-record.pdf \
--data-binary @- <<'JSON'
{
"template_id": "tmpl_your_template_id",
"format": "pdf",
"data": {
"company_name": "Stonegate Construction",
"record_reference": "TBT-2026-118",
"project_name": "Cranfold Riverside, block C",
"project_number": "SG-2214",
"site_location": "Level 3 slab, east side",
"contractor": "Stonegate Construction",
"talk_date": "9 September 2026",
"start_time": "07:15",
"duration_minutes": "15",
"presenter_name": "Iwan Prydderch",
"presenter_role": "Site Supervisor",
"topic": "Working near open edges on level 3",
"reason_for_topic": "The edge protection on the east side was moved on Monday for the crane lift and two bays are still open.",
"related_documents": "Method statement MS-118, the edge protection drawing EP-03, the site rules card.",
"key_points": [
{
"point": "Bays 4 and 5 on the east side have no edge protection until the mesh goes back on Thursday. Nobody works within two metres of that edge."
},
{
"point": "The temporary barrier and the red tape mark the line. If the tape is down, stop and tell the supervisor."
},
{
"point": "Harnesses are clipped to the running line, never to the scaffold tube."
},
{
"point": "Materials stay a metre back from any open edge, offcuts and empty pallets included."
}
],
"hazards": [
{
"hazard": "Falling from the open edge at bays 4 and 5",
"control_agreed": "Two metre exclusion zone, barrier and tape, harness on the running line for anybody who has to cross it."
},
{
"hazard": "Objects falling to the level below",
"control_agreed": "Toe boards refitted, nothing stored within a metre of the edge, level below closed for the lift."
},
{
"hazard": "Wind on the open deck",
"control_agreed": "Wind meter read at 07:00 and 13:00, deck cleared above 15 metres a second."
}
],
"questions": [
{
"raised_by": "Dawid Kowalczyk",
"question": "Who puts the tape back if it comes down during the shift?",
"answer_given": "Anybody who finds it down puts it back and tells the supervisor the same hour."
},
{
"raised_by": "Sonia Achebe",
"question": "Can we stack the mesh on level 3 before Thursday?",
"answer_given": "Only in the marked bay by the core, a metre back from the edge."
}
],
"attendees": [
{
"name": "Dawid Kowalczyk",
"employer": "Stonegate",
"trade": "Steel fixer",
"signature": "D. Kowalczyk"
},
{
"name": "Sonia Achebe",
"employer": "Stonegate",
"trade": "Steel fixer",
"signature": "S. Achebe"
},
{
"name": "Gordon Meiklejohn",
"employer": "Barrow Plant",
"trade": "Crane operator",
"signature": "G. Meiklejohn"
},
{
"name": "Tanya Broughton",
"employer": "Linforth",
"trade": "Groundworker",
"signature": "T. Broughton"
},
{
"name": "Marek Vrabel",
"employer": "Linforth",
"trade": "Groundworker",
"signature": "M. Vrabel"
},
{
"name": "Callie Ferndale",
"employer": "Stonegate",
"trade": "Apprentice",
"signature": "C. Ferndale"
}
],
"actions": [
{
"action": "Refit the mesh at bays 4 and 5",
"owner": "Iwan Prydderch",
"due": "11 September"
},
{
"action": "Replace the missing toe boards",
"owner": "Tanya Broughton",
"due": "9 September"
},
{
"action": "Put a wind meter in the site office",
"owner": "Helena Marchetti",
"due": "10 September"
}
],
"presenter_declaration": "I gave this talk to the people signed above, answered the questions raised and told everybody to stop work and speak to me if anything on the deck changes.",
"reviewed_by": "Helena Marchetti, Site Manager",
"review_date": "9 September 2026"
}
}
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 Toolbox Talk Record template with record reference "TBT-2026-118" and date "9 September 2026".
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 →