How to sync google group members via google sheet ?

4,796 views
Skip to first unread message

Chandrashekar N

unread,
Mar 23, 2018, 9:21:56 AM3/23/18
to GAM for G Suite
Hi Team,

I need an help in updating the group as and then the users are updated in the Google sheet.

Regards,
Chandru

Chandrashekar N

unread,
Mar 24, 2018, 12:38:09 AM3/24/18
to GAM for G Suite
Any update here?

Ross Scroggs

unread,
Mar 24, 2018, 8:43:56 AM3/24/18
to google-ap...@googlegroups.com
Chandrashekar,

You'll have to download your Google Sheet to a CSV file on your local computer and then have GAM access the CSV file.
What are the columns in your Google Sheet that have the group name and member information?

Ross
--
ross.s...@gmail.com



> On Mar 23, 2018, at 9:38 PM, Chandrashekar N <cha...@blackbuck.com> wrote:
>
> Any update here?
>
> --
> You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-man...@googlegroups.com.
> To post to this group, send email to google-ap...@googlegroups.com.
> Visit this group at https://groups.google.com/group/google-apps-manager.
> To view this discussion on the web visit https://groups.google.com/d/msgid/google-apps-manager/13346f1f-22de-4d5d-a4ad-6e9f6ff60efd%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Chandrashekar N

unread,
Mar 26, 2018, 1:18:58 AM3/26/18
to google-ap...@googlegroups.com
Hi Ross,

Need to perform this activity automatically.

Google sheet will be updated eventually my many other users.

As and then they update task to be scheduled every Ex: 10 min.




Regards,
Chandra shekar.N
Information Technology - II

Zinka Logistics Solutions Private Limited
Follow BlackBuck on LinkedIn | Facebook

On Sat, Mar 24, 2018 at 6:13 PM, Ross Scroggs <ross.s...@gmail.com> wrote:
Chandrashekar,

You'll have to download your Google Sheet to a CSV file on your local computer and then have GAM access the CSV file.
What are the columns in your Google Sheet that have the group name and member information?

Ross
--
ross.s...@gmail.com



> On Mar 23, 2018, at 9:38 PM, Chandrashekar N <cha...@blackbuck.com> wrote:
>
> Any update here?
>
> --
> You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-manager+unsub...@googlegroups.com.
> To post to this group, send email to google-apps-manager@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-manager+unsub...@googlegroups.com.
To post to this group, send email to google-apps-manager@googlegroups.com.

Chris Harding

unread,
Mar 26, 2018, 10:10:09 AM3/26/18
to GAM for G Suite
Ok, here's how you can do this in a script, one that you run via scheduled task however often it is needed:

First, identify the file ID:
gam user <username of owner> show filelist fullquery "title contains '<name of sheet>'" name id

From there, select the correct file, hopefully there is only one match. Once you have the ID, this gets easy. Please note that the path below is JUST the folder path, not the filename. The filename will remain unchanged.
gam user <username of owner> get drivefile id <file ID> format csv targetfolder <path where you want it downloaded for processing>

Once you have the CSV as a local file, you can use GAM to sync membership.
gam update group <group email> sync owner|member|manager file <downloaded file from above>



Put together, it could look like this:
gam user foo@foo.com show filelist fullquery "title contains 'test'" name id

 {Condensed output example, file ID has been bolded for visibility}
Owner,title,id
f...@foo.com,testsheet,1OQdNbRNDLybsafG3x9XDG4MDmO2G1dEF_waF8FQNEnM

With that, you can create the script. Pick your poison of language depending on your OS. I'll use batch since I'm running on Windows, and not needing any PowerShell scripting functionality.
@ECHO OFF
REM
Filename: UpdateGroup.bat
REM

REM
Description: This script updates group membership in a Google Apps group
REM via GAM
from usernames placed in a Google Sheet. Please update the script
REM to match your environment
.

gam user foo@foo
.com get drivefile id 1OQdNbRNDLybsafG3x9XDG4MDmO2G1dEF_waF8FQNEnM format csv targetfile C:\Scripts
gam update
group foogroup@foo.com sync member file C:\Scripts\testsheet.csv

Once the script is built, you can schedule that task to run at regular intervals. Just make sure the user account running the task has access to your GAM install directory. It's a few more API hits, but you could even extend this functionality to having multiple sheets, one for members, one for managers, and one for owners. in the event an owner/manager is moving down in level, I would recommend syncing the owners before the managers, and the managers before the members. If someone is moving up, they would only be excluded for one run cycle. Even this could be avoided if you double up on the synchronizations. It all depends on your needed level of service, and how hands off you want the process to be.

Chandrashekar N

unread,
Mar 26, 2018, 11:09:49 AM3/26/18
to google-ap...@googlegroups.com
Hi Chris,

I tested but it take only the old file to update the group.

each and every time it runs it will download a new file and same will not be used in the script.



Regards,
Chandra shekar.N
Information Technology - II

Zinka Logistics Solutions Private Limited
Follow BlackBuck on LinkedIn | Facebook

--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-manager+unsub...@googlegroups.com.
To post to this group, send email to google-apps-manager@googlegroups.com.
Visit this group at https://groups.google.com/group/google-apps-manager.

Ross Scroggs

unread,
Mar 26, 2018, 11:14:18 AM3/26/18
to google-ap...@googlegroups.com
Chandrashekar,

Chris is on the right track but we still need to know how the data is organized in the CSV file. Is it a single column with email addresses?

Ross

To unsubscribe from this group and all its topics, send an email to google-apps-manager+unsubscribe...@googlegroups.com.

To post to this group, send email to google-apps-manager@googlegroups.com.
Visit this group at https://groups.google.com/group/google-apps-manager.

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-manager+unsub...@googlegroups.com.

To post to this group, send email to google-apps-manager@googlegroups.com.
Visit this group at https://groups.google.com/group/google-apps-manager.

For more options, visit https://groups.google.com/d/optout.



--

Chris Harding

unread,
Mar 26, 2018, 11:14:35 AM3/26/18
to GAM for G Suite
Ah, sorry, I hadn't actually tried to run it. This new code should fix that problem.

@ECHO OFF
REM
Filename: UpdateGroup.bat
REM
REM
Description: This script updates group membership in a Google Apps group
REM via GAM
from usernames placed in a Google Sheet. Please update the script
REM to match your environment
.


REM
Download the Google Sheet to a local CSV file, and synchronize group membership
gam user foo@foo
.com get drivefile id 1OQdNbRNDLybsafG3x9XDG4MDmO2G1dEF_waF8FQNEnM format csv targetfile C:\Scripts

gam update
group foogroup@foo.com sync member file C:\Scripts\testsheet.
csv

REM
Script is done, clean up downloaded file
del C:\Scripts\testsheet.csv

Chris Harding

unread,
Mar 26, 2018, 11:17:10 AM3/26/18
to GAM for G Suite
Bah, it changed my formatting.

Ross Scroggs

unread,
Mar 26, 2018, 11:24:59 AM3/26/18
to google-ap...@googlegroups.com
Chris,

You solution works if there is no header row, if there are header rows, then you need a slight change.
gam update group foogroup@foo.com sync member csvfile C:\Scripts\testsheet.csv:HeaderNameHere

Ross

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-manager+unsub...@googlegroups.com.

To post to this group, send email to google-apps-manager@googlegroups.com.
Visit this group at https://groups.google.com/group/google-apps-manager.

For more options, visit https://groups.google.com/d/optout.



--

Chris Harding

unread,
Mar 26, 2018, 11:44:35 AM3/26/18
to GAM for G Suite
Thanks. I didn't know the syntax for that. I probably would have upgraded to PowerShell, imported the CSV as an object, and turned it into a text file with clean data instead, but I probably would have started there anyway for larger, long-term viability of the script, where it would loop through multiple groups using a Google sheet that was effectively a metadata management file for the script (containing fields like user, file, file id). Internally, we're already using dynamically managed AD groups that get scraped to temp files and synchronized in PowerShell, but there are a few groups where members will always be external to the organization where I may use this method instead. The idea would be to empower end-users to manage memberships in organization-owned groups, without having to teach them to use the Groups service, or giving them too much access to group management settings where they will inevitably break their own group.

I know it isn't hard to do that in the Groups service directly, but some of these employees are having trouble with the fact we have a password policy now, and remembering their password when we're gone for a week or two. We have one group where SMS messages are required, and I may simplify it to the point where all they have to update is the phone number and carrier, and then post-process that file to transpose that to the SMS gateway address.

Chandrashekar N

unread,
Mar 26, 2018, 11:47:28 AM3/26/18
to google-ap...@googlegroups.com
As a start I'm trying with single column.



To unsubscribe from this group and all its topics, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.



--

--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.

Chandrashekar N

unread,
Mar 26, 2018, 12:02:29 PM3/26/18
to google-ap...@googlegroups.com
Awesome this should work.

Can we set an alert also I see email feature deprecated in window task scheduler.

--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.

Ross Scroggs

unread,
Mar 26, 2018, 12:06:18 PM3/26/18
to google-ap...@googlegroups.com
Chris,

With my Advanced GAM (https://github.com/taers232c/GAMADV-X) or Advanced GAM with Team Drives (https://github.com/taers232c/GAMADV-XTD) you can do what you want directly with GAM.

Suppose you've downloaded a Google Sheet into a CSV file GroupMembers.csv with two columns of interest: GroupEmail,MemberEmail

GroupEmail,MemberEmail

testg...@domain.com,user1@domain.com

testg...@domain.com,user2@domain.com

testg...@domain.com,user3@domain.com

testg...@domain.com,user5@domain.com


GroupMembers.csv can have rows in any order.


This command will sync members for all groups in GroupMembers.csv.


gam update group csvkmd GroupMembers.csv keyfield GroupEmail datafield MemberEmail sync member csvdata MemberEmail


Here's the basic syntax and a breakdown of the command.

gam update group <GroupEntity> sync member <UserTypeEntity>


gam update group - We're updating groups

<GroupEntity> - Define fields: csvkmd GroupMembers.csv keyfield GroupEmail datafield MemberEmail

sync member - We're syncing members

<UserTypeEntity> - Reference previously defined field: csvdata MemberEmail


Ross

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-manager+unsub...@googlegroups.com.
To post to this group, send email to google-apps-manager@googlegroups.com.
Visit this group at https://groups.google.com/group/google-apps-manager.

For more options, visit https://groups.google.com/d/optout.



--

Chandrashekar N

unread,
Mar 26, 2018, 12:11:36 PM3/26/18
to google-ap...@googlegroups.com
Is it possible to schedule an email alerts?

On Mon 26 Mar, 2018, 9:36 PM Ross Scroggs, <ross.s...@gmail.com> wrote:
Chris,

With my Advanced GAM (https://github.com/taers232c/GAMADV-X) or Advanced GAM with Team Drives (https://github.com/taers232c/GAMADV-XTD) you can do what you want directly with GAM.

Suppose you've downloaded a Google Sheet into a CSV file GroupMembers.csv with two columns of interest: GroupEmail,MemberEmail

GroupEmail,MemberEmail


GroupMembers.csv can have rows in any order.


This command will sync members for all groups in GroupMembers.csv.


gam update group csvkmd GroupMembers.csv keyfield GroupEmail datafield MemberEmail sync member csvdata MemberEmail


Here's the basic syntax and a breakdown of the command.

gam update group <GroupEntity> sync member <UserTypeEntity>


gam update group - We're updating groups

<GroupEntity> - Define fields: csvkmd GroupMembers.csv keyfield GroupEmail datafield MemberEmail

sync member - We're syncing members

<UserTypeEntity> - Reference previously defined field: csvdata MemberEmail


Ross

On Mon, Mar 26, 2018 at 8:44 AM, Chris Harding <chris....@huttoisd.net> wrote:
Thanks. I didn't know the syntax for that. I probably would have upgraded to PowerShell, imported the CSV as an object, and turned it into a text file with clean data instead, but I probably would have started there anyway for larger, long-term viability of the script, where it would loop through multiple groups using a Google sheet that was effectively a metadata management file for the script (containing fields like user, file, file id). Internally, we're already using dynamically managed AD groups that get scraped to temp files and synchronized in PowerShell, but there are a few groups where members will always be external to the organization where I may use this method instead. The idea would be to empower end-users to manage memberships in organization-owned groups, without having to teach them to use the Groups service, or giving them too much access to group management settings where they will inevitably break their own group.

I know it isn't hard to do that in the Groups service directly, but some of these employees are having trouble with the fact we have a password policy now, and remembering their password when we're gone for a week or two. We have one group where SMS messages are required, and I may simplify it to the point where all they have to update is the phone number and carrier, and then post-process that file to transpose that to the SMS gateway address.

On Monday, March 26, 2018 at 10:24:59 AM UTC-5, Ross Scroggs wrote:
Chris,

You solution works if there is no header row, if there are header rows, then you need a slight change.
gam update group foogroup@foo.com sync member csvfile C:\Scripts\testsheet.csv:HeaderNameHere

Ross

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.



--

--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-man...@googlegroups.com.
To post to this group, send email to google-ap...@googlegroups.com.

Chris Harding

unread,
Mar 26, 2018, 1:12:28 PM3/26/18
to GAM for G Suite
On Monday, March 26, 2018 at 11:11:36 AM UTC-5, Chandrashekar N wrote:
Is it possible to schedule an email alerts?

Yes, it is possible to send email alerts, but it requires including something not native to batch. I would do a Google search for sending emails from a batch file for methods you could use.

And Ross, for our environment (school district), we are populating fields in Active Directory from our HR and Student databases automatically through other automation processes. From there, we are dynamically calculating group membership on LDAP filters every hour to maintain hands-off synchronization, and then reading sometimes the memberships in multiple user groups (and their nested variants) also through LDAP queries to populate AD distribution groups and AD security groups for "distribution group owners". These AD groups are then scraped for memberships into temporary text files where only the user's mail attribute is read and dumped to file. Those files are then the ones synchronized with the Google group. This makes the most sense for our organization, since we have roughly a 30% staff turn over every year (1100 employees), and a 5% per year student growth rate, even when accounting for graduating seniors. By automating this entire process from information in databases that legally have to be accurate, we have eased the actual work load for employees in key positions that would otherwise have to do the Google Sheet management.

Where this method comes in handy is to allow our Security department staff provide non-technical information in a non-technical manner (such as phone numbers and carriers instead of SMS gateway addresses, and include superfluous descriptive information for human readability such as "Jim's Cell Phone"), and have group memberships updated accordingly. It will also be handy for our Student Records department managing membership in our Alternative Education groups (since that information is not well defined in the Student database), where they can simply add the Student ID number for the student being assigned to the Alternative Education program, and everything else happens dynamically from there. The second of those is a task that our Alternative Education employees have failed to maintain properly, but by opening the process to more individuals in a way that does not compromise FERPA regulations or creating a new Windows share for collective management of local files, perhaps it will be better maintained. As both of those require advanced, but scriptable, post-processing of the Google Sheet data, outputting to a temporary text file would make more sense for us anyway in the event we have to troubleshoot the process. By using PowerShell (or any object-oriented scripting language), I can easily create loops and functions for the automation of this task, and simply add an additional field to the metadata management file to identify the type of post-processing required and have a single scheduled task running a single script to manage all of those groups. That said, I will still likely upgrade to GAMADV-XTD simply for team drive file support, just to protect the Google Sheets from staff turnover.

+KimNilsson

unread,
Mar 30, 2018, 1:29:38 PM3/30/18
to GAM for G Suite
Looks like a lot of work, Chris.
Why not let GCDS sync from AD automatically?

Chandra Shekar N

unread,
Mar 30, 2018, 1:31:20 PM3/30/18
to google-ap...@googlegroups.com
Can we do it via app script?




Regards,
Chandra shekar.N
Information Technology - II

Zinka Logistics Solutions Private Limited
Follow BlackBuck on LinkedIn | Facebook

On Fri, Mar 30, 2018 at 10:59 PM, +KimNilsson <there.is.no...@gmail.com> wrote:
Looks like a lot of work, Chris.
Why not let GCDS sync from AD automatically?

--
You received this message because you are subscribed to a topic in the Google Groups "GAM for G Suite" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-apps-manager/XBC23QmID8Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-apps-manager+unsub...@googlegroups.com.
To post to this group, send email to google-apps-manager@googlegroups.com.

Chris Harding

unread,
Mar 30, 2018, 2:29:06 PM3/30/18
to GAM for G Suite
The premise here was that the data was in a Google Sheet managed by multiple users, which has nothing to do with AD. For my environment specifically, it would include data that we do not store in AD, to include contacts external to our organization. By allowing the Security department to manage it, we don't have to get second-hand requests for support. Let me present an example:

Jimmy told the Security department that he went Sprint to T-Mobile, and then Security tells Technology that Jimmy is on T-Mobile now. Since Security didn't include in the text of the work order what the old phone number was and what the new number is (assuming it even changed), Technology has to go back and forth with Security who in turn has to go back and forth with Jimmy to get all the relevant information. If instead when Jimmy tells Security that he got a new phone, Security can open up a Google Sheet where all they have to put in is the phone number (in phone number form), and the cell phone carrier. From that Google Sheet, the rest of the process would be automated, where the Google Sheet gets downloaded, the phone number and carrier information gets turned into a Email-to-SMS gateway address, and synchronized (old contact removed and new contact added) within an hour of the change on the sheet. The Technology department only had to be involved in setting up the sheet.

By the way, the above example is exactly our use case, and the automation script has been created. It relies on a "metadata management" Google Sheet that knows where the other Google Sheets are, the name and email address of the groups influenced by each sheet, and the purpose and department responsible for the specific sheet. It also relies on each other sheet having four specific columns: person's name (just for logical organization), email address, phone number, and cell phone carrier. We have pre-configured it with the gateway translations for AT&T, Google Fi, Sprint, T-Mobile, and Verizon, but any additional carrier can be included. Since it doesn't rely on AD at all, it can be extended for including persons external to our organization, it's easy to troubleshoot, and it's non-technical enough that anyone who can use a spreadsheet can use without having to look up "how to email a phone number".

By the way, like the synchronization of AD groups to Google groups, I have now built a PowerShell script for accomplishing this ( I was inspired by the premise presented, and identified a use case in our organziation where it would be extremely useful), and will provide it on Monday when I'm back in the office. It can create groups that didn't exist, can loop through multiple sheets, and is easy to update for new carriers as only a single line of code has to be added.

✉ Kevin Melillo

unread,
Mar 30, 2018, 2:44:18 PM3/30/18
to google-ap...@googlegroups.com
Google sheets and Apps Script can do what is needed.  You just have to make sure to have column 5 labeled changes.

When anything is modified in colums 1 through 4, it will place an X in column 5.
When the update process is done, it will only change records that contain the X in column 5, and when the change occurs, remove the X.

You would need a GUI which would allow you to manually process changes.
You would need a function to push the changes to Google

You could then set up a trigger (Script Editor \ Edit \ Current Project Triggers) to kick it off at a certain time or interval.

Not easy, but possible.

--
You received this message because you are subscribed to the Google Groups "GAM for G Suite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-manager+unsub...@googlegroups.com.
To post to this group, send email to google-apps-manager@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Kevin Melillo
Electronic Communications Analyst
Information Technology
445 Hoes Lane
Piscataway, NJ 08854

Phone:732-465-6609 | Mobile: 732-609-4331

Glenn Allan

unread,
Apr 19, 2020, 6:51:11 AM4/19/20
to GAM for G Suite
Did you ever get this working via Apps Script?
I have a similar need now 

A J Uddin

unread,
Nov 30, 2020, 7:13:53 AM11/30/20
to GAM for Google Workspace
Hi All, It is not working Advanced GAM

GAMADV-XTD3 5.12.00

I am getting below error, is this a syntax issue or not supported in XTD3?

gam user xxx get drivefile >>>id<<< 1mjZzeyRFI_0fE1CI2u7MNCaTdXBkUuGXY9000hoi-Mo format csv targetfile /home/user/

ERROR: Invalid choice (id): Expected <accept|add|append|archive|cancel|check|claim|clear|collect|copy|create|dedup|delegate|delete|deprovision|draft|draftemail|empty|filter|forward|get|hide|imap|import|importemail|info|insert|insertemail|label|language|list|modify|move|pop|print|printers|printjobs|profile|purge|register|remove|sendas|sendemail|show|signature|signout|spam|suspend|sync|transfer|trash|turnoff2sv|undelete|unhide|unsuspend|untrash|update|vacation|watch|wipe>

Help: Syntax in file /home/ec2-user/bin/gamadv-xtd3/GamCommands.txt

Help: Documentation is at https://github.com/taers232c/GAMADV-XTD3/wiki

Ross Scroggs

unread,
Nov 30, 2020, 11:15:50 AM11/30/20
to google-ap...@googlegroups.com
A J,

I'm not sure what this has to do the subject; please start a new thread when you have a new question.

The command works; targetfile should be targetfolder but that's not the problem with your command.

$ ./gam version
GAMADV-XTD3 5.12.00 - https://github.com/taers232c/GAMADV-XTD3 - pyinstaller
Ross Scroggs <ross.s...@gmail.com>
Python 3.8.5 64-bit final
google-api-python-client 1.9.3
httplib2 0.18.1
MacOS Yosemite 10.10.5 x86_64
Path: /Users/Ross/Downloads/gamadv-xtd3
$ ./gam user testsimple get drivefile id xxxRPepDstVfGmF9L3duhT08o7noOXzzz format csv targetfolder ~/Downloads
User: tests...@domain.com, Download 1 Drive File
  User: tests...@domain.com, Drive File: local.xlsx, Downloaded to: /Users/Ross/Downloads/local.csv, Size: 27kb

I tried to reconstruct your error but can't, please privately send me your unedited command so I can figure out what's going on.

Ross

--
You received this message because you are subscribed to the Google Groups "GAM for Google Workspace" group.

To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-man...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages