Use Notion Databases Like a Pro | Krista Lamen | Skillshare
Search

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Use Notion Databases Like a Pro

teacher avatar Krista Lamen, Certified Notion Expert

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Intro

      2:32

    • 2.

      Project Demo

      0:35

    • 3.

      Navigation

      0:35

    • 4.

      Databases

      10:23

    • 5.

      Formulas

      10:45

    • 6.

      Numbers

      5:52

    • 7.

      Text and progress bar

      10:33

    • 8.

      Relations

      8:05

    • 9.

      Rollups

      12:43

    • 10.

      Dates

      9:47

    • 11.

      Views I

      13:18

    • 12.

      Views II

      7:46

    • 13.

      Linked views

      16:20

    • 14.

      Templates

      7:52

    • 15.

      Card view enhancements

      11:10

    • 16.

      Outro

      0:37

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

1,248

Students

3

Projects

About This Class

Mastering Notion databases will help you get to new incredible horizons of structuring and organizing your life.

In this class, you will have a chance to master the top Notion features for building usable and capacious dashboards:

  • Databases
  • Formulas
  • Relations
  • Rollups

This class is not only about theory. You are supposed to be an active learner. Together we will build a Smart Habit Tracker project using all the new knowledge in practice.

If you are not familiar with programming languages and struggle to understand Notion formulas, this class will be helpful for you as well. I will do my best to provide you with a simple explanation of this tricky topic.

I hope you will get as excited as I am about Notion after learning its capabilities in this class.

And welcome to my blog on Medium to get more Notion tips and use-cases.

Meet Your Teacher

Teacher Profile Image

Krista Lamen

Certified Notion Expert

Teacher

Hello there! I'm a certified Notion expert and power user with over 4 years of dedicated experience.
I specialize in consulting, creating templates, and courses about Notion.



I worked as a software developer building huge applications. But I always wanted to create software for my personal needs, my life processes and collaborations.

My no-code adventure started from Notion. And it was the One. This tool was a missing puzzle to make it possible to craft software that is best suitable for me. This notebook of new generation opens the whole new world of no-code platforms which are powerful enough to let us create quick and flexible solutions without investing months of work into it.

Making videos is my another passion. That's why I am here sharing my knowl... See full profile

Level: All Levels

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Intro: Hello guys, welcome to my new notion class. Do you think Notion is too complicated with all its databases and formulas? Or you've heard nothing of Notion databases and just find yourself confused with all these people being so excited about another note-taking app. If you answer yes to any of these questions, this class might be very helpful for you. In this class, I will do my best to help you to get a deep understanding of Notion databases, formulas, relations, and rollups. I will explain in details this most powerful notion tools so that you get an idea of when and how to use them. We all know that learning by doing is the most efficient way to obtain a new skill. That's why the learning process in this class is built around creating a Notion project. Together, we will build a smart habit tracker in Notion, if you don't need a habit tracker, you might just go through the topics that you need most right now and then apply this new knowledge to your own Notion systems. If you aim to become an advanced notion user, I would suggest you to build this project in order to get the experience of building advanced notion systems, the project will include interconnected databases with rollups, progress bars with plenty of formulas. With this tracker, you will be able to easily get weekly and overall statistics for your habits. You will get a place to store all of your current and future routine ideas. Also, we will learn how to build an appealing and capacious views for your Notion databases and how to accelerate the process of adding new habits with Notion templates, the things you will learn while creating the habit tracker will definitely help you to create your own systems in the future. And I'm pretty sure that far before finishing the project, you will get many ideas of how to apply this new knowledge to your own Notion systems. In this class, I will not explain the very, very basics, like how to create an account, how to download the app. I will not explain the basic blocks like text, to-dos. They are pretty intuitive. What we are going to do in this class is to learn a bit more advanced notion topics like databases, formulas, relations, and roll-ups. Please don't give up at this point. If you have just installed the app, give it a try. Notion is not that hard and I will do my best to prove it. As soon as you get familiar with Notion databases and formulas, you will open new incredible horizons of structuring your data and organizing your workflows. So no more delays. Let's dive right in. 2. Project Demo: The class project that we will create together during the class is ready to use system for habit tracking. This system consists of three databases: for habit, trackers and weeks. It lets to assess the progress for every particular habit from a high-level perspective, together with the possibility to see the detailed stats, the project includes the dashboard for planning habits. With all the knowledge shared within this class, the initial structure of the project can be easily adjusted to one's particular needs and preferences. And the project can be connected to your existing planning system. 3. Navigation: In the beginning of every lesson, you will see the time codes so that you could easily navigate between different lesson parts. The hammer sign means that it's a practical part - building our class project. And I invite you to do this practical parts together with me. Еvery lesson starts with a short description of what we are going to learn and is wrapped up with a recap of updates made to the class project. If you have any question related to the class project or to the topics that we're going to learn in this class please feel free to ask them. I will be glad to help you. Now you are all set, so let's start. 4. Databases: Welcome to the first lesson. Here we will talk about Notion database concept and start building the habit tracker project. At the end of this lesson, you will have an idea of Notion databases, why this feature is so powerful and how you can use it. After finishing the practical part, you will have a notion page with trackers database in it. Your database will have columns for a tracker name and seven days of week with either checkboxes or emojis to track your daily habits progress. So let's start databases. Databases. Database in Notion is the way to structure and organize any similar pieces of data, like books, data about clients, projects, weekly reports, database might sound boring, but in fact, it allows you to organize your life in a beautiful and well structured way. Let's see an example. This is a movies database. Every row represents a distinct movie. And columns describe properties of movies like gender, year of production, how do I rate it, etc. Pretty similar to what Google tables or Excel can do. At some points Notion is less capable and less flexible then these tools. But it has a great advantage over them in how you can customize the way your data is shown and operated. Also, unlike Google tables, every database record in Notion is actually a separate page itself. You can open it, add some content into it and edit as any other Notion pages. You even can put inside another database. So Notion gives you huge freedom on structuring your data. Ok, with Notion, you can see your data as a table with rows for records and columns for particular record properties. But there are some other interesting view options. Let's check them out. The board view allows you to create a Kanban-style board which is perfect for tracking a step-by-step progress of your tasks, projects, publications for social media, and any type of data which has a step-by-step workflow. With this view, you can use drag-and-drop to easily make, for example, status changes. Also, you might want to use board view to see your data grouped by categories. Optionally, you can add a picture to your record preview to make it more attractive or informative. The timeline view represents data similar to Gantt charts and it's suitable if you want to see timeframes of your projects, employee vacations or pretty any type of data which has both start and end dates. The calendar view is good for tracking your deadlines, important events, seeing the whole month workload, etc. The list view is the most minimalistic one. It works perfectly for any types of lists like tasks for today, shopping lists, project wiki, course outlines, etc. The gallery view is perfect for books, movies, wishlists, recipes, outfits, and other types of data which might be easily visualized. In Notion you can configure several different views for the same database and switch between them. Notion allows you to apply filtering and sorting rules for a particular view. You can make notion to filter out movies you have already seen. Or if your friends ask you for a movie recommendation, you can filter your movie database to only see the top rated movies. In this class project, we will use the filtering for several cases. For example, to only see the habit trackers related to the current week. Another powerful Notion feature is possibility to create linked views for a database. It allows you to work with the same database on different Notion pages. And this feature opens incredible possibilities in organizing your workspaces and workflows in Notion. Let's imagine you have a database with your tasks. And there is a today page on which you want to only see a list of tasks for today. But on the planning page, you want to see all the uncompleted tasks together with their deadlines. It is possible with Notion. And note that updating database on one page, will make changes to other pages with this linked view of tasks database. Like if we add a new task on the planning page and assign it for today, it will automatically appear on the today page. Or another case, you have a database for your projects and another database for your tasks. And on the project page you want to only see tasks related to this particular project. It is possible with Notion and it's database Relation feature together with Templates. You even can place several linked views for the same database on the same page. Let's imagine you want to see waiting, in progress and completed tasks as three separate lists on the same page. Linked view and filters will do that for you. Moreover, you can use drag and drop to move a task between the lists. Notion will change task status implicitly according to filter settings. I hope now you're much more inspired on how Notion databases can be helpful for you, and it's time to start our class project. First of all, let's create a new empty page for your habit tracker project. I recommend to enable full-width page mode as we're going to have a lot of data on this page. Now we have to create a trackers database. Let's do it by typing "/database" and choosing "Database - Inline" in the drop-down menu. Newly created database in Notion has these two columns or properties: "Name" and "Tags". And property in Notion databases belongs to one of the predefined property types. You can see it by clicking on the property name, then "Edit property" and here in the "Type" menu, you can see all the available types. Property types are pretty intuitive. And in this class, we will actively use these ones. Every type has its own unique icon. So you can get the property type just by looking at the icon to the left of its name. We don't need "Tags" for our system, so we can just delete it. "Name" property is a special one, it is Title. Title property is created automatically and can never be deleted or hidden. Sometimes it is really inconvenient, but for this project it's okay to have it here. Just, let's give it another name. Now let's add seven new properties. One for every day of week so that we could track habit progress on daily basis. For this purpose, we will use Checkbox property. Checkbox type is perfect in case there are only two possible values for a property: yes or no, true or false. In the context of habit tracking, we're going to mark if a habit related action is done on not - just two possible values. So our needs are satisfied pretty well with Checkboxes here. You can create every new column from scratch or do the duplication, which will save you some time because the type and the column widths will be inherited from the source column and you will only have to rename the property. The cool thing about Checkboxes is that once you create a new record, empty Checkboxes are already there, and you only need to tick it if a neccessary is done. But if you want to have a bit more colourful system, then try to use Select type instead of Checkboxes, Select columns allow to choose one option from a pre-configured drop-down menu. This column type is helpful if many different records in your database might share the same values for some property. For example, many books will pertain to the same genre. Or your tasks will have statuses from a defined list of possible values like to do, in progress, etc. It is good if you know beforehand the list of possible values for the dropdown menu, but it's not mandatory. You can add new items for dropdown menu later. And now, I will show you an alternative database for trackers for those of you who prefer to have a more colourful system. Let's start from this point and add the first Select column for Monday, I will add three pre-configured values: one for success, another one for fail. And the last one for rest days, which might be used to point out that habit is not supposed to be done in this day. And now I will duplicate this column for all the other days. Time to add tracker names for these records, that Notion automatically added when creating the database, it's up to your imagination which notation to use: emojis, words, or numbers with coloured backgrounds. Now you have to spend some more time to fill the tracker. And actually you will have a bit more complicated formulas for Select columns later. But your system looks more colourful and has three instead of two options to choose from. I will return to the version with Checkboxes, as I will use this one for our class, but I will add additional explanations for the version with Selects where necessary. So you are free to choose the one you like the most. At this point, you actually can add trackers for your real habits. I will add names and some random progress to the records. We are done with this lesson. Now you are familiar with databases, their views, filtering options, and I hope now you have an idea of Linked views in Notion. We've also learned how to create a database and use Checkboxes and Select properties in practice. And in the next lesson we will start working with formulas. I'm waiting for you there. 5. Formulas: Welcome back. In this lesson, we will learn one of the most powerful features of Notion databases. I'm talking about Formulas. After finishing this lesson, you will get an idea of Notion Formulas. What are they for? How to add a Formula? What are the limitations? And we will talk in detail about if-statement. In the practical part, we will create a formula for calculating the amount of successful days in our habit tracker project for both Checkboxes and Selects versions. Okay, let's start. Formula is one of the property or column types in Notion databases. This property type is indispensable when you need to take a value from a database column and transform it in some way. You might want to sum expenses in different currencies or transform minutes to hours or concatenate several columns' texts to get a summarized description of the whole record or even visualize your progress with the progress bar. We will create one soon in this class. Of course, we could do all these calculations by ourselves. Getting back to the example with converting minutes to hours, I could fill the values for every task manually. First of all, I would have to do a lot of tedious additional work. But what is more important if at some point I realized I had made a mistake and then corrected the time in minutes. I would have to remember to change the corresponding hours value. And there would be a high probability that at some point I would just forget to do such corrections. And eventually my records would contain contradictory data. But dealing with Formula, you construct it once and it immediately starts to work for all your existing and future database records. And you don't need to fill out the Formula column manually. It calculates the result for you. After finishing the habit tracker project, as users, we will have to only mark the progress in day columns and Formulas will calculate all these statistics for us. Obviously, you have to instruct Notion to do the transformation you need in Formula property. To do this, we have to use a special language. Partly this language is described in the formula editor. Let's learn some of the most important constructs of this language so that you could start using it as soon as possible. And function number one is prop(). You will need this function to take a value from a distinct column to work with it in a Formula. The column name must be placed within parenthesis after the prop() and be rounded with quotes. You will see that parenthesis follow most of the Notion Formula constructs. Parenthesis tell Notion that everything, what's inside relates to this particular command on the left. It's also called function. We may think of prop() function as of a reference to a distinct column value. Let's return to the example with time log and see how the prop() function works. I can either type the function with the "Time spent in min" column name or pick the column from the property list in Formula editor. The second way allows you to avoid making mistakes in a column name. Anyway, if you make a mistake, Notion will tell you that it can't find a column with the name you've provided. Ok, this construction doesn't convert minutes to hours yet, but it already works. Let's see what this formula does. Look, under the hood Notion replaces the prop() construction with the actual value of the referenced column. Once I change a value in the minutes column, it immediately affects the corresponding hours column. So Formulas in Notion or alive constructs. They dynamically respond to the changes you make to your records. In Notion Formula, we can use same arithmetic operators that you can see in your smartphone calculator: plus to sum, minus to subtract, Asterix to multiply and slash to divide. So, Notion sees a number instead of this long prop() function under the hood. To get amount of hours, we need to divide amount of minutes by 60. Let's add dividing by 60 to our Formula and check the result. Easy, right? Later in this class, we will learn how to make such long numbers look more attractive. There is one important thing to know about how Notion Formula works. Within every Formula cell, we can only access the data from the same record. Formula cannot get data from records below or above. I cannot get the time spent for the yellow highlighted task within the violet highlighted record, at least with Formula property. Later in this class, you will learn Relations and Rollups. These two allow us to access data beyond the particular record and do much more magic. Okay, time to return to our project. Let's add a formula column and name it "Done". I want this formula to calculate the amount of successful days. Let's think of underlying calculation logic. If a day is checked, I want Notion to see it as 1 and 0 for the opposite case. Eventually I want Notion to sum up all the numbers. Let's see how this approach is supposed to work for the "Meditation" tracker. We have 0 for Wednesday and 1s for all the other days. The sum in "Done" column is supposed to be 6. Summing up in Notion formula is easy. I'm going to use a plus sign for it. A bit more tricky part is to teach Notion to see day columns as 1s and 0s. And this trick is easy doable with the help of if-statement. This function is one of the most useful Notion Formula construct, so it's time to figure it out. The skeleton is never changed. But these three blocks will change depending on your needs. The first block is a condition. We have to put a question here which may only be answered by yes or no, true or false in other words. We put the instructions for the yes-case to the second block. And for the no-case to the third block. Notion will execute instructions from either the second or the third block, depending on the answer to the question in the first block. Notion will never execute both the second and the third blocks instructions. It will always run only one block. Let's see how it works for Monday checkbox. The condition or question here sounds like 'Is "Mon" column checked?'. If yes, we need 1, if not, we need 0. In fact, after figuring out the answer to the question in the first block, Notion will replace the whole if construction with either the second or the third block. In our case, Notion will replace the if-construction with either 1 or 0. In more complicated cases, there could be nested if-statements instead of 1 or 0. And in such case, Notion would continue to calculate what is the final value to replace this whole initial if-construction with. Now let's ask our question in the proper way so that Notion could understand it. It's pretty easy for Checkbox properties. We only need to mention the property with the prop() function. Under the hood Notion understands checked state of a property as "yes". And unchecked as "no", which is pretty logical. Okay, now we know how to transform a Checkbox day column to either 1 or 0. To get the sum of successful day for the whole week, we have to build if-statements for every day and sum up their results. Great! "Done" column is ready. For the version with Select properties we have to update the question for our if-statement for the day columns. For a Checkbox, we could just mention the property with prop() function and Notion is able to figure out what we mean, because the Checkbox might either be checked or unchecked. Just two states. For Select columns there might be lots of possible values. So we have to give some more details to Notion. In this example, checkmark means that habit action is done. The red sign means that habit action is failed. And the white one means a rest day. And if we think in terms of 1s and 0s, the checkmark is 1 and any other value is actually 0. So what would be the question that is supposed to be answered "yes" for the checkmark and "no" for any other values. Obviously, the question sounds like "Is there the checkmark in a day column?". Or to be more specific for Monday column, the question would sound like 'Is "Mon" property value equal to checkmark?'. To write it in Notion language, we will use the prop() function together with equals operator, which looks like two equal signs. It's not the only way to compare values in Notion Formula, but we are totally satisfied with this one for now. For your project, just replace the checkmark with the value you use for successful state in your Select columns. And remember to round it with quotes. To get the final result for version with selects, we have to build same construction for every day column and add plus sign to sum up all the 1s and 0s that Notion sees under the hood. Let's test the result. Once I make changes to a day column, it immediately affects the corresponding "Done" cell. It works the same way for the trackers with Checkboxes. Congratulations! Now you are a big step closer to building really cool systems in Notion. You can do simple arithmetic calculations and add some complexity to it with if-statement. In the next lesson we will add a column to calculate the percent of successful days. And you will learn how to troubleshoot "Property is not a Number" situation. So see you there. 6. Numbers: Welcome back. Here we're going to get an idea of how Notion perceives numbers in Formula properties. This knowledge will help you to deal with "Property is not a Number" error, which you might see a lot while building your own Notion Formulas. After finishing the practical part, you will have added to the project a new formula for calculating the percent of successful days. All the further project changes are supposed to be the same for both Checkboxes and Select version. I stick to the version with Checkboxes, but you are free to continue with the Selects version. Okay, time to dive in. For all the arithmetic operations. Notion wants to be 100% sure that you provide it with numbers in Formula, not with text or some other type of data. I will explain. If you explicitly use a distinct number, like in this example, with converting minutes to hours than Notion believes you that this is definitely a number, no doubts. Just never round your numbers with quotes. Quotes would convert it to a text. But if you mention a column with the help of prop() function in a Formula for arithmetic operation, Notion becomes very strict and only wants to work with number types. Pay attention, Notion check types, not values. You might input numeric value for the properties of several types. Not only Numbers, Text, Selects, but Notion needs guarantees. See the example. I will create a Select column and try to multiply it by 10 in a Formula column. Hmm. Error. Type mismatch, property is not a Number. Let's try to hack Notion and add a numeric value to this Select column. The same result. This error occurs because Notion knows that even if I typed a numeric value this time, there is no guarantee that I won't ever add a textual value to the Select column. And Notion doesn't know how to multiply text. Probably nobody knows. so it is safer for Notion to push users to give some proof of intention to only use numbers. I mean, the explicit Number type setting for your column. Note that you can use other types of data in Notion Formula. And we are talking here only about arithmetic operations. Okay, let's think of a little bit more advanced example. What if I want to use the output of my Formula in arithmetic operation within another fFrmula. Good news is that Notion is smart enough to analyze the Formula logic and predict if it always returns a number. If Notion finds that it can be 100% sure that only number might be a result of calculation done in Formula, then it implicitly thinks that this Formula column is of Number type. But if Notion is not sure, you will see "property is not a Number" error. In some cases you might see "property is not a Text". We will touch this error later. Here is a life hack of how to understand which implicit type Notion associates with the Formula column. Open the Formula editor and see the list of properties. Every property has a type icon to the left of its name. And you can see that there is a Number icon to the left of the "Done" column. Explicitly "Done" column is of a Formula type, but implicitly Notion thinks that this column is of Number type. In the "Done" Formula we sum up 1s and 0s. And Notion is smart enough to understand that summing up. 1s and 0s may only lead to the numeric result. There is one more cool life hack. If for some reason you can't change the type of your column, but you still need to use its value in an arithmetic operation use function toNumber(). Just wrap a construction with toNumber() and Notion will start considering this construction as a numeric one. And you will no longer see the error "property is not a number". Just be mindful that if your construction happens to provide a non-numeric value, the formula might not be working correctly. Now when we know that we can use our "Done" column in any arithmetic operation, let's add a new Formula column to calculate the percent of successful days. Formula for percentage is known: divide PART by WHOLE and multiply by 100. In our case, the WHOLE is 7 - seven days of week and the PART is the amount of successful days, as we want to know the percentage of successful days. And we already have this value in the "Done" column. Now when we know the formula itself, we only have to add it to our Trackers database. Okay, work is done. We have percentage calculated. Let's add some beauty. This long numbers look confusing. To get rid of this fractional part, let's round percent number with round() function. This function returns the rounded version of the number you put inside. So just wrap with it the whole formula construction and enjoy the result. Okay, now both "Done" and "% Done" column values are updated accordingly. If I make changes to the tracker days. We are done with this lesson. Now you have everything to easily get rid of "property is not a Number" error and the habit tracker system has become a little bit smarter. In the next lesson, we are going to add some visual magic. I mean, dynamic progress bars, progress bars add readability and make Notion systems look much more appealing. So I'm impatient to show you its capabilities in the next lesson. See you there. 7. Text and progress bar: Welcome back. This lesson is going to be very practical here you have an opportunity to learn how to create a progress bar in a database to visualize the progress of any Notion document, no matter it is a habit tracker or a working project. Also in this lesson, you will learn how to concatenate text pieces in Notion formulas. So let's start. First of all, let's prepare the emoji for our progress bar. Here are the emoji codes that I use for the project. You can find them in emoji menu. Depending on the operating system, you have to use a combination of hotkeys to get access to this menu. For Mac, it is Control + Command + Space. If you have troubles accessing the emoji menu, you can just google the codes and copy the emoji from the search result page. We will need ten black squares in a row. Anyway, I suggest to find out how to access the emoji menu on your system as you might want to use them a lot in order to create appealing Notion systems. I placed the emodjis under the Trackers table. If you have troubles adding new Notion blocks under the Trackers tables, do the following. Create a new page for habit tracking system, return to the initial page and move it to the new one you have just created. Navigate to the upper level. You should appear on the newly created page and make the nested page turn into inline database. Now you should be able to add new blocks under the table. The problem is related to the way you created the database. It's very likely that instead of adding a nested table block, you converted the whole page to the database by clicking on one of the Notion suggestions. Now we're going to learn a new function which will help us to build a progress bar. This is slice() function. Slice() cuts a part from a text piece that we give to slice() in the first block. And we can tell this function where to start slicing and where to end it. Text pieces or strings consist of symbols. Every symbol in a string has its sequence number. 0 for the first symbol, 1 for the second, etc. Similar to floors numbering, which starts from 0 for the ground floor. We can use the sequence numbers to tell Notion where to start and where to end string slicing. Note that Notion understands these numbers as before which symbol it should start slicing and before which symbol it should end slicing. Thus the symbol mentioned in the second block will be included in the resulting slice. And the symbol from the third block will not. After the slicing Notion will return this part of the string. It will contain the 0 symbol S and will not contain the symbol O, which is of number 8. I want to only get the last word in this example, I have to instruct slice() function this way, providing 11 and 18 to the second and the third blocks. Note there is no visible 18th symbol, but we refer to it as if it were there in order to get the tail of a string. Actually, we might only tell Notion about the second block. Notion will understand that we want a tail and will give us what we want. Okay, remember we have a sequence of ten black squares. It's time to slice them. Let's copy them and add a new Formula column. The string to be cut should go to the function as the first block. Let's paste it right after the opening parenthesis, quotes are required. Quotes is the way to tell Notion that we are typing a string, not a number or something else. Black squares look like a solid line. But Notion understands that under the hood there is actually a string consisting of ten symbols. Starting point will always be 0 and ending point will dynamically change depending on the percentage value. It means that we don't have a particular number that we can insert here. We have to figure out it first. For now let's insert 10 as the third block. And I invite you to think on what should eventually be inserted here instead of 10. First of all, we should decide which amount of squares we want to show for different percentage ranges. I want to do this way. 0 squares for 0 progress, 1 square for the progress in range between 1 and 10, etc. For every of these ranges, Notion should do the slicing with different values for the third block. And we should take care of transforming the percentage ranges to the desired values. For this purpose, we will divide percentage value of property "% Done" by 10. And round up the result. With this approach for the range between 11 and 20, we will always get 2 and right the same way for all the other ranges. To build this formula piece, we will use slash for dividing and ceil() function, which works the same way. round() function does with the only difference that ceil() always rounds the value up to the next larger integer. That's how it deserved its name: ceil() from ceiling. This piece of formula goes at the third block to the slice() function instead of 10. Look at this. As soon as I change a Checkbox state, I immediately see the changes in the progress bar column. It looks nice already. Cool, but I don't like that there is no special mark for 100 percent situation. Let's use the green checkmark we prepared it in the beginning of the lesson for 100 percentage value. We will need if-statement here. Do you remember its syntax? The first block is for the question or condition. The second block is four yes-case, and the third block is for no-case. In our case, the question sounds like 'is "% Done" column equal to 100?' for yes situation we want to see the green checkmark, for no situation. We want Notion to use the construction with slice() that we have just built. Do you already have an idea of how this if-statement would eventually look? I suggest you to pause this lesson and try to update the progress formula with if-statement by yourself first. Okay, here we go. We use prop() function and the "==" operator in the question to check if "% Done" column value is 100. In the second block, we just use a quoted green checkmark symbol. And note the way I updated the formula. Let's use the fast-forward trick here. I will do it again. Notion doesn't format formulas, so it's quite difficult to realize what is going on if a formula gets quite long. That's why as the first thing, I type a formula skeleton and place the existing part to where it should be. Now, it is much easier for me not to lose any comma and finish the formula with less confusion. Okay, we are done with the hardest part. Let's add some final details. I want to see percent value separated by a space symbol right after the progress bar. To put together the progress bar, a space symbol, "% Done" column value and percent sign I will use a plus sign. Surprise. Surprise! plus sign may be used for both summing up numbers and concatenating text pieces. Okay, let's try to concatenate all the pieces in the formula with the plus sign. Note that if you use a particular text piece, you should always surround it with quotes. So that Notion could understand that it is a text, not a function, not a number or something else. In our case, I'm talking about a space symbol and the percent sign. But we could have text piece consisting of many worlds here. And look what happens. Notion tells us about an error "type mismatch property is not a Text". "Oh my! Notion is so annoying with these types!" you might think and you'll be right. The thing is that for Notion, it looks like we want to concatenate strings, but it also see the number among pieces for concatenation. Look to the properties list. Notion Considers "% Done" column as a Number. Plus sign is used for both summing up and concatenation. So it's crucial for Notion to avoid any ambiguity here, the pieces you use with plus operator must either be all of Number type or all of Text type. You can't use a mix of numbers and text pieces with plus operator in Notion formula. Do you remember toNumber() function which makes Notion to think of any value placed inside of it as of a number? There is a function to do the same for text. We can make Notion think of any number as of text using format() function. So to finish our formula, Let's surround "% Done" property reference with the format() function. Congratulations! You've finished the progress bar formula, and once you check all the days, you see the green checkmark in the progress bar property and feel very good about your progress. Actually, not many habits are supposed to be tracked daily. And later in this class, we will update the system in order to support non 7-days habits. Well now you're able to add progress bars to your systems. You may copy the formula we created and replace "% Done" with the name you have for percentage column in any of your Notion systems. I'm very glad you managed to come to this point. In the next lesson, you will learn the power of Relation property type. So see you there. 8. Relations: Welcome back. In this lesson, we will talk about connecting different Notion databases with the help of Relation property. After finishing the lesson, you will know how to connect database documents and why would you need it? In the practical part, we will create two more databases, one for weeks, another habits and connect trackers records to corresponding habits and weeks records. Relation property type. Have you noticed a Relation type among other predefined property types? We are going to talk about this one. Note that it is placed in the advanced section together with Formula. But Relation is much easier to use. This property type allows us to link records from different databases. Let's assume you create videos for other people. To organize your working process, you could create one database for your video projects and another one for your clients, and then add a Relation column to connect them. Choose the database name to configure the Relation, you can find a database name here in the upper left area. Once you add a Relation to a database, mirroring property will be added to the connected database. You can rename Relation properties same way as any other property. In fact, a Relation column is kind of a bridge to another database, which gives you the possibility to connect any particular document of one database to one or more particular documents of another database. Let's add some connections to the example with video projects, you can see, once I add a connection to one database, it is mirrored in another database. Actually, you could even connect records of the same database to each other. For example, if you have a tasks database, you might want to link a task to the ones it depends on. But what is the benefit for us? First of all, Relations help you to reduce the amount of data. It's very likely that client data would contain some contacts info. Like email or something. Let's imagine I decided not to mess up with Relations and put all the data about video projects and clients into the same database. In this case, I have to duplicate client data to every video projects with the same client. If I make a mistake or an email is changed, I will have to do a lot of updates to fix it. Okay, In this example, I could pull together all the necessary records by appropriate search query and do the batch update for all of them. But it's not always the case. And still this method is error prone, at least because I could input email with mistakes for some records in the first place. With relations. I can store emails in the corresponding clients documents. If any changes happens to clients info I have to update it once, I can easily go from a project to the corresponding client to find the email. And if you still want to see email column in the project database, it is doable with Rollup property. In the next lesson, we will talk about Rollups in details. In addition to getting rid of duplications and unnecessarily tedious work Relations are indispensable when it comes to making calculations and analysis beyond one particular record. And while you may be more or less satisfied with formula capabilities for doing analysis within one record. When it comes to analyzing several records in a database, you will definitely need Relations together with Rollups. For instance, if I track time spent on every task for my project, I will wonder how much time I spent for the whole project. What is my total income from all the video projects I made for a particular client, I may track my spendings and be curious about my average restaurant bill. You will see several examples in the next lesson, which will bring us deeper into the Rollups topic. And now let's have some practice with Relation property type in the class project, every tracker document pertains to one particular habit and covers one particular week timeframe. If I didn't want any analysis, any history, I would be satisfied with having this single table and I would just clean it up and adjust the records in the beginning of every week. Or I could have a clean table as a template and duplicate it for every new week. But I want to show you the power of Notion. So we're going to add some complexity. Let's create a new database for habits and add to it a Relation property, connecting Habits database to Trackers. Now let's add habit records and connect them with the corresponding trackers. You might wonder, what is the difference between habits and trackers? Well, while the habit is more about routine itself, trackers are about your progress for this habit within particular time-frames, weeks in our case. And it is supposed that after a week is finished, you add a new tracker record for this same habit to continue tracking the progress. Eventually one habit will have more and more trackers connected to it over time. In the next lesson, we will start building the statistics for our habits based on the connected trackers data. And you will see the benefits of this connections. Okay, now we have several trackers looking very similar and it's hard to understand what is the timeframe for every particular tracker. To fix this, Let's add a Weeks database with Relation to the Trackers. Okay, I will add current week and several next weeks. You can use any week names you like. I prefer to add with numbers to the names. Now we may connect trackers to corresponding weeks. Moreover, we can filter the records to only see the ones connected to the current week. By the way, if you already have weeks database in Notion for tracking weekly tasks, insights or something else, you might want to connect these existing database with Trackers to also see the habits you work on within a particular week. Okay, we're done with this lesson. Now you know what is a Relation property for and how to add one. We have also added two new databases to our Notion project and link them to the Trackers. In the next lesson, we will cover the missing piece of the puzzle for understanding the power of Relations. We will talk about Rollups. I'm waiting for you there. 9. Rollups: Welcome to one of the most exciting lesson of this class because we're going to talk about Rollups here. What is it for and how you can use it. In the practical part, we will add several Rollup columns to our databases in order to see some basic statistics and add support for non 7-days habits. Rollup property type. Rollup is one of the advanced property types. To explain the possibilities of Rollup column, I will use this example with video products produced for different clients. We may think of Rollup column as of a Relation property enhancer, Rollup column cannot work by itself. It always needs a Relation column to work on base of it. And while the Relation column connects the whole rows to each other, Rollup allows you to get a peek at a particular cell of the connected records. So Rollup column is kind of a spy column, which tells you about the changes in connected cells in real time. To configure Rollup column, you have to set the Relation column to be used as the base and tell which exact property of related records you want to show. Actually, you might want to not just show them, but to do some calculations based on them. In this example with projects and clients, I will configure Rollup to show the income for all the projects done for a particular client. The Rollup cells only show the numbers from related records. If I delete a record from the relations list, it will immediately affect the output of Rollup column. And important thing to know is that you cannot edit any data in Rollup cells. Rollup only shows you the value stored in another database. All the calculation done based on that value. The value itself may only be changed in the source. And once I change income amount in video projects database, the changes are immediately propagated to the Rollup cells in the clients database. Let's add some magic to the Habits database. Every habit has a bunch of related trackers. Every tracker has a progress defined as percentage of checked checkboxes. Rollup will help us to calculate minimum, maximum, and average value based on all the trackers related to every particular habit. Let's start from average at Add a new Rollup column and configure it to use Trackers Relation as base, "% Done" value as property and Average calculation mode. Easy, right? Now, let's do the same thing to Min and Max values. Cool. Now we can see this basic stats for every habit. Good enough, but you already know how to create progress bars. Why not to add some? I recommend you to pause this lesson and try to add the next columns by yourself first, and then return to the lesson. Ready to check yourself? Okay, let's start from the progress bar for average. Actually, I'm going to copy the formula I've done for Trackers and replace the percent column name. Quick and easy. This technique saves a lot of time. It's good to have a library of formulas you like and use often to not write them from scratch every single time. The only thing I have to add here is rounding the present number. In Trackers database. present number is rounded by the "% Done" formula. However, I don't have a way to make Notion to round a percent. which it calculates for me in the Rollup columns. So I will add the round() function to the progress bar formula. We will do the same way with Min and Max progresses. Okay, It looks better now. Actually, we may even hide the properties with initial percent numbers as progress bars look better. It is possible to show previously hidden properties via database menu. I will hide the trackers links as well. You can also hide stats, percents in a habit page and rearrange the properties in the way it looks most attractive and readable. Notion still knows the hidden properties are in place. Just hide them from you and actually you can still access them anytime you need. This adjustments affects all the pages in this database. So if you.open another record, you will see the same properties hidden and the order of visible properties will be the same for all the pages. But it doesn't affect the view configuration of the database itself. I mean here, on the higher level. Let's add a progress bar column for average progress of all the related trackers for the Weeks database. Now we can see the average progress for all the habits within every particular week timeframe. Rollup properties work in two directions, as long as we have Rollups based on connected trackers data in the Habits database, we can have Rollups based on connected habits in the Trackers database. Let's use this possibility to make the system a little bit more flexible and support non 7-days habits. Currently, the progress of every particular tracker is calculated in "% Done" formula. This formula uses hard-coded value of seven days to assess the progress. Obviously, some habits are supposed to be less intense. So it would be nice to set a different weekly goal value for non-7 days habits. If we lived in the world without Notion Rollup, We would have to add a column, go to Trackers database and fill it manually for every single tracker. But with Rollup, we can set this value once for every habit and then get the value of corresponding habit in Trackers database. So let's add a goal property of Number type to Habits database and add a corresponding Rollup to the Trackers. I will fill this property for some habits. And now we have to update the "% Done" formula so that it uses goal value instead of 7 if it is not empty. Let's take a closer look to this new if-statement. First of all, empty() function is new for us. This function is pretty easy. You place link to an existing database property inside of the parenthesis and the function returns either false if the property has some content or true. If not, if you add NOT operator to empty() function, then result is the opposite: true for the case when the property has some content and false if not. You can think of this as of the question, is this property not empty? Or does this property has content? In the context of our if-statement the answer to this question leads us to either yes-block or no-block. Notion eventually replaces the whole if-statement with the value of "Goal" property or 7, depending on the answer. Note that I use "Min" Rollup mode. Why? Because I want Notion to think of this column as of Number type. In "Show original" mode, which is set for Rollup columns by default, Notion implicitly thinks that Rollup contains textual value because if there is more than one connection all the values will be listed being separated by comma. In this system, one tracker is supposed to always be connected to only one habit. But Notion has no idea about this. "Min" mode makes Notion show only one value: the minimum one. And Notion knows for sure it's numeric. That's why I can use it as a number in any formula. And I know for sure that this "Min" value will always be chosen from just one candidate of the single connected habit. So this mode serves perfectly here, Actually "Max" and "Avg" would serve just the same way in this case. By the way, these modes are only available for numeric columns. So if I create a Rollup for another habit database column, let's say habit "Name", I will no longer have this "Min" mode available. So Notion wants to be pretty sure about column types and tries to restrict you whenever it's possible. The final adjustment should be done for progress bar. As now we can face the case with more than 100% progress for a tracker. An easy way is to change "equal" operator to "higher or equal" operator. Or you could emphasize this big success with another emoji. Like a star for instance. Same change should be applied to all the progress bars in the system. Okay, We're done with Rollup basics. Now you know how to add simple calculations over several records and your project gives you some statistics about the habits you track. Now the project supports non-7 days habits and you can set custom weekly goal for every particular habit. In the next lesson, we will get familiar with Date property and add some more updates to Weeks database. Okay, see you there. 10. Dates: Welcome to this lesson. Here we will talk about Date property. We will add week start dates to our Weeks database, and then we will learn some formula functions to work with the date type, we will use this new functions to update Trackers database formulas to calculate the progress for only current and past weeks. I will explain why we need it. Let's start. Notion support dates in database pretty well. There is a special property for storing dates. This property type allows to either set a single date or a range with start and end date. The great advantage of Notion is possibility to configure date based views such as Calendar and Timeline. Calendar. In a Calendar view, we may specify which exact date property should be used to build the calendar. We can also drag and drop database records over the calendar, the underlying date property will change accordingly for date ranges, Notion will expand the records to cover all the days included in the range specified. Calendar view covers a lot of use cases, tasks or projects deadlines, team members vacations management training plan for a marathon, etc. Timeline. Timeline view is another way to represent calendar related data. It makes much more sense for date ranges than for a single date value. On Timeline view, we may specify property sources for start and end dates and then see our records stick to a corresponding timeline, kind of Gantt diagram, perfect for project timelines visualization. Let's return to a Table view for now. If you haven't added a week "Start Date" property yet I suggest you to do it right now and fill this property with the corresponding values for several future weeks. Now let's talk a little bit of how Dates can be used in Formula. Let's start from the easiest function. now(), this function always returns the current date and time, and it doesn't need any additional arguments inside of parenthesis, but we still have to use parenthesis even if they are empty, because this is the way to tell the formula that we mean a function. And functions are always followed by parenthesis with or without arguments inside of them. So to get the current date and time, you don't need to have it held in some property. You can always just call now() function in your formula. Why would you use this function? There are a lot of cases. Let's take one of them: calculating time remaining to a project deadline. For this case, we have a date property with deadline value set and the formula property, which should show amount of days between now and the deadline date. There is a special function for this purpose, dateBetween(). In the first two blocks, you have to specify the dates: deadline property and now() function in our case, in the third block, you have to tell which time measurements should be used here, years, months, weeks, days, etc. The chosen mode should be quoted. Let's check the result. If deadline is passed, we will see a negative number of days here, okay, time to practice. And within the practical part, Let's take a quick look at how notion supports Date properties within Rollups. Let's pull a corresponding weak "Start date" value to Trackers with the help of a new Rollup property. Note, that Notion has several date specific modes for a Rollup built over a Date property. If for some reason we had several weeks connected to a single tracker, we could ask Notion to choose, for example, the earliest or the latest date, or an approximate range between them. Let's use "Show original" for now and see how Notion works with Date Rollups in "Show original" mode in the Formula property. Note, it doesn't think of it as of a date. Notion, thinks of it as of Text. It is common Notion behavior for Rollup in "Show original" mode. This mode is supposed to be used to show a comma separated list of related records property values. And we have only one week connected to every tracker. That is why we only have one value displayed, but potentially we could have more. And sometimes you might get stuck in building some formula over Rollup property because you expect the formula to see Rollup as a date or as a number, but it is perceived as Text. And often you only need to change the Rollup mode. In our case, we're going to always have only one week record connected to a tracker. For the next week, we will have a new tracker. So in order to make a Formula, see this Rollup property as a date, we can change the mode to either earliest or latest date, the result will be the same because there is always only one day to choose from. Now let's check the formula editor. Our Rollup property is perceived as a date, which means we can work with this property as with Date and apply date specific formula functions. Few words on what we are going to do right now. Currently, there is a bias in habit stats. Average, Min and Max progress values are calculated over all the trackers connected to a habit. No matter it is a past week tracker or a future week tracker. And if I add new trackers for the whole month ahead, it may affect drastically the stats values. But if we had empty "% Done" values for all the incompleted trackers than statistics Rollups would not take those values into account and we would see the correct stats numbers. I still want to see "% Done" value for the current week in order to get progress bars built for the active trackers and see how the average progress is changing in the current week record. That is why I decided to add a new property which will only show % done value if a tracker is completed. Let's think of the if-statement for this case. If tracker is completed, then show percent of checked checkboxes, and show nothing in the opposite case, how can we understand if tracker is completed? I will give you a clue. Now that we have a "Week Start Date", Rollup in Trackers database. We actually can calculate how many days have passed since this date. Obviously, if the amount is more or equal than seven, then we can say that the related week is over and this particular tracker is considered to be completed because the week passed. And we already know how to calculate the amount of days between two dates dateBetween() function together with now() and link to the "Week start date" property in days mode. And to compare the resulting value with 7, we will use greater than or equal operator. Let's go to the second block. This one is easy. We already have percent of checked days, calculated in the "% Done" property. So we just mention it here and the last block, empty value for the case when "Week start date" is either in the future or on the current week, empty value may be defined by two quotes without any content between them. But there is a requirement for if-statement that both yes- and no-cases must be of the same type. And while we have a yes-block to be a number, no-block should also be a number. So let's round two quotes with a toNumber() function in order to force Notion to perceive it as a number. This is a weird trick, but it works. Let's type the final formula. Now we have to update Habits database to use the new property for stats Rollups. Done. Okay, we're done with Date property type. In this lesson, we've got an idea of date based view types, calendar and timeline. We've learned some date specific functions and how to pull date value as a Rollup property in different modes. We also have added two updates to our project. Now, every week in Weeks database has a starting date specified and stats bias is fixed with the help of new formula property in Trackers database. In the next lesson, we will learn filters and sorting and start to configure database views so that they would serve in the context of habit tracking, waiting for you there 11. Views I: Hello again. In this lesson we are going to learn how to customize your database views with filtering and sorting. Also, we will configure several views for our project databases. First of all, let's talk about views. In fact, Notion database view is the set of rules for displaying Notion database content. Every view setting includes the view type, a table, board, list or another filtering and sorting rules, list of properties to show and their order. And several other settings such as subgroups, amount of initially loaded records. Views allow to show the data in the best possible way for every particular purpose. You don't need to update the settings every time you need to work with the database data in some specific way, you configure a view once and then just use it. Within this lesson, we will configure several views for our system. Let's start from the Trackers database. Obviously, now it's not very friendly for the purpose of tracking the progress because all the trackers are visible. In fact, I only need to see the trackers for the current week to be reminded what I'm focused on and input the progress. So I will need a view for the current week trackers. Also, sometimes I will input the progress via my cell phone, not via my laptop. So let's create a separate view "Current week | Phone" for this case, because I know from my personal experience that views for a laptop and for a cell phone. for habit tracking in Notion should be a little bit different. Okay, now it's time to configure these two views. Let's start from the "Current week" view for a desktop. In order to make visible all the current week trackers, we will definitely need a filter. Filters are the rules to check if a database record is eligible for being visible to you. These rules are supposed to be set over the database properties. For instance, I can configure the filter to only show me trackers related to Meditation habit. Filtering rules may include several properties. I can configure it to only show me the trackers for Meditation habit with 100% progress. If you need to specify a filter with OR condition, then you should use an advanced Notion filter. Advanced filter allows to choose if records should meet all of the restrictions, or one restriction would be enough. For instance, a dumb example, I might want to see the trackers which have either Saturday or Sunday checked. In this case, I will see all the records which have at least one weekend day checked. Filtering groups allow you to add more complicated and nested rules. Also, depending on the property type, you may find flexible filtering options. Like checking if a textual property contains some string or comparing operators for a Number. There is a batch of cool options for Date filtering. Remember that filters cannot delete any record. Filters only can hide them in this particular database view. And once you clean up all the filters, you get all the records to be visible. Also, hiding the records by filters doesn't affect their visibility in the connected records from other databases. Like if I open a habit record, I can see all the related trackers, no matter which filters are applied to the Trackers database right now, in any of the Trackers database views. Filters just help you to find quickly or show all the records you need for any particular purpose without having to do this tedious work of checking every single record in the database. One more thing you should know about filters is that if you add a record while filter rules are enabled, then, if possible, this new record will be automatically updated by Notion to be eligible for being visible. For instance, if I filter out the records based on the related week and add a new record it's automatically connected to the week mentioned in the filtering rule. Note that this trick doesn't work. if a filter rule is configured based on a Rollup or a Formula property. Okay, time to apply this new knowledge to configure the "Current week" view for the Trackers database. The straightforward way to accomplish this is to set week property to match the current week record. This will work. But it has a drawback. I have to update the filter every new week to align it with an appropriate week record, it would be much better to have a kind of dynamic filter which is configured once and serves forever. Let's play with "Week start date" Rollup property and check the filtering options for it. Notion provides a variety of filtering options for the Date type. It allows to specify time ranges quite flexible. And values available for matching the properties are not just static dates, but dynamic date options. To filter the records with "Week start date" within the past week will suit the best for our purpose. With this configuration the view will always show trackers connected to the week started within the past seven days, no matter the exact today date. It also makes sense to hide all the columns that you don't want to see in this view, I will leave days, "Goal" and "Progress" columns. "Current week" view is configured. Let's go to the next one, Current week view for a phone, the filter should be configured the same way we've just done for the previous few weeks. Start date is within the past week. And now let's apply xome adjustments to make ticking Checkboxes from your cell phone screen more convenient. First of all, it's better to place fully narrowed Checkboxes to the left side. You can make Friday column a bit wider to separate visually the weekdays and then place either tracker "Name" or "Habit" column, "Goal" and "Progress bar". Thus on your phone screen, you will see at least part of habit name and all the Checkboxes to quickly input the progress. The view for cell phone screen is ready. We can delete the initial table view. We're done with updates for the Trackers database within this lesson. Now you might wonder, how are new trackers supposed to appear in this database views and how you can see the progress for the past trackers. The views we have just created will only serve for tracking the progress. In the lesson about Templates, we will add possibility to check the past trackers progress on a page of related week or a related habit. In the lesson about Linked views we will create a separate habit planner page for adding new trackers. So don't worry, eventually we will collect all the pieces of the process together. Now let's move to the Weeks database. After some time of using the system, we will have more habits and Weeks database will disappear somewhere on the bottom. In order not to lose it there, I suggest you to move the Weeks database to the right side. Notion supports a columned layout for its pages, you can easily drag and drop Notion blocks to create a new column, but you can't do this with a database block. So we have to use, for instance, an empty text block in order to create a column. And right after that, the Week database can be moved to this new column. Obviously table is not the best possible view type for this situation. Gallery cards will serve much better here. We don't need preview here, and let's adjust the card size. This preview card and card size setting options are only available for Gallery and Board view. Now we turn on the displaying of necessary properties. Let it be the week "Start date" and the average progress. I think it would be nice to see the amount of habits that we work on every single week. To display this data, we have to add a Rollout, which calculates the amount of connected trackers, which is equal to the amount of the habits that we work on every particular week. And with the help of a Formula property and text concatenation, we create a string with trackers or habits amount and enable this new property on the gallery cards. Note that we don't need a table to create a new property. You can do it on the page of any database record and all the new properties will appear for all the records. You might notice this NaN% values instead of progress bars for some habits and weeks. They appear because for this records, we don't have stats numbers. Stats numbers are missing if there is no trackers linked at all, which means there is no base to calculate the statistics on. Or in case of habits if all the connected trackers are linked to the future weeks and thus have empty "% Done | Completed" property. So Rollup doesn't have any numbers for calculations. To get rid of this NaN% values, we can add one more if statement to the formulas. This statement will check if the corresponding percent column is empty. If yes, we will get an empty string instead of NaN%, otherwise, a proper progress bar is built as before. So, add this new if-statement to the existing progress bar formulas in every column with this disturbing NaN% problem. Just remember to use the correct property reference with percent value: either Avg or Min or Max. Obviously, we need some sorting here, time to talk about sorting rules. Sorting is obviously the way to set the order of your records. Sorting works differently depending on the type of a column for which you apply a sorting rule. Let's try to sort the weeks by "% Avg" value in ascending order, "% Avg" column is Rollup, but under the hood Notion, perceive it as a Number. That is why numeric sorting applies here. For Textual property Notion uses alphabetical sorting. Let's see how it works for week names. Notion sorts the weeks alphabetically based on their names. If I add a Week 2, it will go after Week 19. It happens because Notion thinks of week names as of Text, and it doesn't compare the numbers, but compares characters and digits one by one. The first characters are the same for all the records. And once we get to week sequence numbers, Notion compares 2 and 1, not 2 and 19. Sorting based on Date property is quite straightforward. So the easiest way to set the appropriate order for the weeks is to sort them by start week date. Let's set it in the descending order to see the latest weeks bubbled up to the top. And I prefer to have here a filter to only show the last month weeks. If you want to see more than four or five last weeks, you may add a filter for custom periods and updat it manually from time to time. And let's rename the views and put the gallery view to the top to make it the default one. Okay, now we know how Notions sorts textual, numeric and date columns. What about Select properties? In order to see how Notion works with sorting for Select properties, let's move to the Habits database and add a "Status" property to it. This column is for designating which habits are just ideas which are to-dos in progress, sustainable, or archived. Actually, you are free to add the status you prefer. As we learned in the beginning of this class, Select columns are perfect for such cases when we have a limited amount of value options which are supposed to be used by many records. Now, let's apply a sorting rules for this new status column. As you can see in this case Notion, do the sorting based on the order of Select options. You are free to change the order of the options based on any logic you have, like here ordering "Status" in its natural cycles, looks to be the best and quiet intuitive solution. Okay, we are done with filters and sorting. We've got several new views for the Trackers and Weeks databases. We've also learned that Notion allows you to use different filtering and sorting options depending on a property type. And we will continue talking about views in the next lesson where we will create a board view with habit guidelines for our Habits database. 12. Views II: Hello again. Here we continue talking about database views. We will mainly talk about Board view here and configure "Guidelines" view for the Habits database. Theory and practical part are very interconnected in this lesson. So remember, every time you see the hammer sign somewhere in the corner, consider it to be invitation for you to join me in updating the class project. Now, let's adjust the Habits database view so that it become really helpful for us in the context of daily work on our habits progress. First of all, habit records definitely miss some important information. I mean the detailed guidelines. Some habits may be added to the system as ideas long before you start working on them. And it would be nice to have a special place to add some instructions and maybe a source of this idea. And while working on habits, we usually need a lot of energy to develop this new behavior. And it makes the process so much easier to just follow the strict instructions instead of trying to figure out what exactly is supposed to be done. And in the context of daily work on our habits, it would be nice to see the guidelines for in-progress habits in our Habits database. So let's add a new text property for guidelines for our habits and fill it for every habit we have here, I will use what-when-where schema, you are free to either use it with me or implement another one that you like more. Two tips that I want to share with you here. The first one is possibility to format the text in a Text property just the same way you can do it outside of databases. And the second one is starting a new line within one textual property by using the Return key while holding the Shift. Okay, we're done with guidelines, but it doesn't look quite pretty as a table. I think to see them as cards would be much better here. We have two view types for displaying records as card:s Gallery and Board. Gallery would suit perfectly for our purpose. But Gallery view has limitation. It only allows to show a short part of record properties content in one-line mode. While Boards allow to show the whole content of record properties. So we're forced to switch to Board view in order to see records as cards with the habit guidelines fully visible. In the context of daily work on our habits, we probably don't need any statistics beyond the current week. So let's make sure only the "Guideline" property is enabled. And it also makes sense to filter out habits which are not relevant for us at the moment. So let's add a filter to only show the habits with in-progress status in the context of guidelines view. We actually don't need a drag-and-drop feature and this columned layout doesn't work quite well here. But because Gallery cards don't display the full guidelines content, let's see what we can do with all the Board settings options. One of the options is to group habits by status and only leave in-progress column visible. But in this case we have a lot of empty space in the middle of the page. And another option is to group habits by their names and disable empty columns. This is important here. In this case, every habit will be placed in its own column as long as every habit name is unique and it's very likely that we will not work on dozens of new habits at the same time. So probably if we have to scroll to see the guidelines for some habits, it will not be a long scrolling. We also can hide the guidelines that we don't need, change the order of columns or change the size of cards to a small one to get rid of horizontal scrolling. I guess there can be several dozens of habits that for track at the same time, but it's very likely that a big part of them will include sustainable habits. And probably we don't need guidelines for sustainable habits that much as for fresh or in-progress ones. The last adjustment that we will do here is a card preview. Both Boards and Gallery views allow to configure card previews. We will learn how to configure card previews on the example of our "Guidelines" board view, but it works just the same way for Gallery view as well. Notion allows us to provide previous pictures in several different ways. It may be configured through database settings, "layout", and here it is: "card preview" drop-down. "None" means no preview at all. Page cover will force Notion to use picture which you set as the page cover. You may upload your own image or use one from the predefined libraries. Let's use Unsplash library here. Unsplash allows you to use keywords for image search, which is pretty convenient. Let's go back to upper level. Now we have an image for Meditation habit. You also can use page content as source for the preview, in this case, not only image but any other page content will be displayed on a record card. Not the whole page, some top blocks, depending on the card size. If you have a database for your tasks, you might find it convenient to use page content as preview to show subtasks. They're not clickable on the cart itself, but still, it allows us to see a task workload at one glance. And the last way to configure page preview implies adding a database property with Files & Media type. The properties of this type appear in "Card preview" drop-down and maybe chosen as the preview source. This property allows us to attach any type of files to our database records. So they might be used for a wide range of use-cases, but now I will use it just for uploading an image for card preview. Let's go back to upper level. The image I've uploaded is in place. Okay, now I will delete this Media property as we're going to use page covers as card previous in the project. But you are free to choose the option you like the most. You might want to disable the "Name" property as names are already placed on the columns top. Let's rename the board view to "Guidelines" and delete the table. We won't need it here. We're finally done with the "Guidelines" view for Habits database. Okay, now you know how to create custom views for your Notion databases. And actually main page is ready to be used in the context of daily habit tracking. In the next lesson, we will add a habit planner page in order to be able to maintain habit workflows and add new trackers for the future weeks. So I'm waiting for you there. 13. Linked views: Hello again. In this lesson, I will show you a very powerful Notion feature, which allows to create complex dashboards and customize your pages depending on the context I mean Linked views. And we will apply this knowledge to create a habit planner page in this lesson. Let's dive in. What is Linked view in Notion? Let me explain. When you create a database block, you create a home for both data and its views. Under the data I mean database records and their properties and view is the way to display them. From scratch you have an initial table view and you can add as many views as you need later to see the same data in different ways. So data and views live together here in the Database block, but there is another block - Linked view of database, which is a home for views only. This block doesn't store any data, but allows us to invite any other database data. Look at this block. It looks pretty the same as the original database with the only difference: it has this arrow sign to the left of the database name. We actually can hide it. Now the only way to understand that it's a Linked view and not a database itself is to open properties. There is possibility to specify the source for Linked view. For the database itself the source is always its data and you can't change it. Actually, Linked view block allows us to add several views just the way a regular database does. With the only difference that in Linked view block, you can add views for different databases. You can work with data in Linked view block just the same way you do it with the regular database. You can add, edit, or delete records, making changes to data through a Linked view, you affect the original data, not its copy. So you will see the changes in the original database. You may add many linked views for the same database. Important thing to remember: if you delete a linked view, you only delete the bundle of views that you have configured in it, and you don't delete the data itself. But if you delete a regular database, both its views and data will be gone. So it's important to be very careful here. What could be the use case for Linked views? As an example, we might want to see today's and tomorrow's tasks as two lists on the same page. Or we might want to see the same database on several different pages built for different workflows steps. Like on the task planning page, I might want to see a Kanban-board or Calendar. And on the action dashboard, I just want to focus on today's tasks. In our system, Linked views may be used to add a list of related trackers as a content of a week page. This is an upgrade we will do to the project on our next lesson by the way. There is another idea for our project that we're going to implement in this lesson. This main page is supposed to be used within daily work on habits. I didn't want to decide which habits I should work on. Here. I want all the decisions to be made beforehand and only focus on making the progress and aligning with habits guidelines. But obviously, I need an infrastructure for making the decisions, for planning my habits ahead. And I would rather have it on a separate page configured specially for this planning purpose. And I will definitely need views for Habits database in order to maintain habits status there and views for Trackers database in order to add new trackers for future weeks. And I will need a view for a Weeks database so that I could verify if all the active habits have corresponding trackers for current and future weeks. All of this is doable with the help of Linked views. So let's create the habit planner page together. I think the upper right corner is quite good place for this new page. Let's add a title. Planning board. First of all, let's add a Kanban board so that we could easily maintain habits statuses by drag-and-drop. To add a new linked view, we have to type "\Linked" and choose "Linked view of database" item. The next step is to choose the source database. Habits database in our case. Here you can either copy an existing view or create a new one. We need a board, so let's create a new one. Choose a board. And here you can play with boards settings, I like colouring columns. "Group by" setting should be set to status. I will live "medium" card size and "none" card preview. Now let's adjust the order of columns. We actually can hide the one without status. Rename the view to "Planning board". And I prefer to hide the title. Okay, now we can change habits statuses quite easily. Note how the changes are reflected in the original database, which only shows guidelines for in-progress habits. So now I can visit this page every Sunday or in the beginning of every month and update habit statuses. In the result, I will have a list of habits that I want to track. I mean the in-progress column. My next step is to add corresponding trackers for every habit with in-progress status for the next week or several weeks if I do the planning for the whole month ahead, for instance. For this purpose, I will add a linked view for Trackers database. And I have to say that unfortunately there is no way in Notion to add all necessary trackers in one-click. The brute force option would be to set the filter for a target week, the next one, for instance, and add trackers one-by-one linking them with corresponding habits. We could add a small update to this view in order to avoid manual linking to habits. I'm talking about grouping by habits. In this case, instead of having a single table, we will get a separate table with trackers for every single habit. And if you add a record to any group, it will immediately get connected not only to the week mentioned in the filter, but also to a corresponding habit. From my personal experience, this view is the best possible option for adding trackers on the phone screen, but it still involves this one-by-one tracker creation, which is pretty bad. So I will offer one more option for adding trackers. Before that, let's spend a minute to get familiar with one of the coolest Linked views mechanics. I will explain it through the alternative planning board. Let's say I'm not that happy with a Kanban board suggested by Notion, and I want to implement my own one. For simplicity, I will use three instead of five columns. I add a Linked view for To-Do column. Let's make it a list and add a filter to only show to-do habits. I will copy this view to other columns and adjust the filters accordingly. And here is the magic. If I do drag-and-droping between these three views, I have my record statuses changed. You can see it above in the planning board. Why is it happening? Because of the filters. Notion updates record in order to align it with the filter of the view to where I put a record. And I also can do a copy through duplicating or just holding my Option key while doing drag-and-drop. And my copy will have all the same values like the original record has, except for the values mentioned in the filter, the status in my case. This is magic. Really, I love this fissure so much and I use it very often. But now I want to show how we can use it to add a bundle of trackers instead of creating them 1 by 1. First of all, let's create a Linked view with trackers for building kind of a draft trackers list. This view will have a filter for records with clean progress and empty week. And now let's add a second view with the filter for a particular week. I will delete all the trackers for the future weeks to show how to add them with this new page. Okay, how am I suppose to work with this views? At this point, we may already have some trackers for ongoing habits for the current week. This is my case, so I will add some progress to the current week's trackers and update the filter in the right view to point to the current week and copy all the trackers for in-progress habits to the draft view. Note how trackers have gotten cleaned. This is the magic of the filters. To match the draft list to the in-progress habits column. I will add manually a tracker for "Morning walk" habit, as I don't have a source to copy from. And the draft list is ready. Now we have to update the right view filter to point to the next week and copy to it all the trackers from the draft list. And if you plan for several weeks ahead, just update the filter to point to the desired week and repeat the copying operation. Instead of manual duplicating trackers, you can just hold Option key while drag and drop trackers to the right view. Thus, instead of moving trackers between tables, you will create copies in the right view. This draft list may live here without affecting any statistics because our smart formulas. "% Done | Completed" will always be empty for trackers which don't have related week. So this value will not be taken into stats calculation in habit records. And when I come to this page in a week or two or in a month, I will still have this draft list here to start from. I will make some status changes, delete obsolete trackers, add several new ones and copy them to the next weeks. It's very likely that the list of ongoing habits will not change dramatically from week to week. It is really hard to start ten new habits in the same time. Usually I add from one to three new habits every like three weeks and move some existing habits from in-progress column to either sustainable or archived column. So my draft list of trackers usually need a few updates before copying it to the next weeks. To make this page more convenient, I suggest you to add several additional views. First of all, a few with the current week so that you would not have to spend time trying to recall what is the number or a start date of the current week. Let it be a Gallery without preview, with medium-size cards with only week name visible. To make the view to only display the current week, we have to set the filter to "Start date" within the past week. And let's rename the view. And the view with in-progress habits as it's a bit more convenient to have it here near the draft table instead of scrolling to the top. I often add trackers for sustainable habits to make sure they're still sustainable. So I will show in this list both in-progress and sustainable habits subgroups. Now let's rename the view. Actually, you can rearrange the views the way you like. For instance, without this collapsible headers. I don't recommend to place anything to the left from the draft table as it makes harder the selection of draft trackers. And in order to see in one place if next weeks have necessary trackers, I suggest you to add a Linked view for Weeks database with the next configuration. It should be a Board grouped by start week date. And by weeks. It is important to hide empty groups, because we will apply a filter which will make many columns empty and we don't want to see them. Let's apply a filter to only show the current or future weeks. We could rely on Tracker names and make visible Trackers here on the cards. But at some point, tracker name might be empty for some reason or it might be a bit different from a habit name. So it's better to show habits which stand behind connected trackers. Currently there is no such property in week records, but we can pull this data by Rollup property. This new Rollup property should be built over Trackers, point to their "Habit" column in "Show original" mode. Let's enable this new habit property and rename the view. We're mostly done here. Let's add some adjustments. If you don't like the horizontal scroll in the planning board, you might make the card small. Then let's add some colours to headings, Some columns adjustments to get rid of these horizontal scrolls. The last section may look a bit more colourful if we add icons to the habit records. And why not to add an icon to the page itself. Okay. The planning page is officially ready. Now you can visit it from time to time like every Sunday or every two weeks to plan your habits ahead. Or just set a reminder for the next planning date. Probably it was the hardest lesson. We have created a lot of stuff for the habit planner page. And now you can see how powerful Notion databases together with Linked views can be for building the systems which serve your personal needs. Notion is flexible to be adjusted to your processes instead of adjusting you to the soft limitations. Notion is kind of a LEGO constructor for crafting your own systems. In the next lesson, we will learn the last crucial piece of Notion databases, I mean database Templates. It will be a short and easy lesson. So please join me there. 14. Templates: Hello again. In this lesson we're going to learn how to boost creation of new records in Notion databases with the help of Templates. Within the practical part, we will add templates to the Habits and Weeks databases. Let's start. What is a database Template in Notion? To understand it, let's go to the Habits database. Look at this "Guideline" property values. They have the common what-where -when structure with some colouring. Once I create a new habit, I have to add a new guideline from scratch. But what if I had this base guideline structure pre-filled? Actually, that's exactly what a database template my help with. Let's create our first template for the Habits database. To create a template, we have to go to the dropdown menu on the right of the "New" button and click on "+ New template" menu item. This page looks like any other Habits database record page, but it's not a record. It's a Habits database template. The note on the top proofs my words. Let's give it a name. I prefer to name all the templates starting with T and vertical line. A new habit. And let's add this what-where-when structure to the habit "Gguideline" property. That's it for now. Let's test how it works. I will create a new habit record with the help of this new template. Look, the base guideline structure is in place. And now I don't have to fill it from scratch. There is the base structure. That's how Notion templates work. They allow us to prefill some record data, not only the property values, but also page content. Let's see how it works. That would be nice to be able to see all the trackers related to a particular habit on the habit page. Thus, instead of adjusting the filters on the main page of our system, I could just open a corresponding habit record and see all the trackers for this habit as it's page content. Looks nice, but I don't want to add these view manually to every habit that I already have and to all the habits that I will have in the future. And that's the perfect case to use a database template. So let's add an update to our existing habits database template. We have to add a new linked view for the Trackers database and configure the filter for the "Habit" property to point to our template. And when we create a new habit with this template or apply it to an existing one, Notion will adjust this filter to point to the real habit record. Let's add a sorting and see how it works. I will create a new habit record with the template and look at the filter. It points to the new habit record, not to the template. I can even add new Trackers here. They will immediately be connected with this habit. Let's apply the template to an existing habit which already has some trackers connected. To do this, we have to open an existing record and click on the template link in the page body. And we can see all the related Trackers here in place, just several clicks. Note that it's only possible to apply a template to an existing record if this record doesn't have any page content, otherwise, you will see the page content instead of this database template links. Also, applying a template to an existing record doesn't affect the values of the properties that are already filled. It only affects empty properties. So if I have the guideline property already filled, its value will not change after applying the template. But if it were empty, it would get the value from the template. To finalize the Habits database template, I suggest you to add some more updates before we move to the Weeks database. Let's adjust the Trackers table to only show the data we need: day progress, progress bar, and a week. Under the table there is a hidden menu for every column which allows to do some calculations over all the records shown in this view. Depending on the column type, you will see a different set of options. So we can add the percent calculation for checked days for everyday column. And thus, we will see the statistics for every day of week. And probably in some way this information may help to notice some recurrent problems with the habit behavior. Like for instance, you may notice that you fail to do sports for a lot of Wednesdays. And thinking of the possible cause, you may find out that your Wednesdays usually are full of work meetings, for instance. And probably your meetings schedule conflicts with your sporting habit because you are too exhausted in the end of the day and maybe it's better to move your workout to the morning time or to another day. Let's also add an average progress calculation for the "% Done | Completed" column. Okay, they view is ready. Optionally, you may duplicate this view and add a filter to only show the trackers for the last month. Thus all the calculations below the table will be done only for the last month trackers, which allows to see the most recent habits statistics. Of course, this view will be empty for the habits for which you haven't added trackers covering the last month weeks. And now let's apply this template to all the existing habits. To replace the existing page content with the new template content, you can delete all the old information from the page and apply the template again. The new template version will take place here. Let's move to the Weeks database and create a new template for it as well. It makes sense to see the table with all the trackers that we work on every particular week, similar to what we have in the habits template. But here we will filter the trackers by the "Week" instead of "Habit" property. It is possible to add an icon for a template. The only thing that can't be updated by applying a template is the page title. This title is a template title, not the record title. And when you create a new record with or without a template, it will have an empty title. The last thing to know about templates is that you can create several templates for the same database. For instance, to separate meeting tasks from coding and learning tasks by applying different icons together with different values for some properties and maybe even for page content. Now let's apply a new eek template to all the existing weeks. Okay, now you know how to boost addign new pages with a proper content to your databases with the help of templates. And our project is updated with the new templates for the Habits and Weeks databases. Actually we are mostly done with the main Notion topics. And the only thing left is building a separate page with views for habits statistics. That's exactly what we're going to do on our last lesson, where I will share some tricks and new formulas with you. Okay, See you there. 15. Card view enhancements: Welcome back. Here, we will wrap-up building our class project by adding to it a separate page for habit statistics. We will add several new views for Habits database and learn some tricks for enhancing board and gallery card previews, such as separating the data and text alignment. We will also learn new formula functions: replace() and replaceall(). Let's start. First of all, let's add a new page and name it "Statistics". The first view that I suggest you to add here is a gallery for the Habits database. This view is supposed to show the summary statistics such as minimum, maximum and average progress bars. Let's add a title "Summary stats", and configure this gallery to show page cover as card preview and enable average, maximum and minimum progress bars. It's time to add pictures to the habits where necessary. It makes sense to update the progress bar formulas so that we could easily understand which exact progress bar we see. Pretty good already. We can also filter out habit ideas and to-do habits as they're not supposed to have any stats yet. Optionally you might enable grouping by status so that habit cards become organized into groups depending on their status. It may be especially useful later when you will have many habits records in this database. Summary view is done. Now let's add a view with detailed statistics. Let's add a new board view for the Habits database and name this new view "Detailed stats". Enable card preview from a page cover and enable properties with average, minimum and maximum progress statistics. The order of the properties displayed may be adjusted in the Properties menu. The main reason why we use Board instead of Gallery for the detailed statistics is the gallery limitations for displaying long multiline properties. And now you will see why we actually need it. I want to add to the card preview the progress of every connected habit tracker. For this purpose, let's add a Rollup column pointing to the Trackers' "Progress bar" in "Show original" mode. Okay, actually, it looks messy and definitely needs more work. It would be great to see not only progress bars for connected trackers, but also their related weeks. But one Rollup column may only point to one property of related records, and we need two of them here. And fortunately, we know how to concatenate text pieces in a formula. So let's add a new formula property to the Trackers database, which will concatenate weeks with progress bars. We can add a new property, not only at the original database, but also at its any Linked view. So I will add this new property to the Trackers database at the Linked view inside of a habit page. Let's name it "Week + Progress bar". Now update the Rollup with detailed statistics to point to this new property. Okay, it looks good. There is a trick that will help us to visually separate week names from the progress bars. We are going to use a special character set here, which is "\t", a tab. You can add it to a "Week + Progress bar" formula in the Trackers database and Notion will show it as a tab after the colon character. If there is no visual change after adding a tab character, try to add another one. Tabs will work good if week names are approximately of the same length. For other cases, the result might look not that good. So this trick is not always applicable without additional formula updates. Let's take a look at the "Detailed stats" view one more time. Some of the progress bar stick together on the same line and it would be nice to move every progress bar on its own line. Unfortunately, I can't add some text alignment to a Rollup property. Its content is built by Notion, but I know the trick to make proper columns, no matter what. We can think of this Rollup column as of a raw piece of data and add a new Formula column where we will have all the weekly progresses properly columned. Note that Notion always uses commas to separate progresses of all the related trackers. And we can aim our goal by replacing in the formula all the commas with the "new line" character set "\n". "\n" or "new line" character set is a brother of a tab character "\t". It is used in programming languages for designating a new line when building textual data. Notion formulas also understand this character set as "new line". By the way, if I disable a "Wrap cells" toggler in a table layout settings Notion will ignore the "new line" character. So you have to enable "Wrap cells" setting to have it worked in tables, but in Board views, new line designation is never ignored and you don't need any special settings here. To replace the commas we will need replace() function, replace() functions will do substitutions to the text pieces we provide in the first block. The second block is for instructing which part to substitute. The third block for instructing with what to substitute. Let's see an example. Replace() will substitute only the first occurrence of characters mentioned here. replaceAll() will substitute all the ocurrencies. If Notion doesn't find any occurrence of string from the second block, then the initial string will not be changed. Now we need replaceAll() function. In the first block. we have to reference target property, which is the detailed progress Rollup. In the second block we will write comma sign. The third block should be filled with the "new line" characters. Note that all the textual pieces must be included into a pair of quotes. By the way, this trick will not work if the values shown in Rollup column contain a comma. Now I will hide the initial Rollup column and show the one with proper alignment. Now the details statistics is columned properly, no matter the card size or the progress bars length. Note that Notion doesn't apply any sorting to Rollup property. The values in Rollup are listed in the same order. You add them in the corresponding Relation property. To change the order, you can open the Relation column and drag and drop related records to fix the order. Note that you can't change the order on the Rollup column itself. You have to apply changes to the corresponding Relation column, "Trackers" column in our case. Let's take one more look to the Board view that we have so far. It has several lines of data and summary stats such as progress of average, minimum, and maximum are not perfectly divided visually from the details stats. They're placed on different lines, but it's hard to perceive the difference with a glands. To divide these different types of statistics in a more solid way, I will use the separator trick. Let's do it together. I will add a new Formula property named "Separator" and make formula always return static value of a dash sequence. Now, I will make it visible between summary and details statistics. I use formula here because I don't need to fill the property for every new record. The formula will do it for me and I can easily adjust the way separator looks for all the records in one shot. There is no possibility to show one property more than one time on a database card. So if you need more than one separator for a Notion system, you should create as many separator properties as you need. I will enable the same separator on the "Summary stats" view as well. If gallery cards supported multiline view... By the way, you might check, probably it does support multiline view in the latest Notion version, but now it doesn't. And that's why we have to use this board view for building the detailed stats. With galleries we would have this nice grid layout, but the board columns may become very unbalanced at some point. And that's why I suggest you to do the following. So I suggest you to group habits based on their names instead of status. It's important to hide empty groups here and configure the filter to only show in-progress habits. Optionally, we can disable name property as we have it on top of every column. Thus we will have every habit in its own column. And then let's copy the whole view and adjust the filter to only show sustainable habits stats. And let's repeat one more time for the archived habits. Well, now we have our habit board cards kind of grouped by status on these three separate views. After sometime of using this system, you will see your cards growing up with progress data. Let's add an icon to this page. Separate the "Week" view on the main page. And it looks like that's it for this class. Okay, we are done with the stats page. Now you know, new functions, replace() and replaceAll() together with at least one use-case for them. And looks like we're done with the project. My congratulations! I'm very glad you've made it to this point. 16. Outro: Congratulations! You've done it! And now you have all the tools in your hand to start building your own Notion projects using its most powerful features. You did a great job going through all the lessons. And I hope that you found what you were looking for and now you are an advanced Notion user. I also hope that at this point you already have several ideas of how you can apply this new knowledge to your own projects. I share more tips on using Notion for organizing different life areas on my blog. I'll be glad to see you there. Thank you for taking this class. I hope you enjoyed it. So that's it for now. Have fun with Notion and good luck.