Daily Weather Reports with OpenWeatherMap and Telegram Bot
Go to WorkflowDescription
Get automated weather updates delivered directly to your Telegram chat at scheduled intervals. This workflow fetches current weather data from OpenWeatherMap and sends formatted weather reports via a Telegram bot.
Use Cases
Daily morning weather briefings
Regular weather monitoring for outdoor activities
Automated weather alerts for specific locations
Personal weather assistant for travel planning
Prerequisites
Before setting up this workflow, ensure you have:
An OpenWeatherMap API account (free tier available)
A Telegram bot token
Your Telegram chat ID
n8n instance (cloud or self-hosted)
Setup Instructions
Step 1: Create OpenWeatherMap Account
Go to OpenWeatherMap and sign up for a free account
Navigate to the API keys section in your account
Copy your API key (you'll need this for the workflow configuration)
Step 2: Create Telegram Bot
Open Telegram and search for @BotFather
Start a chat and use the /newbot command
Follow the prompts to create your bot and get the bot token
Save the bot token securely
Step 3: Get Your Telegram Chat ID
Start a conversation with your newly created bot
Send any message to the bot
Visit https://api.telegram.org/bot<YourBOTToken>/getUpdates in your browser
Look for your chat ID in the response (it will be a number like 123456789)
Step 4: Configure the Workflow
Import this workflow into your n8n instance
Configure each node with your credentials:
Schedule Trigger Node
Set your preferred schedule (default: daily at 8:00 AM)
Use cron expression format (e.g., 0 8 * * * for 8 AM daily)
Get Weather Node
Add your OpenWeatherMap credentials
Update the cityName parameter to your desired location
Format: "CityName,CountryCode" (e.g., "London,UK")
Send a text message Node
Add your Telegram bot credentials (bot token)
Replace XXXXXXX in the chatId field with your actual chat ID
Customization Options
Location Settings
In the "Get Weather" node, modify the cityName parameter to change the location. You can specify:
City name only: "Paris"
City with country: "Paris,FR"
City with state and country: "Miami,FL,US"
Schedule Frequency
In the "Schedule Trigger" node, adjust the cron expression:
Every 6 hours: 0 */6 * * *
Twice daily (8 AM & 6 PM): 0 8,18 * * *
Weekly on Mondays at 9 AM: 0 9 * * 1
Message Format
In the "Format Weather" node, you can customize the message template by modifying the message variable in the function code. Current format includes:
Current temperature with "feels like" temperature
Min/max temperatures for the day
Weather description and precipitation
Wind speed and direction
Cloud coverage percentage
Sunrise and sunset times
Language Support
In the "Get Weather" node, change the language parameter to get weather descriptions in different languages:
English: "en"
Spanish: "es"
French: "fr"
German: "de"
Polish: "pl"
Troubleshooting
Common Issues
Weather data not updating:
Verify your OpenWeatherMap API key is valid and active
Check if you've exceeded your API rate limits
Ensure the city name format is correct
Messages not being sent:
Confirm your Telegram bot token is correct
Verify the chat ID is accurate (should be a number, not username)
Make sure you've started a conversation with your bot
Workflow not triggering:
Check if the workflow is activated (toggle switch should be ON)
Verify the cron expression syntax is correct
Ensure your n8n instance is running continuously
Testing the Workflow
Use the "Test workflow" button to run manually
Check each node's output for errors
Verify the final message format in Telegram
Node Descriptions
Schedule Trigger
Automatically starts the workflow based on a cron schedule. Runs at specified intervals to fetch fresh weather data.
Get Weather
Connects to OpenWeatherMap API to retrieve current weather conditions for the specified location.
Format Weather
Processes the raw weather data and creates a user-friendly message with emojis and organized information.
Send a text message
Delivers the formatted weather report to your Telegram chat using the configured bot.
Additional Features
You can extend this workflow by:
Adding weather alerts for specific conditions (temperature thresholds, rain warnings)
Including weather forecasts for multiple days
Sending reports to multiple chat recipients
Adding location-based emoji selection
Integrating with other notification channels (email, Slack, Discord)
Security Notes
Keep your API keys and bot tokens secure
Don't share your chat ID publicly
Consider using n8n's credential system for storing sensitive information
Regularly rotate your API keys for better security
Special thanks to Arkadiusz, the only person who supports me in n8n mission to make automation great again.