When I meet with the same person multiple times, I feel bad when I don’t remember “the little things” about them. I want to have an easy way to extract personal details (e.g. college attended, favorite foods, kids’ names, partner name, etc…) from meeting notes into a Person page for individuals with whom I speak on a regular basis. This will also help me to thoughtful things for them over time that are personal to them.
Solution:
I include the snippet below in the Personal Notes section (header 2) of my Person template:
All of my Person notes in my People folder are titled with just the person’s name. So, the above snippet allows me to type the person’s name (caps sensitive) as inline metadata in any note, extract those details, and aggregate that text in the hub note for that Person. The line gets printed in the Person note as the actual text rather than just the link to the file.
E.g. if I write the below in any note, what will get printed in the Zack Ellis page will be “kids are Pinky and The Brain”
title: DQL10_pull_person_note_metadata_into_meeting_note_by_using_file.outlinks =>1.To break up a list `this.file.outlinks` into each individual element `P` 1.1 `this.file.outlinks`: a list of links 1.2 `P`: a link 2.To filter by `P.file.name` 3.To filter by `P.tags` 4.To display the result as a table
collapse: close
icon:
color:
```dataview
TABLE WITHOUT ID
P AS "person",
P.children AS "children",
P.hobbies AS "hobbies"
FROM "100_Project/02_dataview/Q23_meeting/Q23_test_data/Meeting/20221217_meeting.md"
FLATTEN this.file.outlinks AS P
WHERE !contains(P.file.name, "Template")
WHERE contains(P.tags, "person")
```
1.To break up a list this.file.lists into each individual element L 1.1 this.file.lists: a list of links 1.2 L: a link
2.To define a field variable F_subpath 3.To define a field variable F_type 4.To filter by F_type 5.To filter by F_subpath 6.To FLATTEN L.outlinks AS P 7.To filter by P.file.name 8.To filter by P.tags 9.To display the result as a table
title: DQL20_pull_person_note_metadata_into_meeting_note_by_using_L.outlinks =>1.To break up a list `this.file.lists` into each individual element `L` 1.1 `this.file.lists`: a list of links 1.2 `L`: a link 2.To define a field variable `F_subpath` 3.To define a field variable `F_type` 4.To filter by `F_type` 5.To filter by `F_subpath` 6.To FLATTEN L.outlinks AS P 7.To filter by `P.file.name` 8.To filter by `P.tags` 9.To display the result as a table
collapse: close
icon:
color:
```dataview
TABLE WITHOUT ID
P AS "person",
P.children AS "children",
P.hobbies AS "hobbies"
FROM "100_Project/02_dataview/Q23_meeting/Q23_test_data/Meeting/20221217_meeting.md"
FLATTEN this.file.lists AS L
FLATTEN meta(L.header).subpath AS F_subpath
FLATTEN meta(L.header).type AS F_type
WHERE F_type = "header"
WHERE F_subpath = "Attendees" OR F_subpath = "Host"
FLATTEN L.outlinks AS P
WHERE !contains(P.file.name, "Template")
WHERE contains(P.tags, "person")
```
I love this, thanks! However, I’m getting a weird error now, though a bit ago I had it working perfectly. Any chance you know what’s going wrong here? See below for the error i’m getting:
I recreated this scenario in a new vault and it worked. Nothing jumps out at me as to why there is a problem. ¯\(ツ)/¯
My advice is:
Restart Obsidian and see if the query works. I’ve noticed that sometimes the Dataview plugin will “glitch out” and only a restart “fixes it”.
If it is still broken, try to isolate the issue…
a. Recreate this scenario in a new vault
b. Add one meeting at a time until the problem occurs.
c. Compare the bad meeting with a good meeting.
d. You may need to replace values in the bad meeting with those from the good one to identify bad data. Even the frontmatter.
Let me know how you get on. I suspect it is a “bad meeting” file.