How I created an Automated Relationship Management tool using Coda & Zapier

Nathan Ganser
Nat - Personal CRM
Published in
3 min readJul 21, 2019


It’s really since the beginning of my professional life that I realized I’d need a Personal Relationship Management. And I needed it now. I tried everything, From Cloze to Conduit, UpHabit to Streak, spreadsheets and more.

While Conduit was probably the tool that was the closest to what I needed (and I still use it today, besides my own PRM), I needed other key features and I knew that the only option was to build it myself.

Why Coda instead of Google Sheets

I’ve tried both, don’t worry. The reality is that while Google Sheets offer much more complex integrations, those are much more complex to set up and easier to break. What I really like with Coda is the ability to do complex things easily. Furthermore, I know that those features will be solid and that they won’t break if I do a silly mistake.

How I built a Relationship Management Tool

Requirements for a PRM

  1. It has to Sync with the communication tools I use most: Gmail, Twitter, Slack & Facebook Messenger.
  2. It has to be automated (I don’t want to do data entry on a daily basis)
  3. It had to be actionable (I want to know when I lose touch with someone and I want to be able to take actions inside the tool — Coda is amazing for that)

While I would have loved it to sync with more tools, unfortunately there simply are some technical limitations that prevent anyone from connecting to Whatsapp (which is encrypted) or Instagram.


Demo of my Coda doc

This is Coda’s UI. Every contact gets a Relationship Score, based on his Relationship Level, the number of interactions we had and the duration of our total friendship.

For context, the relationship level is simply a way to represent my closeness with someone: You don’t want the same level of closeness with your coworker than your uncle who lives far away.

I’m always improving the Relationship Score but currently, it looks something like this:

[Total Days Since We Met]*[Relationship Level]/4 +([Total Interactions]*([Relationship Level]/0.1)*3)

Then, I also have a boolean Blacklisted button that allows me to hide contacts that were synced by mistake and with whom I don’t want to stay in touch with (newsletters, support agents, …).

Finally, I have a Reached Out button to log in interactions that did not happen in one of the tracked tools.

That’s about it for the Coda part.

Setting up automations with Zapier

The basic template for all my Zapier automations looks like this:

  1. Zapier looks for new emails, tweets, Facebook message and so on…
  2. When it finds one, it looks in Coda if the contact exists already. If not, it creates a new contact.
  3. Then, Zapier looks up the current relationship score in Coda
  4. And adds 1 to it if it’s an email, 0.5 if it’s a tweet, …
  5. And pushes this new number back to Coda.

It works the same for Twitter and Messenger.


While Coda is free, Zapier costs me 20$ per month to run these complex automations.


While this is only an MVP, it’s already a great sign that my team and I can pull this off. It is also giving us unique insights into how to build the real app.

If you can’t wait for us to launch Nat, ping me and I’ll help you create this Coda/Zapier PRM.