Auto Note Importer

by uppinote
5
4
3
2
1
Score: 56/100

Description

The Auto Note Importer plugin streamlines the process of syncing notes from Airtable (support for more database is planned) directly into your vault. It fetches records and turns them into Markdown files with structured YAML frontmatter, letting you define where the notes should go, how they're named, and what template they should follow. Notes can be synced manually or on a recurring schedule, with options to prevent duplicates by tracking a primary field. It also handles a wide variety of Airtable field types, including nested data like attachments and user references, with support for dot notation in templates. Whether you're logging YouTube summaries or managing structured data, this plugin provides a powerful bridge between external databases and your note system.

Reviews

No reviews yet.

Stats

15
stars
2,176
downloads
2
forks
458
days
13
days
13
days
57
total PRs
0
open PRs
1
closed PRs
56
merged PRs
72
total issues
14
open issues
58
closed issues
401
commits

RequirementsExperimental

Latest Version

14 days ago

Changelog

What's Changed

New Features

  • Add Notion as a fourth database provider — fields-only sync (page properties ↔ frontmatter) (#125)

    • Supports pull, push, and bidirectional sync for Notion databases via an internal integration token
    • notion-value-converter flattens property values on pull and wraps them back into typed payloads on push (title/rich_text, select/status/multi_select, date, and ''→null to clear); people/files/relation fields are read-only
    • Schema is fetched via NotionSchemaCache and used by both the settings UI (data source dropdown, title-property filename auto-fill, field dropdowns) and the push path — schema-load failure fails fast since Notion's PATCH API requires typed payloads
    • Rate-limited to 3 rps via the existing RateLimiter; push uses sequential per-page PATCH /v1/pages/{id} (Notion has no batch endpoint)
  • Add pull-only Notion page-body sync — blocks to Markdown (#128)

    • Opt-in per config (Sync page body, default off): fetches the page content below the properties into the note body on every pull
    • Converts headings (toggleable → foldable callouts), lists/to-dos, toggles, quotes, callouts (emoji → callout type), code, equations, tables, columns, and synced blocks; media and attachments arrive as links
    • New {{body}} template variable (a real body field still wins for backward compatibility); per-note request budget and depth caps degrade oversized pages to truncation markers instead of failing the sync
    • Body is pull-only in v1 — Notion is the source of truth; local body edits are overwritten on pull (follows Allow overwrite)

Bug Fixes

  • Preserve ISO datetimes when writing frontmatter (#128)
    • The shared YAML formatter clipped any ISO datetime to its date part, so datetime fields lost their time on pull and bidirectional pushes overwrote remote timestamps with midnight — affected Airtable, SeaTable, and Notion alike
  • Guard object-shaped attachment and link field types from being pushed to remote (#121)
    • Adds multipleAttachments to Airtable's OBJECT_SHAPED_TYPES — previously pushed stringified garbage to the write API (422 errors / value corruption)
    • Adds file, digital-sign, and link to SeaTable's OBJECT_SHAPED_TYPES to match their API value shapes
    • Enforces the push guard at runtime in SeaTableClient.batchUpdate via a lazily-cached column-type map — the prior Airtable-only FieldCache gate was not reached on the SeaTable push path
    • image (URL-string array) and multipleRecordLinks (id-string array) remain pushable as they round-trip correctly through YAML frontmatter
  • Guard trashed Notion pages and coerce numeric checkbox values on push (#126)
    • fetchNotes and fetchRecord now skip pages where in_trash: true, preventing trashed content from being re-synced or used in conflict resolution
    • Checkbox push now accepts 0/1 in addition to booleans and "true"/"false" strings — some editors round-trip YAML booleans as integers
  • Fix false conflict detection over computed/non-pushable columns for all providers (#127)
    • SeaTable, Supabase, and Notion no longer raise spurious conflicts (or fail records in manual mode) over formula, rollup, and other non-writable fields
    • Push filtering now runs for every provider via a new fetchFieldMetadata() contract on DatabaseProvider, replacing an Airtable-only gate in the orchestrator
    • Supabase preserves the existing non-updatable-view guard; Notion retains its documented fail-fast push behavior

Documentation

  • Rebuild README around a 4-provider support matrix and collapsible per-provider guides (#130)
    • Adds a capability matrix (Pull / Push / Computed / Body) as the opening reference, making provider coverage visible at a glance
    • Rewrites Quick Start as collapsible <details> sections per provider, including a new Notion setup guide (integration token → share via Connections → data source → body-sync toggle)
    • Replaces the ASCII sync diagram with Mermaid and converts the troubleshooting section to a symptom → check table
    • Moves contributor-only content (Supabase demo SQL, e2e env keys, Notion test schema) to tests/e2e/README.md

README file from

Github

Auto Note Importer

GitHub Actions Workflow Status GitHub release (latest SemVer) GitHub Downloads (all assets, all releases)

Two-way sync between your databases and your Obsidian vault. Point it at Airtable, SeaTable, Supabase, or Notion — it pulls rows in as notes, pushes your edits back, and keeps computed fields fresh.

Provider Pull → notes Push edits back Computed fields Page body
Airtable ✅ formula / rollup / lookup
SeaTable ✅ formula / link-formula
Supabase ✅ generated columns
Notion ✅ page properties ✅ formula / rollup ✅ blocks → Markdown (pull)

Built on a provider-agnostic core — every provider gets the same multi-config, conflict-resolution, and safety machinery.

Settings screenshot

✨ Highlights

  • Sync your way — manual commands, scheduled intervals, or auto-sync on file change; several configurations (different bases / tables / folders) run side-by-side
  • Bidirectional & conflict-aware — push frontmatter edits back, resolve collisions with Manual / Obsidian wins / Remote wins, and auto-refetch server-computed values after a push
  • Safe by default — read-only and object-shaped fields never get clobbered; filename/subfolder pickers only offer types that make valid names; unknown types fail closed
  • Notes that feel native{{field}} templates (incl. {{body}} for Notion page content), subfolder organization by field value, Bases-friendly YAML frontmatter

📦 Installation

  1. Settings → Community plugins → Browse → search "Auto Note Importer" → Install & Enable
  2. Add a credential for your provider (below), then create a sync configuration

🚀 Quick Start

The 3-step shape is the same for every provider: get a token → add a credential → pick table & folder. Expand yours:

  1. Visit the Airtable Tokens pageCreate new token
  2. Scopes: data.records:read (import) · data.records:write (bidirectional) · schema.bases:read (field pickers)
  3. Choose your bases → Create token → copy the PAT
  4. In the plugin: Add credential → Airtable → paste → then pick Base → Table → View (optional) → Filename / Subfolder fields
  1. Open your SeaTable base → ⋯ → Advanced settings → API Tokens → Add API Token with Read and write
  2. Copy the token (it is base-specific — one token per base) and note your server URL (https://cloud.seatable.io unless self-hosted)
  3. In the plugin: Add credential → SeaTable → paste token + server URL → pick Table → View (optional) → Filename / Subfolder columns
  1. Project Settings → API: copy the Project URL and an API keyPublishable (sb_publishable_…) recommended; legacy anon JWT also works; secret/service_role bypasses RLS (the plugin auto-detects and warns)
  2. Make sure your schema is listed under Settings → API → Exposed schemas (public already is)
  3. In the plugin: Add credential → Supabase → paste → pick Schema → Table → View (optional) → Primary key column → Filename / Subfolder columns (dropdowns auto-populate from your project's OpenAPI spec)
  4. Publishable-key users: Supabase blocks schema introspection for publishable keys, so a one-time setup banner appears with a SECURITY DEFINER SQL function — Copy SQL → run it in the Supabase SQL Editor → Verify. Saving is blocked until verified (fail-closed); anon/secret keys skip this entirely.
  1. Create an internal integration at notion.so/profile/integrations and copy the token (ntn_…)
  2. Share your database with the integration: open the database in Notion → ⋯ → Connections → add your integration (without this, the plugin sees zero data sources)
  3. In the plugin: Add credential → Notion → paste the token (Test connection reports how many data sources are shared) → pick a data source — the filename field auto-fills from the title property
  4. Optional: enable Sync page body (pull-only) to bring the page content below the properties into the note body as Markdown. ⚠️ The body is pull-only — Notion is the source of truth, and local body edits are overwritten on the next pull (follows Allow overwrite).

Then set the destination folder, an optional template, and toggle bidirectional sync if you want edits flowing back. Multiple configurations switch via the tab bar at the top of the settings panel.

🕹 Commands

Every command is labeled with the active config's provider (Ctrl/Cmd + P):

Command Description
Sync current note from {provider} Refresh the active note from the remote
Sync all notes from {provider} Import / update everything
Sync current / modified / all to {provider} * Push local frontmatter edits
Bidirectional sync current / modified / all * Push → wait for formulas → pull computed values

* Hidden unless Enable bidirectional sync is on. Scheduling: Sync interval (minutes, 0 = manual) and Watch for changes (queue a sync when a note is edited).

⚙️ Settings Guide

Setting Description
Credential Pick a registered credential (any provider)
Base / Table / View Provider-aware pickers (Airtable Meta API · SeaTable metadata · Supabase OpenAPI · Notion data sources)
Filename field Field used for note filenames — only name-safe types are offered
Subfolder field Optional — organize notes into destination/value/ subfolders
New file location Destination folder in your vault
Template file Optional {{field}} template
Sync interval Auto-sync frequency in minutes (0 = disabled)
Allow overwrite Update existing notes vs skip duplicates
Sync page body (Notion) Pull the page's block content into the note body — pull-only, overwrites local body edits
Setting Description
Enable bidirectional sync Allow Obsidian → remote pushes
Conflict resolution Manual (notify & skip) · Obsidian wins · Remote wins
Watch for file changes Auto-queue a push when a synced note is edited
Auto-sync computed fields After pushing, pull back formulas / rollups / generated columns
Computed-field sync delay ms to wait for the remote to recompute (default 1500)

Each provider's native types map to a normalized taxonomy (text / number / date / boolean / single-select / multi-select / attachment / link / computed / system). Read-only and object-shaped types are excluded from pushes automatically — fail-closed for anything unknown.

Airtable — filename-safe: singleLineText, singleSelect, number, formula · read-only: formula, rollup, count, lookup, externalSyncSource, aiText, button, createdTime, lastModifiedTime, createdBy, lastModifiedBy, autoNumber · full reference →

SeaTable — filename-safe: text, single-select, number, auto-number, formula · read-only: formula, link-formula, button, ctime, mtime, creator, last-modifier, auto-number · never pushed (object-shaped): collaborator, geolocation, file, digital-sign, link

Supabase — filename-safe: string, string:uuid, integer (+ :readonly variants) · read-only: anything the PostgREST spec flags readOnly (generated columns, view columns) · mapping: text/uuid → text, integer/numeric → number, boolean → boolean, date/timestamptz → date, json(b) → text, arrays → multi-select

Notion — filename-safe: title, select, status, number, email, phone_number, unique_id · read-only: formula, rollup, created_time/by, last_edited_time/by, unique_id, button · pushable: title, rich_text, number, checkbox, select, status, multi_select, date, url, email, phone_number (object-valued ones are rebuilt into the API shape on push) · never pushed: people, files, relation

🔄 How It Works

flowchart LR
    O[Obsidian notes] -- "push writable fields" --> R[(Remote DB)]
    R -- "computes formulas / rollups" --> R
    R -- "pull rows + computed values" --> O
    R -- "Notion blocks → Markdown body (pull-only)" --> O
  • Identity: every note carries the remote record id in primaryField frontmatter — the immutable handle for matching
  • Filenames: your chosen field → fallback to record id → sanitized for every OS
  • Subfolders: destination/field-value/note.md, nested paths supported, duplicates detected recursively
  • Conflicts: when the same field changed on both sides, your chosen mode decides (Manual notifies and skips the field)
  • Notion body: fetched per page through a rate-limit budget, converted block-by-block (headings, lists, toggles → callouts, tables, code, equations…) — attachments and media arrive as links

📝 Templates

---
title: "{{Title}}"
status: "{{Status}}"
created: "{{Created time}}"
---

# {{Title}}

{{body}}          <!-- Notion page content (when Sync page body is on) -->

## Attachments
{{Attachment.0.url}}
  • Nested access: {{Attachment.0.url}}, {{User.name}} · {{body}}: the fetched Notion page body (a real field named body wins, for backward compatibility)
  • Multi-line values become YAML block scalars automatically; without a template, the plugin builds a sensible default note
  • Template examples & best practices →

🔗 Obsidian Bases

Frontmatter is emitted with Bases-friendly YAML types — import a folder, point the Bases plugin at it, and edit your database in table/card views.

🔐 Permissions & Disclosures

Nothing is sent anywhere except the database APIs you configure; there is no telemetry.

  • Vault file enumeration (vault.getAllLoadedFiles, getAbstractFileByPath) — find notes to sync and power folder/file autocomplete. Paths only; contents are read on demand by the sync flow.
  • Vault read & write (read, create, modify, createFolder, adapter.exists) — import records to .md, parse frontmatter for pushes, write computed values. Scoped to your configured destination folders.
  • Vault change events (vault.on) — detect edits for Watch for changes; the handler filters to your destination folder before queuing.
  • Clipboard write (navigator.clipboard.writeText) — only the Supabase "Copy SQL" button; clipboard is never read.
  • Base64 decode (atob) — locally decodes the pasted Supabase key's JWT payload to auto-detect its kind and show the right RLS warning; never stored or transmitted.
  • Network requests (Obsidian requestUrl) — REST calls to Airtable / SeaTable / Supabase / Notion only, using credentials you registered. No third-party services, no analytics, no update checks.

🛠️ Troubleshooting

Symptom Check
No fields in dropdowns Token permissions/scopes; base & table selection
Notion: "0 data sources shared" Share the database with your integration: ⋯ → Connections in Notion
Bidirectional not working Write permission (Airtable data.records:write · SeaTable "Read and write" token)
Formulas not updating after push Increase Computed-field sync delay
Supabase: empty results / RLS denial Your key respects RLS — add SELECT/INSERT/UPDATE policies for the table
Notion body slow on big pages Body fetching is rate-limited (~3 req/s) with a per-note request budget; very deep pages get a truncation marker
Filename errors The chosen field's type must be in the provider's name-safe list
Local body edits disappear (Notion) By design in v1 — body is pull-only and Notion wins; keep local prose outside synced folders

Contributor docs (e2e suites, Supabase demo schema, Notion test setup): tests/e2e/README.md

☕ Support

If this plugin is useful to you:

📄 License

MIT

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
2Hop Links
5 years ago by Tokuhiro Matsuno
Abbrlink
2 years ago by Q78KG
Admonition
5 years ago by Jeremy Valentine
Adds admonition block-styled content to Obsidian.md
Advanced Merger
3 years ago by Anto Keinänen
Air Quotes
3 years ago by Alan Grainger
Plugin for Obsidian. Search and insert quotes from a source text as you type. This is great for reading a physical book or eReader while taking notes on a separate laptop or phone.
Apple Books - Import Highlights
3 years ago by bandantonio
⚡️Fastest Apple Books highlights importer to Obsidian 🗄️ The only one protecting your own reflections across imports 🎨 Fully customizable
Are.na unofficial
3 years ago by 0xroko
Unofficial Are.na plugin for Obsidian
Arweave Uploader
2 years ago by makesimple
Asciidoctor editor
2 years ago by dzruyk
Obsidian asciidoc editor plugin
Audio Notes
4 years ago by Jason Maldonis
Easily take notes on podcasts and other audio files using Obsidian Audio Notes.
Auto Note Mover
5 years ago by faru
This is a plugin for Obsidian (https://obsidian.md).
Autogen
3 years ago by Aidan Tilgner
A plugin to use a language model to fill in parts of notes.
Awesome Reader
4 years ago by AwesomeDog
Make Obsidian a proper Reader.
Beautiful Contact Cards
2 years ago by Seth Tenembaum
A plugin for the Obsidian text editor which renders "contact" code blocks with tappable links for phone, social media, etc.
BibTeX Manager
2 years ago by Akop Kesheshyan
Create literature notes in Obsidian from BibTeX entries, display formatted reference lists, and instantly generate citations.
Book Search
4 years ago by anpigon
Obsidian plugin that automatically creates notes by searching for books
Chat clips
a year ago by sleepingraven
Record chat in ordinary markdown list.
Colorful Note Borders
3 years ago by rusi
Confluence Sync
2 years ago by Prateek Grover
Obsidian plugin for obsidian confluence sync
create folder notes with dropdown
2 years ago by Sturdy Shawn
Create List of Notes
2 years ago by Andrew Heekin
Create Note in Folder
3 years ago by Mara-Li
Set a folder in settings and get directly a command to create a note in it. Use this with QuickAdd/Button to get more pratical things :D
Current Folder Notes
2 years ago by Pamela Wang
Shows notes in the current folder, useful for writing novels
Custom Note Width
3 years ago by 0skater0
Set the line width for each note individually in Obsidian. Works with a slider, pill presets, YAML frontmatter and hotkeys.
Daily Notes Editor
4 years ago by boninall
A plugin for you to edit a bunch of daily notes in one page(inline), which works similar to Roam Research's default daily note view.
Daily Random Note
2 years ago by Alexandre Silva
Daily Random Notes in Obsidian.
Daily Summary
2 years ago by Luke
Desk
3 years ago by David Landry
A desk for obsidian
Dice Roller
5 years ago by Jeremy Valentine
Inline dice rolling for Obsidian.md
Dynbedded
4 years ago by Marcus Breiden
Embed snippets, templates and any linkable by delegating the current scope to the embedded file either by using a direct reference or as reference with date naming format relative from today. Also supports Quoth Codeblocks.
Easy Bake
3 years ago by mgmeyers
Compile many Obsidian notes down to one.
File Explorer Note Count
5 years ago by Ozan Tellioglu
Obsidian Plugin for viewing the number of elements under each folder within the file explorer
Focus Mode
5 years ago by ryanpcmcquen
Add focus mode to Obsidian.
Folder Note
6 years ago by xpgo
Plugin to add description note to a folder for Obsidian.
Folder notes
3 years ago by Lost Paul
Create notes within folders that can be accessed without collapsing the folder, similar to the functionality offered in Notion.
Folder Periodic Notes
2 years ago by Andrew Heekin
From Template
5 years ago by mo-seph
Simple plugin to create Notes from a template, and fill in fields defined there
Highlight Public Notes
5 years ago by dennis seidel
iCloud Contacts
3 years ago by Truls Aagaard
Obsidian plugin that imports contacts from iCloud and manages a note for each contact.
Icons
6 years ago by Camillo Visini
Add icons to your Obsidian notes – Experimental Obsidian Plugin
iDoRecall
3 years ago by dbhandel
iDoRecall Obsidian plugin
Instant Above Divider
2 years ago by SedationH
Instapaper
3 years ago by Instapaper
Official Instapaper plugin for Obsidian
Journaling
2 years ago by Ordeeper
View daily notes in a journal-like format, similar to Logseq. It enhances note organization and facilitates better reflection by consolidating daily notes into a continuous journaling view.
Kindle Highlights Importer
3 years ago by MovingMillennial
Kinopoisk search
2 years ago by Alintor
Obsidian Kinopoisk plugin
KOReader Sync
5 years ago by Federico "Edo" Granata
Obsidian.md plugin to sync highlights/notes from koreader
Korean Book Search
a year ago by lazerfit
도서 메타데이터 자동 입력 플러그인
Live Variables
2 years ago by Hamza Ben Yazid
Define variables in your note's properties and reuse them throughout your content.
MD Butler
15 days ago by Peter Petschownik
Automatically manages YAML frontmatter fields for all notes. A reliable alternative to Templater formulas for consistent metadata.
Merge Notes
3 years ago by fnya
Merge Notes is Plugin for Obsidian
MOC Link Helper
2 years ago by Bogdan Codreanu
This obsidian plugins allows you to quickly see which notes you need to include in your MOC.
Multi Properties
3 years ago by fez-github
Plugin for Obsidian that allows user to add properties to multiple notes at once.
my anime list text exporter
2 years ago by XmoncocoX
a plugin who create an obsidian page for an anime with the data from my anime list.
New Note Content Pusher
4 years ago by Henry Gustafson
An Obsidian plugin to add (prepend or append) specified content to a note (existing or new) without opening another pane.
Note archiver
3 years ago by thenomadlad
Note Companion Folder
2 years ago by Chris Verbree
A Obsidian Plugin providing a way to associate a folder to a note
Note Refactor
6 years ago by James Lynch
Allows for text selections to be copied (refactored) into new notes and notes to be split into other notes.
Note Splitter
2 years ago by Trey Wallis
Split a note into individual notes based on a delimiter
Notes Sync Share
3 years ago by Alt-er
Sync and share (publish) your notes in your own private service.
Old Note Admonitor
4 years ago by tadashi-aikawa
Ollama Chat
3 years ago by Brumik
A plugin for chatting with you obsidian notes trough local Ollama LLM instead of Chat GTP.
OZ Calendar
3 years ago by Ozan Tellioglu
Obsidian plugin to display notes on a calendar based on YAML frontmatter or file names
Periodic Notes
6 years ago by Liam Cain
Create/manage your daily, weekly, and monthly notes in Obsidian
Pinned Notes
2 years ago by vasilcoin002
Podcast Note
5 years ago by Marc Julian Schwarz
A plugin for the note taking app Obsidian that lets you add podcast meta data to your notes.
PodNotes
4 years ago by Christian B. B. Houmann
PodNotes is a plugin for Obsidian that helps the user write notes on podcasts.
Power Search
5 years ago by Aviral Batra
Prettier Format
6 years ago by Andrew Lisowski
Format obsidian.md notes using prettier
Print
2 years ago by Marijn Bent
Print your notes directly from Obsidian
Protected Note
3 years ago by Mikail Gadzhikhanov
Plugin for Obsidian
Quarto Exporter
2 years ago by Andreas Varotsis
Export Obsidian notes to Quarto-compatible QMD files.
Quick File Name
2 years ago by Wapply
This Obsidian plugin generates a note with an random string as file name.
Quick note
3 years ago by James Greenhalgh MBCS
Create New note from right-clicking app icon
Quick Notes
2 years ago by Sean McOwen
QuickAdd
5 years ago by Christian B. B. Houmann
QuickAdd for Obsidian
Quickly
3 years ago by Sparsh Yadav
Quick capture to obsidian note
random-retrieval
2 years ago by Rachninomav
Session Notes
2 years ago by tabibyte
A plugin for Obsidian to create temporary & session notes that will be deleted when session ends
Sets
3 years ago by Gabriele Cannata
Share as ZIP
2 years ago by Till Friebe
Slurp
2 years ago by inhumantsar
Slurps webpages and saves them as clean, uncluttered Markdown. Think Pocket, but better.
Smart Random Note
6 years ago by Eric Hall
A smart random note plugin for Obsidian
Smart Rename
3 years ago by mnaoumov
Obsidian Plugin that helps to rename notes keeping previous title in existing links
Source Code Note
3 years ago by Waiting
The obsidian plugin can help you organize source code note easily.
Spotify Link
3 years ago by Studio Webux
Obsidian.md Plugin to include the song or episode you're currently listening to in your note.
Sticky Notes
a year ago by NoPoint
Obsidian Sticky Notes Plugin
Structured
5 years ago by dobrovolsky
Sync Cnblog
2 years ago by zhanglei
同步文章到博客园
Timeline View
3 years ago by b.camphart
Obsidian plugin for viewing your notes linearly based on a given property
Title renamer
2 years ago by Peter Strøiman
Obsidian plugin to keep title in markdown synced with tile name
Tolino notes Importer
3 years ago by juergenbr
Obsidian plugin to import notes from a Tolino E-Reader
Tracker
5 years ago by pyrochlore
A plugin tracks occurrences and numbers in your notes
Vault Review
2 years ago by Alexander
This plugin allows you to create a snapshot of your vault and randomly review files from it 1-by-1.
Weread Plugin
4 years ago by hank zhao
Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault.
Weread Vault
a month ago by 茜宁郑
Sync WeRead highlights, import book lists, and connect personal reading notes in Obsidian.
Widgets
3 years ago by Rafael Veiga
Add cool widgets to your notes or your dashboard in Obsidian
Wikipedia
5 years ago by Jonathan Miller
Grabs information from Wikipedia for a topic and brings it into Obsidian notes
Xiaohongshu Importer
a year ago by bnchiang96
An Obsidian plugin to import Xiaohongshu (小红书) notes into your vault. Extract titles, content, images, videos, and tags from share links, with customizable categories and optional local media downloads.
YouTube Template
3 years ago by sundevista
📺 A plugin that would help you to fetch YouTube videos data into your vault.
ZettelGPT
3 years ago by Overraddit
Turbocharge Your Note-taking with AI Assistance
Zettelkasten Outliner
3 years ago by Tyler Suzuki Nelson
Zotero Desktop Connector
4 years ago by mgmeyers
Insert and import citations, bibliographies, notes, and PDF annotations from Zotero into Obsidian.