Task IDs (Notion)
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
Overview
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 ?
Manual
Just add a field Task-ID or Card-ID and give it manually a number, when needed.
GlobalIDs
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.
Notionthings.com
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.
Sources:
- https://notionthings.com/2022/03/06/auto-increment-table-row-ids
- https://www.reddit.com/r/Notion/comments/v3ivmr/comment/ibkpcnq
Datestamp IDs
Derive an ID from the Created time date/time stamp. E.g.:
Step 1:
toNumber((prop("Created time")) 1674667620000 1674667380000 Etc.
Step 2:
toNumber((prop("Created time"))/10000 167466762 167466738 Etc.
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) 6762 6738 Etc.
Issues:
- 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.
NotionPlusID
[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.
API?
I guess you can program it yourself through the API - In the end, that's what NotionPlusID does.