Internal Operations Guide
| File | Where | You Change |
|---|---|---|
Code.gs | Google Apps Script | SPREADSHEET_ID only |
index.html | Hostinger folder | GAS_URL + APP_PASSWORD |
Inside "InfoSmashers Clients" → New Folder → name it the client's business name.
Create a new Google Sheet → name it exactly as the business name (e.g. "Euphoric Glam"). This name auto-appears everywhere on the dashboard. Copy the Sheet ID from the URL.
docs.google.com/spreadsheets/d/COPY_THIS/edit
script.google.comSPREADSHEET_ID at line 4In GAS editor → select initializeSheets from dropdown → click ▶ Run. This creates 6 tabs: Sales, Inventory, Expenses, Customers, Funding, Recipes.
Open their Sheet → Recipes tab → Column A = product names, one per row. These auto-populate the Sales dropdown.
Users tab columns: Email | Password | Name | Role | Status
Roles: Admin Editor Viewer Status: Active
const GAS_URL = 'paste /exec URL here'; const APP_PASSWORD = 'master_backup_pass';
Open in Notepad or VS Code. Change both values. Save.
hPanel → File Manager → public_html → New Folder (clientname) → upload index.html inside it.
Save GAS link + Sheet link in their Drive folder. Send client their URL and their login email + password.
| Variable | File | Location |
|---|---|---|
SPREADSHEET_ID | Code.gs | Line 4 |
GAS_URL | index.html | In <script> section |
APP_PASSWORD | index.html | In <script> section |
| Products | Google Sheet | Recipes tab → Column A |
| Users & Roles | Google Sheet | Users tab |
| Business Name | Google Sheet | Sheet title (auto) |
| Tab | Purpose | Key Columns |
|---|---|---|
Sales | All transactions | 20 columns — auto-filled by dashboard |
Expenses | All costs | Date, Category, Amount, IsMarketing |
Inventory | Raw materials | MaterialName, CurrentStock, ReorderLevel |
Customers | CRM — auto-updated on each sale | Email, Phone, TotalOrders, TotalSpend |
Funding | Investment rounds | Amount, EquityPercent, Valuation |
Recipes | Product dropdown source | Column A = ProductName |
Users | Login system | Email, Password, Name, Role, Status |
Deploy → Manage Deployments → Edit ✏ → Version: New version → Deploy.
The /exec URL stays the same. You do NOT need to update index.html.
Full access to everything.
✓ Dashboard ✓ Sales ✓ Inventory ✓ Expenses ✓ Funding ✓ Reports ✓ Valuation ✓ Investor KPIs ✓ Customers
Day-to-day operations. Cannot see financial/investment pages.
✓ Dashboard ✓ Sales ✓ Inventory ✓ Expenses ✓ Customers ✓ Reports
✗ Funding ✗ Valuation ✗ Investor KPIs
Read-only overview. For investors, advisors, silent partners.
✓ Dashboard ✓ Reports
✗ Everything else — no forms, no data entry
| Password | Name | Role | Status | |
|---|---|---|---|---|
| owner@biz.com | Admin123 | Owner Name | Admin | Active |
| staff@biz.com | Staff456 | Staff Name | Editor | Active |
| investor@vc.com | View789 | Investor | Viewer | Active |
Active to Inactive. They will see "Account inactive" on login.| Client | URL | Plan | Fee | Start | Renewal | Status |
|---|---|---|---|---|---|---|
| Euphoric Glam | .../euphoric-glam | Basic | 5,000 | Apr 26 | May 26 | Active |
| TechEdge | .../techedge | Pro | 8,000 | Apr 26 | May 26 | Active |
| XYZ Corp | .../xyz | Basic | 5,000 | Mar 26 | Apr 26 | Expired |
In your master tracker Sheet, select the Renewal Date column → Format → Conditional Formatting → Custom formula:
=AND(F2<>"",F2-TODAY()<=7)
Set fill color to red. Any renewal within 7 days turns red automatically — no manual checking needed.
hPanel → File Manager → public_html → delete their folder (e.g. /euphoric-glam/). Their URL stops working instantly.
Open their Google Sheet → Share → remove their email from editor access. Their data remains in the Sheet safely.
In script.google.com → open their GAS copy → you can leave it (it uses no quota when not called) or delete it if you prefer clean records.
Change their Status to Expired in your subscription Sheet. Archive their Drive folder.
Their Google Sheet stays intact — it is their Google account, their data. You never held their data. Only the dashboard URL goes offline. This protects you legally and builds client trust.
The GAS URL and Sheet are still intact — nothing changed on the backend.
Done. Client is back online in under 2 minutes.