A lightweight CRM (Customer Relationship Management) plugin for Obsidian that leverages native functionality to manage contacts and interaction notes.
- Quick Note Capture: Rapidly create notes linked to people with a single keyboard shortcut
- Auto-Create People: When adding a note, type a new name to automatically create a person file
- Native Integration: Uses standard Obsidian wikilinks, backlinks, and frontmatter
- Customizable Templates: Define your own templates for people and notes
- Last Contact Tracking: Automatically updates the last contact date when you add a note
- Clone this repository
- Run
npm installto install dependencies - Run
npm run buildto build the plugin - Copy the contents of the
dist/folder to your vault's.obsidian/plugins/obsidian-crm/directory - Enable the plugin in Obsidian's Community Plugins settings
- Download the latest release (
main.js,manifest.json,styles.css) - Create a folder called
obsidian-crmin your vault's.obsidian/plugins/directory - Copy the downloaded files into this folder
- Enable the plugin in Obsidian's Community Plugins settings
| Command | Description |
|---|---|
| Quick add CRM note | Open the person selector, choose or create a person, then add a note |
| Create new person | Directly create a new person file |
| Open person file | Quick search and open an existing person |
| Add note to current person | When viewing a person file, quickly add a note for them |
After installation, you can assign keyboard shortcuts in Obsidian's Hotkeys settings. Recommended:
Ctrl/Cmd + Shift + N: Quick add CRM noteCtrl/Cmd + Shift + P: Open person file
The plugin creates and uses the following structure:
CRM/
├── People/
│ ├── John Smith.md
│ └── Jane Doe.md
└── Notes/
├── 2024-01-15 - John Smith - Coffee meeting.md
└── 2024-01-16 - Jane Doe - Project discussion.md
Each person is a markdown file with frontmatter:
---
name: "John Smith"
company: ""
email: ""
phone: ""
tags: []
created: 2024-01-15
last_contact: 2024-01-20
---
## About
## Contact HistoryNotes are linked to people using wikilinks:
---
person: "[[John Smith]]"
date: 2024-01-20
tags: []
---
## Summary
## Action Items
- [ ]
## NotesThis plugin is designed to work with Obsidian's built-in capabilities:
Open any person file and check the Backlinks pane to see all notes referencing that person.
Your CRM data will appear in the graph view, showing connections between people and notes.
Use Obsidian's search to find notes by content, tags, or frontmatter properties.
If you have Dataview installed, you can create powerful queries:
TABLE last_contact, company
FROM "CRM/People"
SORT last_contact DESC
LIST
FROM "CRM/Notes"
WHERE contains(person, "John Smith")
SORT date DESC
Use tags in frontmatter to categorize people (#client, #lead, #partner) and notes (#meeting, #call, #email).
| Setting | Description | Default |
|---|---|---|
| CRM Folder | Root folder for CRM data | CRM |
| People Folder | Subfolder for person files | People |
| Notes Folder | Subfolder for note files | Notes |
| Note Name Format | Template for note filenames | YYYY-MM-DD - {{person}} - {{title}} |
| Person Template | Markdown template for new people | (see defaults) |
| Note Template | Markdown template for new notes | (see defaults) |
-
Quick Capture Workflow: Press your hotkey, start typing a name, press Enter to select/create, type a title, press Enter to create and open the note.
-
Review Contacts: Create a Dataview query on your daily note to see people you haven't contacted recently.
-
Meeting Prep: Before a meeting, open the person's file to see all your previous interactions via backlinks.
-
Custom Properties: Add any additional frontmatter properties you need (e.g.,
linkedin,birthday,role).
# Install dependencies
npm install
# Build for development (with watch)
npm run dev
# Build for production (outputs to dist/)
npm run buildThe production build outputs to the dist/ directory containing just the files needed for installation:
main.js- The bundled plugin codemanifest.json- Plugin metadatastyles.css- Plugin styles
MIT