This guide is based on the Meeting Minutes template in the Gallery.
It explains a practical flow: template HTML structure, matching JSON payload, and API render request.
Step 1 - Template HTML structure
HTML
<div class="header">
<h1>{{meeting_title}}</h1>
<p>{{company_name}}</p>
</div>
<div class="meta">
<div>
<strong>Date & Time</strong>{{date}} \u2014 {{time}}</div>
<div>
<strong>Location</strong>{{location}}</div>
<div>
<strong>Facilitator</strong>{{facilitator}}</div>
<div>
<strong>Attendees</strong>{{attendees}}</div>
</div>
<div class="section">
<h2>Agenda & Discussion</h2>{{#each agenda}}<div class="agenda-item">
<strong>{{this.topic}}</strong>
<p style="color:#636e72;margin-top:4px">{{this.notes}}</p>
</div>{{/each}}</div>
<div class="section">
<h2>Action Items</h2>
<table>
<thead>
<tr>
<th>Task</th>
<th>Assigned To</th>
<th>Due Date</th>
<th>Status</th>
</tr>
</thead>
<tbody>{{#each actions}}<tr>
<td>{{this.task}}</td>
<td>{{this.assignee}}</td>
<td>{{this.due}}</td>
<td>
<span class="status pending">{{this.status}}</span>
</td>
</tr>{{/each}}</tbody>
</table>
</div>
Step 2 - Matching JSON payload
JSON
{
"meeting_title": "Q1 Sprint Planning",
"company_name": "Acme Engineering",
"date": "March 9, 2026",
"time": "10:00 AM",
"location": "Conference Room A",
"facilitator": "Sarah Chen",
"attendees": "Sarah Chen, Mike Ross, Lisa Park, Tom Anderson",
"agenda": [
{
"topic": "Sprint Review",
"notes": "Reviewed completed items from Sprint 12. All 18 stories delivered."
},
{
"topic": "Backlog Prioritization",
"notes": "Re-prioritized 24 items based on customer feedback."
},
{
"topic": "Resource Planning",
"notes": "Discussed capacity \u2014 Tom on PTO next week."
}
],
"actions": [
{
"task": "Update sprint board with new priorities",
"assignee": "Mike Ross",
"due": "Mar 10",
"status": "Pending"
},
{
"task": "Draft capacity plan for Sprint 13",
"assignee": "Sarah Chen",
"due": "Mar 11",
"status": "Pending"
},
{
"task": "Schedule stakeholder demo",
"assignee": "Lisa Park",
"due": "Mar 12",
"status": "Pending"
}
]
}
Step 3 - Final rendered preview in page
Rendered output preview
Template style preview
Preview uses the original Gallery template HTML and CSS with sample payload values.
Step 4 - Key mapping checklist
{{meeting_title}}->meeting_title{{company_name}}->company_name{{date}}->date{{time}}->time{{#each agenda}}->agenda[]{{this.topic}}->agenda[].topic{{#each actions}}->actions[]{{this.task}}->actions[].task
Step 5 - Render request example
BASH
curl -X POST "https://api.hookpdf.com/v1/render" \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{
"template_id": "<gallery-meeting-minutes-template_id>",
"payload": {
"meeting_title": "Q1 Sprint Planning",
"company_name": "Acme Engineering",
"date": "March 9, 2026",
"time": "10:00 AM",
"location": "Conference Room A",
"facilitator": "Sarah Chen",
"attendees": "Sarah Chen, Mike Ross, Lisa Park, Tom Anderson"
}
}'
Use this template for free now
Start with this template in HookPDF and render your first PDF for free.
Use this template freeRelated reads
Ready to move from prototype to production?
Create your account and generate your first API-driven PDF with HookPDF.
Get your API key