Skip to main content
Post Granola summaries to Salesforce: Events on the Activity timeline, rich-text Notes, and a Granola Meeting custom object, all linked to the Contacts, Accounts, and Opportunities you met with. Salesforce sharing is only available in Granola on macOS and Windows. If you take notes on iPhone, open Granola on your computer after setup to share those notes to Salesforce.
Salesforce is set up once for your workspace. After that, each member connects their own Salesforce account. Manual shares use your account, and notes that sync from folders and Spaces are sent using the account of the member who owns the note.

Requirements

  • A Granola Enterprise plan.
  • The latest version of Granola on macOS or Windows.
  • A Salesforce admin to install Granola’s managed package. Granola guides you through this during setup, whether you’re the admin or need to hand it to one.

For Salesforce admins: install the Granola package

If a teammate sent you a setup link, open it and follow the steps. It needs no Granola account.To install the package directly, or to update it, use the links below. Installing or updating needs a Salesforce admin role and only needs doing once per Salesforce org.Choose the environment to install into:

Install in Production

Installs the latest Granola package via login.salesforce.com.

Install in Sandbox

Installs the latest Granola package via test.salesforce.com.
Salesforce will ask you to sign in, then walk you through the package installation. Install for All Users is the recommended option. The links always point at the newest package version, so installing over an existing one upgrades it in place.After installing, assign the Granola Meeting Access permission set to the people who’ll use the integration. Then let your teammate know: they finish the setup by connecting their own account in Granola.

Set up Salesforce for your workspace

The first member to connect sets Salesforce up for the whole workspace. You don’t need to be a Granola admin, but the Salesforce side needs a Salesforce admin, either you or someone you send a setup link to.
1

Open Salesforce in Granola's settings

Click your workspace name in the bottom-left corner, then select Settings. Find Salesforce under Settings → Connectors and click Connect Salesforce.Salesforce in the integrations list
2

Follow the setup steps

Granola asks for your Salesforce URL, then either guides you through the Salesforce admin steps or gives you a setup link to send to your Salesforce admin. When the admin side is done, Granola lets you know.Choosing whether you are a Salesforce admin
3

Connect your account

Sign in to Salesforce with your own user when Granola prompts you. This completes the setup, and other members can now connect with a single sign-in.
4

Choose what gets sent

Pick what Granola creates in Salesforce for each shared meeting: Events, Notes, and Custom objects. At least one must be on. See Configuration below.

Connect your account

Once the workspace is set up, each member connects their own Salesforce account from Settings → Connectors → Salesforce. Connecting your individual account is necessary for context to be shared to Salesforce, but any notes added to folders with the Salesforce integration configured will be backfilled to Salesforce once the owner’s account is connected. Granola prompts members who haven’t connected yet. Members whose Granola email matches a user in the workspace’s Salesforce org see a prompt on the home screen, and members with notes that aren’t reaching Salesforce are prompted from within those notes and folders. The prompts disappear once you connect. Prompt to connect your own Salesforce account Admins can view which workspace members have and haven’t connected their Salesforce accounts by navigating to the Salesforce connector settings page and viewing “Connection status” analytics. Connection status analytics listing connected and not connected workspace members

Configuration

All settings live in Settings → Connectors → Salesforce in Granola. Your own connection sits at the top. The workspace settings below it apply to every note the workspace sends and can be changed by workspace admins and by the person who set Salesforce up. Salesforce workspace settings Three top-level toggles control what Granola creates in Salesforce for each pushed meeting. Each can be enabled independently; the Events toggle reveals two sub-settings when on.
When enabled, Granola adds an entry to the Salesforce Activity timeline for each pushed meeting. Two sub-settings appear when this is on:Event creation
  • Always create new event (default): Granola POSTs a new Event for every pushed meeting.
  • Match existing event, then fall back to create: Granola first looks for an existing Event with the same meeting title and start time. If there are multiple possible matches, Granola uses Salesforce ownership to narrow the match. If it can’t find exactly one match, Granola creates a new Event. Use this alongside Einstein Activity Capture (EAC) so Granola doesn’t duplicate the Activity EAC already synced.
Event description body (only applies when Granola is creating a new Event; matched Events are never edited)
  • Granola meeting summary (default): uses Granola’s AI-generated plain-text meeting summary, with a backlink to the Granola note appended at the bottom.
  • Calendar event description: uses the description text from the original calendar invite, again with a Granola backlink appended. If the meeting has no calendar event or the calendar description is empty, Granola leaves the Event Description blank (apart from the backlink). It doesn’t silently substitute the meeting summary, since you’ve explicitly opted into the calendar invite text.
When Notes is enabled in Granola, Granola creates a Salesforce ContentNote containing the rich-text version of the meeting summary. It links that Note to every matched Contact, Account, Opportunity, and (if Events is also on) the Event.Useful when you want the full styled summary visible from any related record’s Notes tab.
If Notes is off in Granola, no Salesforce Note is created. If Notes is on but Salesforce rejects the Note, any other enabled outputs, such as Events or Custom objects, can still succeed.
Salesforce Notes settings
Salesforce Custom ObjectWhen enabled, Granola creates a record on the Granola Meeting custom object (granola__Meeting__c) for each pushed meeting, with structured fields and lookups to related records.Before enabling: assign the Granola Meeting Access permission setThe package ships with a permission set called Granola Meeting Access that grants permission to create Granola Meeting records and their junctions. Assign it to every Salesforce user whose Granola connection will create these records:In Salesforce: Setup → Permission Sets → Granola Meeting Access → Manage Assignments → Add Assignment → pick the user.What gets createdA Granola Meeting record with:
  • Name: the meeting title
  • Granola Note ID: the Granola public note ID (used as the External ID for upserts, so re-pushing a meeting updates the same record)
  • Granola Note URL: a link back to the note in Granola
  • Notes: rich-text version of the meeting summary
  • Meeting Start / Meeting End: the meeting’s time window
Plus junction records (one per association) on three additional objects: Granola Meeting Account, Granola Meeting Opportunity, Granola Meeting Contact. These create the many-to-many links between a meeting and all its associated Salesforce records.Interaction with the Events toggleWhen both Events and Custom objects are on, the Salesforce Event’s WhatId points at the Granola Meeting record instead of an Opportunity or Account. This anchors the Event under the Meeting’s Activity History related list, giving you a single record where all meeting-related context (notes, activities, attendees, deals) is centralized.Surfacing meetings on standard recordsTo see Granola Meeting links on Account, Opportunity, or Contact pages, admins add the “Granola Meeting Links” related list to those page layouts:
  1. Setup → Object Manager → Account (or Opportunity / Contact) → Page Layouts → click the active layout.
  2. From the panel at the top, click Related Lists.
  3. Drag Granola Meeting Links into the related lists section.
  4. (Recommended) Click the wrench icon on the related list, add the Meeting field as a column so users can click straight through to the Granola Meeting record.
  5. Save.
Repeat for each standard object you want Granola Meetings to appear on.
If you turn off all three toggles, meeting shares will be blocked, because there’d be nothing to send. Re-enable at least one toggle to resume sharing.
Disconnecting your own account only affects your notes. Disconnecting Salesforce for the whole workspace, in the Danger zone, turns it off for everyone until someone sets it up again.

Sharing notes to Salesforce

When you share a meeting to Salesforce, Granola creates whichever records are enabled on the connection being used: an Event in the Activity timeline (if Events is on), a rich-text Note (if Notes is on), and/or a Granola Meeting custom object record (if Custom objects is on). Each links to the relevant Contacts, Accounts, and Opportunities based on matched attendees. See How Granola matches Salesforce records below.
Once you’ve connected your own Salesforce account, share any note by clicking Save to Salesforce in the note’s share menu.Manual shares search and write through your connection, using your Salesforce permissions and the workspace settings in Settings → Connectors → Salesforce.If another workspace member already saved the note and a Salesforce link is available, the menu shows Open in Salesforce instead. You can follow that link without connecting Salesforce in Granola, although your Salesforce permissions still determine whether you can view the record.
You can set up Granola to automatically save notes added to a Granola folder or Space to Salesforce.In the folder or Space header, click Integrations, open Salesforce, and turn on Auto-sync to Salesforce. Any member with a Salesforce connection can turn it on or off.Salesforce folder integration settingsEach note is sent using its owner’s Salesforce account. If the owner hasn’t connected yet, Granola prompts them, and syncs their notes once they do.
Example: Taylor enables Salesforce on a shared folder, then Alex adds a note.
  • Granola sends Alex’s note using Alex’s Salesforce account and permissions.
  • If Alex hasn’t connected, the note waits. Alex is prompted to connect, and the note syncs once they do.
  • If Taylor disconnects, the folder keeps syncing for everyone else.
If a folder is inheriting Salesforce from its Space, Granola shows that Salesforce is Enabled in [Space]. Inherited settings are read-only from the folder.Inheritance works like this:
  • Folder-level integrations apply only to that folder. They do not carry down to subfolders.
  • Space-level integrations apply to every folder in that Space.
  • If a folder has its own Salesforce integration and its Space also has Salesforce enabled, the folder’s own Salesforce settings take priority.
  • Rare edge case: if a folder has one integration and the Space has a different integration, both can run.
Auto-sync only applies to notes added after you enable Salesforce on the folder or Space. Notes that were already there aren’t synced retroactively. Share them individually to get them into Salesforce.

How Granola matches Salesforce records

Before searching, Granola filters the meeting attendees down to external contacts:
  • The Granola user associated with the share is excluded.
  • Any attendee whose email domain matches that user’s email domain is excluded. This stops Granola from accidentally matching their own company in Salesforce and pulling in every Account, Contact, and Opportunity tied to it.
  • This domain filter is skipped if that user is on a generic email domain (e.g. @gmail.com, @outlook.com), where domain doesn’t reliably indicate “my company”.
Granola then searches your workspace’s Salesforce org using the account of the member who owns the note.
  • Contacts: matched by attendee email against the Contact’s Email field.
  • Accounts: matched by attendee email domain against the Account’s Website field.
  • Opportunities: matched as open Opportunities (where IsClosed = false) belonging to any of the Accounts found above. This includes both Accounts matched directly by domain and the Accounts that matched Contacts belong to (via the Contact’s AccountId).
A Salesforce Event can only carry one related-to record (WhatId) and one named-to record (WhoId). When Granola is creating a new Event:
  • Related To (WhatId): if Custom objects is also on, this points at the Granola Meeting record itself. Otherwise, it’s the most recently created or updated open Opportunity from the matches; if no Opportunity matches, Granola falls back to the first matched Account.
  • Name (WhoId): the first matched Contact.
The ContentNote doesn’t have the Event’s single-link constraint, so Granola links it to:
  • The Event (if Events is also on)
  • Every matched Contact, Account, and Opportunity
The Granola Meeting record gets a junction row for every matched Contact, Account, and Opportunity, with no single-link constraint. Each junction’s Name is composed as {meeting title} [{related record name}], so it reads meaningfully wherever it appears (related lists, search results, reports).
When Event creation is set to Match existing event, Granola tries to reuse an existing Salesforce Event instead of creating a duplicate.
  • Granola first looks for Events with the same meeting title and start time.
  • If more than one Event could match, Granola uses Salesforce ownership as a tiebreaker.
  • If Granola can’t narrow the match to one Event, it creates a new Event instead.
  • Granola doesn’t edit the matched Event’s title, description, time, owner, or attendees. If Custom objects are enabled, it only links the Event to the Granola Meeting record.

Troubleshooting

Granola emails connection owners when their org’s managed package is behind the version Granola targets. Updating uses the same links as installing. See the admin section above. Installing the newest version over the old one upgrades it in place, and requires a Salesforce admin role.
That’s expected. Setup happens once per workspace, and then each member connects their own Salesforce account. Until you connect, notes you own aren’t sent to Salesforce, even from folders that auto-sync.
Salesforce is in Early Access and is being rolled out to Enterprise workspaces gradually. Coming Soon means your workspace hasn’t been enabled yet. Setting up a workspace also needs the latest version of Granola, so update if you’re behind.
A workspace is tied to one Salesforce org. Sign in with a user in that org. To move the workspace to a different org, disconnect Salesforce for the workspace in the Danger zone and set it up again.
Connect your own Salesforce account first. If Granola shows Enabled in [Space], manage the auto-sync from that Space instead.
You need to generate enhanced notes before you can share them. If Granola hasn’t generated your enhanced notes yet, try regenerating them. See AI-enhanced notes.
Each note is sent with its owner’s Salesforce account, so first check that the note’s owner has connected Salesforce in Granola.Granola matches meeting attendees to Salesforce records by email address. If records are created but aren’t linked where you expect, check that the attendees’ email addresses exist as Contacts or that their domains match Account websites in the connected Salesforce org.Workspace admins and the person who set Salesforce up can see the status of the last delivery in Settings → Connectors → Salesforce.
Granola can’t find the granola__Meeting__c object in your org. Either:
  • The managed package isn’t installed → a Salesforce admin needs to install it. See the admin section above.
  • The package is installed but the connected user can’t see it → assign the Granola Meeting Access permission set to that user (Setup → Permission Sets → Granola Meeting Access → Manage Assignments).