Learn how to create PowerPoint templates with placeholders that will be replaced with your data.
Basic Placeholders
The simplest placeholder syntax is {{variable_name}}. When you merge data, each occurrence of {{variable_name}} will be replaced with the corresponding value from your data source.
Example
If your data contains:
{
"name": "John Doe",
"company": "Acme Corp"
}
And your PowerPoint slide contains:
Welcome {{name}} from {{company}}
The result will be:
Welcome John Doe from Acme Corp
Placeholder Rules
-
Case Sensitive: Placeholder names are case-sensitive.
{{Name}}and{{name}}are different placeholders. -
Spaces: Spaces in column headers are preserved.
{{First Name}}works if your Excel column header is "First Name". However, for consistency, using underscores ({{first_name}}) is recommended. -
Special Characters: Placeholder names should contain letters, numbers, underscores, and spaces (when matching column headers).
Available Placeholders Reference
Here's a comprehensive table of all available placeholder types you can use in your PowerPoint templates:
| Placeholder | Example | Short Description |
|---|---|---|
| Basic text | {{name}} |
Replaces with value from data source (Excel column header, JSON property, or CSV column) |
| Nested property | {{user.name}} |
Accesses nested object properties using dot notation |
| JSON global access | {{json.user.name}} |
Accesses nested JSON properties from root using json. prefix |
| Array element | {{skills[0]}} |
Accesses array elements using square bracket notation with zero-based index |
| JSON array element | {{json.projects[0].name}} |
Accesses nested array elements in JSON data |
| Excel cell | {{xlsx.Sheet1!A1}} |
References a specific cell in an Excel worksheet |
| Excel named range | {{xlsx.Sheet1!ChartTitle}} |
References a named range in Excel |
| Excel table | {{xlsx.Sheet1!Table1}} |
References an Excel table (formatted table with name) |
| Image (simple) | {{photo_url}} |
Replaces image placeholder - set in image Alt-text field |
| Image (explicit) | {{type=image data=photo_url}} |
Explicit image placeholder syntax - set in image Alt-text field |
| QR code | {{data=contact_info type=qr}} |
Generates QR code from data - set in image Alt-text field |
| Table (Excel) | {{type=table data=xlsx.Sheet1!Table1}} |
Automatically populates table from Excel table - set in table name or Alt-text |
| Table with columns | {{type=table data=xlsx.Sheet1!Table1 columns="col1,col2"}} |
Populates table with specific columns in specified order |
| Table with filter | {{type=table data=xlsx.Sheet1!Table1 dataFilter="ID eq {{ID}}"}} |
Populates filtered table rows based on condition |
| Table (JSON) | {{json.items}} or {{items}} |
Automatically populates table from JSON collection - set in table name |
| Chart | {{type=chart data=xlsx.Sheet1!Table1}} |
Populates chart from Excel table - set in chart Alt-text field |
| Chart (JSON) | {{type=chart data=json.salesData}} |
Populates chart from JSON collection - set in chart Alt-text field |
Note:
- Text placeholders go directly in text boxes, table cells, shapes, or notes
- Image and QR code placeholders must be set in the Alt Text field of an image placeholder
- Table and chart placeholders should be set in the table/chart Alt Text Description field
Working with Text Boxes
Placeholders work in any text element in PowerPoint:
- Text boxes
- Placeholders
- Table cells
- Shapes with text
- Notes - You can use placeholders in slide notes as well
- Chart titles - Reference Excel cells or named ranges for dynamic chart titles
Working with Images
To replace images, insert an image placeholder and set its Alt Text (alternative text) to the placeholder expression:
- Insert any image as a placeholder
- Right-click → Format Picture → Alt Text
- Set Description to:
{{photo_url}}or{{type=image data=photo_url}}
Example data:
{
"logo": "https://example.com/logo.png",
"photo": "/path/to/photo.jpg"
}
Set Alt-text to: {{logo}} or {{photo}}
See: Images in PPTX Template for details.
Advanced Features
Nested Data
If your data has nested objects, use dot notation:
{
"user": {
"name": "John",
"email": "john@example.com"
}
}
Use {{user.name}} and {{user.email}} in your template.
For JSON data, you can also use global addressing: {{json.user.name}}
Arrays and Lists
For array data, use square bracket notation:
{
"skills": ["JavaScript", "Python", "SQL"],
"projects": [{"name": "Project A"}]
}
Reference with: {{skills[0]}} or {{projects[0].name}}
For JSON: {{json.skills[0]}}
Excel-Style Addressing
When working with Excel files, you can address:
- Cells:
{{xlsx.Sheet1!A1}} - Named ranges:
{{xlsx.Sheet1!ChartTitle}} - Excel tables:
{{xlsx.Sheet1!Table1}}
Tables and Charts
You can automatically populate tables and charts:
- Tables:
{{type=table data=xlsx.Sheet1!Table1 columns="col1,col2"}} - Charts:
{{type=chart data=xlsx.Sheet1!Table1}}
Set these expressions in the table/chart name (Selection Pane) or Alt Text Description.
See: Tables in PPTX Template and Charts in PPTX Template for details.
Best Practices
-
Test with Sample Data: Always test your template with a small sample of data first.
-
Use Descriptive Names: Use clear, descriptive placeholder names like
{{employee_name}}instead of{{n}}. -
Handle Missing Data: Consider what should happen if a data field is missing. The placeholder will be replaced with an empty string.
-
Formatting: Text formatting (bold, italic, colors) in your template will be preserved in the merged result.
Common Issues
-
Placeholders Not Replaced: Check that the placeholder name exactly matches the field name in your data (case-sensitive).
-
Special Characters: If your data contains HTML or special characters, they may need to be escaped.
For more help, see the Troubleshooting Guide.