← All posts
September 21, 2026·6 min read

How to connect Notion, GitHub, and Gmail to an AI agent's tasks

By Alejandro Rioja

From Account → Connect your apps, link Google Drive, Gmail, Notion, GitHub, Linear, Slack, Fireflies, or Granola, and a connected agent gets four new MCP tools — list_connections, search_context, read_context, and save_context — that let it find and read real context before doing a task, instead of you pasting a spec or a thread into the task's notes yourself. It's read-first by design: an agent can pull a Notion doc or a GitHub issue into its work and write a finished result back to Google Drive, but it can't send your email, post to Slack, or file an issue in anyone's tracker — those aren't things it's able to do at all, not things it's merely told not to do.

Which apps can an agent pull context from?

  • Google Drive — read and write files, scoped to drive.file: files this app created, plus any you've explicitly handed it, never your whole Drive.
  • Gmail — read-only mail search and read. Google classes this scope as restricted, so it only appears once Done's deployment has taken the extra verification step that unlocks it.
  • Notion — read and write pages. Notion's OAuth has no scope parameter at all; what an agent can reach is whatever pages you chose during install, not something Done requests.
  • GitHub — read and write files and issues on repos you grant. The repo scope is all-or-nothing on private repositories — GitHub has no narrower read-only scope for them.
  • Linear — read and write issues. Access tokens last 24 hours; Done refreshes the connection behind the scenes so it doesn't quietly go stale.
  • Slack — read-only search over channel and group history you grant, reusing the same Slack app Done's approval notifications already use.
  • Fireflies — read-only meeting transcripts, via a bearer key you paste from Fireflies' own settings (Fireflies' Pro plan or above).
  • Granola — read-only meeting transcripts, the same way, via a key from Granola's settings (Granola's Business or Enterprise plan).

How does an agent actually use a connected app in a task?

list_connections is the starting point — it shows what's connected, which account each one points at, and exactly which capabilities that connection actually holds, which can be less than the app offers if you narrowed the consent screen on the way in. From there, search_context takes a query and returns hits — a title, a kind (file, note, issue, message, transcript, email), a link, and a ref — never the body. read_context takes that ref and returns the actual text. An agent typically searches for the spec or thread a task references, reads the one hit that matches, and works from that instead of guessing from the task title alone; if it produced something worth keeping, save_context writes it into a Drive connection with files.write, and the agent still reports the result back into the task itself through propose_completion or complete_task, the same as any other run.

What does search_context actually search — is it full text of everything?

No, and the differences matter for what an agent should expect to find. Drive matches file names and contents; GitHub's search covers issues and pull requests only, not code — reading a specific file is a read_context call by its own ref (owner/repo:path), not a search hit; Slack matches messages; Notion matches page titles and text; and Fireflies and Granola match meeting titles only, so something said inside a transcript won't surface unless the meeting itself was named for it. Nothing here is a unified full-text index across every connected app — each provider answers with whatever its own API actually supports.

Can a connected agent send email, post to Slack, or file an issue for me?

No — on purpose. There's no mail-send or message-send capability defined anywhere in the connector layer, so an agent can read your inbox and channels for context but has no path to send from either. save_context is also narrower than the provider list might suggest: it's the only write tool, and today only Google Drive's adapter actually implements writing — so even a GitHub or Notion connection with write access granted can't be written to through save_context yet. An agent proposing to email someone or post an update is describing what a human should do next, not something it can execute here.

Do connected apps work with a workspace-scoped or read-only token?

Only a full, unscoped token can use them. A connection is a personal credential tied to your account, not to any one workspace, so list_connections, search_context, read_context, and save_context are all refused outright for a workspace-scoped or project-scoped MCP token — the same treatment as get_digest and the other account-wide tools that have no per-board subset to narrow to. Your Gmail doesn't have a "this workspace's slice," so rather than half-scope it, Done refuses the whole surface for a narrower token.

Do I need a paid plan to connect an app?

Not on Done's side — there's no plan check anywhere from the Account panel through to search_context or save_context. Two of the eight, Fireflies and Granola, may themselves require a paid tier on their own service before they'll issue you an API key at all, but that's their pricing, not Done's. Which OAuth apps actually show a Connect button in your account depends on whether Done's operator has configured that provider's credentials on this deployment — an app that isn't configured says so plainly rather than offering a button that dead-ends at someone else's error page.

Frequently asked questions

How do I connect Notion, GitHub, or Gmail to my AI agent?

From Account → Connect your apps, click Connect on the app you want (or paste an API key for Fireflies/Granola). Once linked, a connected agent can call list_connections, search_context, and read_context to find and read from it.

What can an AI agent search once it's connected to Notion or GitHub?

Notion search matches page titles and text; GitHub search covers issues and pull requests, not code (read a specific file by ref instead). Neither is a full-text index of everything in the app — each provider's search does only what its own API supports.

Can a connected AI agent send email or post to Slack for me?

No. There's no send capability anywhere in the connector layer — an agent can read your Gmail and Slack for context, never send from either. The one write path, save_context, only writes into Google Drive today.

Do connected apps work with a workspace-scoped or read-only MCP token?

No — connections are a personal credential with no workspace to scope to, so list_connections, search_context, read_context, and save_context are all refused for a workspace-scoped or project-scoped token. Only a full, unscoped token can use them.

Try it yourself

Capture a task, assign it to an AI agent, and stay the one who signs off.