Apps Script setup guide

Copy the sheet, deploy it as a web app, sign in — about 10 minutes.

1. Copy the sheet into your Drive

  1. Open the Google Sheet link from your purchase, signed in to the Google account that will own it.
  2. File → Make a copy → Make a copy.
  3. Never use File → Download — an .xlsx file loses the Apps Script.
  4. Check: your avatar top-right, cells are editable, the sheet is in Drive → Recent.

2. Open the Apps Script

  1. In your copy: Extensions → Apps Script.
  2. Only if Code.gs starts with SHEET_ID / FOLDER_ID: paste your IDs between the quotes (2026+ projects skip this).
    // Configuration — update these IDs
    const SHEET_ID  = 'your-sheet-id-here';
    const FOLDER_ID = 'your-folder-id-here';
  3. Sheet ID = the part between /d/ and /edit in the sheet URL. Folder ID = the part after /folders/.
  4. Save with Ctrl/Cmd+S and wait for Project saved.

3. Deploy as a web app

  1. Deploy → New deployment → → Web app.
  2. Execute as Me. Who has access: Only myself, Anyone with Google account or Anyone.
  3. Avoid Anyone if the sheet holds private data — the app runs as you.
  4. Deploy → Authorize access → your account → Advanced → Go to project (unsafe).
  5. Tick Select all → Continue, then copy the Web app URL — that is your app.

4. Sign in

  1. Open the Users tab in your copy — each row is one login.
  2. Read the Username and Password columns by their row-1 headers (column letters differ per app).
  3. Sign in. Change a password by typing over it in the sheet; add people as rows with an existing role.
  4. Keep the sheet private and replace the demo passwords before going live.

5. Clear the demo data

  1. Each app section has a sheet tab with the same name.
  2. Select row 2 to the last row → right-click → Delete rows, on every tab you want empty.
  3. Never delete or edit row 1 — the app finds its columns by those headers.
  4. Keep your own row in Users, then reload the app. A section still listing rows = its tab was missed.

6. Update your app

  1. Saving the code does not change the live URL.
  2. Preview: Deploy → Test deployments (opens for the script owner only).
  3. Publish: Deploy → Manage deployments → Edit → Version New version → Deploy. Same URL, new code.
  4. Don't use New deployment to update — it makes a second URL and the old one keeps the old code.

OpenAI API key

  1. Sign in at platform.openai.com (not chatgpt.com).
  2. Settings → Billing → add at least $5 credit, pay-as-you-go.
  3. No credit = Error 429 insufficient_quota. ChatGPT Plus is not API credit.
  4. API keys → Create new secret key → copy it (starts with sk-, shown once).
  5. Paste it in the tool's Admin Settings → API Key, or in Code.gs:
    // paste your key between the quotes
    const OPENAI_API_KEY = 'sk-your-key-here';
  6. Never share the key. If it leaks, delete it and create a new one.

Gemini API key (free)

  1. Open aistudio.google.com/apikey and sign in.
  2. Create API key → Create API key in new project.
  3. Copy the key (starts with AIza) — free tier, no card needed.
  4. Paste it in Admin Settings → API Key, or in Code.gs:
    // paste your key between the quotes
    const GEMINI_API_KEY = 'AIza-your-key-here';
  5. API key not valid = an extra space or a missing character. Re-copy and paste.

Troubleshooting

  • "This app isn't verified" Advanced → Go to project (unsafe). It is your own script.
  • Web app shows an error Check the IDs, save, publish a new version, then read Executions in the editor.
  • "You need permission" Work in your copy, use one Google account for everything, redeploy and re-allow.
  • No Apps Script menu Use Google Sheets on a desktop browser: Extensions → Apps Script. Workspace admins can block it.
  • Where does the API key go? Admin Settings → API Key, or between the quotes in Code.gs, then publish a new version.
  • OpenAI Error 429 Add billing credit — ChatGPT Plus is not API credit.
  • Is my data shared with you? No. Your copy, data and keys stay in your Google account.
  • Can I use it on my phone? Yes, in any mobile browser. Setup needs a desktop browser.

Need help?

Send a screenshot of the error or the Executions page.