Make Integration Guide
Learn how to integrate PDFBolt with Make to automate PDF generation in your scenarios. Generate professional documents from templates, HTML content, or web pages using Make's visual automation platform.
Prerequisites
Before starting, ensure you have:
- PDFBolt API Key
- Sign up or log in to your PDFBolt account.
- Navigate to API Keys section.
- Copy your API key for authentication.
- Make Account
- Make account (free or paid plan).
Basic Setup
Configure HTTP Module
Use Make's HTTP module to call the PDFBolt API:
-
Add an HTTP module to your scenario (select "Make a request").
-
Configure authentication:
- URL:
https://api.pdfbolt.com/v1/direct - Method:
POST - Headers:
– Name:
API-KEY– Value:YOUR-API-KEY
- Set up request body:
- Body type:
Raw - Content type:
JSON (application/json)

Choose Your Endpoint
Select the PDFBolt endpoint based on your scenario needs:
| Endpoint | Best For | Returns |
|---|---|---|
/v1/direct | Immediate PDF delivery | Raw PDF data in response |
/v1/sync | URL-based access | JSON with download URL |
/v1/async | High-volume processing | Webhook callback with results |
See API Endpoints for detailed specifications.
Choose Your Source
Select the content source that best fits your use case:
| Source | Best For | When to Use |
|---|---|---|
| Templates | Recurring documents with consistent layouts | Invoices, contracts, certificates – any document you generate repeatedly with different data |
| HTML | Custom documents | When you need full control over a unique layout |
| URL | Existing web pages | Archiving documentation, reports, capturing dashboards, saving public web content |
Learn more about source parameters in the API Documentation.
Source 1: Templates
Templates provide the most efficient way to generate consistent, branded PDFs by separating design from data.
How It Works
- Create your template in PDFBolt's Template section:
- Build custom layouts with HTML, CSS, and Handlebars variables.
- Or start with a ready-made template from the gallery.
-
Publish the template to make it available via API and get your unique
templateId. -
Send API request with only
templateIdandtemplateData. -
Receive your PDF – PDFBolt returns the generated PDF.
Learn how to create your template in the Templates Documentation.
Example: Invoice Generation
Real-world scenario: Customer places an order in your e-commerce system. Automatically generate a professional invoice PDF and send it to the customer.
- Configure the HTTP – PDFBolt module:
When receiving order data from a webhook trigger, configure the Request content field:
{
"templateId": "your-template-id",
"templateData": {
"invoice_number": "{{1.invoice_number}}",
"issue_date": "{{1.order_date}}",
"client_name": "{{1.customer_name}}",
"client_email": "{{1.customer_email}}",
"line_items": [{{1.line_items}}],
"total_amount": "{{1.total}}"
}
}

{{1.fieldName}}references data from module 1 (your webhook trigger).- Module numbers auto-increment based on scenario position.
- All field names must match your template's Handlebars variables exactly.
Expected webhook payload example:
{
"invoice_number": "INV-2025-001",
"order_date": "2025-01-15",
"customer_name": "John Doe",
"customer_email": "john@example.com",
"line_items": [
{
"description": "Website Design",
"quantity": 1,
"unit_price": "1200.00",
"total_amount": "1200.00"
},
{
"description": "Logo Design Package",
"quantity": 2,
"unit_price": "250.00",
"total_amount": "500.00"
}
],
"total": "1700.00"
}
This same approach works with Shopify, Stripe, WooCommerce, Square, or any other e-commerce platform in Make. Simply use their respective trigger modules and map the order data to your template fields. The syntax remains the same: {{moduleNumber.fieldName}}.
Template Scenario Example

Complete scenario:
- Webhook: Custom webhook – Receives order data from your system.
- HTTP: PDFBolt – Generates invoice PDF.
- Email – Sends PDF to customer.
Source 2: HTML
Convert HTML directly into PDFs within your scenarios – perfect for event materials, policy documents, or one-time custom layouts.
How It Works
- Add your HTML content in the scenario.
- Encode HTML to Base64 format.
- Pass encoded HTML to PDFBolt.
- Receive your PDF.
Example: Event Program
Real-world scenario: Running a conference or webinar. Create a PDF program containing the full agenda and session information that attendees can download.
- Add a Tools – Set variable module after your trigger:
Configure the module:
- Variable name:
html_content - Variable value: Paste your HTML
View Complete HTML Example
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial; color: #333; line-height: 1.6; }
.header {
background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
color: white;
padding: 30px;
text-align: center;
}
h1 { margin: 0; font-size: 28px; }
.event-info {
background: #f8fafc;
padding: 20px;
border-radius: 8px;
margin: 20px 0;
}
.session {
border-left: 4px solid #6366f1;
padding: 15px;
margin: 15px 0;
background: #fff;
box-shadow: 1px 1px 10px rgba(0,0,0,0.1);
page-break-inside: avoid;
}
.time {
color: #6366f1;
font-weight: bold;
font-size: 14px;
}
.speaker {
color: #64748b;
font-style: italic;
margin-top: 5px;
}
.break {
background: #fef3c7;
padding: 10px;
text-align: center;
margin: 15px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<div class="header">
<h1>Tech Summit 2025</h1>
<p>Building the Future Together</p>
<p style="margin-top: 10px; font-size: 14px;">November 15, 2025 | Virtual Event</p>
</div>
<div class="event-info">
<strong>Event Details:</strong><br>
Date: November 15, 2025<br>
Time: 9:00 AM – 5:00 PM EST<br>
Platform: Zoom (link will be sent via email)
</div>
<h2>Event Schedule</h2>
<div class="session">
<div class="time">9:00 AM – 9:30 AM</div>
<strong>Opening Keynote: The Future of AI</strong>
<div class="speaker">Speaker: Dr. Sarah Johnson, AI Research Director</div>
<p>Exploring emerging trends in artificial intelligence and their impact on business.</p>
</div>
<div class="session">
<div class="time">9:45 AM – 10:30 AM</div>
<strong>Workshop: Building Scalable APIs</strong>
<div class="speaker">Speaker: Mike Chen, Senior Engineer</div>
<p>Hands-on session covering best practices for API design and implementation.</p>
</div>
<div class="break">☕ Coffee Break (10:30 AM – 11:00 AM)</div>
<div class="session">
<div class="time">11:00 AM – 11:45 AM</div>
<strong>Panel Discussion: Cloud Architecture</strong>
<div class="speaker">Panelists: Various industry experts</div>
<p>Interactive discussion about modern cloud infrastructure and DevOps practices.</p>
</div>
<div class="session">
<div class="time">12:00 PM – 1:00 PM</div>
<strong>Networking Session</strong>
<p>Connect with other attendees and speakers in breakout rooms.</p>
</div>
<div class="break">🍽️ Lunch Break (1:00 PM – 2:00 PM)</div>
<div class="session">
<div class="time">2:00 PM – 2:45 PM</div>
<strong>Case Study: Digital Transformation Success</strong>
<div class="speaker">Speaker: Lisa Martinez, CTO</div>
<p>Real-world example of successful digital transformation journey.</p>
</div>
<div class="session">
<div class="time">3:00 PM – 4:00 PM</div>
<strong>Q&A with Speakers</strong>
<p>Ask questions and get insights from all our speakers.</p>
</div>
<div style="margin-top: 30px; padding-top: 20px; border-top: 2px solid #e2e8f0; text-align: center; color: #64748b;">
<p><strong>Questions?</strong> Contact us at events@example.com</p>
</div>
</body>
</html>
- Configure the HTTP – PDFBolt module with Base64 encoding:
Request content:
{
"html": "{{base64(2.html_content)}}",
"format": "A4",
"printBackground": true,
"margin": {
"top": "30px",
"bottom": "30px",
"right": "30px",
"left": "30px"
}
}

Use Make's built-in base64() function to encode HTML. Wrap your HTML variable with {{base64(your_content)}} in the request content.
HTML Scenario Example

Complete scenario:
- Typeform: Watch Responses – Registration form completed.
- Tools: Set Variable – Store event program HTML layout.
- HTTP: PDFBolt – Convert to PDF (Base64 encoding applied).
- Gmail: Send Email – Deliver program to registered attendee.
Adjust PDF appearance by modifying parameters in the HTTP module Request content. Explore all options in Conversion Parameters.
Source 3: URL
Transform any public webpage into a PDF document – ideal for preserving online content, dashboards, or generating reports.
How It Works
- Specify the webpage URL.
- PDFBolt fetches and renders the content.
- Delivers a PDF of the page.
Example: Website Change Documentation
Real-world scenario: Monitor your company's public documentation or status page for updates. When changes are detected by your monitoring tool, automatically capture the updated page as a PDF for compliance records and team notifications.
- Configure the HTTP – PDFBolt module:
Request content:
{
"url": "{{1.page_url}}",
"format": "A4",
"landscape": false,
"printBackground": true,
"waitUntil": "networkidle",
"margin": {
"top": "20px",
"right": "20px",
"bottom": "20px",
"left": "20px"
}
}

Use {{1.page_url}} to capture the URL sent by your monitoring tool's webhook. This allows you to document any page that triggers an update alert.
waitUntil: "networkidle" waits for all network activity to complete before PDF capture – essential for dynamic content and dashboards.
URL Scenario Example

Complete scenario:
- Webhooks: Custom webhook – Triggered when page is updated.
- HTTP: PDFBolt – Convert updated page to PDF.
- Slack: Create a Message – Notify team with PDF attachment.
- Google Drive: Upload a File – Archive snapshot for compliance.
Integration options: Connect this webhook with page monitoring services like Visualping, ChangeTower, or custom scripts that detect website updates.
Additional Resources
PDFBolt Documentation
- Templates Management Guide – Detailed creation and management instructions.
- Templates Docs – Templates overview, benefits, and use cases.
- API Endpoints – All available endpoints.
- Conversion Parameters – Complete parameter reference.
- Error Handling – Error codes and solutions.