Your first workflow: a morning digest in Telegram
We build your first working workflow: every morning at 9:00 n8n grabs data (weather or email) and sends a digest to Telegram. Along the way: the canvas, node settings, Execute and activation.
The best first workflow is one that's useful tomorrow morning. Let's build a "morning digest".
Three nodes, that's the whole thing
[Schedule: every day at 9:00] → [HTTP Request: fetch data (weather/news/rates)] → [Telegram: send the message to me]
Step by step
- New workflow → "+" → find the Schedule Trigger node → set it to 9:00.
- Add an HTTP Request node — the all-purpose "go to this address and bring back data". For weather, any open API will do (open-meteo, for instance — no keys needed): paste the URL from the lesson notes.
- Telegram node → operation Send Message. You'll need a connection: a bot token (@BotFather hands you one in a minute — if you took the bots course, you already have it) and your chat ID. n8n keeps connections like this under Credentials — set it up once, use it in every workflow.
- The Execute Workflow button — a manual run. Did the message arrive? It works.
- The Active toggle — now the workflow lives on its own: every morning, without you.
Two things this lesson teaches you
- Execute before you activate. Always run it by hand and look at what came out of each node (clicking a node shows you what passed through it). Debugging in n8n means looking at data, and that's easier than it sounds.
- Credentials live apart from workflows. Tokens and passwords sit in secure storage, not inside nodes — the familiar "keep secrets out of the code" idea.
What HTTP Request actually is
The HTTP Request node is the most versatile block in n8n: it knocks on an internet address and brings back the answer. Almost every service in the world hands out data at an address like that (this is what people mean by an API). For weather, open-meteo works nicely — an open API, no keys, no signup. Here's what the request looks like:
GET https://api.open-meteo.com/v1/forecast
?latitude=52.52&longitude=13.41¤t=temperature_2m
The answer (a slice of it):
{ "current": { "temperature_2m": 3.4, "time": "2026-07-15T09:00" } }
Later, in the Telegram node, you'll pull temperature_2m out of that answer and drop it into your text — we'll cover exactly how in the next lesson, on moving data between nodes. For now it's enough to know: HTTP Request brought back JSON, and JSON is just fields and values.
What usually goes wrong the first time
- "Bad credentials" in Telegram. The token got copied with a stray space, or it belongs to a different bot. Recreate the connection under Credentials and paste the token cleanly, nothing extra.
- No message, but no errors either. You never wrote to the bot first. A Telegram bot can't open a conversation — open the chat, hit Start, and only then can it message you.
- Wrong chat ID. @userinfobot will tell you yours: forward it any message and it replies with a number. That number is your chat ID.
- "It won't run on schedule." Check the Active toggle: without it the Schedule Trigger just sleeps. A manual Execute always works; the schedule only runs for an active workflow.
Why do engineers say "Execute first, Active second" and never the other way round? Think about it: an active workflow fires on its own, with nobody watching. If something's broken in it, you find out when a customer receives a mangled message. That manual run is your one chance to look at the data before anyone else does.
Why Telegram is the perfect first output
We're sending the digest to Telegram on purpose. First, a bot takes a minute to set up with @BotFather and needs no mail server and no paid account. Second, the message lands in your pocket instantly — perfect for seeing that the workflow fired. Third, you'll use this same Telegram node in every lesson ahead: notifying a manager about a lead, replies from your RAG bot, approving content with buttons.
Set the connection up once in Credentials and it's ready for the rest of the course. If you took the bots course you already have a token and know what a chat ID is; if you didn't, these two minutes pay for themselves ten times over.
Do this now
Build the three-node workflow: Schedule Trigger at 9:00 → HTTP Request to open-meteo with your city's coordinates → Telegram Send Message with any text, "Good morning!" is fine. Hit Execute Workflow and check the message arrives. No temperature in the text yet — we'll slot that in during the data lesson. Once it works, flip Active on, and at 9:00 tomorrow you'll get your first message from a workflow you built yourself.
Short questions on the lesson — with an explanation for every answer.