So I’d like to know where you got the Notion data: how to sync Notion, hibob (or Workday) with Sheets

Max Brawer
3 min readSep 22, 2022

In my last post I gave the basics on how to hook Apps Script up to Notion, who have a notoriously opaque API. HR folks trying to flex their technical chops have it hard enough, so I wanted to get more content out into the world to make life easier for us.

The application here for HR:

Notion is a less-than-ideal place hosting a people directory once you really start to grow. I love the visual nature of it very much, but it isn’t a live data source and shouldn’t be tracking a fast-moving dataset. This pain is especially felt when someone quits: history be damned, all we can do is yeet their page out of Notion (and who is the “we” that’s supposed to do that?). Similarly, a job change or true history is not well supported here. Take a look at what you get from a modern HRIS like hibob.com:

Now this I can get into

In lieu of a formal integration, we can show here how to whip up an “integration” between Notion and bob or another HRIS like Workday in a few simple steps. There are a few ways to do this but for today I will:

  • Scrape the relevant page IDs & names from any existing Notion db
  • Capture them in Sheets and reconcile with existing employees
  • Build a custom field in the HRIS for Notion Page ID
  • Attach those page IDs to an employee record
  • Use scripts to pass information back and forth (a big category, I know)

On scraping down a table:

A fellow Google Dev Expert, Pablo Felip, built a very helpful scraper function that instantaneously queries the database we need into a Sheet:

This allows us to get more intimately familiar with what’s in a database without any coding. I adapted this to arrive at a Sheets table with page name, ID, and then later other details can follow from HR.

Who are you?

Employee IDs, or truly unique indicators, are weirdly hard to find out there. Gusto just added them, Google Workspace still isn’t interested, so I matched in employee ID (thanks bob for that) to have a working relational data table. Uploading this table as a csv into Workday or bob allows my systems to know one another.

Now we are connected, the world is our oyster!

With such a sheet running the show, we can push anything into the right Notion page for the right person (note: I am mindful the sheet is not essential for this, but a helpful visual backend as always. Thanks Google!). I’ll start by making an apps script automation to put live people data into the sheet along with the Notion page id:

A Sheets menu item to pull right from bob — that’s a post for another day!

…and then I can send updates:

Each row will get picked up by the script and sent on to Notion

We’ve now integrated two new and previously unwrangleable systems into one central, visual place. If you had this set up, let me know: how would you use Sheets x Notion x HR data?

Max is a Google Developer Expert and a leader in People Tech, Analytics & Operations. Opinions are the author’s own and not those of any employer. PS: I am gearing up to launch a Sheets education site, show your interest here: https://forms.gle/1KSA9Hf8qjUeXHzf6

--

--

Max Brawer

People Tech & Analytics leader @ Atlassian, formerly Twitch, BuzzFeed, Google, Nielsen | Try his apps @ sheetswizard.com