Task IDs (Notion)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

How to implement something like task IDs or card IDs in Notion, similar to Trello - Card-IDs (Trello)?

There seems to be no out-of-the-box solution, but there is a global ID for each entity.

Additionally, there are some workarounds that seem quite convoluted


Approaches to create task- od card IDs:

  • Manual
  • Global IDs
  • Notionthings.com: Create real IDs, from Global IDs + joined table
  • Datestamp-IDs: Create IDs based on creation datestamps of objects
  • NotionPlusID
  • API ?


Just add a field Task-ID or Card-ID and give it manually a number, when needed.


Rows of database tables do have a global ID. They can be retrieved with the function id(). They are quite long and unwieldly, like cef53e69b99d426f8ad5a00bd9f6e5f3.


Solution here from Notionthings.com. I think it's as impressive as it may be convoluted.

How it seems to work:

  • Create a database table used for ids only - id table
  • Relate a database table that needs IDs to this table
  • In the main table, have a rollup function that copies the id() value from the id table
  • Do some rollup stuff back-and-forth between these tables, that eventually count the number of commas that separate those ids
  • Use that count +1 as the id for the next row.

Let's see if there are easier solutions.


Datestamp IDs

Derive an ID from the Created time date/time stamp. E.g.:

Step 1:

toNumber((prop("Created time"))


Step 2:

toNumber((prop("Created time"))/10000


Step 3:

  • Note that the timestamps are 9 character long
  • Keep the last 4 digits Unix Epoch Time
slice(format(toNumber((prop("Created time"))/10000),5)



  • There is about 0.7% change that multiple cards get the same ID, when your project has 70 cards
  • The sequence of IDs might cycle multiple times during the project, going from 9xx to 0yy, which might be confusing. To avoid this, you probably need 6 to 8 digits, which I personally think, is quite unwieldly
  • You need all 4 digits at any time. It doesn't start e.g., at code '1'.

Conclusions: Too messy to my taste.


[1]: A free extension to generate automatically incrementing ticket numbers. It can be run as-is or self-hosted

How it seems to work - When self-hosted [2]:

  • Deploy something within a free Terraform account - Middlewhere?
  • Deploy the app within a free Google Cloud Platform account
  • Enable NotionPlusID in your Notion database.

To use the 'SAAS' version:

  • Just click on the website at the button to install it
  • Grant permissions
  • Create in a database table a field called PlusID, type number and it will become an ID-field
  • The trick is, that the title has to be exactly PlusID (bit weird, in certain ways).

What I really like about NotionPlusID: It shows me, that you can make sophisticated stuff in a user-friendly way in Notion. I'm only less thrilled that you have to use a 'trick' to enable an ID column, that actually breaks the structure of the system: Functionality now depends on the name of the column.


I guess you can program it yourself through the API - In the end, that's what NotionPlusID does.

See also