> ## Documentation Index
> Fetch the complete documentation index at: https://docs.granola.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoom, Microsoft Teams and Slack huddles setup (Admin Guide)

> Set up Granola's automated chat message for Zoom and Microsoft Teams on macOS or Windows, and Slack huddles on macOS.

<Badge icon="apple">macOS</Badge> <Badge icon="windows">Windows</Badge>

<Info>
  This guide is for **Enterprise** plan admins who want to enforce transparency features for everyone in their workspace. On a **Free** or **Business** plan? See [user guide](/help-center/consent-security-privacy/transparency-solutions/for-individuals) to set it up just for yourself.
</Info>

The automated chat message works in Zoom and Microsoft Teams on macOS and Windows. Slack huddles are supported on macOS only.

## 1. Allow accessibility permission (Mac devices)

There's no need for this on **Windows**.

On **macOS**, this requires Accessibility permission so Granola can send the message in the meeting chat. It can be granted via MDM or individually.

#### Auto-grant via MDM

Accessibility for Granola can be granted on managed devices through MDM. macOS 27 changed how this works, so deploy both configurations below. Each Mac applies the one for its macOS version.

<Tabs>
  <Tab title="macOS 26 and earlier">
    The grant is delivered as a Privacy Preferences Policy Control (PPPC) profile pre-approving Granola (team ID `QZ7DHHLN25`, bundle ID `com.granola.app`) for the Accessibility service, so end users never see the macOS permission prompt. Below is an example `.mobileconfig` you can use directly, or adapt as a starting point.

    <Accordion title="allow-granola-accessibility.mobileconfig">
      ```xml theme={null}
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>PayloadContent</key>
          <array>
              <dict>
                  <key>PayloadDescription</key>
                  <string>Grants Granola the macOS Accessibility permission so it can post automatic consent messages in meeting chats without prompting the user.</string>
                  <key>PayloadDisplayName</key>
                  <string>Privacy Preferences Policy Control</string>
                  <key>PayloadIdentifier</key>
                  <string>ai.granola.allow-granola-accessibility.pppc</string>
                  <key>PayloadOrganization</key>
                  <string>Granola</string>
                  <key>PayloadType</key>
                  <string>com.apple.TCC.configuration-profile-policy</string>
                  <key>PayloadUUID</key>
                  <string>78540A61-F502-4D5A-AD6C-7FB1782239D5</string>
                  <key>PayloadVersion</key>
                  <integer>1</integer>
                  <key>Services</key>
                  <dict>
                      <key>Accessibility</key>
                      <array>
                          <dict>
                              <key>Allowed</key>
                              <integer>1</integer>
                              <key>CodeRequirement</key>
                              <string>identifier "com.granola.app" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = QZ7DHHLN25</string>
                              <key>Comment</key>
                              <string></string>
                              <key>Identifier</key>
                              <string>com.granola.app</string>
                              <key>IdentifierType</key>
                              <string>bundleID</string>
                              <key>StaticCode</key>
                              <integer>0</integer>
                          </dict>
                      </array>
                  </dict>
              </dict>
          </array>
          <key>PayloadDescription</key>
          <string>Grants Granola the macOS Accessibility permission so it can post automatic consent messages in meeting chats without prompting the user.</string>
          <key>PayloadDisplayName</key>
          <string>Allow Granola Accessibility (Automatic Consent Messaging)</string>
          <key>PayloadIdentifier</key>
          <string>ai.granola.allow-granola-accessibility</string>
          <key>PayloadOrganization</key>
          <string>Granola</string>
          <key>PayloadScope</key>
          <string>System</string>
          <key>PayloadType</key>
          <string>Configuration</string>
          <key>PayloadUUID</key>
          <string>914FAE30-385F-4E71-873D-D256A78F333F</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
      </dict>
      </plist>
      ```
    </Accordion>

    PPPC profiles must be delivered by an enrolled MDM (Jamf, Intune, Kandji, Mosyle, Meraki, etc.) — manual installs appear in **System Settings > Profiles** but don't apply the grant.
  </Tab>

  <Tab title="macOS 27 and later">
    On macOS 27+ you must create an **app privacy permission defaults** declaration. The first time a user opens Granola, macOS will show your organization's justification and ask them to grant permission.

    Deploy the declaration below as a custom declaration (Declarative Device Management). In your MDM tool it must be **user scoped**, and the key must include Granola's code-signing requirement exactly as shown, or macOS ignores it. Scope it to Macs on macOS 27 or later.

    <Accordion title="granola-accessibility-permission-defaults.json">
      ```json theme={null}
      {
        "Type": "com.apple.configuration.app.settings",
        "Identifier": "ai.granola.app-settings.privacy",
        "ServerToken": "version-1",
        "Payload": {
          "Privacy": {
            "PermissionDefaults": {
              "com.granola.app {identifier \"com.granola.app\" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = QZ7DHHLN25}": {
                "OrganizationJustification": "Granola uses Accessibility to identify speakers in your meetings and to enable transparency features.",
                "Accessibility": "Allow"
              }
            }
          }
        }
      }
      ```
    </Accordion>

    On **Jamf**, you can build the same declaration in **Blueprints > App Settings > App privacy permission defaults** with bundle ID `com.granola.app`. See Jamf's guide: [Deploying App Privacy Permission Defaults in macOS 27](https://support.jamf.com/en/articles/16923001-deploying-app-privacy-permission-defaults-in-macos-27).
  </Tab>
</Tabs>

To grant Accessibility individually:

1. Open **System Settings > Privacy & Security > Accessibility**.
2. Enable **Granola**.

## 2. Enable the automated chat message for your workspace

1. Click your workspace name in the bottom-left corner, then select **Settings**. Open [**Settings > Workspace > General > Transparency > Automated chat messages for your team**](granola://open-settings?page=workspace/automated-chat-message).
2. Find **Automated chat message in Zoom, Microsoft Teams and Slack huddles** and click **Set up**.
3. Complete the setup, then click **Enable for all workspace users**.

<img src="https://mintcdn.com/granola-c3940166/B_JH1tx140BhqgRd/assets/screenshots/notify-zoom-chat-admin-framed.png?fit=max&auto=format&n=B_JH1tx140BhqgRd&q=85&s=b5167994eb7af991fa6c3a3bc9ce9d8c" alt="The workspace &#x22;Automated chat messages for your team&#x22; settings page with the automated chat message enabled." width="1200" height="858" data-path="assets/screenshots/notify-zoom-chat-admin-framed.png" />

The automated chat message usually appears one to two minutes after the meeting starts, once transcription has started and at least one other person has joined. Meeting chat must be allowed by the meeting host's organization. On Zoom for Windows, the Zoom meeting window must also be in front.

When several people from your workspace are using Granola in the same Zoom or Microsoft Teams meeting, only one message is sent to the chat, with a link to a live page showing who is currently transcribing. If someone joins a few minutes late, Granola sends a reminder in the chat. Reminders are skipped when Zoom is already recording, since Zoom's own banner has told everyone.

Slack huddle messages are available on macOS only and aren't coordinated across workspace members, so more than one message may be posted when several people in the huddle use Granola.

## If a user turns off Accessibility

If a user declines or later turns off access, they can set it up again in Granola:

1. When Granola shows **Additional permissions required**, click **Enable accessibility**.
2. In **System Settings > Privacy & Security**, open **Accessibility**. On macOS 27 this panel may be called **Device Control and Data Access**.
3. Enable **Granola**.

For transparency, Accessibility is only needed on Mac when the Zoom, Microsoft Teams or Slack huddles automated chat message is how you notify participants. [Granola Watermark](/help-center/consent-security-privacy/transparency-solutions/for-enterprise-admins/watermark) uses the Granola camera system extension, not Accessibility, and [Google Meet](/help-center/consent-security-privacy/transparency-solutions/for-enterprise-admins/google-meet) uses the browser extension.

## FAQs

<AccordionGroup>
  <Accordion title="How often is the message sent?">
    In Zoom and Microsoft Teams, the automated chat message is sent **once per meeting**, however many people from your workspace are using Granola. It usually appears one to two minutes after the meeting starts. If someone joins a few minutes late, Granola sends a reminder in the chat, unless Zoom is already recording.

    In Slack huddles, each participant using Granola may post the message because Slack huddle messages aren't coordinated across workspace members.
  </Accordion>

  <Accordion title="Can workspace members turn this off?">
    No. When an admin enables the automated chat message for the workspace, workspace members can't disable it. On macOS it needs Accessibility permission, so a member who hasn't granted it won't send the message.
  </Accordion>

  <Accordion title="Does this work for other video conferencing apps?">
    Yes. Granola can also post the automated chat message in [Google Meet](/help-center/consent-security-privacy/transparency-solutions/for-enterprise-admins/google-meet).
  </Accordion>

  <Accordion title="The message isn't sending right at the start of a meeting">
    The automated chat message is sent once **transcription has started** and **another person has joined**, so it won't appear while you're alone in the meeting. If it still doesn't appear, check:

    * **Zoom on Windows**: the Zoom meeting window must be in front. The message sends when you switch back to it.
    * **Meeting chat is allowed**: if the host's organization has turned off meeting chat, Granola can't post the message.
    * **The chat composer is empty**: if you've already typed something in the meeting chat, Granola won't overwrite it.
  </Accordion>

  <Accordion title="I still need help">
    Contact us at **[hey@granola.so](mailto:hey@granola.so)** and we'll be happy to help.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.