Google Cloud Storage n8n Setup: Step-by-Step Configuration Guide
Learn how to connect Google Cloud Storage to n8n workflows. Complete setup guide with OAuth2 configuration, bucket creation, and automation examples.
n8n is an open-source workflow automation tool that lets you connect apps, APIs, and databases without heavy coding. To make these connections work, you need credentials - secure ways to prove your identity to services like Google, Facebook, Linkedin, or a custom API.
This beginner-friendly guide explains what n8n credentials are, how to set up n8n for the first time, and how to run your first credential-based workflow.
Credentials in n8n are the login or access details you provide so workflows can talk to external services. Think of them as digital keys. Without them, your workflow cannot fetch data, post updates, or trigger events.
Before adding credentials, you need a working n8n environment.
You can run n8n in three common ways:
npm install n8n -g
n8n start
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
Pro Tip: Quick Alternative with Free Credits: If you don’t want to manage hosting yourself, you can also use:
• N8N_BASIC_AUTH_USER=admin
• N8N_BASIC_AUTH_PASSWORD=securePass
Let’s walk through a simple workflow that fetches live weather data using the OpenWeather API.
You can import the workflow below into your n8n editor and add your API key.
{
"name": "Weather Fetch Example",
"nodes": [
{
"parameters": {
"triggerTimes": [
{
"hour": 9,
"minute": 0
}
]
},
"name": "Cron",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid={{$env.OPENWEATHER_API_KEY}}&units=metric",
"responseFormat": "json"
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 2,
"position": [500, 300],
"credentials": {
"httpBasicAuth": {
"id": "your-credential-id",
"name": "OpenWeather API"
}
}
},
{
"parameters": {
"functionCode": "return [{json: {temp: $json.main.temp, condition: $json.weather[0].description}}];"
},
"name": "Function",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [750, 300]
},
{
"parameters": {
"operation": "append",
"sheetId": "your-google-sheet-id",
"range": "Sheet1!A:C",
"valueInputMode": "USER_ENTERED",
"options": {}
},
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 2,
"position": [1000, 300],
"credentials": {
"googleApi": {
"id": "your-credential-id",
"name": "Google API"
}
}
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
}
}
}
Tip: Save your API key in an .env file as OPENWEATHER_API_KEY for better security, then reference it in the request URL as shown above.
If you prefer getting updates by email, you can use this workflow. Just configure your Email credentials (Gmail, SMTP, or Outlook) in n8n.
{
"name": "Weather Email Example",
"nodes": [
{
"parameters": {
"triggerTimes": [
{
"hour": 9,
"minute": 0
}
]
},
"name": "Cron",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid={{$env.OPENWEATHER_API_KEY}}&units=metric",
"responseFormat": "json"
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 2,
"position": [500, 300],
"credentials": {
"httpBasicAuth": {
"id": "your-credential-id",
"name": "OpenWeather API"
}
}
},
{
"parameters": {
"functionCode": "return [{json: {subject: 'Daily Weather Report', body: `The current temperature is ${$json.main.temp}°C with ${$json.weather[0].description}.`}}];"
},
"name": "Function",
"type": "n8n-nodes-base.function",
"typeVersion": 1,
"position": [750, 300]
},
{
"parameters": {
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "={{$json[\"subject\"]}}",
"text": "={{$json[\"body\"]}}"
},
"name": "Email",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [1000, 300],
"credentials": {
"smtp": {
"id": "your-email-credential-id",
"name": "Email Account"
}
}
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "Email",
"type": "main",
"index": 0
}
]
]
}
}
}
Example in .env:
• OPENWEATHER_API_KEY=12345abc
In n8n, reference it as {{$env.OPENWEATHER_API_KEY}}.
This guide covered the essentials of n8n credentials and how to use them safely in your first workflows. In short: credentials are the keys that let n8n talk to external services, so treat them as sensitive data, store them outside your workflow, limit their scope, and separate development and production credentials.
If you prefer managed hosting, consider the RunClaw option mentioned earlier for quick setup and monthly credits (optional).
n8n Documentation | OpenWeather API Docs | Docker Documentation



They authenticate workflows with external services like Google, Slack, or APIs, ensuring secure and successful requests.
Yes, n8n allows credentials to be reused across multiple workflows, reducing duplication.
By default, credentials are encrypted and stored in the n8n database. Encryption keys come from environment variables.
No. Always export workflows without credentials or use placeholder variables.
Not strictly. You can run n8n locally or on cloud, but Docker is recommended for secure production setups.
Edit the credential entry in n8n, update the API key or OAuth details, and save. Existing workflows will use the updated credential.