Using Source Metadata in Roam Research
Based on Cortex Futura's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.
Copy roam metadataexport.js into Zotero’s translators folder and restart Zotero so the “Roam metadata export” format becomes available.
Briefing
The fastest way to turn Zotero libraries into a living reference graph inside Roam Research is to import source metadata with a dedicated Roam translator, then use Roam’s query-driven “citation graph” to automatically surface who cites what. Once set up, the workflow becomes a near one-keystroke operation: select a source in Zotero, copy its metadata, paste it into Roam, and get structured fields like the paper’s title, authors’ year, a link back to the Zotero item, topics, and reading status.
Setup matters because Roam can’t read Zotero metadata directly without a small bridge. The process starts by downloading a file named roam metadata export and copying roam metadataexport.js into Zotero’s translators folder. That folder location is found in Zotero Preferences → Advanced → Data directory location, where the translators folder sits. After restarting Zotero, the export settings are updated: under Preferences → Export, the default format is switched to “Roam metadata export.” With that in place, selecting a source in Zotero and using Command+Shift+C on macOS (Ctrl+Shift+C on Windows/Linux) prepares the metadata for Roam.
In Roam, pasting that exported content (Command+V) creates a top block that carries the source’s key details. The page name is tied to the paper’s site key, and the block includes a link to the paper’s site, the authors’ year, the title, and a link back to the Zotero item. It also includes fields for topics the source covers and the reading status, defaulting to “to read.” A key addition is an element called “citation graph,” which becomes useful once citations are represented in Roam.
The citation graph relies on Roam’s advanced query feature. The practical payoff is that citations become navigable: when other Roam pages contain quotes from a paper and each quote includes a “citing” attribute that links to the cited paper, Roam can automatically collect those quotes and display them on the cited paper’s page. In other words, the literature review context stays attached to the source itself. The transcript’s example uses multiple papers that cite a shared work on a topic (like totalitarianism). After the citing attributes and links are added under each quote, the cited paper’s page shows all those quoting blocks under the citation graph query—making it easy to see who is writing about the same core idea and how they frame it.
This also supports commentary. When a comment or indented note is placed under a citing block, it appears alongside the citation results, letting readers track how different sources treat the same work as they read. The recommended first action is simple: pick one paper, add the citing attribute with links to the cited sources under a couple of extracted quotes, and let the system accumulate over time so the reference network becomes more useful with every new citation you add.
Cornell Notes
Import Zotero source metadata into Roam using a dedicated Zotero translator (“Roam metadata export”), then paste the exported metadata into Roam with a keyboard shortcut. The pasted block includes structured fields (title, authors’ year, topics, reading status, and links back to Zotero) and adds a “citation graph” element. That citation graph is powered by Roam queries: when quotes in Roam include a “citing” attribute followed by a link to the cited paper’s site key, Roam automatically aggregates those quoting blocks on the cited paper’s page. This turns reading notes into a searchable map of who cites whom and how sources are discussed, with room for comments under each citing block.
What setup steps make Zotero metadata export work with Roam?
How does a user move metadata from Zotero into Roam quickly?
What is the “citation graph” element, and what makes it populate automatically?
How do quotes and citing attributes work together in Roam?
Why does this approach help during literature review and note-taking?
Review Questions
- What files and Zotero settings must be changed to enable “Roam metadata export,” and where are they located?
- Describe the exact structure needed under a quote in Roam to make the citation graph show up on the cited paper’s page.
- Why does linking require the paper’s site key, and what happens if the cited paper isn’t already in Roam/Zotero?
Key Points
- 1
Copy roam metadataexport.js into Zotero’s translators folder and restart Zotero so the “Roam metadata export” format becomes available.
- 2
Set Zotero Preferences → Export → Default format to “Roam metadata export” to ensure the correct export behavior.
- 3
Use Command+Shift+C (macOS) or Ctrl+Shift+C (Windows/Linux) in Zotero, then paste into Roam with Command+V to create a structured source block.
- 4
The pasted Roam block includes key metadata fields (site key/page name, authors’ year, title, Zotero link, topics, and reading status).
- 5
The “citation graph” element populates through Roam queries once citing blocks are added under quotes.
- 6
Add citations by placing citing:: under a quote and linking to the cited paper’s Roam page using its site key.
- 7
Start small: pick one paper, add citing attributes under a couple of extracted quotes, and let the citation network grow over time.