Sync

Sync

Sync keeps the same writing in step across a document, an outline and a Google Doc. It turns one into another, links them as a group, and pushes one side's content out to the others when asked (module sync). It also keeps a list of sync endpoints: documents held at another provider, by their id there.

In the sidebar under Connections → Sync. Needs: Google, Documents, Outlines.

Sync

The Sync page lists endpoints. An endpoint names a document held somewhere else (Google Drive or Notion) by its id at that provider.

  • Each row shows the endpoint's name and its last error, the provider, its state (active or paused) and when it last synced (never until it has).
  • At the top: how many endpoints there are and how many are failing.
  • Add endpoint asks for a name, a provider (Google Drive or Notion) and the External id, the document's id at the other end.
  • Pause stops an endpoint for now, and Resume starts it again. Resuming clears its failure count.

An endpoint records the link and how its syncs went. Nothing on this page fetches content from Drive or Notion on a schedule. The work of keeping writing in step is done by sync groups, which the page does not list. Agents and the API reach them, as described below.

How a sync group works

A group links at most one document, one outline and one Google Doc. Behind them sits one merged copy of the content, which also holds what only one side can show: a table an outline cannot draw, or a task linked to an outline line. A round trip through a side that cannot show something does not lose it.

Rendering…

Nothing moves until somebody asks. A sync names the side that is right, and the others are overwritten with the merge. There is no default side, so nobody's latest edits are overwritten by accident.

What you can do

Turn a document into an outline, or back

Converting makes a new outline from a document, or a new document from an outline, and links the two. The new item goes in the same folder as its source unless another folder, or none, is named. Agents use sync.documentToOutline and sync.outlineToDocument.

Send a document or outline to Google Docs

Exporting makes a Google Doc in the Drive of a Google account you linked yourself in Google, and links it to the group. Exporting the same thing twice returns the link you already have rather than a second Doc. Agents use sync.exportToGoogle and name the account.

Bring a Google Doc in

Importing makes a new document or outline here from a Google Doc, read through your own linked account, and links them both ways. A Doc that is already linked here is refused. Agents use sync.importFromGoogle.

Push one side to the others

  1. Find the group: sync.group says what a document or outline is linked to.
  2. Sync it from the side that is right (document, outline or google) with sync.syncGroup. When a Google Doc is in the group, this writes into Google Drive too.

Stop keeping a group in step

sync.unlinkGroup removes the link and the merged copy. The documents, outlines and Google Docs all stay. What only the merged copy held, such as a table an outline could not show, is gone.

Add, pause or remove an endpoint

  1. Open Connections → Sync and click Add endpoint.
  2. Give it a name, choose the provider and paste the document's id at that provider.
  3. Use Pause or Resume on its row, or remove it. Removing an endpoint never touches the document at the other end.

An endpoint that fails five times in a row is paused. One that started a sync and has not finished after 15 minutes is treated as stale and can be picked up again.

Who can do what

PermissionLabelLets you
sync:readView syncSee endpoints, which ones are due, and what a document or outline is linked to.
sync:writeManage syncAdd, pause, resume and remove endpoints, sync a group from one side, and unlink a group.
sync:convertConvert a document into an outline, and backConvert documents and outlines into each other, export them to Google Docs and import Google Docs.

A sync writes into every member of its group, so it is an edit to each one. The owning module's rules apply as well: you need edit rights on each document and outline involved, including ones shared with you through a team or the whole organisation. Making an outline also needs outlines:write, and making a document needs docs:write. You need to be able to file things in the target folder. The Google side only ever uses a Google account you linked yourself. See People, roles and permissions and Sharing and visibility.

What happens on its own

Nothing in this module runs on a schedule.

Needs

Google, Documents and Outlines.

What agents can do

An agent can convert and link documents, outlines and Google Docs, push a group from one side, and look after endpoints. The Google account is always named, never guessed, and the side to sync from is always named. Reads run straight away. Every change waits for a person's approval by default (Agents and approvals). Exporting, importing and syncing reach Google Drive.

Read only: sync.list, sync.get, sync.due, sync.group

Convert, needs approval: sync.documentToOutline, sync.outlineToDocument, sync.exportToGoogle, sync.importFromGoogle

Change, needs approval: sync.syncGroup, sync.unlinkGroup, sync.createEndpoint, sync.setActive, sync.removeEndpoint

sync.due lists the active endpoints ready for another attempt, allowing for back-off after failures. Over MCP the same tools are named sync__list, sync__syncGroup and so on. See API keys and MCP access.

Sync · maxsuite · MaxDoc