{"id":51414263,"url":"https://github.com/leoherzog/groupie","last_synced_at":"2026-07-04T17:31:43.752Z","repository":{"id":365325813,"uuid":"1271550422","full_name":"leoherzog/groupie","owner":"leoherzog","description":"Google Group advanced management — Modify or copy settings, duplicate groups, and more","archived":false,"fork":false,"pushed_at":"2026-06-16T20:55:34.000Z","size":86,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T22:27:10.796Z","etag":null,"topics":["apps-script","google-apps-script","google-groups"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leoherzog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-16T19:21:57.000Z","updated_at":"2026-06-16T20:54:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/leoherzog/groupie","commit_stats":null,"previous_names":["leoherzog/groupie"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/leoherzog/groupie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoherzog%2Fgroupie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoherzog%2Fgroupie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoherzog%2Fgroupie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoherzog%2Fgroupie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leoherzog","download_url":"https://codeload.github.com/leoherzog/groupie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoherzog%2Fgroupie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35130722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apps-script","google-apps-script","google-groups"],"created_at":"2026-07-04T17:31:43.310Z","updated_at":"2026-07-04T17:31:43.747Z","avatar_url":"https://github.com/leoherzog.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Groupie](https://raw.githubusercontent.com/leoherzog/groupie/main/screenshot.png)\n\n# Groupie\n\nA single, modernized admin toolbox for **Google Groups for Workspace**.\n\n### Basics\n\n[Google Groups for Workspace](https://support.google.com/a/topic/25838) lets admins create mailing lists for their domain — different from the public-facing [Google Groups](https://groups.google.com/) forums. Each group carries a large set of settings, many of them awkward to read and manage in bulk through the Admin Console or Google Groups UI. Groupie works with them directly through the [Admin Groups Settings API](https://developers.google.com/workspace/admin/groups-settings/v1/reference/groups).\n\nGroupie grabs every group on your domain and gives you one place to manage them:\n\n- **Duplicate** a group — spin up a new group that inherits all of an existing one's settings, with your own email, name, and description.\n- **Change Setting** — pick a group, pick a single setting, and see its current and possible values before you change it.\n- **Copy All Settings** — overwrite every setting on a destination group with those of a source group, optionally including the description.\n- **Groups Directory** — a table of every group with its member count and a one-click toggle to list/unlist it from your domain's email autocomplete directory.\n\n### Setup\n\n\u003e [!IMPORTANT]\n\u003e API calls run against the Admin SDK and require Workspace admin privileges over groups. Depending on the deployment model you choose below, that's either the account that deploys the app (Option A) or each person who uses it (Option B).\n\n#### Option A — Run as the domain administrator\n\nThe web app makes its API calls with **your** admin privileges, so anyone you grant access can use the tool without being an admin themselves.\n\n- **Execute as:** `Me (your-admin@yourdomain.com)`\n- **Who has access:** `Anyone within yourdomain.com`\n\n\u003e [!WARNING]\n\u003e Anyone who can open the app gets the full power of these tools running as you. Restrict access (or use Option B) if that's broader than you want.\n\n#### Option B — Run as the user accessing the web app\n\nThe web app makes its API calls with **the visitor's** privileges, so each person who uses it must themselves be a Workspace admin with group management rights. Each admin logs in to the tool and runs the actions as themselves.\n\n- **Execute as:** `User accessing the web app`\n- **Who has access:** `Anyone within yourdomain.com`\n\n\n1. Create a [new Google Apps Script project](https://script.google.com/). If using Option A above, make sure to create the new project as the domain administrator.\n2. Copy the code from [`Code.gs`](https://raw.githubusercontent.com/leoherzog/groupie/main/Code.gs) into `Code.gs` in the project.\n3. Create a new HTML file with the `Files ➕` button in the left sidebar, choose `HTML`, name it `index` (`.html` is added automatically), and copy the code from [`index.html`](https://raw.githubusercontent.com/leoherzog/groupie/main/index.html) into it.\n4. In the `Services ➕` section of the left sidebar, add the **Admin SDK API** (`AdminDirectory`) and the **Groups Settings API** (`AdminGroupsSettings`).\n5. Click `Deploy` → `New deployment`, choose the `Web app` type, and pick one of the two deployment models above.\n\n### Updating\n\nWhen updates are released here on GitHub, copy the newer [`Code.gs`](https://raw.githubusercontent.com/leoherzog/groupie/main/Code.gs) and [`index.html`](https://raw.githubusercontent.com/leoherzog/groupie/main/index.html) into your project, then go to `Deploy` → `Manage deployments`. Click the `✏️ Edit` button on your deployment, choose `New version` under the `Version` dropdown, and click `Deploy`.\n\n- - -\n\nFeel free to take a look at the source and adapt as you please. I would love to see some pull requests for improvements.\n\nGroupie is licensed under the [MIT License](LICENSE).\n\n- - -\n\n### About Me\n\n\u003ca href=\"https://herzog.tech/\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/link-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/link.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/link.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003ca href=\"https://mastodon.social/@herzog\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/mastodon-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/mastodon.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/mastodon.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/leoherzog\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/github-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/github.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/github.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003ca href=\"https://keybase.io/leoherzog\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/keybase-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/keybase.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/keybase.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/in/leoherzog\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/linkedin-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/linkedin.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/linkedin.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003ca href=\"https://hope.edu/directory/people/herzog-leo/\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/anchor-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/anchor.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/anchor.svg.png\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://herzog.tech/$\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://herzog.tech/signature/mug-tea-saucer-solid-light.svg.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://herzog.tech/signature/mug-tea-saucer-solid.svg.png\"\u003e\n    \u003cimg src=\"https://herzog.tech/signature/mug-tea-saucer-solid.svg.png\" alt=\"Buy Me A Tea\" width=\"32px\"\u003e\n  \u003c/picture\u003e\n  Found this helpful? Buy me a tea!\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoherzog%2Fgroupie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleoherzog%2Fgroupie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoherzog%2Fgroupie/lists"}