Keeping Up - Relationship Management using Coda
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:
The Tech Details
I used Coda.io - 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’.
- 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.
- Create a calendar data table, using the Google Calendar ‘pack’ that comes with Coda. You can easily configure automatic periodic re-sync.
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:
- 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.
- 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.
- 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.
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.
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.