Automate Voice Notes to Notion with AI: Easy Setup Guide
Learn to build an automated workflow that transcribes voice notes, summarizes them, and sends them to Notion using OpenAI's Whisper and ChatGPT.
File
How I Use AI to take perfect notes.without typing
Added on 09/06/2024
Speakers
add Add new speaker

Speaker 1: Well, hello there. So this week, I built a bot that takes voice notes, like the one that I'm recording right now, turns them to text, and sends that text to my notes database in Notion. And by text, I don't just mean a transcript. I also get a full summary, a list of the main points in the text, and also a list of action items. Today, I'm gonna show you exactly how to build this workflow for yourself. It is surprisingly easy to set up, and once you do have it built, it is completely hands-off and automated, which makes it awesome. Now, there are two recent AI tools that are doing the heavy lifting in this automation. First, OpenAI's Whisper model is gonna take the audio file and turn it into a transcript, basically turn it from audio to text. And secondly, ChatGPT is gonna take that transcript and use it to generate the summary and those lists of action items and main points and so on. Of course, what ChatGPT actually does with our transcript is entirely dependent on the prompt that we give it, which means if you wanted to, you could change up that prompt and do something different, like say, recording a note on your phone and getting a blog post draft as a result. And for that reason, later on in the video, I'm actually gonna share some tips for writing consistently better prompts that are gonna give you better output, which means that you can either replicate my workflow exactly, or you could change it up and customize it to your own note-taking needs. And it's that customization that makes me so excited for both AI tools in general, but also this workflow in particular, because I see it as really widening the pipeline between my actual brain and my second brain inside of Notion. In the past, if I wanted to brain dump a thought into my second brain while I'm on the go, I would have to use my thumbs and my phone keyboard, which is very, very slow. But now I can just grab my phone, talk to it, and get that perfect transcript inside of Notion, which is super cool. By the way, if you do wanna turn Notion into your own second brain, as I've done, my ultimate brain template for Notion is the best way to do that. It's got a robust task manager, it has a project management dashboard, it has goal tracking, and most relevant to this video, it has a full note-taking system. In fact, this is my note-taking system, and one customization that I made to it recently, if I go down to my voice notes section here, is all of my AI transcribed notes that I have made through talking to my phone are in this section along with this page right here. If I click one at random, I've got my summary, I've got my transcript, all that good stuff. So if you do wanna learn more about ultimate brain, you can go over to thomasjfrank.com slash brain to check it out. There's also a discount code in the description down below, so check that out as well. And I'll talk a bit more about the features near the end of this video, but for now, let's start building. Now, as always, I've got the entire video's table of contents right there and below, so skip around to your heart's content. We are gonna kick things off with a bit of an overview of the four tools you will need to actually get this to work. The first one is gonna be a Notion account, which I assume you already have, but there is a Notion link in the description down below if you haven't signed up. And you will also want a notes database inside of Notion. That can be any old database, so it could be a template like ultimate brain, you could use one of my free templates, or you could just set up a database inside of Notion. Just make sure you have a database ready. Secondly, you're gonna need an OpenAI account. This is what's gonna allow you to actually use the Whisper API for transcribing your audio, and then use the ChatGPT API for the summaries and the lists and so forth. And you can get that over at platform.openai.com. Third, you'll need a cloud storage provider, somewhere to upload your audio that will also kick off for automation. I'm gonna use Google Drive in this tutorial, but you could also use Dropbox, you could probably use OneDrive. You just get the one that works best for you. And fourthly, you'll need a PipeDream account, which you can get over at pipedream.com. And PipeDream is the automation builder that's gonna allow us to stick all these other apps together and that's gonna drive the automation and have it automatically kick off every time a new audio file is uploaded to Google Drive. And on that note, I wanna go over to Whimsical, which is one of my favorite tools here, to basically show you how this automation is gonna work at a high level. So basically, we are going to be taking voice notes on our phone. They're gonna be uploaded to Dropbox or Google Drive, whatever you want. And then, PipeDream is gonna kick off an automation that is going to query the Whisper API, the OpenAI's ChatGPT API, and then we're going to send all of the stuff we get from OpenAI to a brand new page in Notion. So that is like the broad strokes overview of what's going to happen from your perspective, but what's actually gonna happen behind the scenes? Well, if we scroll down on the canvas to this little graph that I've created here, we get a bit more of a detailed look. So this is what we're actually gonna be building. We are going to be uploading our audio files to our cloud storage, and the moment an audio file hits that cloud storage in what we're gonna call a watch folder, PipeDream is going to see it, and that is going to be the trigger for our automation. At that point, we are going to be downloading the audio file into what's called temp storage. We are gonna send the audio file to Whisper for the transcription. We are gonna send the transcription, basically the text to ChatGPT for summarization of those lists. Then we're gonna do a little bit of formatting to get all that stuff in a nice little bundle, and we're gonna send it onto Notion, creating a brand new page. So hopefully that sounds relatively doable to you because it is actually time to start building. And the first step that you're gonna wanna take is signing up for a PipeDream account. I'm gonna assume you already have one, and once you have one, you should see this little dashboard here, or it might take you to a brand new workflow right away. If it doesn't, you will have this new button right here, and I'm gonna go ahead and click that and start building our workflow. So this is basically where everything is gonna happen, and we're gonna create a series of steps, much like you would in Zapier or Make.com, and then when our automation actually triggers, it's just gonna go through all those different steps. So I'm gonna first name this workflow, and let's just name it Speech to Text to Notion. And the first step of a workflow is always the trigger, and the trigger is also the only step in each workflow that you cannot rename, it's just always called trigger. So in this instance, we want our workflow to trigger every time an audio file is uploaded to a specific folder in Google Drive. So to do that, I'm gonna search for Google Drive, actually, it's just right there on the screen, I'll click that, and now I have a list of different actions that I can pick from. And for Google Drive, there is a new files action, and it says emit a new event anytime a new file is added in your linked Google Drive. So I'm gonna choose that as my trigger, and now I need to actually connect a Google Drive account. So I'm gonna go ahead and click to connect, and once I'm connected, you can see that the drive option here is set to my drive, that is actually what we want, we could choose like shared drives if they existed, we do want my drive, and I want only files that go to a specific folder to be watched in this case, I don't want it watching my entire Google Drive account. So I'm going to click the folders optional field here, and I'm going to search for a folder, and I actually have a folder pre prepped for this, that's just called Audio Upload Test, I believe, there it is, I'll check that, and I will hit create source. And now that I've got my trigger set up, before I can start making additional steps in this workflow, it says action required, and it wants me to generate a test event for this trigger. Well, this event involves uploading audio files to Google Drive, now I could do that from my voice notes app, but for demonstration purposes here, I'm just going to open up my Google Drive to this folder, and I'm gonna drag an audio file into it. And now I can see that one new event has been detected by the trigger, so I'll go ahead and open that up, and I will select this new file that it has detected. And every time you get a successful result in a step in Pipedream, you're gonna get this green success message, and also in the exports tab here, you're going to get an exported object. So basically what we're gonna be doing throughout this entire process is accessing properties of this object and referencing them in additional steps. Now you will notice that there is both a copy path option and a copy value option. If I click copy value, I'm gonna be copying the exact value from this particular run of the automation. So it'll be the 1% rule, sample audio test.m4a. Usually you don't wanna do that. Usually you want to copy the path because that's going to dynamically reference the value that comes in every single time that the automation runs. So to continue, I actually wanna go up to this ID property right here, and I'm gonna hit copy path so I can dynamically reference this ID. So we're gonna go ahead and hit continue. And then the next thing that we need to do is actually download the file from Google Drive into Pipedream's temp directory. The reason we need to do that is Pipedream has been authenticated and can access your Google Drive, but OpenAI's Whisper cannot. We have to actually upload the file to Whisper, and to do that, we need to download it from Google Drive first. So luckily, Google Drive actually has an action for this. So once again, I'm gonna search for drive in this step. I'm gonna find Google Drive, and there should be a download a file action. You can either search for it or you can hit load more actions to find it. And I'm just gonna go ahead and search. There it is, download file. And once again, we can see my Google Drive account is already connected. And under the file property, we're going to reference that dynamic value from the previous step. So to do that, instead of choosing one of these options here, I'm gonna go to enter a custom expression, and I could either go here and hit select path, or because I copied the path earlier, I could just paste it right here. So notice we're using double brackets here. This is the convention that Pipedream uses for referencing these projects. And if you went through my Notion API guide, it's not necessary for this tutorial, but that could be useful. You will probably recognize this format here. Essentially, we are accessing properties of an object called steps, and those properties might have other objects as their values. So if I go back up to results, we can kind of see what's happening here. There's this steps.trigger object, and then I can sort of drill down into that. One of the properties is called event, and that is an object itself. And I can drill down into that and find the ID property, which has this value. So I'm basically telling it, I want to download the file that corresponds with that ID, and then I need to provide it with a destination file path. And we get a little bit of help here. It says the destination path for the file in the slash TMP directory, and it gives you an example. So what I could do here is I could type slash TMP, and then just give it a name, like slash recording.mp3. The only problem with this is you might actually have different kinds of audio files that you upload to your Google Drive. For example, if you're using an iPhone, the VoiceNotes app actually exports m4a files. But if you're using a different app, maybe it does mp3 files. So instead of typing mp3 there, which is gonna give us an error, what we actually want to do is go back up to our results here. And before I do that, I'm gonna go ahead and hit this little pin icon so this actually stays open. But I'll toggle open results. I'll pin that as well. And we can actually get the file type of this file because it is one of the properties in this event object. If I click more here, I can find more properties. And if I scroll way down, there is this full file extension property, and we can see m4a is displayed right there. So if I copy this path, what I can do is come back to my destination file path, and instead of .mp3, I'm gonna do . And there it is. Steps trigger event full file extension. So now if I do an m4a file or an mp3 file, or really any kind of audio file that Whisper supports, it's going to work and I'm gonna be able to dynamically set that extension. So I'm gonna hit test here. And as long as I did things correctly, I should get a success message. And then I should have that file in temp storage. And there it is. We've got a return value. We have the name right there, and we have the MIME type. All that is good. So the next thing that we wanna do is actually send our audio file to Whisper, to OpenAI, and get it transcribed. So to do that, I'm going to hit the plus icon down here, and then I'm gonna look for the OpenAI ChatGPT app. And when you click that, you're gonna get a list of actions just like you would for any of the other apps. And the one that we wanna pick here is create transcription. So if I click that, it's going to ask me to connect to my OpenAI account. And this is where I'm gonna actually show you how to make an OpenAI account if you don't already have it. If you already use ChatGPT, if you don't, you're gonna have to sign up. But either way, you can go over to platform.openai.com to log in or create an account. And once you do, if it is a brand new account, you should get $5 worth of free tokens that are gonna expire after three months. And if I'm doing my math correctly, that should actually give you about 12 hours of audio that you could upload and transcribe and get summarized, which is a pretty darn good amount for a free trial. Anyway, after you sign up, you're gonna have this little dashboard here. And if you go up to personal in the top right corner, and you go to manage account, the first thing I will point out is that if you do wanna upgrade to a paid account after that trial is over, you can do so in the billing overview area. And if you want to, you can even set a hard limit that will ensure you don't go over a certain amount of spending every single month, which is pretty cool. After that, you're gonna go to the user API keys option here and you're going to create a brand new secret key. Now, I am gonna delete this key after I make this video. So don't go trying to use it. Make your own key, pay for your own AI transcription, please, thank you. But I'll hit the copy button right here and I'm gonna go back to my Pipe Dream workflow and paste said API key right here and hit save. The next thing I'm gonna select is my audio upload type. And because we have our file and temp storage, I'm gonna click file right here. And then here, I actually have to define the file path for our file. Well, earlier we typed slash TMP slash recording dot. And then what we actually have to do is once again, get that file extension from our first step here. So I'll kind of scroll down here to show you this. You can actually go into any of the objects for previous steps here. And we know that our file extension was in the trigger steps object. So we're gonna go there and we're going to see if we can find it. And actually, if we search for it, I believe it was full file something. Full file extension, there it is, cool. We'll select path. And now this should access our recording dot, in this case, M4A perfectly well. So once again, we're gonna go ahead and test. Though I will point out, there are some optional fields here. Typically with transcription, you don't need to set any optional fields, but some of these we will actually set in the next step when we're working with chat GPT. So for now, I'm gonna go ahead and hit test. And if things go well, we should get a full transcript of the audio file that I just uploaded. And just like that, we now have our transcription in this little return value transcription property here. We can see it is pretty much a perfect transcription of my audio file. Now, this is the part in the building process where you can run into a couple of different errors. So I wanna briefly cover those before we move on. First, you might get an error when you test this transcription step saying that your recording no longer exists. That can happen because the temp directory doesn't keep files in it for very long. Now, when you're actually running the automation, that's not gonna be an issue. But if you're taking a while to build this automation while watching this video, you might run into that problem. So if it happens, just go ahead and basically upload another file to Google Drive, test the download file step again, and then it should work. The other potential problem is that by default, Pipe Dream workflows will time out after 30 seconds if they haven't finished. Now, most workflows are gonna finish a lot faster than that. But with Whisper in particular, if you're uploading a pretty long file, it can sometimes take longer than 30 seconds. So to deal with that, you can go over to this three dot menu up here, go to your settings, and I'm gonna go ahead and leave without deploying. And you will find this execution control setting here. And I'm just gonna go ahead and set my timeout value from 30 seconds to 180 seconds. I'm also gonna mention that there is a lot more detail around Pipe Dream and this entire workflow in the written version of this tutorial. And I'll have that link to the description down below. There is also what I'm gonna call the code heavy method that I'm actually using personally. So if you want to do this, the code heavy method with all these code blocks, you can just copy and paste. There are some advantages to doing that. And the blog post kind of goes through them. For this video, I'm keeping things simple. I'm just doing the no code method, but there are some details about the Pipe Dream settings and pricing and workflow, all that's in there. I'm not going to pad out this video with all that detail. Just in summary, I'm setting my timeout value to 180 seconds and I'm gonna go back to my editor and we'll keep building. So now that I have my transcription, I can add another chat GPT step. So I'm gonna go with open AI chat GPT once again, and I'm going to choose chat this time instead of transcribe. So this is the point where we're actually gonna be working with chat GPT via the API to summarize our transcript, to turn it into lists, all that good stuff. So let's take a look at the different configuration options we have here. We're already authenticated with our open AI account. We don't have to worry about that. If you happen to have beta access to GPT-4 via the API, well, number one, lucky you. And how can I get that access? Cause I don't have it right now, but you could select that right here. Otherwise I recommend going with the GPT 3.5 turbo model. This one right here is frozen as of March 1st, 2023. So you're gonna wanna pick this one that isn't currently frozen. And then the user message is going to be your prompt. And with that, we are now going to briefly go to prompt school because your output that you get from chat GPT is very dependent. The quality of it is very dependent on the quality of your prompt. So there are three different parts to a prompt. There's what's called the query or the user message. There is the context. And then there is the instructions or the system message. So basically the user message is what you would type into say chat GPT, like write me a poem or summarize this email that I got. The context is gonna be the transcript in this case, an email, or basically anything that you're basically asking the chat bot to analyze and use as context in your prompt. And then there is the system instructions. Now, if you're working with chat GPT via the actual website, the system instructions are one in the same with the user message. It's gonna kind of try to parse that out. But when you're working with the API, that is actually a different parameter. It's called the system instructions. And if you were to look at the code, it would actually be a different section with a completely different prompt. And what the system instructions do is essentially instruct chat GPT on how to respond in terms of formatting. And you can also give examples in the system instructions. And I have found if you give an example in the system instructions instead of the user message, your output is almost always gonna be a lot better. Okay, prompt school over, let's actually start filling out the user message and then we will handle the system instructions. And to fill this user message field out, I'm actually gonna go back over to the written version of this tutorial because I have the prompt pre-written. So I will have this link in the description down below via the handy dandy table of contents on the sidebar underneath the no code method, which is what we're doing in this tutorial. You can find this little summarize the transcript with chat GPT step. And if you scroll down a little bit, you're gonna find this code block that has the exact prompt that we're going to use. So you can click copy clipboard, you can go back over to your user message field and I'll just go ahead and paste that in. And we can look at what we're doing here. So all of this is what we would call the user message. And I'm saying write a title for the transcript that is under 15 words. I'm being specific. I'm asking for a specific limit in the words of that part here. And then I'm actually also asking it to write dash dash summary dash dash. So the reason I'm doing this is this is what I call a delimiter. It's going to basically allow us to parse through the output that we get from chat GPT and do some useful stuff with it. And the reason that we're doing that is we actually want to separate the title, the summary and then the lists and place them on our notion page in different spots. Obviously the title is going to go in the title field right here. And then the summary is going to go at the top and we want to have, at least I want to have all of these lists beneath the actual transcript. So to do that, we're going to need a way to split the title, the summary and the lists into three separate pieces of data that we can work with individually. And the way that I'm going to do that is asking chat GPT for these delimiters here, summary and additional info. Beyond that, I'm asking it to write summary as a heading one and then I'm asking for a summary. And then down here, I'm asking for a list of the main points, action items, follow-up questions, potential arguments against the transcript. And you can get creative here. Ask for any kind of list you want or ask for basically anything you want. It's chat GPT. And then at the bottom, I'm providing the transcript. And once again, I am dynamically linking and this is kind of a weird bug here that I'm seeing, I'm dynamically linking to the return value of the previous step. I'm gonna go ahead and delete that out of here and redo it just to sort of show you how it works. So if I come back up to my results here and create transcription, I'm going to find this transcription property here. I'm gonna copy the path. And once again, this is how we dynamically reference values in additional or subsequent steps here in Pipedream. So basically it's going to take this as the user message. It's going to take the entire transcript from the previous step as the context. And the last thing we wanna set is system instructions here. So if I go back to my written version, I can scroll down just a bit further and I can find my system instructions. So this is the real secret sauce here for getting consistent output. I tell it, you are an assistant that only speaks in Markdown, which is a formatting language that gets us like headings and bullet lists and all kinds of stuff like that. Do not write text that isn't formatted as Markdown. So that right there should be enough to get ChatGPT to always respond in well-formatted Markdown. But to be extra thorough, you can actually give it example formatting. So here I've set example formatting and I've given it exactly what I want, including these delimiters as I want them written. So if I set that as my system instructions, I set this as my user message and I pass it the transcription as the context, I should be able to test it and I should get a good result. One other thing that I'm gonna do though is I'm going to set a temperature setting. So temperature is a value from zero to one that basically determines or influences how creative the output is going to be. So if you want ChatGPT to be very creative, you want it to write like a poem or something or a blog post, you might wanna set a high temperature value but in this case, I want well-formatted Markdown and I also want it to be pretty straightforward in summarizing and creating main point bullet lists out of the transcript that was provided. So I'm gonna give it a value of 0.2 and you can always experiment with this but I found that 0.2 works pretty well. The rest of these you don't have to worry about and you can go ahead and hit test after that. Okay, and once again, we have a success message and if we drill down into this choices property here, which is actually an array, we can keep on drilling down until we get to this little content property here and we can see here's our title, here's our summary delimiter, here's our summary, additional info, main points, all formatted as Markdown just as we asked, which is awesome. And as a bit of a demonstration for why we're formatting in Markdown here, I'm gonna go ahead and hit copy value and I'm just gonna go over to my Notion workspace and create a brand new note. We'll just make it in the inbox here and I'll just show you that you can paste that Markdown and it's gonna come in with heading twos and with bullet lists just as we wanted. So that's sort of why we are having an output Markdown and one nice thing about Pipedream is it will actually parse Markdown and send it to Notion just like this. However, if we go back to one of our examples here, we will notice that our summary is here and then our transcript is here and our lists are down here as I mentioned before. Whereas our result from Pipedream has our summary, has our main points, our transcript is not in here and we have our title in there, which we would want to put in the page title, not in the page content. So we are going to add one small code step to this workflow, which I guess technically makes it not entirely no code. Sorry for the click bait if I do title it no code here, but it's gonna make things a lot more elegant and it's going to save you a lot more calls to OpenAPI because if you didn't do it this way, you would have to make a call to OpenAPI for the title and then another one for the summary and then another one for your additional points and we don't wanna do that. So I'm gonna add another step here. I'm going to choose node and then I'm gonna choose run node code and I just want to choose any of the actions there because it's gonna get me one of these code windows and this is really the power of Pipedream. Make.com does not allow you to write your own JavaScript code in your automations, Pipedream does. So basically they're taking care of all of the execution environment for you. They're taking care of the security, the authentication, all that kind of stuff, but you get the option of writing JavaScript or writing Python if you know it and that's really what makes the platform so powerful. So what we're gonna do here is delete all of this code in here and we're gonna just paste a code block that I have pre-written for you. You don't actually have to code anything and to do that, I'm gonna go over to the written guide once again and I'm gonna go to format, the title, summary and transcript. I will have a direct link to this section of the blog post in the description down below so you can easily zoom over to it and if we scroll down a little bit, we are going to find this code block. All we'll have to do is copy it and paste it in, but before we do that, I do want to give this step a more descriptive name because right now, it's just named node and if you will notice, in all of our exports here, the path to any of the values we're referencing in future steps is steps dot, what is it? It's the name of this step here, steps dot chat. If we look at this one, it's gonna be steps dot create underscore transcription. So the export value of this block right here by default will be steps dot node and then if we changed it later, then any time we were referencing that steps dot node path, it would break. So before we even build this, I'm gonna change this to formatter and now it's just a little bit more descriptive. From there, I'll go over to my blog post, I will hit that copy button on that block of code and I'm gonna go ahead and paste it in there like so. So if I hit test, what I'm going to get is an object that basically splits that title, that summary and all of those lists into three different properties. And here it is, here's my return value, I've got title, I've got the transcript as well, I've got summary and I've got additional info. And I guess one other thing that this bit of code is doing is turning the transcript from a wall of text into basically paragraphs that have no more than three sentences each and that have a blank space between them. And this is gonna cause Pipedream to send each of these paragraphs to Notion as its own text block instead of having just a super big wall of text, which is another reason why you might need this code block. So now that we have that, we are done with the coding, told you it would be easy and painless. All we have to do to finish this up is send this bad boy to Notion. So I'm gonna add one final step, I'm going to search for Notion as the app here and then the action I want is not create page, it's create page from database. These are two different options here. So I'm assuming you have a notes database that you're working with here, we are gonna choose create page from database and then the first thing we have to do is connect a Notion account. So you've probably seen me do this before, if you've watched my other tutorials, I'm going to authenticate with my College Info Geek workspace here, I will hit select pages and then I think I actually have to drag this out cause I'm kind of zoomed in. I wanna make sure that the notes database that I'm going to be using is selected here because if it's not, Pipedream is not going to have access to it. But I can see here all notes CIG, that is the database that I wanna be using is already selected. So I'm gonna go ahead and hit allow access and we should be good to go from there. From there I need to actually choose the database that I'm going to be using here and I'll set that in the parent database ID field. So I can click right here and it's gonna give me a whole bunch of options based on what Pipedream has access to. You could also manually enter a Notion database ID that is also covered in the written version here. One thing that I do wanna know is if you don't see your database in this list, it might mean that Pipedream actually doesn't have access to that database. So I will show you briefly how to set that access manually. If you're at your database and I'm actually gonna open this as a full page and then go one breadcrumb to the left to access the entire database, you can go over to the three dot menu in the corner here and you can see all of these apps that are connected to this database. Now I actually have two Pipedream accounts which is why I have two here. But if you didn't see Pipedream here, you could go to add connections, you could search for it and because I already have it, it's not there but you would see Pipedream there, you could add it to that database and that's how you would make sure that that access was granted. But I do have that access so I'm gonna go ahead and hit my all notes CIG database right here, set that as my parent database ID and now we can actually specify the page content that we are gonna send to Notion. And we can see here, you can use markdown syntax which is pretty cool because we can basically dynamically decide how we want our page to be laid out. But for the sake of time and the sake of making things easier for you, I'm just gonna go back over to the written version, I'm gonna go to send the transcript and summary to Notion and I'm gonna find my third little code block here which I will copy and which I will paste into my page content like so. So once again, we are dynamically referencing values here. Here's our summary, here is a transcript heading one, here's the actual transcript and finally there's an additional info heading and all of our lists inside that additional info object right there. Now we also wanna set a page title and we might also wanna set some additional page properties as well. So to do that, we have some optional fields down here, one of which is called metatypes and that's gonna be for your icon or page cover and the other one is gonna be setting property types in your database. So first let's set a metatype because I do want to actually set a page icon here and I can choose icon and then from experience working with this platform, I have found that it's better to also enable the property types you want before setting your metatype specifically. So I'm gonna go ahead and choose some property types and I think for this one, I at least wanna set the title which is by default gonna be the name property in your database, I've just changed it and I also wanna set a property called type to a value called AI transcription. So I'm gonna choose those, I'll choose icon and now I have the option of actually enabling these. So let's go ahead and add them all. For emoji, you can actually just search for emojis here. So if I do, I think it's Windows key semicolon, I can search for the robot emoji which looks kind of like a football player on Windows, I like the one on Mac better. For title, once again we're going to dynamically reference an object and I'll actually show you how to do that. So first I'll pin this configuration option here and I'll go back to the formatter success message and there is our title property for which I will click copy path, come back down to title and paste just like that. And then for type, we actually are gonna get all of these different select options, I'm going to click AI transcription which I've set in my Notion database and from here, we can finally click test. So to prepare ourselves, let me go back over to my notes area, I'm gonna go to my voice notes because this is a filtered view that I can show you here is going to show notes where the type is AI transcription which means that once we hit test, we should see our brand new transcript and summary show up in that exact view. And there we go, create a page successfully and we have all of our exported return values from the Notion API but more importantly, if we go back over to Notion, we should have our brand new transcript and summary and there it is, there's our summary, there's our transcript and all the way down here, we have main points, action items, follow up questions, all that good stuff. So from here, all we have to do is hit deploy and now our workflow is live which means it's gonna be waiting for events and anytime you upload a brand new audio file to that folder in Google Drive, this is gonna kick off and you're gonna get that same transcript and summary inside of Notion. Now I will note again that this is the no code version and there are some limitations to the no code version namely, Whisper has a 25 megabyte file limit right now however, if you wanna get around that, if you wanna say transcribe very long podcast episodes or you wanna talk to your phone for an hour and transcribe that, the code heavy version of this tutorial in the article is going to help you get around that. So if you are comfortable with at least copying and pasting code into Pipedream, maybe copying and paste it into chat GPT if you wanna change it up and you get it explained for you, then check out that section of the tutorial, it is just as comprehensive if not more than this no code version and that I will note is the version of this tutorial that I'm actually using myself in my own workflow, I just felt that for the video, the code version might be a little bit too complicated for a lot of people who just wanna get this working for simple voice notes and that is what this no code version is going to do for you. Now once again, if you wanna get a note taking system just like the one I have here which is going to be perfect for this AI transcription and summarization workflow, you can get it inside of Ultimate Brain. This is my truly all in one productivity template for Notion that includes task management, it includes getting things done or GTD workflows if you wanna use those, you don't have to use those, there's a project management dashboard, there's goal tracking, there's a recipe tracker and there is this all in one notes dashboard where every single one of these pages has its own dedicated page as well so it works really really well on your mobile phone and in addition to all these features, Ultimate Brain is one of the only Notion templates out there you're gonna find that has active and dedicated support. We have a whole support team that answers every single question and we also have a community full of customers that are constantly sharing their own customizations and changes to the template so if you wanna turn Notion into a second brain, Ultimate Brain is the best way to do it and you can get it over at thomasjfrank.com slash brain. There's even a discount code in the description down below so check that out if you wanna get a pretty hefty discount and as always, thank you so much for watching. If you wanna get notified when I make a new Notion tutorials or release new templates, you can always get on my Notion tips newsletter as well. There's gonna be a link in the description down below for that and there's also a full Notion fundamentals course on my website that is completely free. In fact, I can show that to you right now. We've got this fancy little sticky menu. You can go to Notion fundamentals and everything you need to learn Notion from the ground up is on this page from page basics to the writing system all the way down to databases and there are new lessons being developed right now as well and of course, right here is where you can sign up for that Notion tips email newsletter. If you have questions, leave them in the comment section down below or hit me up on Twitter. I'm Tom Frankly over there. I'm very active on Twitter so definitely interact with me over there if you are on Twitter and once again, thanks so much for watching. Click one of those videos there or there if you're looking for something else to watch but really go off and implement this workflow. I think this is gonna be super helpful for anybody that has a lot of ideas when they're on the go so get it built for yourself, try it out, let me know what you think. Thanks for watching. I'll see you in the next one.

ai AI Insights
Summary

Generate a brief summary highlighting the main points of the transcript.

Generate
Title

Generate a concise and relevant title for the transcript based on the main themes and content discussed.

Generate
Keywords

Identify and highlight the key words or phrases most relevant to the content of the transcript.

Generate
Enter your query
Sentiments

Analyze the emotional tone of the transcript to determine whether the sentiment is positive, negative, or neutral.

Generate
Quizzes

Create interactive quizzes based on the content of the transcript to test comprehension or engage users.

Generate
{{ secondsToHumanTime(time) }}
Back
Forward
{{ Math.round(speed * 100) / 100 }}x
{{ secondsToHumanTime(duration) }}
close
New speaker
Add speaker
close
Edit speaker
Save changes
close
Share Transcript