Copy Presentation
Creates a copy of an existing Google Slides presentation.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Presentation Id - The ID of the Google Slides presentation to be copied.
- Title - The new title for the copied presentation.
Options
- Credentials - Google account credentials used to authenticate with the Google Slides API.
- Share With - An array of objects specifying users to share the copied presentation with. Each object must contain Role, Type, and EmailAddress properties. An optional EmailMessage property can also be included.
- Send Notification Mail - If enabled, sends notification emails to users when sharing the presentation.
Output
- Presentation Url - The URL of the newly created presentation copy.
How It Works
The Copy Presentation node creates a duplicate of an existing Google Slides presentation. When executed, the node:
- Validates the provided inputs (Presentation Id, Title)
- Authenticates with Google Slides API using the provided credentials
- Creates a copy of the specified presentation with the new title
- Optionally shares the copied presentation with specified users
- Returns the URL of the newly created presentation
Requirements
- A valid Google Slides presentation ID to copy
- Valid Google API credentials with appropriate permissions
- A new title for the copied presentation
- Proper Google Drive permissions to create and share files
Error Handling
The node will return specific errors in the following cases:
- Empty or invalid Presentation Id
- Empty or invalid Title
- Invalid or missing Google API credentials
- Google Slides API authentication errors
- Insufficient permissions to copy the presentation
- Invalid Share With configuration
- Google Drive service errors
Usage Notes
- The Presentation Id can be found in the URL of the Google Slides presentation
- The copied presentation will have the same content as the original but with the new title
- The Share With option allows you to specify an array of users to share the copied presentation with
- Each Share With object should include:
- Role: The permission role (e.g., "writer", "reader", "owner")
- Type: The type of user (e.g., "user", "group")
- EmailAddress: The email address of the user or group
- EmailMessage (optional): A custom message to include in the sharing notification
- If Send Notification Mail is enabled, users will receive email notifications when the presentation is shared with them
- The output Presentation Url provides direct access to the newly created copy
Examples
Example 1: Copy a Template Presentation
Copy a master template to create a new working presentation:
Presentation Id: "1ABC_TEMPLATE_XYZ"
Title: "Q1 2024 Sales Report"
Creates an exact copy with all slides, layouts, and formatting preserved.
Example 2: Copy and Share with Team
Copy a presentation and immediately share with collaborators:
Presentation Id: "1ABC_ORIGINAL"
Title: "Project Proposal - Client ABC"
Share With:
[
{
"Role": "writer",
"Type": "user",
"EmailAddress": "designer@company.com",
"EmailMessage": "Please add the design mockups to slides 5-8"
},
{
"Role": "reader",
"Type": "user",
"EmailAddress": "manager@company.com"
}
]
Send Notification Mail: true
Example 3: Batch Copy for Multiple Clients
Copy a template multiple times for different clients:
// In a JS node
const clients = ["Acme Corp", "TechStart", "Global Industries"];
for (const client of clients) {
msg.title = `Proposal for ${client}`;
msg.presentationId = "1ABC_TEMPLATE";
// Copy Presentation node here
}
Tips for Effective Use
- Template Strategy: Maintain master templates and copy them for new instances rather than creating from scratch
- Naming Conventions: Include dates, client names, or version numbers in the copy title for organization
- Preserve Originals: Never modify the original template - always work on copies
- Immediate Sharing: Set up sharing during copy to ensure team members can access immediately
- URL Extraction: The output URL can be sent via email, stored in databases, or logged for tracking
- Batch Operations: Use loops to create multiple copies efficiently
Common Use Cases
Use Case 1: Weekly Report Generation
Copy a weekly report template every Monday:
// Scheduled to run every Monday
const today = new Date();
const weekNum = Math.ceil((today - new Date(today.getFullYear(), 0, 1)) / 604800000);
msg.title = `Weekly Report - Week ${weekNum} - ${today.getFullYear()}`;
msg.templateId = "1ABC_WEEKLY_TEMPLATE";
Then use Copy Presentation node to create the new report.
Use Case 2: Personalized Client Presentations
Create customized presentations for each client:
- Copy Presentation from template with client name in title
- Replace Text to insert client-specific data
- Replace Shapes with Image to add client logo
- Share with client's email address
- Send the presentation URL via email
Use Case 3: Multi-Language Versions
Create language-specific versions from a base presentation:
const languages = [
{ code: "en", name: "English" },
{ code: "es", name: "Spanish" },
{ code: "fr", name: "French" }
];
for (const lang of languages) {
msg.title = `Product Catalog - ${lang.name}`;
// Copy Presentation
// Then use Replace Text with translated content
}
Use Case 4: Version Control and Archiving
Create dated backups of important presentations:
const today = new Date().toISOString().split('T')[0];
msg.title = `${msg.originalTitle} - Backup ${today}`;
Workflow Integration
Complete Template-Based Workflow
- Copy Presentation: Create a working copy from template
- Extract URL: Get the presentation URL from output
- Get Presentation: Retrieve presentation ID from URL if needed
- Replace Text: Update placeholder text with actual data
- Add Images: Insert dynamic images and charts
- PDF Export: Save final version as PDF
- Share: Distribute via email or upload to storage
Data-Driven Presentation Generation
// Read data from spreadsheet or database
const records = msg.data; // Array of records
for (const record of records) {
// Copy template
msg.presentationId = "1ABC_TEMPLATE";
msg.title = `Report for ${record.name}`;
// Copy Presentation node creates the copy
// Store the URL for later use
msg.shareWith = [{
"Role": "reader",
"Type": "user",
"EmailAddress": record.email
}];
}
Common Errors and Solutions
| Error | Cause | Solution |
|---|---|---|
| "Presentation ID cannot be empty" | No ID provided | Ensure Presentation Id input contains a valid ID |
| "Title cannot be empty" | No title or title is "_" | Provide a valid non-empty title for the copy |
| "No Credential Content" | Credentials missing or invalid | Verify credentials in Vault with proper Google Drive API access |
| Permission denied to copy | Account lacks view access to source | Ensure authenticated account can view the source presentation |
| Copy failed | Source presentation deleted or inaccessible | Verify source presentation exists and is accessible |
| Sharing failed | Invalid email addresses in Share With | Verify all email addresses are valid and properly formatted |
| Insufficient quota | Too many copies created | Google Drive has daily limits; space out batch operations |
Best Practices
- Template Management: Keep templates in a dedicated folder with restricted edit access
- Batch Throttling: Add delays between copies when creating many presentations to avoid rate limits
- Error Handling: Use try-catch blocks to handle cases where source presentation is unavailable
- Track Copies: Log created presentation URLs to a spreadsheet or database for tracking
- Clean Titles: Sanitize titles to remove invalid characters that might cause issues
- Permission Verification: Test sharing settings with a single copy before batch operations
- URL Storage: Store the output URL immediately as it's needed for subsequent operations