Setting Up the Google Directory Integration

Please follow these steps carefully, in order to establish your Google Directory Integration with Greetly.

Step 1: Create a project

Note: You may choose to use an existing Google cloud project for this setup process. In that case, some steps may look different for you. If you’re having trouble setting up the integration, you should create a new Google Cloud Platform and try again


Open the Google Cloud Platform dashboard for your organization (https://console.cloud.google.com/home/). Select the menu circled in red.



Then select “new project” in the resulting window.




Next, select a name for the project. The name is up to you. I use ‘Greetly User Sync Demo’ in this example.


Step 2: Activate Admin SDK API

Type “admin SDK api” into the search bar at the top of the page. Then select the Admin SDK API result


Enable the API. This may take a moment. 


Note: If the API is already enabled, the button circled in red will say “manage” instead of “enable”. In that case, click the “manage” button, and move on to the next step. 




Step 3: Create the service account


Upon enabling the API, or upon clicking the “manage” button, you should end up on the “Enabled APIs & services” page. From here, click the “credentials” button (circled in green). 


Note: If you aren’t automatically redirected to the “Enabled APIs & services” page in the previous step, you can instead search “credentials” in the search bar, and navigate to the credentials page directly (circled in red). 


On the credentials page, click the “create credentials” button




Then select “Service account” 




The name of the service account is up to you. I chose “Greetly sync demo service account” for this example. Once you fill it in, press the “done” button circled in red. 


After clicking the “done” button in the previous step, you should be automatically returned to the credentials page. 


Note: If you aren’t automatically redirected to the “credentials” page in the previous step, you can instead search “credentials” in the search bar, and navigate to the credentials page directly (circled in red). 



Select the service account you just created. Note: If you are using an existing account, your page may look different. Be sure to select the right service account.






When you open the service account page, you’ll see a similar page. Expand the advanced settings dropdown, and copy the client ID to a notepad or something similar. You’ll need it later. 




On this same page, click the “keys” tab.



Click “add key”, then “create new key”




By default the key type is set to “JSON”. Make sure it’s set to JSON, then click “create”.

On creation, the private key should automatically save itself to your PC as a .json file. Take note of its location, you’ll need it in a later step.


Step 4: Configure domain-wide delegation for the service account


Open at Google admin console (https://admin.google.com/), and sign in with the account used for configuring the Google Cloud project. 


In the search bar, type in “API controls”, and select the option highlighted in red.

Then, click “manage domain wide delegation”. You may have to scroll down to see the option.


NOTE: You may not have the permissions needed to see the “manage domain wide delegation” button. If that is the case, please contact the Google Cloud super-admin for your organization and have them complete step four with you. 



From here, click “Add new” (highlighted in red). In the client ID field, insert the client ID from earlier. 



Insert the following three fields into the field “Oauth scopes (comma-delimited)”


https://www.googleapis.com/auth/admin.directory.user.readonly


https://www.googleapis.com/auth/admin.directory.group.readonly


https://www.googleapis.com/auth/admin.directory.orgunit.readonly


The final result should look something like this (your client ID will be different from mine). Click authorize.



Step 5: Set up integration in Greetly


Navigate to the Greetly homepage (https://app.greetly.com). Go to app settings


Then to location settings


Finally, select the location integrations sub-menu


First, click “enable Google Directory Integration”. Then, fill in the fields with the appropriate information.

  • Open the JSON file you downloaded earlier in your text editor of choice. Copy+paste the entire JSON file into the “Google Directory Service Account json data” field.
  • Copy and paste the email address of the account used to set up the directory integration into the “Google Directory admin email”. If you needed the super-admins help to complete step four, insert their email address instead.
  • Insert “user, group” into the “Google Directory scopes” text field.

If you need to sync all users, you may leave the “Google directory groups” field blank.


If you need to only sync users in selected groups, skip to the “Sync groups” section. If you need to only sync users in selected organizational units, skip to the “Sync organization units” section.


Note: You may also sync both groups and organizational units. To do that, fill in both the directory groups field and organizational units information with the appropriate information, following the steps from both the “Sync groups” and “Sync organizational units” sections.


Sync groups

If you need to only sync users in selected groups, open the Google Admin page (https://admin.google.com/), and navigate to the groups page.




For each group that will be synced, open its management page, and copy+paste its URL into a text editor.





In my example, the URL is https://admin.google.com/ac/groups/01rvwp1q2nxtxej. Take the text after groups/, and insert it into the “Google Directory Groups” field in the Greetly webadmin. In my example, the text that you should paste in is 01rvwp1q2nxtxej. If you have multiple groups to sync, simply separate the IDs with commas.




Sync organizational units


If you only need to sync users in certain organizational units, open the Google Admin page (https://admin.google.com/), and navigate to the organizational units page.




Choose the organizational units that you’d like to sync. In my example, I’ll choose to sync “Greetly test”



To sync “Greetly test” with Greetly, navigate back to the integration settings panel. Add a “/” to the start of the organizational unit name, and paste it into the text field. In this case, the result is “/Greetly test”. If you would like to sync multiple organizational units, separate the organizational unit names with a comma. For example, “/Greetly test 1,/Greetly test 2”.



If your configuration page looks something like this, you’re ready to sync! Don’t forget to click save before moving onto the next step.


Note: It’s OK if the “Google Directory groups” and the “Google directory organization units” fields are blank, it just means you’ll be syncing all users in the directory. 


From here, navigate to the “Manage users” page in Greetly.




If you filled in the location's integration page correctly, you should see a “Sync from Google Directory” button. Press it to begin the sync process. It should complete within a few minutes.


Troubleshooting

Your sync may fail for several reasons. For larger directories the sync may take a few minutes- be patient. 


If users don’t appear in the directory after a few minutes, something is wrong. First, view your logs. They’re near the bottom of the location settings page. 


You may see the following messages:


“Google Directory users import completed. Added 0 users. At [time in UTC]”


In this case, your groups or organizational units may not contain any users


“Google Directory users import completed with error: undefined method `[]' for nil:NilClass at  [time in UTC]” 


In this case, you may have inputted an invalid group ID.

Note: invalid organizational units will NOT trigger such an error