How to use Obsidian as CRM with Dataview and Metadata Menu!
Vložit
- čas přidán 30. 06. 2024
- Hey everyone! In this video I will show you how you can use Obsidian as a Customer Relationship Management (CRM) with the help of two amazing community plugins: Dataview and Metadata Menu.
This combination allows you to unlock the full potential of data management inside your Obsidian Vault!
-- RESOURCES --
🎥 Obsidian Dataview Video: • Obsidian Dataview Plug...
🔗 Dataview Plugin GitHub Repository: github.com/blacksmithgu/obsid...
🔗 Metadata Menu Plugin GitHub Repository: github.com/mdelobelle/metadat...
-- CONTACTS --
Join the Discord server! / discord
Website: mindstoneconsulting.net/
X: / marco_mindstone
Mastodon: mstdn.business/@Marco_Mindstone
Medium: / marco_mindstone
-- WANT TO SUPPORT ME? --
🔥 Join my website as Insider: mindstoneconsulting.net/#/por...
☕️ Buy me a coffee: buymeacoffee.com/marco_mindstone
-- TIMESTAMPS --
00:00 Introduction
00:46 Vault Introduction
01:11 Create a classic Dataview Table
02:20 Metadata Menu Plugin
03:00 Create and Use the File Class
09:09 Create the CRM Table
11:38 Last Thoughts and Outro - Věda a technologie
Auto-updating "last updated" field would be the cherry on top, great video nevertheless.
- I'd love to be able to create a note linked to my daily note that has meeting template, so it goes to the right folder of all meeting notes.
- It could auto-set the meeting date based on the current date.
That way it becomes an auto-organizing CRM and I can simply focus on creating meeting notes from my daily notes as part of my workflow.
Thank you!!
All the things you listed should be achievable in Obsidian :)
Well this fileclass stuff is awesome....was messing with a template for books, but this ...this makes adding books fun again! Tahk you very much for this good and easy explanation. Metadata Menu....another plugin welcomed in the club
Thank you very much Logan!
Wow! Thank you for this great introduction to the Metadata Menu. Your explanation is very clear and easy to understand.
Thank you very much!
Wow!
This is just the kind of video I was hoping to find.
You explain this very, very clearly.
It seems to me that Metadata Menu is just what I was hoping to find, and does everything it can do, as a plugin.
Thank you very much, glad to hear that!
Thank you so much Marco. Detailed walkthroughs like this are so very useful to those of us who don’t yet understand how to construct such impactful queries, and combination of these to get the most out of our Obsidian data. Please keep them coming if you can. Your channel is the one I most. Check for new content.
.
Thank you very much Colin! I really appreciate that :)
I have no idea if this is realistic, but ideally, what I would hope for for the future, would be something like this:
A change to the way core Obsidian work, that enforces that properties in the frontmatter can only be created through a template.
Any metadata in any file would be ruled by its corresponding mother template forever.
Any changes to the template, including adding, subtracting, renaming properties - will automatically be applied to all notes that were created using this template in the past. While keeping values intact. (Unless the corresponding key gets deleted.)
One thing that makes Obsidian so powerful, is that it makes it possible to rename and move files, while keeping all the links intact. It seems to me that there would be great value in extending this powerful paradigm to the frontmatter.Yes, it wouldn't be possible any more to just spontaneously type out or edit properties in the front matter without going through the template - but this strikes me as analogous to how the integrity of links gets broken when I move or rename files from outside Obsidian.
What am I missing?
Are there any downsides that I am not thinking of?
Let's say that with Obsidian you can do pretty much everything even if there are some other tool that can do something specific better than Obsidian.
With that being said, the linking system and the metadata in Obsidian are very powerful. I am curious to see the Dynamic views; I hope they don't take too long to release it.
I like how you explain and demo plugins. I’ve seen that plugin in some other tutorials before but I just didn’t install... I’ll give it a try now.
Thank you very much! Let me know how it will go! ;)
This is a very nice and efficient demonstration of the capabilities of the plugin thanks
Thank you! Much appreciated! :)
Great video Marco!! Simple, straitforward and clearly explained. Gave me a few ideas for my own vault. One question, is there any way to bulk insert the missing fields of a note related to a class ? at 7:01 you did that process manually for each note, but is there a way to do it for a whole lot of them? Thank you! and once again great work!
Hey, Guillermo! Thank you very much!
You can try with the Metadata Menu option "Insert fileClass fields" under the "FileClass settings" section.
Cheers!
@@Marco_Mindstone thanks for the information and for taking the time to reply. I'll give it a try!!
Awesome video, Marco! Thanks for diving so deep into all these Obsidian topics. I'm working on setting up my vault and all your videos have been super helpful.
I tried to set this up and got to the part where you input the Dataview Query for the company field so it will auto-populate the companies you have in your vault. Mine are titled Organizations so I tweaked the wording, however, after adding in the query code and going into the field to select an organization record, it says "no results found". Did I do something wrong in the code?
dv.pages('').where(p => p.fileClass == 'Organizations').filter(p =>
!p.file.path.includes('Templates')).filter(p =>
!p.file.path.includes('Classes')).map(p => p.file.link)
Hi @AndrewChwalik and thank you!
The code is correct and I tested it in a new vault (I copied and pasted the code you wrote in the comment).
Make sure that your file class is called "Organizations" and make sure that inside the "fileClass" property field in your notes is set to "Organizations". It's a "stupid" and simple check but it's the first things you should check since the code is correct.
Let me know!
Again a great video. Yes, I would like to see videos with more in depths details.
And also more about how to make life easy.
For example: Create a new persons note. From that trigger of a new document in the persons folder (or a document type selection) a popUp appears: Enter name; Enter familyName; then create a file from that information that inclueds the personFileClaas-Tags filled with name and familyName. Maybe as an extra to this automated process also create a second file with additional information like name_familyName_extraInfo. Also in your example you have the people and the company. Is it possible to automatically create backlinks? In the peoples data there should be a field company and in the companys data there should be a field employes. If I add a company to a person ( or maybe add several persons to that company) I would like to see them as employe in the companys document. Also adding a person to the companys employe field should show up in the persons company field.
Thats how set up my CRM befour in Notion ;-)
Waiting for some new great videos - thanks
Thank you Marco!
I am actually working on a CRM Vault Template that I will release as soon as it is ready :)
Bella roba 👍
Grazie! :)
god your tutorials are awesome, can i ask what is that zooming software you are using? and can you also make a video on it too?
Thank you very much!
The software is called Screen Studio 🙂
I followed the tutorial and the dataview works but the fields aren't editable in the CRM like shown unless the input already has text in it 11:30
Hi, I tried to replicate the issue you are facing, but for me it's working.
Did you try to run a "Reload"? To do that open your command palette and search for "Reload app without saving".
Cheers
I like this plugin but i have this one doubt though - Can the whole process of creating the properties be automated? I feel that this is just doing the same thing the templater plugin is doing and with Templater the assigning of the properties is automated. An example of this is when you assign a class type to a note. This is the same as assigning a template. Maybe the only benefit is that you get the ability to modify the properties within the output of the dataview output.
Hi Omar. Templater and Metadata Menu work together.
Tamplater to automatically assign templates to your notes, Metadata Menu to manage properties directly from your tables. This is an example of a template for people notes: ibb.co/JxSkY9v
Cheers!
@@Marco_Mindstone - Ok i got it - So essentially the template will still contain the same fields as defined by the fileClass. Metadata Menu can then be used to edit those properties on files that use that template.
@@Marco_Mindstonewait....so we can add the metadata menu fields in the template that called by Templater?!
Here I've been spending time trying to get Templater to trigger the "insert missing fields in frontmatter" process (to no avail).
I'll have to try your template suggestion.
@@DionV Yes, you can create for example a “Person Template” and add the fileClass “person” to it. Every time you create a new person note and assign the “Person Template” to it, the note will be automatically a “person entity” with all the metadata menu fields that are already inside the template.
What is => in dataviewjs? It is similar/close to which programming language?
Can you make a video on this? Thanks. It is very confusing and not like python, js
Hey! The "=>" is a shorthand notation for defining functions in js. The concept can be similar to the lambda functions in python.
I would like to make tutorials on that, but I am not a programmer/developer. I think you can find better explanations on other CZcams channels about this topic :)
@@Marco_Mindstone Curious to ask but I've copied the whole code into my vault, but got an error, it said evaluation error: syntax error: Unexpected identifier 'f'
So is the first two lines in the crm table different for different people?
@@wilsonlamlyt7138 Hi Wilson, can you write here the entire code you wrote? So I can review it
@@Marco_Mindstone It's the completely same copy of yours, changing the fields to my fields with all the coding checked. I've asked about it in the discord group, and I guess the mdm plugin is starting multiple updates, possibly removing and adding various features.
@@Marco_Mindstone Here is the script if you might want to see it.
```dataviewjs
const {fieldModifier: f} =
this.app.plugins.plugins["metadata-menu"].api;
dv.table(['wanttoshowa', 'wanttoshowb'],
dv.pages('where do I want to find the notes')
.where(p => p.fileClass == 'fileClassA')
.filter(p => !p.file.path.includes('Utilities/Templates'))
.filter(p => !p.file.path.includes('Utilities/fileClasses'))
.map(p => [
p.file.link
f(dv, p, "fieldb"),
f(dv, p, "fieldc")
])
)
```
This is not working. I checked my fileClass and its company.
dv.pages(").where(p => p.fileClass == 'company').filter(p=>!p.file.path.includes('Templates')).filter(p=>!p.file.path.includes('Classes')).map(p => p.file.link)
@mixed4547 Hi, are you sure your company notes have the fileClass property set to "company"? Can you check this? I double checked the code just to be sure and it's correct.
I am having the same issue. Cannot figure out what I am doing wrong.
@@grimgorilla5305 Hi grim, it's actually working for me. If the fileClass property is set to "company", can you check if the name of the folder where the fileClass files are stored, is named exactly "Classes"?
If it's still not working, I will need more details and I suggest you to join the discord server where we can go deeper and solve this issue.
Cheers!
It seems that the syntax of dataviewjs has changed now. I changed it to this according to ChatGPT's suggestion: dv.pages()
.where(p => p.fileClass === 'company')
.filter(p => !p.file.path.includes('Templates'))
.filter(p => !p.file.path.includes('Classes'))
.map(p => p.file.link);