How to Connect Google Services to n8n (Step-by-Step Tutorial) β
n8nFreshπ
2025-10-21
Integration Flow β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β INTEGRATION ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β USER REQUEST β
β β β
β βΌ β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β βββββΊ β β βββββΊ β β β
β β Google β β n8n β β API β β
β β β βββββ β β βββββ β β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β β β β
β β β β β
β ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββ β
β β RESULT β β
β βββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββIntegration Points β
- Core concepts explained
- Step-by-step implementation
- Practical examples
Transcript β
[00:00] After this video, you'll never need another Google integration video for N8N. I'm going to show you the exact framework that works with Gmail, Calendar, Google Drive, Sheets, YouTube, Gemini AI, and every other Google service in existence. That's one process with unlimited integrations. And it takes less than a minute once you know the pattern. Let me show you how. Hi, I'm Leon, and I create AI automation tutorials. And if there's one thing I know for
[00:31] certain, integrating Google services into N8N has been a pain point for way too long. So in today's video, I'll show you a step-by-step universal framework for connecting any Google service to N8N. Now, of course, there are hundreds of services provided by Google. So in this video, we'll have a look at the most popular services, but you can use everything you learn in this video to connect any other Google service to N8N. I do want to mention that there are slight differences between the paid N8N cloud service
[01:03] and the self-hosted instance of N8N. And that's got to do with setting up your credentials. So for any Google service, when you create a new credential, you will need to authenticate your Google account. Now, on the self-hosted service, that involves providing a client ID and a client secret. On N8N cloud, you don't have to provide a client ID and client secret. N8N will deal with that on your behalf. So the next step is really for the self-hosted instance of N8N, and that will give us this
[01:34] client ID and client secret. What you need to do is go to cloud.google.com and sign into your Google account. Afterwards, click on Console. Then from your dashboard, you need to create a new project. So to create a new project, simply click on this project picker, then click on New Project. Now, let's give our project a name. I will typically give a name that I can associate with this specific N8N instance. To keep things simple, I'll simply call this N8N Tutorial, and
[02:05] optionally, we can also provide an organization name. Let's create this project. Afterwards, we can click on Select Project, or from the project picker, simply select the project that you just created. Then go to the navigation menu and click on APIs and services. This is where we'll tell Google which services should be enabled for this project. Services could be things like Gmail, Google Sheets, Calendar, YouTube, or even Gemini. We can browse all of the available
[02:35] services by going to the library, and scrolling down with this page, we can see all the available services from Google. In fact, there are over 496 services available. So really, if you want to integrate N8N into any of these services, all you have to do is search for that service, like Gmail as an example. Then we can click on the Gmail API, and all we have to do then is enable it. It's really that simple. So whenever we want to add a new service,
[03:06] all we have to do is come back to this dashboard, go to the library, and enable any of the other services. Now we will get back to the services in a minute, but what we really want to focus on now is to set up these credentials. So let's go to the OAuth consent screen, then let's click on Get Started. Now we only have to do this process once, by the way. What we're doing now is we're setting up that little pop-up that shows up whenever you're trying to log into a Google account. So let's give this a descriptive name,
[03:37] like N8N Tutorial, and let's select a Support Email. Let's click on Next. Then for the audience, let's select External. And the difference really is that with internal, we have to specify which email addresses should have access to these services. But with external, we're pretty much starting Google that anyone can sign up. Let's click on Next. Then let's enter our contact information again. Let's click on Next. Then let's click on Agree, and Continue.
[04:07] Finally, let's click on Create. Beautiful. Now let's go to Audience, and currently the app is in testing mode. This means if we try to authenticate ourselves in N8N, the authentication will actually fail. We need to publish this app in order to access it from external sources, like N8N. So let's click on Publish App, and let's confirm this. Now for the final step. Let's go to Clients, then let's create a new client. And under Application Type, let's select Web Application, and
[04:39] let's give this a name, like N8N Tutorial again. And by the way, what I would do is set up different clients for my different systems. So I like to have an N8N instance that I run on my own machine, and I typically call that N8N Dev. And this way I can generate a separate client ID and secret for my Dev environment. So if those keys ever had to leak, all I have to do is disable this client, and only Dev will be affected. Then I'll have a different client for my
[05:10] production environment with a different set of secrets. But for now, I'll just call this N8N Tutorial. Then we can provide an authorized JavaScript origin. So this is basically telling Google which domains are allowed to use this service. So if we want it to be really strict, we can simply copy our N8N URL and add it to this list. So I'm actually not going to do this now. But what we do need to populate is the Authorized Redirect URI. So let's add this.
[05:41] And now where do we get this link from? When creating a Google credential in N8N, just above the client ID and secret, N8N will tell you what the redirect URL should be. So we can simply copy this and add it to this field. That's actually all. Let's go ahead and create this. And now we have our client ID, which we can copy and add it to N8N. Let's also grab the secret and add it to N8N as well. And we can also do the Sign In with Google button. So either way, whether you're using the
[06:13] self-hosted instance or cloud, we can now click on Sign In with Google. And now we can see all of our Google accounts. So I'm going to select an account to sign in with. Then on this screen, I'm just going to click on Continue. And let's select All and Continue. Cool. We're done. So now that we know the fundamentals of connecting to Google services, let's have a look at a few examples. We'll have a look at Gmail, Google Drive, Google Sheets, YouTube, and finally Google Gemini. You might have noticed that
[06:43] I'm running N8N in the cloud. You can of course sign off for N8N's paid service, but that's about 20 euros per month. And that's billed annually. When we go to monthly, that's 24 euros per month for the starter package. The paid service doesn't include a bunch of very cool features that you won't get with the community version. So I do recommend giving them a try, and if you use the link in the description, you will be supporting my channel. But I'll show you how I host my N8N instances. We need to use the link in the
[07:14] description of this video, or go to hosting there.com slash Leon. You'll be taken to this page where you can one-click install N8N and spin up a VPS all within a few minutes. You can self-host N8N for as little as $5 per month. Or with the current Black Friday special, you can sign up for the KVN2 package for only $6.49 per month. And this includes a lot of horsepower to run your N8N instances. So I simply choose your plan.
[07:44] Then you can select your period from one month, 12 months, or 24 months. The most important thing you need to do on this page is under applications, select N8N. Then you can also get an additional discount by clicking on have a coupon code, and then entering the code Leon. This will give you an additional 10% off. This is way cheaper than the paid N8N service. After completing the checkout process, you should see a dashboard similar to this. All you have to do then is click on
[08:15] manage app, and this will bring up your very own N8N instance. Now simply go ahead and complete this form. You now have your very own N8N instance running in the cloud at an absolute steal. So let's create our very first workflow. And let's call this Google Integrations Tutorial. Now one of the most popular services to use from Google is Gmail. So really all we have to do is go to the Gmail node, and this node gives us access to triggers and actions. And this is really important.
[08:46] You can use a lot of these Google services to trigger your workflows. For example, when you receive an email, you might want to trigger a workflow that would extract information from that email and store it in a data table or a database, or use AI to formulate a response, and then send a reply. Or under actions, we can see all the other actions available for this node, like deleting messages, retrieving a message, getting many messages, sending messages, and a lot, lot
[09:17] more. So let's say we wanted to trigger this workflow whenever we receive a new email. So let's select the trigger, and we can rename this node to receive email. And now we have to set up our credentials. So under this dropdown, let's click on Create New Credential. And just like I showed you before, we need to provide the client ID and secret, which we can get from Google Cloud. So we can simply click on the client, then let's copy the client ID. And of course, if we click on Sign in with Google, we'll get this error message.
[09:48] That's because I'm using my new entity in Instance with Hostinger. So I'll just copy this redirect URL, and I'll add that to Google platform. And let's save this. And let's click on Sign in with Google. And now we can see our Google accounts. So let's sign in with our Google account. Let's continue. Let's select all of these permissions, and click on Continue. Cool. That's done. Now besides for setting the credentials, we also have to enable the service in Google Cloud Platform.
[10:19] This means if we go to the menu, APIs and services, let's go to Library. And in this case, we're using Gmail. So let's ensure the Gmail API is actually enabled, which it is. If it wasn't, we would have this Enable button over here. So since we enabled this earlier, we should be able to start using the Gmail service immediately. So let's click on Fetch Test Event. And this retrieved this message, so our trigger is indeed working. Now let's have a look
[10:49] at adding an action. So that was a trigger, but what happens if we want to send or reply to emails? Well that's easy as well. Let's just add another Gmail trigger. And let's go to Send a Message. So these two are connected. And since we set up our Gmail account earlier, we can simply select it from this list. And now we can provide a true email, a subject and a message. Now in a typical workflow, you would typically retrieve this information from a data table or a database or some source.
[11:20] So for now, I'll just manually enter the email, the subject and the message. Let's click on Execute. And then let's go to our email. And there you go. We're now able to send emails using N8N. Now I'm not going to cover all of the different actions for all of these nodes. Because I think you do get the point. But before we move on to the next service, I do want to mention that if you are using any of these tools with AI agents, the process can be quite simplified. So let's actually add a chat node. Then let's add an agent.
[11:52] And of course we can assign an AI model to the agent. I don't really care. But what we can do is under Tools, we can search for Gmail. And of course we can reuse the same credentials that we set up earlier. And under Operation, we can select to send an email or reply. It doesn't matter. But the big difference with agents is we can get the agent to figure out what values to populate in the To field, the subject and the message. Simply by clicking on this button. So we can do that for all of these fields.
[12:23] And now when we're talking to the agent or we're passing some context to the agent, it will look at our conversation or that context to figure out where to send the email to, the subject should be, as well as the body. Integrating Google Calendar into In-N-In is a really popular use case. And it's super simple to set up. First let's add a new node. The trigger really doesn't matter. This is just for testing purposes. But what we can do is search for Google Calendar. And just like with the Gmail node, Google
[12:54] Calendar gives us access to a bunch of actions as well as a bunch of triggers. So we can fire off this workflow when an event is canceled, created, ended, started, or updated. For this tutorial, let's simply create a new event. So when we create on this node, we have to create our credentials. So in order to connect anything with Google Calendar, we need to go back to Google Cloud. Then under this menu, let's go to APIs and services. Then let's click on Library.
[13:25] And let's search for Calendar. Then let's click on Google Calendar API. Let's enable this. And now that the service is enabled, we can go to credentials. Let's click on our client ID. Then let's copy our client ID and add it to your In-N-In. And let's also copy our secret and add it to In-N-In as well. Then let's click on Sign in with Google. Let's select our Google account. Then I'll simply continue. Let's select all of these permissions and click on Continue.
[13:55] And great, we should now be able to use Google Calendar. So let's set up an event that will start now and end in an hour's time. Then under Add Field, we can add a description like test. Then we can also add our attendee list where we can provide email addresses. And of course, we can also add a location and all of these different features. I'm also going to add a summary, which I'll also set as test. And then finally, we also have to select the actual calendar.
[14:25] So I'll just select my email address. And that should be it. Let's click on Execute Step. And this looks good. When I switch back to Gmail, I can see my invite over here. Of course, reading and updating your calendar events are just as easy. Simply change the operation. For example, if we wanted to update an event, we can simply select Update. And this will ask us for the event ID. And this is really important in these types of workflows. Certain actions will require the unique
[14:56] ID of the object you're trying to change. In this case, a calendar event. Now, after we created the event, we received this unique ID, this field every year. And it's this event that we have to pass into this field. Of course, in a normal workflow, you won't have access to that event immediately. So a typical workflow will involve first retrieving that event and extracting its ID and then passing that event ID to the Update node. Let me show you an example of what that looks like.
[15:26] So let's add our calendar event. Let's select Get Many Events. Let's select our calendar, which is that email address. And if I run this node as is, it will retrieve this current event. So now that I have that event, the next thing I can do is search for Google Calendar again. Let's select Update an Event. Then let's select our calendar. And like I showed you before, we have to pass in the event ID, which we can get from this Get node. So this value over a year.
[15:57] Then let's say we wanted to update the summary field. Let's change this from Test to Test2. Let's execute this step. And if everything went well, this event was indeed renamed to Test2. So that's a very common pattern you'll see with these nodes. If you want to delete or update any existing objects, you first have to retrieve that specific object like an event or an email in order to get the ID. And then you'll call the update action, passing in that ID.
[16:28] So next, let's have a look at another really popular Google service. And that's Google Drive. So I've created this very simple folder in Google Drive called N8N. Guarantee, this folder is empty. So back in N8N, we can search for Drive and click on Google Drive. Just like with the previous nodes, we have access to triggers and actions. For triggers, we can fire off this workflow when a file is created or changed or a folder is created or changed. For this tutorial though, I think let's
[16:58] go with Upload File. Then let's create our credentials. And if you've been following along, I think you know exactly what we need to do. First let's go back to Google Cloud. Then let's go to APIs and services. Then let's go to Library. Then let's search for Drive. Let's select Google Drive API. And let's enable the service. Then let's go to credentials. Let's select our client. Then let's copy the client ID and add it to N8N. Let's do the same with the client secret.
[17:31] And then we can simply go to Sign in with Google. Let's select our Google account. Then I'm going to just continue, continue. And that's it. Our N8N instance now has access to our Google Drive. So how can we upload a file? Well what we can do is I'm actually going to replace this manual execution with a different trigger. Let's add the onForm submission trigger. Let's give this form a title. Then under elements, let's add a field called file. Let's change the type to file.
[18:03] And this is going to be a required field. Let's go ahead and run this form. And let's select a file. I'll simply select one of these thumbnails. Let's submit this. And that's it. We now have that file in N8N. So what we can do now is go back to our Drive node. Then let's give this file a name. And under parent folder, let's select our N8N folder. And I think that's good. Let's go ahead and execute this step. And that actually returned an error.
[18:33] That's because the field is not called data. It's actually called file. So let's copy that name and add it to this field. Then let's run this. And cool. If we go to the Drive, we can indeed see our file. Let's actually open this. And there you go. We've got our thumbnail. Awesome. So let's have a look at what else we can do with these Drive nodes. I'm actually going to replace all of this with a manual trigger. And then let's search for Drive. And in this list, let's select the search
[19:04] files and folders action. I'm actually going to leave all of this blank. Let's simply run this step. And now we can see the file in our folder. So of course you can pause in a search query. Or if you are using an AI agent, you can let the agent decide how to populate this field. Now that we have a list of all the files in that folder, let's say we wanted to update those or maybe just delete them. We could just add our Drive node. Let's select Delete the file. And within this node, we can select from
[19:34] all the files that are available on that Google Drive. In fact, I can see the thumbnail over here. Now be very careful with this step. When I ran this, it actually deleted 16 files. So because I didn't search within a specific folder, anything actually searched my entire Drive and deleted everything. So if you want to limit this functionality to a specific folder, go to Filter and add a specific folder like n8n. I might add this warning before running
[20:05] the node so if something fills out of sequence, that's why. You've been warned. But let's say we actually just wanted to use the Search node to search for certain files and then delete all of them. What we can do is instead of from list, we can say by ID and then grab the ID from our Search node. And this means if we run this workflow from start to finish, that file was now there. And delete it. Let's have a look at three more examples. Google Sheets, YouTube, and Google Gemini.
[20:36] Now Google Sheets is really popular. Again as with the previous nodes, we can add triggers and actions. So for triggers, we can trigger this workflow when a new row is added, a row is updated, or if a row is added or updated. Under Actions, we can create spreadsheets, delete spreadsheets, and of course add, remove, and update rows. Alright, so in Google Sheets, I created this very simple spreadsheet called Leads with three columns. Now all we have to do in the N8N, I'll just add a trigger manually node.
[21:08] And under Actions, let's go to Sheets. And let's click on a paint row in Sheets. And then for our credentials. I'm sure you know the routine by now. We'll go to APIs and services. Let's go to Library. Let's search for Sheets. Let's click on Google Sheets, Enable. Cool, let's go to Credentials. Let's click on our client. Then we'll copy our client ID, as well as the secret. Then you would have guessed it. Let's sign in with Google.
[21:39] Let's sign in with our account. We'll continue. We'll select all of these privileges and continue. And then that's it. Now from the document list, let's select the new Leads spreadsheet. And then we only have one sheet, and that's called Sheet 1. Now we can provide values for each of these fields, like so. And all we have to do is click on Execute Step. And if we go back to our spreadsheet, we can see the record was indeed added. Then of course, if you wanted to update a specific record,
[22:10] we can just go to Sheets again. Let's go to Update Row in Sheet. Then from the document, let's select our leads doc, which was in Sheet 1. And now we have to select a column to match on. This is a column in your spreadsheet that would uniquely identify that row. So for us, that would be the email address. So we can say john at demo.com. So we said the name was actually John Smith, and the company was Steelworks. Cool.
[22:40] Let's execute the step. And if I go back to Sheets, we can see those changes were made to this specific record. Now let's have a look at integrating YouTube. And then finally, we'll have a look at integrating Gemini. Now integrating YouTube into N8N is really popular, especially if you want to automate faceless channels. So again, let's start with a manual node. Then let's search for YouTube. Here we get a lot of different actions. So we can get a channel, get many channels,
[23:11] create playlists, upload videos. The sky really is the limit. For this video though, let's have a look at uploading a video. So I'll click on Upload a Video. Then under Credentials, I'm sure you know exactly what to do by now. But again, from Google Cloud, let's go to Library. Let's search for YouTube. And let's select YouTube Data API. Let's enable this. And what I like to do as well is to activate these other YouTube
[23:41] services as well, so Analytics and Reporting. So I'll go ahead and enable each of those as well. Cool. Now that we've enabled these services, let's go to Credentials. Let's click on our client. And we'll copy our ID. And add it to N8N. And we'll do the same thing for the secret. Then let's click on Sign In with Google. I'll select my Google account. So let's just select All. Let's continue. And that's it. N8N is now connected to YouTube.
[24:13] So of course, what we can do now is provide a title for the video. And we need to upload a file. Now, we could use a form trigger, like we did in the Google Drive section. But I think to keep things interesting, let's kill two birds with one stone. Let's integrate Google Gemini. And then we'll use Gemini to generate a video for us. So for this, let's add another node. Let's search for Gemini. And here, we also have a lot of different actions, like generating text, images, or video.
[24:45] So let's select Generate a Video. Then under Credentials, let's create a new credential. And this looks slightly different. Now we have to provide an API key. So where do we get this API key from? All right, so for this, go to aistudio.google.com. And then from the dashboard, go to Get API Key. Click on Create API Key. Give it a name, like N8N Tutorial. And now under Import from Project, let's click on Import Project.
[25:17] And now you'll see the project that you created in Google Cloud Platform. So let's select that project and click on Import. Then select that project from the list and click on Create Key. This will not give your project access to Gemini and generate a unique key. So then let's copy this key and add it to N8N. Let's save this. And cool, our connection to Gemini was successful. So again, under Resource, you can generate text, you can generate images, analyze audio,
[25:47] and do so much more. But we'll select Video, Generate Video. From the list of models, I'll just select VO3 Fast Generate. And then for the description, let's just say something like, a fast moving car in a cyberpunk city. And of course we can add additional options like aspect ratios, duration, et cetera. And let's click on Execute Step. Now I do want to mention that some of these Google services are paid for. So if you want to generate videos, you will have to add
[26:18] some credit to your account. All right, so after setting up my billing account, I'm actually going to try to run this again. And I do want to mention that after I set up my billing account, Google actually gave me 300 credits to try these services for free. So honestly, if I were you, go through the billing process, you will have to load a credit card, but I don't think you'll be billed as long as you stay within that free credit limit. In fact, if I go back to my Google Cloud Dashboard right now, you can actually see that I'm still within the free trial and I haven't used any of my $300 credit.
[26:51] But I do want to mention that all the services we covered up till now will not cost you a thing, but understandably certain things like video generation, especially, is quite expensive. So it makes sense that Google won't give that service away for free. Either way, it seems our video was generated. And if I refresh my usage, this is still showing zero out of $300. So it seems like I actually didn't pay anything for this video. Either way, let's have a look.
[27:23] That looks awesome. So what we can do now is in our YouTube node, let's just say cyberpunk car, then on the region, I'll just select my region. Then for the category, we'll just select, I don't know, entertainment. And yes, for the binary data, we call the data over here. So everything should work. We can also add additional options like the description of the video, tags, and whatever else.
[27:54] I don't really care. Let's simply execute this. Cool, it seems the upload was successful. So I'll go to Google, let's go to your videos. And I can see that video that we just uploaded in YouTube Studio. So there's our little video. Obviously we didn't provide a description or anything else, but the video is indeed now live and available on YouTube. If you liked this video, then please hit the like button and subscribe to my channel. It really helps me out. I create a lot of N8N videos on this channel.
[28:25] And by subscribing, you'll stay notified whenever I publish a new video. And also check out my other N8N videos over here. And I'll see you in the next one. Bye-bye.