How to Connect Zotero and Obsidian for the Ultimate PhD Workflow

(Updated August 28, 2025 – fixes for the Obsidian update included)

As requested, here is how to connect Zotero and Obsidian for the ultimate PhD workflow.

Especially because I’m now in the qualifying papers phase, and there is a lot of reading to keep track of!

Table of Contents

For those who don’t know, Zotero and Obsidian are both completely free software that are helpful for academics but also anyone wanting to keep a lot of different sources and notes organized.

I started with Zotero my senior year of undergrad, and this is where my workflow starts.

My Zotero Workflow

Zotero is a bibliography software, where you can store all the meta information about a source like its title, authors, translators, links, DOIs, and even a digital copy of the source if you have one.

I pretty much always read from digital sources nowadays because I can annotate and highlight directly on the pdf and then export those annotations elsewhere.

The Zotero pdf reader has gotten so good in the past few years, and they recently added a dark mode, where you have white text on a black background. That’s helped my eyes a ton.

I color code all my highlights and annotations with a combo of the stoplight method and then some custom colors.

  • Red is for claims the author makes that I disagree with, am skeptical of, or know has been debunked in some way by other studies
  • Yellow is for important or interesting claims made by the author, so ideas that are important for their main thesis that I want to remember or include in a summary I write
  • Green is for claims the author makes that I agree with and that are relevant to work I’m doing, so these are usually quotes I will directly include in my own work. I tend to use this color more conservatively, so yellow is probably my most-used color.
  • Then outside the stoplight system, I use the color purple to highlight every single chapter or section heading because when I export the annotations, it’s helpful to have some kind of outline to keep the context around for direct quotes and things.
  • Blue is for claims that the author cites from other sources or claims they make that connects to ideas from another author. I pretty much always use blue highlights with a comment (which you can add comments directly to highlights in Zotero) to tell me, “Oh this connects to this other author or look up this source later.”
  • Pink/Magenta is my confused color. Either I have no idea what the author is saying or I have questions that haven’t been answered that may come up later, and I want a reminder for in case it doesn’t get answered. If there is an answer later, I comment or highlight that in pink as well and comment that it was my question from whatever page.
  • Then finally, orange is my definition color. Whenever an author defines anything important, I highlight it in orange, which is helpful for lit reviews because then I can look at how different authors are defining the same term. But it’s also helpful for normal learning and making flashcards because easily scan and find the terms I want to make flashcards for.

Sidenote: I use Anki, which is also free and open source for flashcards with automatic spaced repetition. Whoo!

So that’s my Zotero workflow. You can make folders or have one big folder for all your sources and use tags to search for sources, whatever floats your boat. I do a combo of both.

Once I read through a source, I export my annotations to Obsidian. I’ll be honest, I’m kind of new to Obsidian, but I do have a workflow going with it now that I like and will likely keep up with moving forward.

My Obsidian Workflow

Before diving into the setup on the Obsidian side, I’ll show you what it looks like when it’s done. Say I want to import my annotations from Dan Sperber’s Explaining Culture. I set up a hotkey for this, which is Control Shift Z, and that will bring up a search bar from Zotero.

I pick the source, and then it’ll open a new note with my annotations that looks like this.

You’ve got meta data like the title, year, authors, and whatever tags I added in Zotero (which I try to keep consistent across both platforms), the link to the pdf in Zotero as a shortcut, which is handy, and then links to the source notes of related sources, which would be from links you add in Zotero. This could be every source that this source cites or just specific ones you want to remember are related to this source.

I have two sections for notes below the meta-information.

First is persistent notes, these are notes that will stay the same, no matter how many times you refresh the source or re-import annotations from Zotero. I like to put outlines here for longer sources or reminders of what I’m using the source for.

Second, under that are the highlights and comments from the Zotero reader. If you change these in Zotero, you’ll have to manually re-import them to update them in Obsidian, but it’s the same process, which is easy especially if you set up a keyboard shortcut. I also have links to the pdf pages that each annotation is from, so if I can’t remember the context of a quote, I can click that link and it’ll open it up in Zotero to that exact page. That alone has been soooo helpful. And you’ll see that all my highlights are the same color as they are in the Zotero reader.

My Zotero and Obsidian aren’t synced automatically, which I honestly prefer because things can get messed up easily in that import process, so I like to be able to do them one at a time, so I can fix things in the template as they come up. For now it’s been pretty stable, so you should be able to use my exact template if you want.

This is what it looks like for me at the end, and I’ll show you how to make this happen!

Setting Up the Zotero Integration in Obsidian

To sync Obsidian with Zotero, I use three specific plugins in Obsidian: Zotero Integration by mgmeyers, Highlightr by chetachi, and Templater by SilentVoid.

The Zotero Integration requires you to also have the Better BibTex for Zotero installed in Zotero, so make sure you have that installed. You can download it from the plugin repository . Better BibTex is under the Word Processor and Writing Integration Heading under the LaTeX, TeX, and Text Editors sub-heading.

You literally just download it and drag the file into the plugin manager in Zotero. Easy!

For setting up the Obsidian side, I want to thank 3 fabulous youtubers for their videos on setting this up: morganeua (a fellow humanities PhD!), Bryan Jenks, and Danny Talks Tech, so there are some suggestions if you want to check out other people’s workflows. Morgan doesn’t do the sync that I do, but she has a lot of great videos on the Zettelkasten method, and I’ve learned a lot from her videos. So Bryan Jenks and Danny Talks Tech do more of the syncing part, which is a little bit of coding in a language I wasn’t familiar with.

Obsidian Setup: Highlightr Plugin

I’ll start easy with setting up the highlighters. The Highlightr plugin is great because you can set up your own custom highlight colors without having to find a theme that will let you do CSS, and you need this to make sure that your highlights are still highlighted when you bring annotations over from Zotero.

When you go into the settings for the Highlightr plugin, make sure you have colors named for all the colors you’d be using in Zotero. The ones they have in Zotero are called Magenta (not pink), Red, Yellow, Blue, Green, Purple, Orange, and Gray. And you can customize the specific type of color you want, so if yellow for instance is too harsh for your eyes, delete the yellow that’s built in and make a new one called yellow by clicking on the colored circle and then dragging til you find a good shade that you prefer. If you want to use the hex codes I did, you can copy them below:

My hex codes for each color!
Gray: #CACFD9
Magenta: #F272D4
Red: #ED1842
Yellow: #FFEB4D
Blue: #24CAFF
Green: #29C800
Purple: #B272F2
Orange: #F25D27

Obsidian Zotero Integration Setup

With that done, we now need to do the more complicated set up for the Zotero Integration plugin. When you go to settings for this one, you’ll first need to pick a folder for where the annotations from each source will go in your Obsidian vault. So I have a folder called source-notes where those annotations will go, and there will be one note (or markdown file) per source.

Then you can pick whatever citation formats you use, I mainly use Chicago 17th edition, which I guess I should update to 18th edition now since that came out over the summer.

The most important thing to set up here is the import format. This is going to tell Obsidian what parts of each Zotero source to bring over into Obsidian, and it does so using a template, which we’ll get to in a minute.

For now, you’ll want the name to match the folder you picked for where the annotations will go. Again, mine is called source-notes, then the output path is going to be that folder name/{{citekey}}.md . The citekey in curly brackets is a variable that will be replaced by the Better BibTex name for each source. That name includes the last name of the first author, a short title and the date, so it makes the source easily searchable in your vault.

The image output path should be the the same thing but without the .md. When you select images of the pdf (using the block tool in Zotero), the images will all be placed into a folder with the same name as the source note.

Finally under template file, this will be the link to the template we’re about to make. You can use the same file structure as me if you want or use your own, but make sure it matches the file name and folder it’s stored in within your vault.

You don’t really need to worry about the rest of the settings on this page, but OCR and image stuff is available if you want it. I do OCR in Zotero itself so don’t need it here!

Obsidian Zotero Integration Template

Moving on to the template itself. Thi was the most complicated part for me because it uses the Nunjucks language, which I have zero experience with, but using videos and templates from other people, I was able to piece together what I wanted!

First, make sure you have the templater plugin installed and activated. There’s no setup needed for this other than just make sure it’s installed and active.

Again, you’ll want your template to match the name and folder structure you put in the settings of the Zotero Integration plugin, so mine is in my templates folder and is called source-notes. You’ll see I have other templates in here, which I’ll show you the atomic notes one in a little, and you can set up keyboard shortcuts to create a new note using any of these templates, which is handy!

So here’s the nunjucks version of the source note, which you can copy and paste and then adjust to fit your needs.

(Updated August 28, 2025 to address tags issue with the most-recent update)

---
Title: "{{title | escape}}"
Year: {{date | format("YYYY")}}
Authors: {{authors}}
Tags: [{% for t in tags %}{{t.tag}}{% if not loop.last %}, {% endif %}{% endfor %}]
---
Zotero PDF Link: {{pdfZoteroLink}}
Related:: {% for relation in relations | selectattr("citekey") %} [[{{relation.citekey}}]]{% if not loop.last %}, {% endif%} {% endfor %}

### Persistent Notes
{% persist "notes" %}{% if isFirstImport %}
Write notes here!
{% endif %}
{% endpersist %}

### In-text annotations

{% for annotation in annotations -%}
{%- if annotation.annotatedText -%}
{% if annotation.color %} <mark class="hltr-{{annotation.colorCategory | lower}}">"{{annotation.annotatedText | safe}}"</mark> {% else %} {{annotation.type | capitalize}} {% endif %}[Page {{annotation.pageLabel}}](zotero://open-pdf/library/items/{{annotation.attachment.itemKey}}?page={{annotation.pageLabel}}&annotation={{annotation.id}})
{%- endif %}
{% if annotation.comment %}
{{annotation.comment | safe}} [Page {{annotation.pageLabel}}](zotero://open-pdf/library/items/{{annotation.attachment.itemKey}}?page={{annotation.pageLabel}}&annotation={{annotation.id}})
{% endif %}
{%- if annotation.imageRelativePath %} 
![[{{annotation.imageRelativePath}}]]
{%- endif %}
{% if annotation.allTags %}
{{annotation.allTags}}
{% endif %}
{% endfor -%}

To get the meta data, you’ll put that info (called Properties in Obsidian) between two lines of 3 hyphens. Add what you want. Everything in double curly brackets is a variable that will be replaced by the correct info in

Title: “{{title | escape}}” is for the title. I have regular text saying this is the title, and then in quotes and in double curly braces, I have the variable title. I also have the word escape here because you can run into issues with the template breaking if the title of the source has any quotation marks in it if you don’t escape (which deals with those quotation marks) and put quotes around that variable.

The other ones I haven’t issues with yet, so I didn’t bother escaping them. I’ve got the date, formatted to just have the year, and then authors and tags like this. You’ll see tags has to be enclosed in an if statement to make sure we get all of them.

Then I have the zotero pdf link, which the variable is pdfZoteroLink, and then related.

Then my persistent notes are just enclosed in this if statement and says persist notes.

The most complicated part is the annotations, so it basically runs a for loop for as long as there are any annotations in the pdf. So it’ll run every thing in the for loop for each annotation. Within this, if the annotation type is annotatedText—so that would be any highlights—then I’ll grab the color and write out that annotation using the class hltr- the variable {{annotation.colorCategory}}, which is the Zotero name for the colors, which is what we set up in the Highlightr plugin.

Then it grabs and puts out the link for the specific page that the annotation is on.

Note that it always the pdf page and not the actual page, so when you’re going and putting page numbers in your citations, always double check the actual page, but it’s to do that by clicking this link.

Then we end that if statement for highlights and do comments, with the page numbers as well. I don’t have the colors set up because they don’t matter as much for my comments, because if I’m responding to a red highlight for instance, I can see the red highlight right above the comment, so I didn’t bother with colors, and it actually helps me see my own comments easier when I’m scrolling down the source note page. Then we end that if statement.

You can also tag comments and highlights in Zotero, so this last if statement grabs those tags as well. And I just let the images go in their own folder. The images do need to be stored somewhere in your vault, which we took care of in settings, and the “annotation.imageRelativePath” variable grabs them and puts them into the correct order of your annotations.

Once that template is created and you have it correctly linked in the Zotero Integration Settings, you can go ahead and run the command Zotero-Integration: source-notes (or whatever naming scheme you used), and it’ll bring up that search bar for you that will start the import

If you want to set up a shortcut, then go to your regular Settings → Hotkeys → and Zotero Integration source-notes (or whatever name you used), and you can add a shortcut by hitting the plus. Just make sure your shortcut isn’t already used for something else. Control Z, is already undo, so I just did control shift Z.

Obsidian Atomic Notes Workflow

Now that we’ve got the Zotero Integration set up, and know how to import annotations from Zotero, is where the rest of Obsidian comes into play.

Obsidian’s note-taking system is based on the idea of linking sources together, which is a big part of the Zettelkasten system if you want to search more about that. Morgan’s Youtube channel has many good videos on this, if you want to learn more.

I like to think of it like making my own Wikipedia of everything I’ve read and learned, organized by idea instead of source. This is very helpful for when you’re a researcher because oftentimes you’ll be writing many papers and books on the same ideas and further developing them each time, so you want all of the sources and ideas to be free floating rather than stuck in a single paper where you’ll have to go through every paper you’ve ever written. When the ideas are free-floating or “atomic” to use the Zettelkasten term, you can come back to them, reference, them, and develop them much easier.

It’s like the difference between building sandcastles that are projects that wash away after you complete them and building permanent architecture that stands for ages and can continue to be built upon.

To make this happen in Obsidian, I start by importing whatever source note I’ve just read, and then I create atomic notes from that source based on the ideas in the paper.

Let’s say I just read that book by Sperber Explaining Culture, so I want to takes his definition of culture and create an atomic note called “culture” that will have his definition of culture as well as any other definitions of culture I’ve come across in reading.

Instead of just creating a new note right off the bat, I can search for a note called culture, and if it already exists, I can just add whatever quotes or ideas to it from the source note I’ve been working with.

This is where my atomic note template comes in. I don’t have much in this template, but I just wanted it to be quicker to create. So all I have is just the tags property, but again you can add whatever meta information you want to it, like the date you created it if you’re journaling or doing daily notes, or really anything else. But having a template for this saves me a lot of time, and I added this to a shortcut where I create a new atomic note that goes into my atomic-notes folder by pressing alt n.

There are differing ideas about how long these atomic notes should be, and that’s really up to your personal preference and what you think you’ll be able to find when you search for it.

Some say no longer than a few sentences or what would physically fit on a notecard if you handwrote it, but for me, I like to think of it like a Wikipedia page, where I’ll full on write a literature review section for it (which comes in handy when I end up writing many lit reviews), but I’ll also make sure that larger concepts that should have their own pages but are part of this idea are linked to instead of being part of this atomic note.

We were looking at the atomic note for culture, which doesn’t have a lot on it yet (because I need to come back and do more with this!), but then there’s this idea under the umbrella of culture called the cultural unit, which deserves its own page and literature review section.

So I made that page, linked to it here by putting double square brackets and typing the name of that note to link the two together. And if you need to change what shows up in the text, you can use the pipe character (usually above the enter key) to change what is displayed, but it’ll keep linking to the same page.

You’ll see I have much more written for cultural units than culture right now, so I’ll go back at some point and fill in culture, so you’ll see I’ve got Schneider, Geertz, and Sperber all in conversation here, and this is a first step toward part of a lit review I’m currently working on.

Once you’ve created a lot of notes and links, there is a helpful tool in Obsidian called the graph, which helps you visualize connections between notes that you may not be aware of are connected. There are two views for the graph.

The smaller and less overwhelming view is the local graph, which you get to from a note that you have open. To open that graph view, click the 3 dots in the top right corner of the note, then go to “Open linked view” → “Open local graph” and you’ll see the current note as a node in a network graph in the center of other nodes that are other notes that have been linked to the note you’re in.

That can be helpful to see immediate connections, but if you want to see larger-scale connections, you’ll want to open a new page in graph view, which is just the little connected-nodes symbol in the left sidebar of the whole Obsidian window.

As I said before, I’m still pretty new to Obsidian, so my graph is pretty small, but it already helped me see connections between larger-scale ideas, like musical semiotics and cultural transmission. I also keep a look out for orphans, which are single nodes or notes not connected to anything and I try to make sure everything is connected to something because everything is connected to something in reality, so this practice keeps me honest.

If you want to see some really cool graphs people often post photos of theirs and talk about their workflows in the ObsidianMD subreddit. Definitely worth a scroll at the very least.

Obsidian Canvas

One other tool in Obsidian that has been a game-changer for me is the Canvas.

In Obsidian, you can create a file type called Canvas that is an I think infinite page where you can add text boxes and then connect them together in any configuration you want. You can use two-way arrows, one-way arrows, or just lines connecting ideas together. And this has been the final tool that has allowed me to turn my paper-writing process completely digital.

Before this, I was using the notecard method with physical notecards that I would write an atomic note on and then I would line them up on the floor. In hindsight, I probably could have stuck them to the wall and used yarn ala a conspiracy theorist, but that system worked for me better than anything else because it was so easy to move ideas around if I needed. And I’d re-use notecards for multiple projects, but it wasn’t quite as organized or easy to find notecards as it is in Obsidian.

You can do this exact thing digitally in the Obsidian Canvas!

What’s even better is that you can directly embed any of your notes into the Canvas, so an entire source note or an atomic note, even pictures in the Canvas as movable boxes, so if you drew a figure or have graphs of your data that you’re writing about, you can stick them in there as well.

The Canvas is also great for fiction writers here because you can put images of characters or scenes that you’re writing about. All in all, this is one of the biggest reasons I turned to Obsidian in the last few months. I feel so much more organized, and I get more of a bird’s eye view of any project I’m working on that I can zoom in on to move things around.

Zotero and Word Integration

That’s the Obsidian part. One final part of my workflow is using Zotero to cite things in my papers in Microsoft Word. It’s actually what got me started in Zotero in the first place because it keeps track of all of the inline citations you use and automatically creates a works cited/bibliography using only those sources (and you can of course edit this later).

Let’s say I’m writing a paper on Disney’s Frozen. So I’m writing a sentence and citing this source and then another source, and other sources, using Chicago style by clicking on “Add/Edit Citation” in the Zotero tab.

Then okay paper’s done. Gotta add that Works Cited by just hitting the “Add/Edit Bibliography” button, which automatically formats a Bibliography in the style I’ve chosen with only the sources I used in the document, no more no less.

I am begging scholars to use a source management system like this (or Mendeley). I work for Music Theory Online, a peer-reviewed journal where big dogs in the field of music theory publish their work, and every single paper I have worked on has had the issue where the author has cited some source in line and did not include it in their Works Cited, so then that adds time and effort to go and ask them what the source was so we add it to the works cited. Just have it in there already please!

It looks like Zotero automatically adds itself to Word nowadays when it’s installed, but if you need to manually do it, there are instructions at zotero.org/support/word_processor_integration.

There’s also support for Google Docs now! You can find that information on that same page.

I think that’s everything you need to use my workflow or fork my workflow to create your own, but if I’ve left anything out or you have any questions, let me know!

If you’d like to support the blog/offset the cost of website hosting, I’d much appreciate it, but don’t feel obligated!

Happy writing!

35 thoughts on “How to Connect Zotero and Obsidian for the Ultimate PhD Workflow”

    1. Bibtex errors are likely an issue with just Zotero. What errors are you seeing? If you’re not seeing any text at all, it could be an issue with the tags (I’ll respond to that on your other comment)

  1. Seems like tags don’t work in the same way anymore since the new update. This is my workaround for now to replace the code that imports the tags:

    Tags:
    {% for tag in allTags.split(“,”) %}- {{ tag | trim }}
    {% endfor %}

    1. Thanks for this! That actually didn’t work for me, but I found a solution from someone in the Obsidian forum. For others’ reference, I now have it as
      Tags: [{% for t in tags %}{{t.tag}}{% if not loop.last %}, {% endif %}{% endfor %}]

      (will update the template momentarily…)

  2. Similar to Sy Hersh, I also am not getting any annotations populating in Obsidian. The import function does create a new note, but it looks like the the “Title” of the page is something weird. The PDF file name and the name of the Zotero entry is “How to Create an Optopia – Kim Stanley Robinson’s “Ministry for the Future” and the Politics of Hop” and the Obsidian entry is titled “HowCreateOpt” with no text after it

    1. Mr. Seymour Hersh

      Hi
      It is as if the template “code” is not being executed. Are we missing something in the diode formatting, eg Start and end identifiers.
      The zotero link works fine. If the template was executed we should see something other that a title.?

      I really would like to take advantage of this method for my PhD research!

      Is there code we can put at the beginning and/or middle of the template that will issue some message, so we can confirm what is happenning?

      Suggestion from others???

      1. I had a similar issue which got resolved after changing a setting in zotero.
        In settings, allow apps to communicate with zotero locally was unchecked. So I checked it and my source note got populated

    2. thanks for the suggestion, but no text was created.

      I replaced Tags: {% if allTags %}{{allTags}}{% endif %}
      with Tags:{% for tag in allTags.split(“,”) %}- {{ tag | trim }} {% endfor %}

      no text was created …

      1. I’m not entirely sure what’s going on with your template, but with the most recent update, I found that I had to change tags to look like this:
        Tags: [{% for t in tags %}{{t.tag}}{% if not loop.last %}, {% endif %}{% endfor %}]

        If you’re not getting any text at all, there’s probably something wrong with the link, even if it seems fine. Is the persistent notes section showing up? And/or the title for in-text annotations?

    3. This is probably due to the em dash in the title and the quotation marks, unfortunately. While the template I have is supposed to escape those characters, so it doesn’t break the string, it doesn’t always do it well. If imports work fine with other titles that don’t have em dashes or quotation marks in them, that’s definitely what is happening. Do make sure that you have quotation marks around that variable. It should look like this:
      Title: “{{title | escape}}”

      I did some snooping and aren’t really sure what else to do if you’re still having issues with that. Another thing might be to check the date: if the date’s in a weird format in Zotero, it can sometimes cause issues too. Sorry I’m not knowledgeable enough to know how else to help. I really only know enough to have made this simple template.

  3. Bibtex errors are likely an issue with just Zotero. What errors are you seeing? If you’re not seeing any text at all, it could be an issue with the tags (I’ll respond to that on your other comment)

  4. I am very much an Obsidian newbie, but I really love the potential to support my PhD learning (and my terrible memory). Where I’ve gotten lost in this workflow is how to actually create an atomic note. I have the atomic notes template created and an atomic notes folder. I have imported annotations from Zotero (also using your template and workflow – thank you!!! ). …now what? how do I create the shortcut to get something into the atomic notes template? How do I actually get the things I want from the annotations into an atomic note?
    Please excuse my (obvious) ignorance. I’m trying!

    1. Welcome to Obsidian then! I’ve added it to my list to make a video and blog post about this stuff too (could be a while though – we just started our school year).

      To create an atomic note without a shortcut, you can open the command palette in the left menu. It has the symbol >_ as the icon. Then you’ll search for “Templater: Create new note from template” and when you click that, it’ll ask you what template to use and then make a new blank note from that

      If you want to create a shortcut for that command, go to settings -> hotkeys, and again search for “Templater: Create new note from template”. When you find it, click the plus button on the right and then press down whatever key combination you want for that shortcut. I use Alt + n

      So that’s to create notes.

      To get stuff from source notes, I generally will just manually type and link the source note to the atomic note, but I also occasionally copy and paste. There are ways to embed parts of notes into other notes, but as a complete newbie to Obsidian, I think copy/paste or hand typing is your best bet. I write stuff out in my own words, like I’m writing a Wikipedia article, so I don’t have any shortcuts there, and I think it’s an important part of the thinking process.

      To link notes to each other, you’ll use double brackets [[ ]]. Say you have a source note called brackettCategorizingSoundGenre2016 and you’ve created an atomic note about musical genre, so you want to list this source note as a citation. You just put the note name in double brackets like this [[brackettCategorizingSoundGenre2016]] and it will automatically link the notes together. It should make it look like a hyperlink that you can click, and it’ll take you to that note. You can also change what the link actually says by using the pipe character | (usually above your enter/return key). So if I just want the link to say “Brackett 2016” I’ll put [[brackettCategorizingSoundGenre2016|Brackett 2016]] and it’ll still go to the same note but just say Brackett 2016. You can link to any notes in your vault this way. And if you use “related items” in Zotero to link papers together, it’ll automatically link them together in Obsidian too (if you’re using my template).

      I hope this explanation is helpful, and let me know if there’s other things you don’t know about that you’d like me to put in a video about this stuff! Good luck with everything!

  5. Hello Amy, Thank you for the amazing video! I have tried to follow everything to the letter, but when importinhg my note from zotero into obsidian using the comand+shift+z hot key, it imports without the template formating or highlights. I have installed the highlitr plug in and copied your colours + names, and the templater… Do you know what might be gong wrong?

    1. Hmm that’s a tricky one. What do you mean without formatting? Are your annotations still coming over from Zotero? It’s likely some mismatch between color names or something else. Hard to tell without seeing what you’re getting.

  6. Great write up. I ended up using Year: {{(date | format("YYYY")) if date}} instead of escaping, as i was getting issues when the date was missing. Other than that, worked great.

  7. Veronika Cibulkova

    Hi, thank you for your wonderful post and a video, I would really like to implement it but I keep getting errors. I am using Vancouver citation style, so that is the only difference from your setup.

    1) In the 3rd line of your “in text annotation” paragraph, Obsidian does not take the double quotes. I tried with chatGPT to change to single quotes or add a backslash but that still did not solve the issue unfortunately and chatGPT suggested a different way for the code (but quite complicated).
    2) Persistently, I keep getting the following error:
    Error converting formatted bibliography to markdown:
    [[l”instancePath”.””,
    “schemaPath”:”#/required””
    keyword”:”required”,
    ” “params”:
    (“missingProperty”:”locale”),”message”.”must
    have required property ‘locale””‘1]

    I am very hopeless about this, I have tried different things but I cannot set any locale on the Obsidian plugin for Zotero and I don’t know, where to do it.

    Do you have any idea, how to solve this? I would appreciate your help very much!

    Thank you.
    With kind regards,
    Veronika

    1. Sorry you’ve been getting errors!

      What error are you getting for 1? How do you know it’s the double quotes and not something else?

      Regarding locale, that is likely a mismatch between where your source-notes template is stored and what you typed in as the location for the template in the Zotero Integration settings. Make sure these match! For me, under template file that is templates/source-notes.md and for the output path, this is source-notes/{{citekey}}.md

  8. It’s perfect, I abandoned a workflow and citations setup using the ‘citations’ plugin ages ago. Now that I’m using Zotero Integration on Zotero 7, I’ve been mulling about this issue, keen to find one that I thought would work for me.

    You kept it simple. You use the stoplight method, like me [well I’ve always done Red and Yellow this way, now I will use your system].

    Could you explain how you use Anki and how it fits with this workflow? I have some Anki flashcards to learn a foreign language that I haven’t really done much on :X

    1. Glad it’s helpful! Anki’s not really part of the workflow; it’s just something I use on the side for things I want to make sure I have memorized. So if there’s information on an atomic note that I know I’ll need to remember, I’ll throw it in Anki as well (manually making those flashcards)

  9. Hey!
    Thanks for a great post!
    Everything works great for me otherwise, but whenever I try to import notes and annotations from Zotero to Obsidian I can’t manage to get them to look like they’re supposed to. I don’t get any errors and otherwise all works but the imported file looks like the templater code file. I’ve tried troubleshooting in all ways I can come up with – copying the code to text editor and then to Obsidian, re-installing the plugins, tweaking the plugin settings both on Zotero and Obsidian, retyping the code by hand – but the problem persists. I can’t seem to figure out how to fix this.
    As far as I can tell the problem is that Obsidian doesn’t recognize what it’s supposed to do with the Properties part or what it’s supposed to do to the annotations, once imported. I can’t figure out if the problem is with Zotero or Obsidian or one of the plugins. It just seems like the code is carried over to all the imported notes when it’s not supposed to (?)
    Any idea how to fix this or what could be the problem? Or where I could find some troubleshooting guides?
    Thanks in advance!
    Em

    1. Hey,
      I just figured this out on my own!
      Turns out I needed just a little bit more of tweaking and experimenting to get it right :)

      Best,
      Em

      1. Hey there,

        I’m having the exact same issue – annotations being pasted in as plain text in code, and not actually highlighted – could you share how you solved it? I’d really appreciate it!

      2. Okay, I found the solution: for anyone reading: for me, I had to delete the three quotes ( ‘ ‘ ‘ ) around the text of the template. Maybe they got added when I copied the text in.

  10. Hi Amy!

    Thank you so much for this amazing resource. You’re truly so generous!

    If you have any free time could you or anyone reading help me with this issue:

    “Error parsing template “templates/source-notes.md”: (unknown path) [Line 13, Column 4]
    unknown block tag: endpersist

    {% endpersist %}
    ^

    tbh I am completely inexperienced with coding, especially nunjucks, so I’m unsure what the error is exactly telling me. would appreciate any and all help on this.

    kindly,
    chava

    1. Hi chava,

      Sorry you’re having issues! The error here is because there isn’t anything located at that file path. So make sure that in your vault, you have a folder named “templates” and a note in there (the actual template) called source-notes

      Totally okay to name those something else, but the “Template File” under the import format in the Zotero Integration has to match that name exactly. So if you named your folder template and your template “literature” or something, the template file would then be: template/literature.md

      Hope that helps!

  11. Thank you so much for this! I have clipped this page to Obsidian so I don’t lose it. I especially love your ideas for how to use each colour highlight—something I have struggled with for a long time. I use Zotero for legal research and will be adapting some of this code to cases, so I can highlight and annotate judgments.

  12. Hi Amy, I’m really excited to work out this system thanks to your video.

    I’m pretty sure I’ve followed all your instructions and copied the source-notes template coding, however when not in ‘source mode’ view in Obsidian, right after the lines:
    {%- if annotation.imageRelativePath %}
    ![[{{annotation.imageRelativePath}}]]
    the second line turns into a popdown from an error message saying (” ” could not be found).

    Initially I couldn’t get any pages to be made after using the Zotero Integration: source-notes command, but then somehow miraculously a source-notes page did get created, but now never since. In Obsidian the blue loading bar loads quickly, but then no page opens and when searching for the article I’ve tried to upload, it’s nowhere in Obsidian

    Do you have any trouble shooting ideas? I went and changed the date format because they were different in Zotero to Obsidian, but I can’t think of anything else that might be the problem. And I tried checking out the guys’ videos you quoted, but it felt wayyy over my head.

    Thanks for your time

    1. Hi Ruby, thanks for reaching out! Glad my tutorial was helpful, and sorry to hear you’re having trouble.

      For the Obsidian image issue, where it says “” could not be found in your source-notes template, don’t worry about that! It’s trying to link to something in your vault that you haven’t specified yet (and will once you actually import using the template). Changing the view to source mode will get rid of that warning.

      For having issues with actually importing things: Zotero recently did a massive update that restructured a good chunk of their database system, so some people have had to reset some things. My guess is it’s with the Better Bibtex plugin in Zotero, so go into your Zotero plugins (under tools) and check that Better Bibtex is up to date. Then go to the source in Zotero that you want to add to Obsidian. Make sure it does have a Citation Key. Should be something like benhamouComeSongIm2025 for example. If it doesn’t (and you may want to just try this anyway), right click on the source in the Zotero list, and under Better Bibtex, click “Regenerate Better Bibtex Key.” That’s fixed a lot of people’s issues with the most recent update. If that was it, you can select your entire library by clicking Ctrl or Cmd + a, and regenerate all the citation keys. After that, you should in theory be able to import the sources into Obsidian no problem.

      I hope that’s it! But do let me know if it doesn’t work, or if you see any other errors you’re not sure about.

      Best of luck!

  13. Hi – just wanted to say a heartfelt thank you. I downloaded obsidian quite literally after I doom scrolled onto one of your videos. This is such a great framework, and ofc leaving space for personal variability in habits / preferences / layouts I’m really inspired by your set up. I really appreciate you sharing all the stuff above. Here’s to a first attempt at… organizing thoughts??? Who knew you could do that

    1. Hi Tom, thanks for the kind comment! I’m so glad my video helped you in some way, and I hope you enjoy organizing thoughts in Obsidian! It’s such a cool program.

Leave a Comment

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.

Shopping Cart
Scroll to Top