Transcripts
1. Intro: Welcome to this class. I'm
Krista Notion ambassador, and today we're putting Notion
AI to the ultimate test. We're going to build
a fully functional interactive Anki style
flashcard system. I will do this manually first, and I encourage you
to do this with me so that you could sharpen
your Notion skills. And after that, I
will try to rebuild this same system with
Notion AI Agent. Well, this is going to be
kind of a battle here. Notion Agent is included in two Notion paid
subscriptions, and probably you hesitate
about buying one. And this class is a good showcase of what
Notion Agent can do for you. Now let's make a
short observation of the system that we're
going to get in the end, and then we can start building.
2. Project Demo: System is quite simple,
but despite of this, it is very powerful in helping
you to learn new words. It only has what
it actually needs. It has a special view
for adding new words. I use English and Polish words as an example in my system. Then there is a tab for
learning the words. So I can see the
word door. I recall it's Polish version, then I
check myself with showing answer button and
I mark this word as answered correctly or
answered incorrectly. Every day, this review tab has new set of word
cards to learn. If I failed to answer
for some flashcards, I can review those hard words on a special section
here, review failed. I also can archive
words that I no longer want to see in my
daily review card set, but I still can
occasionally review those archived words to make
sure that I still remember and I can easily return
them to the main cards deck by clicking on the
incorrect answer mark. And this last tab is here just for building and
update and purpose. There is also a link to
a special document with all the proms and formulas that you may need
while building this system. You can find a link to this document in the
resources section, and we will not only
build this system, but I will also show you how
to use it with Notion Agent. Okay, no modules.
Let's start building.
3. Flashcards Database [Human]: Okay, our first lesson, we'll start from building the main database for our
flashcard Notion system. Okay, let's open Blogs
menu by typing slash. Then search for database
inline and choose this option. Okay, let's name it flashcards. I also suggest to make
the page white by opening this top right menu and turning on this
full width toggle. Now we will add the
initial pack of properties for the foreign vocabulary
learning system. I will use Polish and
English as example. Of course, you do your
language of choice. I'm going to add columns for English and Polish
versions of my words. Typing the name and
choosing the text type for this property and doing
the same for the Polish. Not that I don't use
this name property for storing either English or
Polish version of my words. And mostly for the words, this column is going to be empty because we are going to set
up flashcards galleries, and this property
is very special. You cannot hide it, as you can do this
with other properties. And this is quite
crucial limitation just because we are going to need the possibility to hide either English or Polish
version of our words. So I suggest you just not to use this special title property and add new text properties for both original and translated
version for your words. Now let's add the date columns. We will need three of them. One for storing the date
of adding the word, another one to store the
date of last practice, and one more for storing the date for the next
practice session. Clicking on at Property button. And searching for
created time property. This property will be
automatically populated for every word that
we add to our system. Let's rename it to edit. Now adding another date property
for last practiced date. Here we choose this type date and the last one for storing the next practice session date. Also, the date property. Okay. So this is the very
basic set of properties, and we're going to extend this system in the next lessons. But for now, that's
it for this lesson, and I will wrap up it by adding several words to have
something in my database. I can do this manually. Like home is dumb and polish, or I can just ask my
AI assistant to add some words add words
to this database. Let's say, ten words to this
database describing home. And it's interesting what
it's going to add here. Okay, my AI assistant
doesn't have any guidelines about adding
new words into this database. That's why it actually
died the name. I don't need it, so I
actually want to clear this and only leave English and Polish
versions for these words. And what I also want to do, I want to change the format
for the date properties, and I want to only
see the date I'm used to this day month year and I
don't want to see the time. And I will do this for all
the other date columns. Okay, we're done. Let's
go to the next lesson.
4. Answer Buttons [Human]: This lesson, we're going to add simplified behavior for
our answers buttons, and in the next lesson, we will add the complexity related to spaced
repetition logic. So let's start by adding
a new property answers. This is going to be
a text property, and it will store
all the answers for every word in our
flashcard system. Now let's add a button for marking our word as
correctly answered. Correct. And click
Edit automation. And here I would rename this to Mark or to this green option. Let's have it green. And what
this button is going to do? Let's edit a new action. First of all, it will add the
answer to the answers lock. This one answers
should be changed, and to change it in
the way we need it, we have to edit it as formula. If the answer is correct, I want a green circle to be
added to the answers lock. So what we are going to do here, we're going to take
the answers log that we already have,
choose this page, then type dot, and then
choose answers from the list and type
plus green circle. Remember to have these
quotes around the circle. Let's check how this
button works for now. I will save it and
then click on it. Okay, one more time. You can see the answers log is updated every time I click on
this button. Okay. Now I want to adjust
the behavior for this button to also update last practice and
next practice dates. Click on the column name, then edit automation, and
we have to add new actions. First one to update the
last practice date, and it should be set for
the date when we triggered this button and one more action for updating the
next practice date, and here we will have
a custom formula. For this lesson, this formula is going to be quite
easy and we will add the complex logic for spaced repetition
in the next lesson. But for now, we can
just type today. With parenthesis and type dot, date add open
parenthesis, Type one, comer and as in quotes in double quotes
and close the parenthesis. Let's have it. Now, let's check, what is going on after
we click on this button? Nice, we not only have
the answers log updated, but we also have the dates set. Let's add the similar
button for failing answers. We can duplicate this
one and adjust it. Let's rename it to incorrect. Let's go to Edit
automation and here I will change the name
for this red sign. I will update the formula to add the red sign to
the answer slog, and I will leave all the other actions
without any change. Let's save it and test it. Okay? It works quite well. Okay, we're done with this
lesson, and in the next one, we're going to add complexity to the buttons behavior related to the spaced repetition logic.
5. Spaced Repetition [Human]: Hi, again, in this lesson, we're going to make
our system much more powerful because we
will add the logic to the buttons behavior
that will led us to set smartly the
next practice date. But before we dive into
this building process, I want to explain
you a little bit, what is the logic
that we're going to implement for our buttons. I want my system to
have these intervals, one day, then three
days, seven, and 30. It means that if I have
one correct answer, the next practice session
will be set for tomorrow. If I have two correct
answers in a row, the next practice
session will be set in three days for this
word and so on seven for the third correct
answers in row and 30 for four or more
correct answers in row. I have all the answers
saved to my answers lock, which is the answers column. And it doesn't matter
for me if I have only correct answers in it
or something like this. I want only the last correct
answers streak to be taken into account in order to calculate the
next practice date. In fact, if I mark my
flashcard as answered incorrectly and this red sign
appears in the answer slog, then the whole schedule for
spaced repetition is sette, and the intervals for this
word will start from one. So now let's update the buttons
to implement this logic. Click on the button name,
then edit automation, and we're interested in changing this last action next
practice formula. Formula mastery is not the central topic of
this short class, so I will provide you with
a ready to use formula. You can copy it from the
screen or from the document that I have attached for this
class for your convenience. You can find it in the
resources section. So I'm selecting all the
content and replace it with my new complex formula that implements spaced
repetition logic. And you can see that here is the intervals line where you can update the intervals
to your preference. You can remove some of them
or add new ones. If you want. The only thing to
remember is that you have to separate
them with commas. Another thing to
mention if you have a problem with this answers
lock link, it may happen. Just put your
pointer here before the dot and remove
everything till the comma. Then add in space and search in the link to this page in the list here
beneath the formula, this page, and you can see that my pointer
is lost, actually. I have to return it here, type dot and search for
answers log column here. And now it's done.
Hopefully, you will have it inserted correctly
in the first place, if you have this column named
the same way that I have. Okay, and now we have to update the second column
with this same logic. So edit automation and the
last action next practice, selecting all the content and replace it with the new content. And now let's test how it works. Let's say I wanted to
practice this new word door, which is pronounced
as GV in Polish. And I mark it as correct. I practiced it successfully, and I see the last
practice date, which is today, 25th of May, and I want my next practice
date to be set tomorrow because it is the first interval that I have in my schema, and I have a correct answer
locked into my answers log. If I add my next correct
answer to this word, I actually expect
next practice date to be three days after today, which is 25th of May. So I expect that 28th
of May will be put as next practice date if I
click on the correct answer, which works as expected. And the third answer would bring us to
the third interval, which is seven days from
the practicing date. And the last one is 30. And actually, no matter
how many answers I add, the last interval is
always going to be 30. What I just did was
meant for testing only. Soon we will configure
other views, and once you click on
the answer button, the card will disappear
so that you couldn't add those additional correct answers and break these intervals log. I will give you a hint
that you actually can go further and
update this formula probably with the help
of this AI assistant so that it wouldn't update
the next practice date if you click on your buttons
on the same date that have already been saved to
your last practiced column. And now let's see how
incorrect button works. I expect that once I click on this incorrect answer button, my spaced repetition schema should be launched from scratch. And yep, it works. Once I add an incorrect answer, my next practice date for this word is assigned
for tomorrow. And I think we're halfway there. In the next lesson, we
will add a possibility to hide and show translation
of the word on the card. And after it, we're going
to set up our views, our galleries to see
word records as cards.
6. New Words [Human]: Hello again. In this lesson, I'm going to add a new view, which will let us conveniently add and learn new words and see them separately from the one that we have already
started to learn. So add a new view, and this time, I want
it to be a table view. Let's name it New words and change the icon
to your preference. Let's disable the icons, and I also like to turn
off those vertical lines. Okay. Now let's go to
property visibility, and I suggest you to only leave your English Polish
translation and maybe edit and only
the correct button. Probably I don't need
this died column, but I want to sort the
words by this column, and I want to see the most
fresh ones on the top. So that only new words
appear here in this view, we have to add the filter. Let's filter all the
records by last praxis. If last praxis is empty, then this word is
supposed to be new, and that's actually it. We can move these new words
to the very left position. Let's hide the database
title, by the way. And add the divider between
the button and the database. Let's hide this filtering
and sorting settings. And it is supposed that
I see my new word. I see it's English version, and I try to memorize my
Polish version of this word. And once I memorized it, I clicked the button, and this word is marked
as correctly answered, which means it has the next praxis data
assigned to it for tomorrow, and this word disappeared
from this view. So tomorrow I will see this
word in my review section. And if I want to add a new word, I can do it right here. The newly added words
will go to the very top because I use this
descending order for this sorting rule. You can do the opposite and
use this sorting order. We're done with this part, and in the next lesson, we will add possibility to archive the words that
we have already learned.
7. Archiving Words [Human]: Next lesson, and we're very
close to the finish here. In this lesson,
we're going to add possibility to archive
the words that you have already learned and no longer want to see them
in your review gallery. So let's go to the debug view, which is quite useful for adding new properties and add
another check box. Archived checkbox. Okay. And let's add
a button that will help us to move award to
the archived section. And this button should change the archived checkbox
and set it to check. A let's rename it the
same way we did it for other buttons and put the
Imoge of a trash bin here. Now let's go to the
review section and update the filter so that we didn't
see the archived words. We have to change
the existing filter to an advanced one and add a new rule which
excludes the archived, so archived should be unchecked. Make sure you have end here, not all but end. And let's reveal the button
for archiving our words. So now you not only can answer with these
buttons, but you also can. So now if you see that you're actually quite good
with this word and you don't want this to resurface in your review
section any longer, you can just archive
it and it disappeared. But probably a good
idea would be to review sometimes the words that
have been archived. So let's create another view. Let's duplicate it from the existing review Gallery
and name it review archived. Let's change the icon. I will move it to the
left and let's update the filter to only show
the archive towards, and we don't need this next practice date
here in the filter, so you can just remove it. And now let's update the
sorting rule so that all the cards have been sorted by the last
practiced date, and the ones that
have been practiced longer ago would
resurface to the top. So we need ascending
sorting order here. Let's add several cards
to the archive section, and let's say you want to
review your archived cards. Let's check the
sorting, by the way. Let's say we practiced this
word almost a month ago. So it became the first one, which is good, which is
what I wanted to have. And probably you don't need
this archive button here. So let's say you want to review your archived words and you see the word that you can't recall, and I think that it
would be pretty cool if you could click on the
incorrect button here, and this word would be
archived and edited for the review for tomorrow according to my spaced
repetition schema. To do that, let's update the behavior of this
incorrect button. So once it is clicked, I want archive box
to be unchecked. Saving the changes, and
let's test them out. Window. I see the answer
and I can't recall it. I want to get this card
back to my review system. So I click this. So it disappeared from here, and I expect to see the next
practice date tomorrow. Here is my word window. Next practice date is tomorrow, and this card is not
archived anymore. By the way, if you want your
words to be not that tall. You can unwrap the content
here in the answer section and you can see the cells
of the normal height now. Okay, we're done with the
archive functionality.
8. Review Difficult Words [Human]: Is the wrapping lesson
for the part where I manually built this
spaced repetition system. We will add an optional
view to easily review the words that we failed to
answer for the last time, and we're going to the system. So what I want to add here
is an optional view for reviewing the words that I
failed to answer correctly. I want this view to look very
close to what we have here. In new words, I want
it to be a table. So I will just duplicate
this view and rename it to Review failed, and I will change the icon
for something like that. I don't need to see the
buttons here because I don't want to add some
answers to my answer lock. I just want to review
the words to make sure I'm ready to give
correct answers tomorrow. I have to update
the filter to show, I will delete the
existing one and add a new one over the answers, and I want to see
the records which have answers log ending
with this fail sign. And what else I want
to do here is group in those words by the
last practice date. I will leave this date
by in relative mode. And I would prefer to see
the newest one on the top. Let's say I practiced this furniture word
somewhere on 1 May. Then this word will go
to another group which brings together all the
records for the last 30 days. You can also update this setting to have it
not relative groups, but grouped by weeks or
days or whatever you want. But for me, relative seems
quite simple and nice. I will move this
view to the middle.
9. Ideas for Extension: So this is pretty much it. The system is ready, and
it looks quite simple. But despite looking this simple, I find the system quite
thoughtful and powerful. It has the bare minimum it
needs for learning new words. But what add here. I will show you
the extensions for this system that
can be implemented. And if you are
interested in having my guidance in building those extensions, let
me know about it. Leave a review for
this class and add a few words about what exactly
you would love to see. Once I see the interest in
particular functionality, I will record
additional lessons, bonus lessons for
the same class. First of all, we could add
additional views for training our words in the
opposite direction from Polish to
English in my case. Another thing that we could add here is the possibility to mark if the word was easy
or hard to recall. If the word was hard
for you to recall, another interval would be taken. The previous one, for instance, or the current one
would be repeated. One more extension that is
quite easy to add here is possibility to type
the answer and then check if you
typed it correctly. And of course, we
could group our words by topics and add
some statistics, especially if you
have a paid plan with access to Notion charts. Okay, we're done with this part where we build
this system manually. And now let's do this experiment with
Notion AI and try to build this same system or
similar system or maybe better system with
Notion AI assistant.
10. Vague Prompt [Notion AI]: Our new lesson, and
this is time to do this same system
with Notion AI Agent. It's going to be an experiment. I will remind you that
Notion AI is a paid feature. You have access to it on
Notion business plans. So if you don't have a
paid Notion subscription, you may just watch me trying to rebuild this flashcard system
with Notion AI assistant. In fact, it has some
important limitations. Notion AI agent
configure buttons, and the buttons are very
important part of our system. So I will have to configure
the buttons manually. And if I'll be able to
use Notion AI features, I would try to use them
instead of manual work. I've prepared two prompts
to do this experiment. The first one is quite general. Give Notion a general idea of what system I want
to get in the end, and I list all the features
that I'd like to have here. Those prompts will
be available in the document that I have
attached to this class. So I copy this prompt, and I'll create a new page
for doing this experiment. Let's open Notion Agent chat. And insert the prompt. One more thing that
I'm going to do here is remove my workspace
from the context because I do already have
a flashcard system in my Notion workspace that helps me to learn
new polish words. So I will turn off this toggle. There is no need to have
access to my Notion calendar, but I will let Notion Agent
to use Notion Help Center. I will use this default mode, and let's try to do this with
this new Opus model. Okay. I think I will speed
up this process because Notion usually needs several minutes to build a system of this
complexity level. In fact, I want you to
see how this vague prompt will work just as an example. And later, I will use this very specific prompt with all the properties
and views described, and we'll see them
in comparison. But in fact, it's really interesting to me
how Notion will manage this problem of assigning a new practice
date dynamically. Okay, Notion has finished
building this system, and it has this instruction
in the beginning. And the most interesting
part for me is this one, how to update the card. What is the amount
of manual work is required for me in
order to use this system? Okay, so Notion
suggested me to manually set last result to
correct one column, then set last reviewed to today, second column, and manually
increment some new column, which will probably help Notion to find the position
of the next interval. Let's see how this system looks. Today review, today, how will I see the
Polish translation? Probably, I have to open the
card and then market is, let's say, correct, last
reviewed today and stage one. Next review depends
on this stage, I guess, because
it's the formula. Let's try it. Yeah, looks like it just this formula depends on the value set to
this stage column. Actually, if Notion
could add a button, there could be a
button that would do all this work by itself. Notion did pretty
good work here. Actually, I can add this button and let's see how it will look. The configuration
for this button is supposed to be easier than the configuration for the
one that I did manually, and stage should be incremented. Increment the value that already sits in this column, offset it to one if
this column was empty, Okay, looks like this
formula is correct. Let's say the changes. And now let's try to see
how this button will work. My first session and next review date is
set for tomorrow. The second correct
answer in three days, in seven days and in 30 days. Yeah, this is quite good work. The button for marking the wrong answer We will have to set last
result to incorrect, then last refute to today, and stage should be zero, I guess, or one. And the next review date
is set to tomorrow. What I definitely miss
here is possibility to see the answer here
instead of opening the card. But actually, this is also okay, especially that we can hide all the properties that are not needed for the learning session. This one is accidentally added. So this one should be hidden
and it won't take a lot of effort to make this system look like the one
that I've built manually. So I would say that Notion did pretty good job considering
it can't add buttons. It also added this view
for adding a word. Which looks nice, but I don't think that it's very functional. Probably it's not
really convenient. What else do we have here? Recently failed. It shows all the properties
which are not needed, actually, but the
most important ones are here in the first place. Archived was the ones that have this status set to archived and I could
update the behavior. I will do this of this wrong cancer mark
to set Status to active. If I come to this
section and I see that I don't actually
remember this word, I could click on the
button to bring it back to the review section
and all words. I liked what I've got here, pretty good result considering
that I would spend maybe 10 minutes to write
this prompt and to refine it, I would definitely add some
more features to this system, but it is already
pretty functional.
11. Detailed Prompt [Notion AI]: And now let's try
another prompt, which is very specific
and it describes all the details that we have in the system that
I've built manually. So we have all the
properties listed here, a note about template, all the views, and that's it. So I copies this prompt
and add a new page. And let's start a new chat here. I will also exclude my workspace and my
calendar from the context. And I will switch
to the Opus model. Let's see how Notion AI agent will manage to do this task. Okay, looks like
Notion Agent just deleted the page I
prepared for this task, and it added a new one for building the system
that I asked it to build. So let's check it out. It has name which is not empty. I didn't have it in my
prompt, English, Polish. Then we have this button
which is not configured yet. Added date, Archive button. Some of the words already
archived because I asked Notion to add the testing records
with different state. Looks like we have
all the columns here. I ask Notion to only show English Polish and this
button on the new words view. But for tables, Notion shows all the properties that are
available in the database. I suspect that we have
the same in this table, review failed and in the debug. Actually, in debug it's okay. I wanted to have
all the properties, but in those two tables, I would prefer to have
limited amount of properties, only those that are valid for the task that I'm going to
perform in this context. So I have to hide
irrelevant properties and rearrange the order of the
ones that I actually need. Let's check out the gallery
for reviewing our words. I will hide the
changes to remove this highlighting.
It's not that bad. It actually even gave the
style that I asked it to add. The problem here is that we have all the buttons and other properties together
here on every card. So we have to tweak a little bit the gallery settings
to make it look the same way we have it in our manually built
system like this. Now let's check out the san. And it has those same issues
with having all the values, all the properties together instead of having them
on separate lines. So this is something
that I will have to fix here as well. So the main problem is
having these buttons configured and Looks like
it's some temporary bug, but if buttons are edited
by an ocean agent, I can't edit them, but I know
a trick that will fix it. I will change the type to any other and then change
it back to button. And all the buttons
now are not gray, which means I can edit them. Let's start from the first one. I wanted to have this
name, green circle. Then I want to edit properties. I want a green circle
to be added to the answer slog and
actually have prompts for this formula AI agent
that you can use to make notion buttons work
the same way we did it in the system that
was built manually. Here they are let's get
back and insert the prompt. It's done. Then add
in another action, which actually we could
do this right here. Last practice date is
supposed to be set for today and another action, which will update our
next practice date with constant formula. And I have a prompt for
this formula as well, so I will copy it from here. This prompt is quite complex, and I think it would be
much harder to write this prompt for a person who is not very good in
notion formulas. And one hint that
I will share with you if you work on your
formulas with modus, emphasize this explicitly for Notion formula
agent and reminded not to use this function because this function breaks modus. Okay, let's test it out. Generating this formula should
take a little bit longer. Okay, we're done here. Notion Agent has also added some comments so that it was easier for us to
understand the formula. Let's check how it works. I will rearrange the columns to make it a little
bit easier perceived. Okay, let's check
out if Ben works correctly and assigns next
practice day correctly. First, correct answer, and we have the next practice
date assigned for tomorrow in three days in
seven days and in 30 days. Super. Now let's
copy this formula. We will need it for the
incorrect button configuration. Okay, so this button should update the last practice
date for today, then update the answers, then update archive to unchecked and later it should update the next practice
date with a custom formula. Okay. And now I have
left it to the end. Now I will set answers with the custom prompt that we
have here for this button. Okay, I'm done here. And let's try how it works. Okay, so it reset the
interval schedule, so it works correctly. And if this word is archive, the incorrect answer
mark will bring it back to the archived cards deck. So we are done with
the buttons here. So we have this archive
button to be adjusted here. And the view settings that
Notion Agent failed to do. I will not finish this work because there is no
AI involved at all. It's just manual work, and it would take probably
around ten more minutes, but that's just because I know
what I want to get because I have this reference system that I've just built manually. In a real life scenario, probably I wouldn't have a clear picture of which
views I want to add, what exactly I want them
to look, and so on.
12. Human vs Notion Agent - My Thoughts: So what can I say
about this experiment? I would say that I was
pretty good impressed by how Notion AI built the system
with the first prompt, which was not very specific. It just gave notion
a general idea of what I want to build, that I want a space
repetition system and features that I
want to have in it. And I like the way notion
suggested to handle these space repetition
intervals more than I did it by myself for the system
that we've built manually, at least because we didn't
have to come up with this complex formula for
updating the next session date. From other side, it still required some
manual adjustments, and it still required
the mental effort to get into the context of this system that notion agent came up with. What I would do
differently next time. Is asking notion
explicitly about advice on the buttons
to be edited so that the whole system felt more
like an application instead of a paper notebook where you have to input all the
values manually. I didn't like my experience
with the second prompt, which was very
specific just because I've spent pretty much
time coming up with this clear understanding of the final architecture that I want to have and
looks like there is no point to use
notion agent for this workflow instead of
manually building the system. Seems like it just adds more confusion building all the
system by hands from scratch. I think that at some point, notion will add to the
agent's possibility to configure buttons
and add automations, and it will be a game changer for using notion agents
for building the systems. And despite the
notion agent can't use all the notion blocks
in building process yet, it is already a very
powerful assistant when you have a general idea of what you want to
build and not have a clear picture of the
final architecture yet. And in the next lesson, I will show you how
Notion agent can empower your learning experience
with foreign languages.
13. Bonus Lessons: S it for this class. I
hope you enjoyed it. I encourage you to share a screenshot of the system
that you have built within this class to celebrate
that you have done this and to inspire
other students. If you enjoy this class
or you want to get some additional lessons on extending the
system with topics, with some statistics
and additional buttons, leave a review in
the review section and tell me about your thoughts, your difficulties, and which exact additional lessons
you would love to see here. Okay, that's it. See
you in the next class.