# Introduction

This extension started out of a basic use case : **importing data from Zotero to Roam based on a citekey**.&#x20;

A number of users in the Roam community, myself included, have adopted a reference system where citekeys are used as page names like so : `[[@citekey]]`. This allows for a few convenient things like :&#x20;

* having a unique, simple handle to reference a literature item within Roam ;
* being able to cite seamlessly with `[[` and filtering suggestions with **@** ;
* being able to write in Roam, and then to export to a formatting tool (Zettlr, Pandoc, etc.) without having to manually reformat references.

Beginning in \~May 2020, [melat0nin's Zotero export plugin](https://github.com/melat0nin/zotero-roam-export) enabled Zotero -> Roam data import, using the Zotero desktop client and a JSON file. It's the best solution I know if you're looking to import a lot of library items at once into Roam ; it handles single items, multi-item selection, and collections.&#x20;

It's been a major inspiration for the development of this extension, in particular with user settings. Though while it's very efficient for bulk data import, it's cumbersome to generate a JSON file when adding just one item. Especially if you repeat the process a few times. It also requires starting from the Zotero app, tracking down which item(s) you haven't imported yet, and a fair amount of context-switching.

### Features

* Import data from Zotero to Roam (metadata, notes/annotations, attachments)
* Discover connections within your Zotero library
* Browse citation networks and find new papers, without leaving Roam
* Integrate your Roam graph, Zotero items, and external tools \
  (Scite, Connected Papers...)
* Manage your tags into a unified system

{% hint style="info" %}
The extension assumes the workflow described above, where the `[[@citekey]]` nomenclature is used, and works best with the [Better BibTeX plugin](https://retorque.re/zotero-better-bibtex/) as citekey manager.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://alix-lahuec.gitbook.io/zotero-roam/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
