# Administrator Guide

*Audience: Salesforce administrator performing the installation · Applies to: Auto Task via Google Meeting (`ribot`) v1.5*

## 1. About this guide

This guide takes you through installing and configuring the Auto Task via Google Meeting managed package in a Salesforce org. Follow the sections in order. Each builds on the one before, and several steps in Google Cloud and Salesforce depend on values produced earlier.

Before starting, complete the [Pre-Install Checklist](/getting-started/pre-install-checklist.md). This guide assumes the checklist is done: you have admin access on both sides, My Domain is deployed, and the four Google APIs can be enabled.

> **Scope of this install** — This guide configures the package as it ships: Google connection, note processing, the task review dashboard, and creation of standard Salesforce Tasks. Connecting approved items into Milestones PM+ (or any other PM tool) is **not** covered here — it is separate future work. Section 10 explains where that boundary sits.

### 1.1 The namespace prefix

Every component this package adds to your org carries the namespace prefix `ribot`. You will see it on object names, the Visualforce callback page (`ribot__GoogleOAuthCallback`), and the custom metadata type (`ribot__Google_Token__mdt`). When this guide refers to a packaged component, the prefix is part of its real API name even where the label shown in the interface omits it.

## 2. What the package installs

Knowing the moving parts makes the configuration steps easier to follow. The package adds the following to your org:

### Custom objects

| Object                | Purpose                                                                                                                                                               |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Meeting Configuration | One record per meeting the package knows about. Holds the Google meeting identifier, attendees, organizer, timing, and whether the meeting is active for note-taking. |
| Meeting Note          | A Gemini note retrieved for a meeting. Child of Meeting Configuration.                                                                                                |
| Meeting Task          | An action item extracted from a note, with its suggested owner and status. This is what appears on the review dashboard.                                              |
| Meeting Log           | Processing and error records, used for troubleshooting.                                                                                                               |

### Other components

* A Lightning application, Auto Task via Google Meeting, containing the working tabs and the review dashboard.
* Two Lightning pages: the Meeting Selection & Configuration screen and the Meeting Task Selection Dashboard.
* A custom metadata type, Google Token, holding the Google credentials and assignment configuration.
* Apex services for Google authentication, Calendar access, and Gemini note retrieval, plus the scheduler and queueable classes that drive processing.
* Two permission sets — one for administrators of the feature, one for standard users.
* Remote site settings that permit the org to call Google's endpoints.

## 3. Step one — install the managed package

1. Log in to the target Salesforce org as a System Administrator.
2. Open the install link for Auto Task via Google Meeting, version 1.5.
3. When prompted for who should have access, choose **Install for Admins Only**. You will assign access deliberately through permission sets later; this keeps the rollout controlled.
4. Approve any third-party access prompts shown — these correspond to the Google endpoints the package needs to reach.
5. Wait for Salesforce to confirm the install is complete. A large managed package can take a few minutes; if Salesforce reports it will email you, wait for that email before continuing.
6. Confirm the install: go to **Setup → Installed Packages** and verify Auto Task via Google Meeting appears with version 1.5.

> **If install fails** — The most common cause is a missing dependency or an edition limitation. Read the failure detail Salesforce provides, resolve the specific item named, and re-run the install. Do not proceed to configuration until Installed Packages shows the package present.

## 4. Step two — set up Google Cloud Console

This step produces the Client ID and Client Secret that let the package authenticate to Google. It is performed in Google Cloud Console and may require the Google Workspace administrator.

### 4.1 Create or select a Google Cloud project

1. Go to `console.cloud.google.com` and sign in with the Google Workspace administrator account.
2. In the top bar, click the project selector, then **New Project** (or select an existing project designated for this use).
3. Give the project a clear name, set the organization if prompted, and click **Create**.

### 4.2 Enable the required APIs

1. With the project selected, go to **APIs & Services → Library**.
2. Search for and enable each of these, one at a time: Google Calendar API, Google Drive API, Gmail API, Google Docs API.

> **All four are required** — If any of the four APIs is left disabled, processing will fail — sometimes silently, sometimes partway through a run. Confirm all four show as enabled before moving on.

### 4.3 Configure the OAuth consent screen

1. Go to **APIs & Services → OAuth consent screen**.
2. Choose **Internal** if only your own Workspace users will use the feature — this is the simpler, recommended choice. Choose **External** only if you have a reason to.
3. Fill in the required fields: an application name, a user support email, and a developer contact email. Save and continue through the remaining prompts.

### 4.4 Create the OAuth Client ID

1. Go to **APIs & Services → Credentials**.
2. Click **Create Credentials → OAuth client ID**.
3. For application type, select **Web application**.
4. Under Authorized redirect URIs, add your redirect URI. It is your Salesforce org domain followed by `/apex/ribot__GoogleOAuthCallback`.

> **The redirect URI must match exactly** — The value entered in Google must match the package's Apex callback URL **character for character** — including `https`, the exact org domain, and the path `/apex/ribot__GoogleOAuthCallback`. A trailing slash, a wrong domain, or a typo will cause authentication to fail with a redirect-mismatch error. Copy it, do not retype it.

5. Click **Create**. Google displays the Client ID and Client Secret. Copy both now, or use **Download JSON**. Treat the Client Secret as a credential — store it securely.

*For additional Google-side detail, Google's own documentation at `developers.google.com/workspace/guides/create-credentials` is a useful reference.*

## 5. Step three — configure Salesforce metadata

Now you give Salesforce the Google credentials. This is done by creating a record in the packaged custom metadata type Google Token.

1. In Salesforce, go to **Setup → Custom Metadata Types**.
2. Find Google Token (API name `ribot__Google_Token__mdt`) and click **Manage Records**.
3. Click **New** to create a record.
4. Enter the Client ID and Client Secret you obtained from Google Cloud.
5. Set the Assign Object and Assign Field values. For a standard rollout these direct the package to resolve task assignment against the User object. Use the values confirmed in the pre-install checklist.
6. Review the Number of Days value if present — it governs how far back meeting processing reaches. Set it to a sensible window for the pilot.
7. Save the record.

> **Why custom metadata** — Custom metadata records are configuration, not data. Keeping the Google credentials here means they are managed through Setup and are clearly separated from the meeting and task records the package creates day to day.

## 6. Step four — assign permission sets

The package includes two permission sets. Assign them according to each user's role. A user must have one of these to use the feature at all.

| Permission set           | Grants                                                                                                                 | Assign to                                                                                 |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Meeting Permission       | Access to the Task and Meeting dashboard, showing only the user's own meetings and related tasks.                      | Standard users — anyone who will include their meetings or review their own tasks.        |
| Meeting Admin Permission | Access to the Meeting object tabs across all users' data, plus dashboard permissions to view tasks by different users. | Administrators of the feature — those who oversee all meetings and the full review queue. |

To assign: **Setup → Permission Sets → select the permission set → Manage Assignments → Add Assignment → choose users → Assign.**

> **Start narrow** — For the pilot, assign Meeting Permission only to the pilot users and Meeting Admin Permission only to the one or two people who will own the review queue. Widening access later is easy; narrowing it after a confusing wide rollout is not.

## 7. Step five — schedule the processing job

Note retrieval and task extraction run on a scheduled Apex job. Until this is scheduled, the package will not process meetings on its own.

1. Go to **Setup → Apex Classes**.
2. Click **Schedule Apex**.
3. Give the scheduled job a recognizable name, for example "Auto Task — Meeting Notes Processing".
4. For the Apex class, choose the package's scheduler class, `MeetingNotesScheduler`.
5. Set the frequency and time. Daily, outside working hours, is a sensible starting point for a pilot; you can move to more frequent runs once the review habit is established.
6. Save.

> **Avoid overlapping runs** — Do not schedule the job so frequently that one run can still be processing when the next begins. Overlapping runs can lead to the same note being processed twice and duplicate Meeting Tasks appearing. A daily or hourly cadence is safe; sub-hourly is rarely needed and increases this risk.

## 8. Step six — authenticate to Google and verify

With configuration in place, connect a user to Google and confirm the end-to-end flow works.

### 8.1 Connect to Google

1. Open the Auto Task via Google Meeting app from the App Launcher.
2. Go to the Meeting Selection & Configuration tab.
3. Use the Google authentication option. You will be redirected to Google to sign in and grant the requested access.
4. Approve the access. On success you are returned to Salesforce with a confirmation message.

### 8.2 Verify with a real meeting

1. On the Meeting Selection & Configuration screen, you should see recurring and past meetings for the connected account. Activate one meeting that you know has Gemini notes — a recent recurring meeting is ideal.
2. Either wait for the scheduled job to run, or run processing manually if you are doing an immediate test.
3. Open the Meeting Task Selection Dashboard. The activated meeting should appear as a group with its extracted action items listed beneath it.
4. Confirm each item shows task text, a date, and a suggested owner, with Approve and Reject controls.
5. Approve one item as a test. Confirm a standard Salesforce Task is created and assigned to the expected user.

> **If nothing appears** — Check, in order: that the meeting actually has Gemini notes in Google; that all four Google APIs are enabled; that the scheduled job has run; and the Meeting Log object for error records. Section 9 covers troubleshooting in more depth.

## 9. Operating notes and troubleshooting

Configuration is a one-time task. These points concern keeping the package healthy in normal use.

### Google token expiry

The Google connection uses access and refresh tokens stored against the user. Tokens can expire or be revoked — for example, if the user changes their Google password or an administrator resets access. When that happens, processing for that user stops. The fix is to have the user re-authenticate from the Meeting Selection & Configuration tab. It is worth checking the Meeting Log periodically for authentication errors rather than waiting for someone to notice missing tasks.

### The Meeting Log is your first diagnostic

When something does not work, open the Meeting Log object before anything else. It records processing activity and error detail. Most issues — a disabled API, an expired token, a note the package could not read — surface here with enough detail to act on.

### Duplicate tasks

If the same action item appears more than once, the usual cause is the same note being processed twice — from overlapping scheduled runs, or a manual run alongside the scheduled one. Keep to a single, sensibly spaced schedule, and avoid manual runs while the scheduled job may be active.

### Time zones

Meeting times and extracted due dates are interpreted in the context of the org and user settings. If dates on created tasks look off by a day, check the user's and org's time zone settings before assuming an extraction error.

| Symptom                               | Likely cause                                             | Where to act                                         |
| ------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------- |
| No meetings show after authenticating | Authentication did not complete, or no meetings in range | Re-authenticate; check Number of Days metadata value |
| Meetings show but no tasks extracted  | Meeting has no Gemini notes, or an API is disabled       | Confirm notes exist in Google; check all four APIs   |
| Processing stopped for one user       | Google token expired or revoked                          | Have that user re-authenticate                       |
| Duplicate tasks appearing             | Same note processed twice                                | Review schedule; avoid overlapping or manual runs    |
| Redirect-mismatch error on sign-in    | OAuth redirect URI does not match                        | Correct the URI in Google Cloud to match exactly     |

## 10. The project-management (PM+) boundary

This section exists to be explicit about something that is easy to assume incorrectly.

Some orgs have Milestones PM+ installed, and it is reasonable to expect that approved meeting action items would flow into PM+ as project tasks. They do not — not with this package as installed.

> **What this package does and does not do with PM+** — This package creates **standard Salesforce Tasks** for approved items. It does not create PM+ tasks, and it does not associate approved items with a PM+ project or milestone.

Connecting the two is genuine additional work, for a specific reason. A PM+ task must belong to a milestone, and a milestone belongs to a project. Nothing in this package captures which project or milestone a meeting's action items belong to — so there is no value for a PM+ task to be created against. Supplying that link, and building the logic that creates PM+ records from approved items, is a separate engagement.

When that work is scoped, expect it to involve: a way to record the project (and likely milestone) association for a meeting or its tasks; and a process — a Flow, or a companion package — that reads approved items and creates the corresponding PM+ records. That work is deliberately kept separate from this install so that the package remains useful to organizations that do not use PM+ at all, or that use a different project tool.

> **For now** — Treat standard Salesforce Tasks as the deliverable of this package. They are real, assigned, reportable Salesforce records and are valuable on their own. PM+ integration is the next chapter, not a missing piece of this one.

## 11. Post-install summary

When the install is complete, the following are all true. Use this as a final confirmation.

* The managed package version 1.5 appears under Installed Packages.
* A Google Cloud project exists with the four required APIs enabled and an OAuth client configured.
* A Google Token custom metadata record holds the Client ID, Client Secret, and assignment configuration.
* Permission sets are assigned — Meeting Admin Permission to queue owners, Meeting Permission to pilot users.
* The `MeetingNotesScheduler` job is scheduled at a sensible, non-overlapping cadence.
* A test user has authenticated to Google and at least one meeting has been activated.
* A test action item has been approved and confirmed to create a standard Salesforce Task.
* The customer understands that PM+ integration is separate future work.

With these confirmed, hand the [End-User Guide](https://github.com/stevekompolt/realintelligence-docs/blob/main/using/end-user-guide.md) to the pilot group and begin the pilot.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realintelligence.com/getting-started/administrator-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
