HIPAA-compliant healthcare intake and assessment forms for multiple practices.
This repo contains:
unified-google-apps-script.js)formConfigs/*.gs)formType and eventType.responseId exists).unified-google-apps-script.js: Router, shared helpers, Intercom, Survey API integrationformConfigs/loadConfigs.gs: Config registry (getFormConfig)formConfigs/eventHandlers.gs: Generic event pipelineformConfigs/*.gs: Per-form definitions (sheetName, headers, row builder, supported events)formConfigs/tests.gs: Generic and event-flow test harnessformType + eventType where eventType is one of:
viewedprogressivecompletedfinalclickedCtaformType only (must have isGeneric: true in config)arkansas-urology/shim-quiz/index.htmloabss/index.htmldesert-oasis/heart-health-study/index.htmlunified-google-apps-script.js - primary backend entrypoint (doPost)formConfigs/ - modular form configs + event handlers + testsarkansas-urology/ - Arkansas Urology form assetsoabss/ - OABSS formdesert-oasis/ - Desert Oasis forms/assetsassets/ - shared static assetsGOOGLE_SHEETS_SETUP.md - Apps Script deployment setupSECURITY_SETUP.md - token/property security practicesGA4_TRACKING.md - analytics implementation notesunified-google-apps-script.js and all files from formConfigs/.Execute as: Me, Who has access: Anyone or your required access policy).Add in Apps Script Project Settings -> Script Properties:
INTERCOM_API_TOKENOptional (for Survey API writes):
SURVEY_API_KEYVIDSCRIP_BASE_URLSet each form’s GOOGLE_APPS_SCRIPT_URL (or fetch target URL) to your deployed web app endpoint.
Run a static server from repo root:
python3 -m http.server 8080
Open forms:
http://localhost:8080/arkansas-urology/shim-quiz/http://localhost:8080/oabss/http://localhost:8080/desert-oasis/heart-health-study/In Codespaces, use the forwarded URL instead of localhost.
Use functions in formConfigs/tests.gs:
testGenericForm('oabss')testAllGenericForms()testEventFlow('arkansas-urology-shim')testAllEventFlows()testOnNewRowAdded('Sheet Name')responseId where expectedSee SECURITY_SETUP.md for details.
GOOGLE_SHEETS_SETUP.mdSECURITY_SETUP.mdGA4_TRACKING.mdGA4_CUSTOM_REPORTS.mdCUSTOMER_DATA_SUMMARY.mdPROGRESSIVE_SUBMISSION.mdWhen adding a new form:
formConfigs/<newForm>.gs.formConfigs/loadConfigs.gs.formConfigs/tests.gs.