The next tool I work with is n8n.
If Make.com is no-code for the masses, n8n is a tool for those who want more control, flexibility and limitless possibilities.
🧠 How is it different from Make?
-
n8n can be self-hosted on your own server and run entirely free.
-
It supports 1000+ integrations, including non-standard and custom APIs.
-
It lets you use JavaScript, JSONata, Webhooks, Git, Docker and much more.
💰 Paid or free?
| Option | Price | What to know |
|---|---|---|
| 🧠 Self-hosting | $0 | Requires know-how: where to get a server (paid and free options), how to install and maintain n8n. |
| ☁️ n8n’s cloud version | $24/mo | Just sign up and start. There’s a 14-day trial. |
🤖 Case: Email + GPT + Telegram = a smart auto-responder
We'll build an assistant bot that:

- Receives an email in Gmail
- Generates a reply with GPT
- Sends it to you on Telegram
- You approve — and the email goes out to the recipient
🛠 Step 1: create the workflow
- Click Create Workflow
- The first module — Gmail → On Message Received
- Authorize access to your Google account
What it looks like:
🧠 Step 2: connect GPT
- Add the OpenAI module
- Your OpenAI account needs at least 5)
- Go to https://platform.openai.com/account/api-keys
- Click Create new secret key, name it and copy the key
- Paste it into n8n when connecting OpenAI
API key:
![]()
The GPT assistant
- Without closing the API tab, go to the Dashboard
- On the left, choose Assistants
- Create a new assistant
- Give it a name
- And with the prompt auto-fill, write what it will do
Here's how mine looks:
💬 Step 3: a Telegram bot for approval
- Create a bot via @BotFather →
/newbot - Get the API key
- Add the n8n module: Telegram → Send Message & Wait for Response
- Paste the token
Now we just need the Chat ID

Where to get the Chat ID?
- Write any message to your bot
- In a browser, open the link:
https://api.telegram.org/bot<TOKEN_ID>/getUpdates
- Remove <Token_ID> — put your token’s API key here.
- In the response, find
chat: { id: ... }— that’s the Chat ID
Where's the Chat ID?
✅ The approval message
- Put into the message:
📩 Here's the incoming email:
{{ $json["snippet"] }}
🤖 GPT generated this reply:
{{ $json["gpt_output"] }}
Send it?`
- In the settings:
- Response Type → Approve only
- Button → “Send”
What it looks like:
![]()
📤 Step 4: condition + sending
- Add the IF module
- Condition: if the user clicked “Send”
What to put in the IF module:
Paste this code into Conditions and switch to “Expression” mode
{{$json["data"]["approved"]}}
- Choose the condition “Is true”
- In the
truebranch, add the module: Gmail → Reply to Email
From the "True" branch we add the Gmail module:
- Use the
Message IDfrom the first module, and the text from GPT

Done. You’ve built your own email assistant.
Keep going?






