We’ve created a system to help automate parts of your internal newsletter process and create a web page you can use to share your library of newsletters internally. Follow the instructions on this page to install and configure your template. It should only take 5 minutes!
📚 Internal Newsletter System - Complete Setup Guide
This guide will walk you through setting up your own automated internal newsletter system. The system creates weekly newsletters, tracks their status, and displays them in your own custom web app.
📋 Table of Contents
📁 Initial Setup
Step 1: Create a Folder Structure
- Go to your Google Drive
- Create a new folder called "Internal Newsletter System"
- Inside this folder, create a subfolder called "Newsletters"
Step 2: Copy the Template Document
- Open the template document: Internal Newsletter Template
- Click "Make a copy"
- Save it to your "Internal Newsletter System" folder
- Rename it to "Internal Newsletter Template"
Step 3: Copy the Tracking Spreadsheet
- Open the tracking spreadsheet: Newsletter Tracking Sheet
- Click "Make a copy"
- Save it to your "Internal Newsletter System" folder
- Rename it to "Newsletter Tracking"
🔐 Script Authorization
When you first run any function in the Apps Script, you'll see a security warning. This is normal and expected.
Why You See This Warning
Google shows this warning for ANY custom script to protect users from potentially harmful code. The warning appears because:
- The script isn't published on the Google Workspace Marketplace
- Google hasn't verified the script's developer
- The script requires access to your Google Drive and Spreadsheets
Why It's Safe to Proceed
This script is completely safe because:
- ✅ It's YOUR copy of the script running in YOUR Google account
- ✅ It only accesses YOUR Google Drive files
- ✅ No data is sent to external services
- ✅ All operations happen within your Google Workspace
How to Authorize the Script
- When you see "Google hasn't verified this app", click "Advanced" (bottom left)
- Click "Go to Newsletter Automation (unsafe)"
- Review the permissions and click "Allow"
These permissions are necessary for the script to:
- Create newsletter documents from your template
- Track newsletter status in your spreadsheet
- Create a web app to display published newsletters
⚙️ Configuration
After authorization, you need to update the script with your specific file IDs:
Step 1: Get Your File IDs
- Template Document ID:
- Open your copied template document
- Look at the URL:
https://docs.google.com/document/d/YOUR_TEMPLATE_ID/edit
- Copy the
YOUR_TEMPLATE_ID
portion - Spreadsheet ID:
- Open your copied tracking spreadsheet
- Look at the URL:
https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit
- Copy the
YOUR_SPREADSHEET_ID
portion - Newsletter Folder ID:
- Open your "Newsletters" folder
- Look at the URL:
https://drive.google.com/drive/folders/YOUR_FOLDER_ID
- Copy the
YOUR_FOLDER_ID
portion
Step 2: Update the Script
- In your tracking spreadsheet, click Extensions > Apps Script
- Find the configuration section at the top of the script:
// ============================================================================
// 📋 REQUIRED CONFIGURATION - REPLACE WITH YOUR IDs
// ============================================================================
const TEMPLATE_DOC_ID = 'YOUR_TEMPLATE_ID'; // Your template document ID
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID'; // Your tracking spreadsheet ID
const NEWSLETTER_FOLDER_ID = 'YOUR_FOLDER_ID'; // Your newsletter folder ID
const SHEET_NAME = 'Sheet1'; // Name of the sheet tab in your spreadsheet
- Replace the placeholder IDs with your actual IDs
- Click Save (disk icon)
Step 3: Customize Appearance (Optional)
You can customize the web app's appearance by modifying these variables:
// ============================================================================
// 🎨 WEB APP CUSTOMIZATION - CHANGE THESE TO MATCH YOUR BRAND
// ============================================================================
// Page Content
const WEB_APP_TITLE = 'Product Marketing Newsletters';
const WEB_APP_SUBTITLE = 'Stay updated with our latest internal communications';
const FOOTER_CREDIT_TEXT = 'PMM Jetpack';
const FOOTER_CREDIT_URL = '<https://productivepmm.com/jetpack>';
// Color Scheme (use any valid CSS colors)
const PRIMARY_COLOR = '#0066cc'; // Main accent color (links, hover effects)
const PRIMARY_HOVER = '#0052a3'; // Darker shade for hover states
const TEXT_COLOR = '#333333'; // Main text color
const LIGHT_TEXT_COLOR = '#666666'; // Subtitle and secondary text
📝 Creating Your First Newsletter
Manual Creation
- In your spreadsheet, click Extensions > Apps Script
- Click the Select function dropdown and choose
testCreateNewsletter
- Click Run
- You'll see a new newsletter document created in your Newsletters folder
- A new row will be added to your tracking spreadsheet
What Happens
- A copy of your template is created with the title "Internal Newsletter - Week of [date]"
- The copy is saved in your Newsletters folder
- A new row is added to your tracking spreadsheet with:
- Week of: The Monday of the current week
- Title: The newsletter title
- Newsletter Link: A link to the new document
- Video Link: Empty (for you to add later)
- Status: "Not Published"
📢 Publishing Newsletters
When a newsletter is ready to be shown in the web app:
- Open your tracking spreadsheet
- Find the row for the newsletter you want to publish
- In the "Status" column, change "Not Published" to "Published"
- (Optional) Add a video link in the "Video Link" column
The newsletter will now appear in the web app!
Supported Video Platforms
You can add videos from:
- YouTube (e.g.,
https://www.youtube.com/watch?v=VIDEO_ID
) - Loom (e.g.,
https://www.loom.com/share/VIDEO_ID
) - Vimeo (e.g.,
https://vimeo.com/VIDEO_ID
)
⏰ Setting Up Automation
To automatically create newsletters every week:
- In your spreadsheet, click Extensions > Apps Script
- Click the Select function dropdown and choose
setupWeeklyTrigger
- Click Run
This sets up a trigger to create a new newsletter every Monday at 9:00 AM.
To customize the schedule, modify these variables:
// ============================================================================
// ⚙️ AUTOMATION SETTINGS - CUSTOMIZE YOUR SCHEDULE
// ============================================================================
const NEWSLETTER_TITLE_FORMAT = 'Internal Newsletter - Week of'; // Prefix for newsletter titles
const AUTOMATION_DAY = ScriptApp.WeekDay.MONDAY; // Day of week to create newsletters
const AUTOMATION_HOUR = 9; // Hour (24-hour format) to create newsletters
🌐 Deploying the Web App
To make your newsletters accessible via a web app:
- In your spreadsheet, click Extensions > Apps Script
- Click Deploy > New deployment
- Select Web app as the deployment type
- Configure the deployment:
- Description: "Newsletter Web App"
- Execute as: "Me"
- Who has access: Choose appropriate access level
- "Only myself" (just for you)
- "Anyone within [your organization]" (for internal use)
- "Anyone" (public access)
- Click Deploy
- Copy the Web app URL that appears
You now have a web app that displays all newsletters marked as "Published"!
🎨 Customization Options
Newsletter Template
Modify your template document to change the format of all future newsletters.
Web App Appearance
Customize colors, fonts, and text by modifying the variables in the "WEB APP CUSTOMIZATION" section.
Newsletter Creation Schedule
Change the day and time for automatic newsletter creation in the "AUTOMATION SETTINGS" section.
🔧 Troubleshooting
Newsletter Not Created in Correct Folder
Run the checkTemplateLocation
function to verify your template document location.
Web App Not Showing Newsletters
- Check that newsletters are marked as "Published" in the spreadsheet
- Verify the spreadsheet ID in the script configuration
- Create a new deployment of the web app
Authorization Issues
If you see "You do not have permission to access the requested resource":
- Make sure you're signed in with the same Google account that owns the script
- Try reauthorizing the script by running any function
❓ FAQ
Is this script safe to use?
Yes! The script only accesses your own Google Drive files and doesn't send data anywhere else. The security warning is standard for any custom script that hasn't been verified by Google.
Can I share this with my team?
Yes! You can:
- Share the web app URL with anyone who needs to view newsletters
- Share the spreadsheet with editors who need to manage newsletters
- Share this documentation to help others set up their own system
How do I add videos to newsletters?
Add video URLs to the "Video Link" column in your spreadsheet. The system supports YouTube, Loom, and Vimeo links.
Can I customize the newsletter format?
Yes! Modify your template document, and all future newsletters will use that format.
How do I stop automatic newsletter creation?
Run the removeAllTriggers
function to remove all scheduled triggers.
🚀 Need Help?
If you encounter any issues or have questions about the newsletter system, please contact support@productivepmm.com.
Happy newsletter creating! 📝