Summary
UserGems Meeting Assistant connects to either Google Calendar or Outlook Calendar, automatically analyzes calendar events, detects and enriches meeting participants, sends a daily email update every morning about the meetings of the day, and adds those contacts to Salesforce under the right Accounts and Opportunities (if one was open when the meeting occurred).
Signup
UserGems Meeting Assistant signup page:
Features
Morning Update
Receive a daily email about who you'll meet today, including their company, title, LinkedIn and how often you and your team met with them.
Enrich Calendar Events
In addition to your Morning Update, UserGems will also display who you’re meeting with directly in Google or Outlook Calendar. You’ll see their names, titles, companies, locations and LinkedIn profiles.
Add Contacts to Salesforce (Admins only)
UserGems adds external meeting participants to Salesforce, assigns them to the right Accounts and adds them to existing Opportunities.
Users can receive the Morning Update by only connecting Gmail Calendar - but the main advantage of adding new and missing Contacts and Opportunity Contacts to Salesforce is achieved when connecting both, Gmail Calendar and Salesforce.
Add Team Members to Meeting Assistant (Admin Only)
As an admin, you can add your team to Meeting Assistant and activate Morning Update and Calendar Enrichment for them.
Google Calendar connection and scopes
UserGems requires:
- Read access to Calendars, in order to find meeting participants and then provide their enriched information via Morning Update or directly to Salesforce. Meeting Participants will enriched with their names, titles, company they work at and linkedin profiles (https://www.googleapis.com/auth/calendar.events)
- Read access to Events access in order to enrich back the meetings in your calendar with that information (https://www.googleapis.com/auth/calendar.readonly)
- Team members can decide whether they want to enrich meeting invites with additional information like the title of the attendees, company information or linkedin profile data. In this case, UserGems also requires Write access to Events, in order to add the participants info to the description of each event (https://www.googleapis.com/auth/calendar.events)
Data Processing and Storage
UserGems collects and stores the least amount of data needed, and encrypts all data using modern, best-in-class encryption mechanisms.
UserGems stores the following information from Google Calendar:
- Title of meeting (this is encoded and deleted 30 days after the meeting happened)
- Meeting date and time
- Meeting participants and their status (e.g. accepted)
This information is stored so it can be sent on a daily basis through the Morning Update email.
The Morning Update displays the meetings of the day, who's participating and whether the person already met those participants in the past.
In order to display information about past meetings that occurred before with the participants, UserGems has to store this information after the meeting happened. It can also be used to send this information to the Salesforce at any point.
If Calendar Enrichment is enabled, UserGems also processes (but doesn't store) the description of the Meeting.
Google Oauth Keys are encrypted in Laravel with an application key and then stored in an encrypted database. The database is encrypted via TDE with AES 256.
UserGems is SOC-2 Type 2 and GDPR compliant.
Also See: Google API Services User Data Policy
Outlook Calendar connection & scopes
The Critical Role of the Admin Token
The admin token is vital for maximizing the functionality of Meeting Assistant. Without this token, the application’s access is restricted to the signed-in user’s data only. This limitation prevents Meeting Assistant from accessing the calendars of colleagues, regardless of whether they are invited to meetings or not. Such a restriction drastically reduces the scope and efficacy of Meeting Assistant, as it cannot comprehensively identify all meeting attendees across your organization.
Setting up the admin token
Prerequisites
- A Microsoft 365 account with admin privileges.
- Access to the Meeting Assistant application.
- An understanding of the required scopes and permissions.
Steps to Obtain and Configure the Microsoft Token
1. Sign in to Meeting Assistant
- Navigate to Meeting Assistant.
- Log in using your user credentials.
2. Obtain the Admin Link
- On the “settings” page in the Team Members section, you will see a notice displaying the admin permissions link
- Copy this link.
3. Share the Link with Microsoft Admin
- Send the copied link to your Microsoft admin. This link allows the admin to approve Meeting Assistant for your organization.
4. Admin Approval Process
- The Microsoft admin clicks the provided link.
- The admin will be prompted to sign in with their Microsoft admin credentials.
- The admin will then approve Meeting Assistant, generating the necessary app token.
5. Token Configuration
- The token generated by the admin will be used for all subsequent requests by Meeting Assistant.
- This token provides the necessary scopes and permissions for the Meeting Assistant to function correctly.
Required Scopes and Permissions
The following scopes are required for Meeting Assistant to access the necessary data and perform its functions:
User.Read
Description: Allows users to sign in to the app and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.
Usage: Used for reading user profiles during sign-in, accessing basic information such as email address and name
Calendars.ReadWrite
Description: Allows the app to create, read, update, and delete events in user calendars.
Usage: Used for syncing calendar events and adding enrichment information to events. This is only utilised when the calendar enrichment setting is enabled.
openid
Description: Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.
Usage: Used during account creation.
Description: Allows the app to read the user's primary email address.
Usage: Used in conjunction with User.Read, openid, and email to create accounts.
offline_access
Description: Allows the app to see and update the data it has access to, even when users are not currently using the app.
Usage: Enables obtaining a refresh token for continued access to user data. I.e. when we make calls to the calendar endpoint to obtain newly created events
User.ReadBasic.All
Description: Allows the app to read a basic set of profile properties of other users in the organization on behalf of the signed-in user.
Usage: Used to get colleagues from Microsoft so users can easily add them to Meeting Assistant.
People.Read
Description: Allows the app to read a ranked list of relevant people of the signed-in user.
Usage: Used to populate a user's colleagues with information.
MailboxSettings.Read
Description: Allows the app to read user's mailbox settings.
Usage: Enables extracting the user’s Microsoft timezone for correct display of information e.g. the correct time and date of calendar events.
Access Levels and Permissions
Meeting Assistant requires these permissions to ensure it can fully integrate with Microsoft services and provide a seamless user experience. The permissions are designed to:
- Access user profiles and basic company information.
- Read, create, update, and delete calendar events.
- Access primary email addresses for account creation.
- Continue accessing data with refresh tokens.
- Read profile properties of other users in the organization.
- Populate relevant colleagues and mailbox settings for time zone data.