Exploring Zotero integration for Word Online (Word on the web)

Hi all,

I've been exploring what it would take to bring Zotero citation support to Word on the web (Word Online), since as far as I can tell there's currently no integration there — only Word desktop is supported. This matters especially for Linux users, who don't have a desktop Word option at all.

Before investing much further, I wanted to check in here in case this has already been discussed, attempted, or ruled out for reasons that aren't obvious from the outside.

What I've found so far, technically:

- An Office Add-in (task pane, using the Word JavaScript API) can manage citation fields using `ContentControl` objects — they have a persistent numeric `id` and a `tag` string that can hold the hidden field code, which seems to map reasonably well to the field model described in the HTTP Citing Protocol docs.
- The Add-in's task pane can't talk to the local connector server directly (CORS is intentionally not supported there, which I confirmed both in the docs and by testing against `127.0.0.1:23119`), so it needs a browser extension bridge — the same architecture used for the Google Docs integration, where the actual HTTP calls happen from the extension's background script.
- I forked `zotero-connectors` and added a new editor integration module (mirroring the structure of `zotero-google-docs-integration`), extended the host check in `connectorIntegration.js`, and got a working message bridge between the Office Add-in task pane and the extension's content script (confirmed against Word Online's actual top-level frame domain, `*.cloud.microsoft`, which isn't documented anywhere I could find).
- This is all still a skeleton — the actual `Document.*`/`Field.*` methods aren't implemented yet, just the plumbing to confirm the pieces can talk to each other.

Questions for the team/community:

1. Has Word Online support been discussed or attempted before? Any known blockers I should be aware of before going further?
2. Is extending `zotero-connectors` with a new editor module (same pattern as the Google Docs integration) the right approach, or is there a different path you'd recommend?
3. If this ends up working reasonably well, I'd be interested in eventually contributing it upstream rather than maintaining a permanent fork — what would that process look like, and what would you want to see first?

Happy to share more details on the architecture/findings so far if useful. Thanks!
  • dstillman Zotero Team
    edited today at 3:51pm
    Thanks for offering to help, but you could have saved yourself some time by doing the most cursory search for this. As we've said in many threads, we built a plugin a couple years ago and are waiting for Microsoft to fix some critical bugs before it can be released:

    https://forums.zotero.org/discussion/comment/483239/#Comment_483239
  • Thanks for the context. Good to know this is already well underway on your end, and sorry for not searching more thoroughly first.
    If you're able to share a bit more detail, it would help me avoid banging my head against the same wall: what specifically is broken in the Word JS API? I ask because my approach so far uses `ContentControl` (not `Field`, which lacks a persistent id) for the citation field abstraction — if you can say whether that's the same piece that's broken for you, or something else entirely (footnote handling, event reliability, document data persistence, etc.), that would save me a lot of guessing.

    No intention of racing this or stepping on what you've already built — just trying to figure out whether it's worth continuing to poke at this now, or better to wait for MS to actually fix things. Happy to share findings either way if useful, and glad to just wait if that's the better answer.
  • Zotero Word integration uses fields, not content controls. We're not going to release a plugin that's not compatibility with the desktop plugin and that uses a mechanism that's less suited for what we need. (Mendeley, with their usual dedication to their craft, released a non-backwards-compatible plugin based on content controls and has thousands of one-star reviews to show for it.)

    Again, we already wrote a fields-based plugin, and we've been in intermittent contact with Microsoft for several years about fixing bugs in the JS API. They recently reemerged to say that that they'd fixed one of the blocking bugs, and when we tested, it had not actually been fixed. So now we're waiting again. The only solution here is for them to actually fix their API so that we can release our plugin.
Sign In or Register to comment.