CRM – The final piece of the puzzle

Hi all,

as I’m tackling on a bit of a end-of-year project, I wanted to see if anyone could give me a pointer.

The idea is relatively simple: For Obsidian to function as a basic CRM.

To do this, I have utilised two scrips @czottmann has shared here and adapted for my needs:

  1. Contact to Note

    1. I have added more information (first name, middle name, last name, birthday, phone numbers, email addresses, address, coordinates)
    2. I include all this information into the note properties: Makes it nice to query via Obsidian bases and display is easy via “=this.first-name”
  2. Email to Note

    1. I let this run if a person is part of the group specified above – This way, I know that I have their email address
    2. I get the sender, to recipient, cc recipient email addresses

So far so good: I get my contacts into Obsidian and I see my emails.

Now for the next step – Linking the contact note in the email. I want to create this link both to be able to quickly navigate to the sender note but more importantly, I want to ensure that I can display all emails from and to a person in their contact note.

Basically, I want to check the email addresses in the email (e.g. the sender if it is an email I received) against the contacts and link them.

So it would work like this:

  1. Receive email e.g. from john@doe.com
  2. Check my contact notes for the john@doe.com email address, finding that I have an ‘John Doe’ note
  3. Replace/Add in front so it looks like ‘[[John Doe]] (john@doe.com)’

Looking into solutions, I see suggestions that say to create a list of email addresses and the contact note that they should resolve in. And then letting the email addresses run over them and replace them.

But I’m a bit stuck on how to integrate that into a shortcut and also wondering if this is something I do during every import or as a separate thing?

As I said, would be really glad for any pointer to close the loop – Thank you and wishing everyone a wonderful holiday period!

To follow up on this with something interesting:

We can display the address from the contact in a map in Obsidian.

What enables this, is the (new) bases plugin which features map view.

Here is how:

  1. Get the address from contact and save in a variable (e.g. ‘full address’)
  2. Then, from that variable, get longitude and latitude:

  1. Last step is to save both (first latitude and then longitude) into a property which you can then reference in the bases

Hope that helps someone else out there!

Interesting stuff so far, @LikeShootingStars! I didn’t get around to looking into this before the holidays, and I really need a couple of days off. I’ll try to contribute soon™!

Thanks @czottmann, I fully understand – Wishing you a nice holiday und einen guten Rutsch.

When you are back, looking forward to your response!

I’m back! Okay, so the issue you’re struggling with is the mapping/lookup from “incoming email sender” → contact note, do I understand this correctly?

Welcome back @czottmann – Hope you enjoyed your well-deserved break and had a good start into 2026!

Now onto the issue:

I have expanded your original Email to Note script a bit to include “sender”, “to-recipient”, and “cc-recipient".

This is then picked up in Shortcuts and the most of the meta information filled into the note properties:

These properties are the referenced in the note body to have a clean display while being able to query the meta data easily.

My question is then the following: How can I replace an email address (be it sender, to recipients, or cc recipients) with a link to a person’s note.

The desired behaviour is for the email address to be replaced with a link to a note followed by the email address e.g. john@doe.com becomes “[[John Doe]] (john@doe.com)”. And the fallback for people, I don’t have a contact note for, to simply stay the email address.

Looking into it, it seems that a solution would be to create a table from my contact notes mapping names against email addresses:

  1. Check all contact notes
  2. Create table of name and email address, e.g. John Doe – john@doe.com, John Doe – john.doe@doe.com
  3. Replace email address from email received with composite of link to note and email

But I’m a bit stuck on how to do this and how to include it into this shortcut.

So any help would be appreciated!

(FYI, I had tried to put the Appel Script code in here but got an 403 error)