How to Use Zotero with Obsidian (Guest Article)

Zotero is great for managing your literature. However, if you want a better overview of your notes or want to work with highlights and comments, you will quickly reach the limits of Zotero. The solution: Import your Zotero notes into Obsidian. With the Zotero-Obsidian integration, you can seamlessly integrate your literature research into your note system. This works via a plugin that allows you to link Zotero and Obsidian. I'll explain how to do this in this article.

The ‘Obsidian-Zotero-Integration’ plugin

In principle, there are several plugins enable a Zotero-Obsidian link. I use the plugin ’Obsidian-Zotero-Integration".

With the plugin, you can import your Zotero entries into Obsidian and edit them there or use the notes. Both notes and annotations that you have made directly in PDF documents within Zotero can be imported. This means that you can make markups in an attached PDF, add comments or annotations to the markups and both will end up in Obsidian when you transfer them. Tags are also transferred. 

The nice thing is that you not only transfer the notes, but they are also directly linked - if you click on the link in Obsidian, the PDF opens in Zotero at the respective note. So you can check everything again or read it in more detail.

Technical requirements

  • In Zotero: You need the "Better BibTeX for Zotero"-Plugin in Zotero. Installation is possible either directly via the page linked above or via Zotero. To do this, select ‘Tools -> Plug-ins -> Download plug-ins from the Zotero plug-in directory’ in Zotero. Then scroll through the page to the Better BibTeX plug-in and follow the installation steps.
  • In the Obsidian settings: External extensions must be allowed (i.e. Restricted mode is switched off). Then click on the browse button under ‘Community extensions’ and search for the plugin ‘Zotero Integration’ by mgmeyers.
Obsidian Plugin Einstellungen

In the Obsidian settings under ‘External extensions’ you will find the option to search through all plugins. Here you can search for and install the Zotero Integration plugin.

  • Once you have found the plugin, you can install and activate it.

The settings

The settings for this plugin are somewhat more extensive and you can configure a few things here.

That's why I'm describing the simple version here; you can always go into more detail later. Leave all options not mentioned in the default status.

  • PDF Utility: I recommend the download. You can do this directly via the button.
  • Note Import Location: Here you enter the folder into which the notes are to be imported.
  • Öffnen Sie die erstellte(n) oder aktualisierte(n) Notiz(en) nach dem Import: Aktivieren
  • Citation Formats: You must now create a format here. Click on ‘Add Citation Format’. You can then select your CSL style from the drop-down menu. Important: The desired style must be installed in Zotero.
  • Import Formats: This is where you create an import format. This is the place where you have the most options. Use the explanations below the fields as a guide when making your entries. You should adjust the output path and the image output path by inserting your folders for the Zotero imports and Zotero attachments. You should also select your citation style and your ‘Template File’ (= your template note) again.

Your template

You need a template file (you can find out how to create them here).

You have quite a few options here. I have my settings from various forum posts and have briefly listed them here so that you have a starting point:


  • Metadata: this box contains data about your entry from Zotero, e.g. title and author, and you can assign your own tag. I use a separate tag for each writing project.

> [!note] Metadata

> type:: "{{itemType}}"{% for type, creators in creators | groupby("creatorType") -%}{% if loop.first %}

> {% endif %}{{type | replace("interviewee", "author") | replace("director", "author") | replace("presenter", "author") | replace("podcaster", "author") | replace("programmer", "author") | replace("cartographer", "author") | replace("inventor", "author") | replace("sponsor", "author") | replace("performer", "author") | replace("artist", "author")}}:: "{%- for creator in creators -%}{%- if creator.name %}{{creator.name}}{%- else %}{{creator.lastName}}, {{creator.firstName}}{%- endif %}{% if not loop.last %}; {% endif %}{% endfor %}"{% if not loop.last %}

> {% endif %}{%- endfor %}{% if title %}

> title:: "{{title}}"{% endif %}{% if publicationTitle %}

> publication:: "{{publicationTitle}}"{% endif %}{% if date %}

> date:: {{date | format("YYYY-MM-DD")}}{% endif %}{% if archive %}

> archive:: "{{archive}}"{% endif %}{% if archiveLocation %}

> archive-location:: "{{archiveLocation}}"{% endif %}

> citekey:: {{citekey}}

> tags:: #hiervergibstdueinenTag

  • Info box: Contains direct links, as well as further information such as the abstract text and tags from Zotero, provided the fields there are filled.

> [!info]

> **Links**

> [online]({{uri}}) [local]({{desktopURI}}) {%- for attachment in attachments | filterby("path", "endswith", ".pdf") %} [pdf](file://{{attachment.path | replace(" ", "%20")}})

> {% if loop.last %} 

> {% endif %}{%- endfor %}

**Cite Key:** [[@{{citekey}}]] {%- for attachment in attachments | filterby("path", "endswith", ".pdf") %} 

> **Link:** [{{attachment.title}}](file://{{attachment.path | replace(" ", "%20")}}) {%- endfor -%} {%- if abstractNote %}

> **Abstract:** {{abstractNote}} {%- endif -%} {%- if bibliography %} 

> **Bibliography:** {{bibliography}} {%- endif %} {%- if hashTags %} 

> **Tags:** {{hashTags}} {%- endif %}

  • Annotations and notes: With this setting, both annotations in PDF documents and added notes from Zotero are adopted. Colour formatting is also used if you make a colour distinction for the highlights in Zotero.

## Annotations

{% macro heading(color) -%}

{%- if color == "#5fb236" -%}

💡 Main ideas, contributions and conclusions

{%- endif -%}

{%- if color == "#2ea8e5" -%}

❔ Questions

{%- endif -%}

{%- if color == "#ffd400" -%}

⭐ Important

{%- endif -%}

{%- if color == "#a28ae5" -%}

🧩 Definitions and concepts

{%- endif -%}

{%- if color == "#ff6666" -%}

⛔ Weaknesses and caveats

{%- endif -%}

{%- endmacro -%}


{% persist "annotations" %}

{% set annotations = annotations | filterby("date", "dateafter", lastImportDate) -%}

{% if annotations.length > 0 %}


*Imported on {{importDate | format("YYYY-MM-DD HH:mm")}}*


{% for color, annotations in annotations | groupby("color") -%}


### {{heading(color)}}


{%- for annotation in annotations -%}

{%- if annotation.imageRelativePath %}

![[{{annotation.imageRelativePath}}]]

{%- endif %}

{%- if annotation.comment %}

- **{{annotation.comment}}:**

- =={{annotation.annotatedText | nl2br}}== [(p. {{annotation.pageLabel}})](zotero://open-pdf/library/items/{{annotation.attachment.itemKey}}?page={{annotation.pageLabel}}&annotation={{annotation.id}}) {% if annotation.hashTags %}{{annotation.hashTags}}{% endif %}

{%- elif annotation.annotatedText %}

- =={{annotation.annotatedText | nl2br}}== [(p. {{annotation.pageLabel}})](zotero://open-pdf/library/items/{{annotation.attachment.itemKey}}?page={{annotation.pageLabel}}&annotation={{annotation.id}}) {% if annotation.hashTags %}{{annotation.hashTags}}{% endif %}

{%- endif -%}{%- endfor %}


{% endfor -%}

{% endif %}

{% endpersist %}


# Notes

{% if markdownNotes %}  

{{markdownNotes}}

{{markdownNote.hashTags}}

{% endif %}


 %%Ende %%

How to use it

  • In Obsidian, use Ctrl + P and then select Zotero Integration: Import ... (select the name you have given to your import format).
  • The Zotero window opens and you can search for the entry you want to transfer (note that this only works if you have Zotero open in parallel).
  • A new note is automatically created for the Zotero entry and also opened directly.

Conclusion

Überzeugt? Dann probiere die Integration von Zotero und Obsidian doch einfach selbst aus! Du wirst überrascht sein, wie viel Zeit und Mühe du sparen kannst. Weitere nützliche Tools und Plugins für Zotero findest du auch in meinem Blog "The top Zotero extensions I can't live without".

Little Sticky - Martina Klinkowski

Her blog is all about digital note-taking, learning and personal knowledge management, especially with tools like Obsidian. In addition to practical tips on how to structure and use information efficiently, you will find detailed instructions on how to use Obsidian. If you're looking for digital solutions for your knowledge management, you've come to the right place.


Further reading

'}}
Advantages of CSL & Zotero
CSL in combination with Zotero allows you to cite correctly and create your bibliography. Here you can find out why this combo is so powerful.
'}}
Using Zotero and CSL citation styles
Zotero and CSL citation styles. In this guide, you will learn how to use Zotero and citation styles effectively.
'}}
Correct literature research and citation at the FOM University of Applied Sciences with Zotero
Master literature research and citation at the FOM with Zotero! Easily organise your sources and automatically generate citations and bibliographies.
'}}
German citation style: Cite correctly with Zotero
Literature research and citation according to German citation style done right, thanks to Zotero and CSL citation template. Here I show you how to do it.

© Citation Styler. All rights reserved. 2024