Keeping Up - Relationship Management using Coda

October 30, 2020
Banyan Tree

Talking with my colleagues is an integral part of my job, and like any part of my job, it’s something I like work at making more effective and efficient.

For a while, using a calendar and some well-placed recurring meetings was enough, but this began to fail once the number of people I needed to keep up with increased. Monthly meetings, and memory-driven ad-hoc 1:1s only stretch so far, especially as the overall pressure on my schedule increased.

I started to keep a spreadsheet to track people beyond the primary circle. I updated it every week or two, and it was really easy and instructive to see who I hadn’t caught up with in a long time, so I could better schedule my time.

The spreadsheet worked wonders, but updating the spreadsheet was time consuming and error-prone as it got bigger. I rebuilt it with some automation to take the manual work out. The current sheet looks something like this1 and automatically updates based on my calendar, and has some nice integrations to ease scheduling:

Final Result with List of All People and Latest Meetings
The Tech Details

I used - a doc/sheet/database which supports easy Google Calendar sync (this is in their $$ tier today), multiple views of the same data, and the ability to join and filter different data sets without much ‘code’.

  1. Create a table with a list of all the people you want to manage. I exported a list of my direct team from our org chart, and then added key peers.
List of People
  1. Create a calendar data table, using the Google Calendar ‘pack’ that comes with Coda. You can easily configure automatic periodic re-sync.
List of People
  1. Connect the two tables by creating a “Latest Meeting” Column on your People table.

    • Configure the column with “Add Formula”. It looks complex, but it’s really just chaining together 3 criteria:

      List of People
      1. Filter(CurrentValue.Attendees.Count() <= 7) : Don’t show meetings in this column with more than 7 people attending. This implements the “small” part. You can adjust this number for your particular patterns. This helps filter out less meaningful / low interaction meetings like company all-hands.
      2. Filter(CurrentValue.Attendees.Filter(CurrentValue.Email = thisRow.Email).Count() > 0): This implements the constraint that we only want meetings where the current person was an attendee.
      3. Sort(False, Events.Start).First(): Sort any events left in descending order and show only the latest one.

      Now the column should show the the last “meaningful” meeting you shared with the person.

  2. Final step, add a Latest Meeting Time column. Since we already have the latest meeting column, this is relatively trivial to do, but it’s nice to see both the name and how long ago it was at a glance.

Meeting Time Formula
Doing More

Once I got the basics working, I’ve added a couple of things:

  • A Schedule a Meeting button next to each person. The button can send a reach-out email directly to the person, or send a meeting request email to a coordinator who can help schedule it.
  • I created filtered view of this table called People I need to talk to - all the people who I haven’t talked to in over 30 days. Once a week, the Coda doc automatically emails this to me.

  1. Using sample data, I put together working basic example in Coda. ↩︎