Task IDs (Notion): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(11 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 7: Regel 7:
 
== Overview ==
 
== Overview ==
  
 +
Approaches to create task- od card IDs:
 +
 +
* ''Manual''
 
* ''Global IDs''
 
* ''Global IDs''
 
* ''Notionthings.com'': Create real IDs, from Global IDs + joined table
 
* ''Notionthings.com'': Create real IDs, from Global IDs + joined table
 
* ''Datestamp-IDs'': Create IDs based on creation datestamps of objects
 
* ''Datestamp-IDs'': Create IDs based on creation datestamps of objects
* ''NotionPlusID''.
+
* ''NotionPlusID''
 +
* ''API'' ?
 +
 
 +
== Manual ==
 +
 
 +
Just add a field ''Task-ID'' or ''Card-ID'' and give it manually a number, when needed.
  
 
== GlobalIDs ==
 
== GlobalIDs ==
  
The function <code>id()</code> produces ''global ids''. They are quite long and unwieldly, like ''cef53e69b99d426f8ad5a00bd9f6e5f3''.
+
Rows of database tables do have a ''global ID''. They can be retrieved with the function <code>id()</code>. They are quite long and unwieldly, like ''cef53e69b99d426f8ad5a00bd9f6e5f3''.
  
 
== Notionthings.com ==
 
== Notionthings.com ==
  
Solution [https://notionthings.com/2022/03/06/auto-increment-table-row-ids/ here] from Notionthings.com. I think it's as impressive as it may be convoluted. Let's see if there are easier a
+
Solution [https://notionthings.com/2022/03/06/auto-increment-table-row-ids/ 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 <code>id()</code> 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:
 +
 
 +
<pre>
 +
toNumber((prop("Created time"))
 +
 
 +
1674667620000
 +
1674667380000
 +
Etc.
 +
</pre>
 +
 
 +
Step 2:
 +
 
 +
<pre>
 +
toNumber((prop("Created time"))/10000
 +
 
 +
167466762
 +
167466738
 +
Etc.
 +
</pre>
 +
 
 +
Step 3:
 +
 
 +
* Note that the timestamps are 9 character long
 +
* Keep the last 4 digits [[Unix Epoch Time]]
 +
 
 +
<pre>
 +
slice(format(toNumber((prop("Created time"))/10000),5)
 +
 
 +
6762
 +
6738
 +
Etc.
 +
</pre>
 +
 
 +
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 ==
 +
 
 +
[https://notionplusid.app/]: 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 [https://github.com/notionplusid/core#how-to-run-private-notion-plus-id-for-free]:
 +
 
 +
* 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.
  
 
== See also ==
 
== See also ==

Huidige versie van 18 feb 2023 om 21:37

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:

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.

See also

Sources