Next
Build your own internal app for sharing content, tracking adoption, and managing internal requests.
App

Content Operating System - Complete Setup Guide
This guide will walk you through setting up your own searchable content database with analytics tracking. The system helps teams find content quickly and provides insights into what's being used most.
📋 Table of Contents
🚀 Initial Setup
Step 1: Copy the Template Spreadsheet
Open the template spreadsheet: Content Database Template (link provided separately)
Click "Make a copy"
Save it to your Google Drive with a descriptive name like "Company Content Database"
Open your new copy
Step 2: Set Up Google Apps Script
In your copied spreadsheet, click Extensions > Apps Script
Delete any existing code in the editor
Copy and paste the provided
Code.gs
file contentClick Save (disk icon)
Give your project a name like "Content Finder App"
Step 3: Get Your Spreadsheet ID
You'll need this to connect your app to your data:
In your spreadsheet, look at the URL in your browser:
Copy the
YOUR_SPREADSHEET_ID
portion (the long string between/d/
and/edit
)
Example:
URL:
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
Spreadsheet ID:
1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
🔐 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 Content Finder App (unsafe)"
Review the permissions and click "Allow"
These permissions are necessary for the script to:
Read your content database spreadsheet
Create tracking sheets for analytics and feedback
Create a web app to display your content finder
⚙️ Configuration
After authorization, you need to update the script with your specific spreadsheet ID:
Step 1: Update the Script Configuration
In your Apps Script editor, find the configuration section at the top:
Replace
'YOUR_SPREADSHEET_ID_HERE'
with your actual Spreadsheet ID from the Initial SetupClick Save (disk icon)
Example:
Step 2: Customize Appearance (Optional)
You can customize the web app's appearance by modifying the branding section:
📊 Adding Your Content
Required Sheet Structure
Your spreadsheet needs a sheet named "Content Database" with these exact column headers:
Sample Data Format
Here's how to structure your content data:
| Collateral Name | Link/Location | Type | Product Line | Integrations | Competitor | Persona | Company Size | Industry
|-----|-----|-----
| Product Demo Video | https://youtu.be/abc123 | Video | Enterprise | Salesforce, HubSpot | General | Sales Manager | Enterprise | Technology | ROI Calculator | https://company.com/roi-calc | Tool | Professional | Excel | vs Competitor A | CFO | SMB | Finance
Data Entry Best Practices
Consistent Naming:
Use the same terms across entries (e.g., always "Enterprise" not sometimes "enterprise")
Create a style guide for your team
Multiple Values:
Separate multiple values with commas: "Salesforce, HubSpot, Slack"
Use spaces after commas for readability
Links:
Include full URLs starting with
https://
Test links to make sure they work
🚀 Deploying the Web App
To make your content finder accessible via a web app:
In your Apps Script editor, click Deploy > New deployment
Select Web app as the deployment type
Configure the deployment:
Description: "Content Finder 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 your searchable content database!
Testing Your Deployment
Open the web app URL in a new browser tab
You should see:
Your content finder interface
Search and filter options
Your content data (if you've added any)
🎨 Customization Options
Content Database Structure
Modify your spreadsheet columns to match your content types. If you add custom columns, update the code in the getInitialData()
function.
Web App Appearance
Customize colors, fonts, and text by modifying the variables in the "BRANDING CUSTOMIZATION" section:
App Title: Change the main heading
Colors: Use your brand colors (hex codes)
Footer: Add your company information
Content Labels: Customize terminology
Analytics Features
The system automatically tracks:
Content clicks and usage
Popular content items
Usage trends over time
User feedback
Access analytics by clicking the "📊 Analytics" link in your web app.
📈 Using the System
For End Users
Finding Content:
Use the search box to find content by name or keywords
Use filter dropdowns to narrow by category
Click content titles to open in new tabs
Use "Copy Link" buttons to share content URLs
Providing Feedback:
Click the "Provide Feedback" button (bottom right)
Select feedback type and enter your message
Submit to help improve the content database
For Administrators
Managing Content:
Add new content directly to the spreadsheet
Update existing content by editing spreadsheet rows
Remove outdated content by deleting rows
Monitoring Usage:
Click "📊 Analytics" to view usage dashboard
Review feedback in the "Feedback" sheet
Track popular content in the "Click Tracking" sheet
🔧 Troubleshooting
Content Not Showing
Check these items:
Verify your sheet is named exactly "Content Database"
Ensure column headers match exactly (case-sensitive)
Make sure you have data in rows 2 and below
Check that your Spreadsheet ID is correct in the code
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
Check spreadsheet sharing permissions
Web App Not Loading
Create a new deployment of the web app
Check browser console for JavaScript errors (F12)
Verify the web app URL is correct
Try accessing in an incognito/private browser window
Performance Issues
Keep content database under 1000 items for best performance
Data is cached for 5 minutes - wait for cache refresh
Check internet connection speed
❓ 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 find content
Share the spreadsheet with editors who need to manage content
Share this documentation to help others understand the system
How do I add new content categories?
Add new columns to your spreadsheet
Update the
columns
array in thegetInitialData()
functionRedeploy the web app
Can I customize the search and filter options?
Yes! Modify the spreadsheet structure and update the corresponding code sections. The system automatically generates filter options based on your data.
How do I backup my data?
Regularly download your spreadsheet as Excel/CSV
Use Google Takeout for complete backup
Consider setting up automated backups using Apps Script triggers
How do I stop click tracking?
Remove or comment out the trackClick()
function calls in the JavaScript code, then redeploy the web app.
📞 Need Help?
If you encounter any issues or have questions about the Content Operating System, check the troubleshooting section above or review the error messages in your browser's developer console (F12).
For everything else, you can email support@productivepmm.com