Intro

In the previous post, I was talking about claude skills. This is about automation, no code/ minimal solutions. At this point, it’s been over 1.5 to 2 years since n8n and automation; nowadays it’s easy to just build an app/ ask AI to build the app instead of creating the automation, it’s easier that way, but regardless, let’s see how the future goes; I’m already seeing the trend of creating custom apps for each one’s personal preference.

Why

Instead of creating projects for each use and hosting it for every use case, I thought of using automation tools and solving those problems; for ex, one such problem is creating a diet maintainer; I ranted in a previous post that I gained a couple of kgs in a short while, but I’m trying to reduce it; so I have to keep track of the amount of calories, etc., but I want this to be an Excel sheet for tracking, yes there are apps for that; but I wanted a simple chat interface where I can type the food I ate and when I ate it, and it should approximate the calories, and when I ask how much is left, it should give back the amount of food that I can eat in the remaining part of the day/ from that point onwards.

n8n

I choose n8n. The main reason I prefer it is the immense community support it has, it’s incredibly popular, which means if I run into a wall, someone else has probably already solved it and posted about it. Plus, being able to tinker with it under the hood while self-hosting is a massive bonus compared to locked-in cloud alternatives.

Speaking of alternatives, there are quite a few out there: - Make (formerly Integromat): Great visual builder, - Zapier: The biggest name out there with the most integrations, - Pipedream: Fantastic for developers who want to write code snippets, but maybe overkill if you just want pure drag-and-drop. - Activepieces: is similar to n8n

Self hosting

Here is the official n8n documentation guide, I started to see the official docs of n8n. One thing I got astonished by is that they have incorporated AI, and that AI is surprisingly good at providing the right instructions, because when you host with different server software, server config differs for each one like caddy / nginx/ etc., and for automation to work, it has to be able to receive webhooks, and alongside things like if it’s behind a proxy; it must be configured to tell that you are behind a proxy, and based on that it can handle the incoming request, etc.

I’ll save you the trouble and give the config here; basically I was able to set up the Nginx server pretty easily using the AI bot that they have incorporated in their site. Below is all the config I needed to be able to run this from docker and nginx:

As I’ve mentioned in previous posts, I like to run things with podman/docker as it removes the dependency from my cloud machine.

Obviously I have to configure my domain name to godaddy/cloudflare and deploy SSL certificates; I’ve covered that plenty in my other posts:

docker config:

podman run -d --restart unless-stopped \
  --name n8n \
  -p 5678:5678 \
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
  -e N8N_RUNNERS_ENABLED=true \
  -e WEBHOOK_URL=https://<server-name>/ \
  -e N8N_PROXY_HOPS=1 \
  -e N8N_HOST=<server-name>
  -e N8N_PORT=5678 \
  -e N8N_PROTOCOL=https \
  -v /mnt/podman-data/n8n_data:/home/node/.n8n:Z \
  docker.n8n.io/n8nio/n8n

nginx config:

server {
    listen 80;
    server_name <server-name>

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;

        chunked_transfer_encoding off;
        proxy_buffering off;
        proxy_cache off;
    }

    location /webhook/ {
        proxy_pass http://127.0.0.1:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /webhook-test/ {
        proxy_pass http://127.0.0.1:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Configuring - How to configure

Overview
Overview

There is initial learning time to get used to what each option is, but when you get the hang of it, it’s pretty easy, since I’ve done drag and drop editors before; I caught up easily in approx 5-10ish mins.

Create a telegram node and select the appropriate Telegram account credential. Set the Trigger On parameter to Message so it triggers on new incoming messages of any kind (text, photo, sticker, etc.). Note that due to Telegram API limitations, you can only use one Telegram trigger per bot. Also ensure there is validation to only process messages from your known user ID, otherwise the bot will refuse to respond.

Telegram Trigger Settings
Telegram Trigger Settings

Add an Analyze Text Message node and connect it to your Google Gemini (or equivalent API) configuration. Set the Resource to Text and Operation to Message a Model, using the models/gemini-2.5-flash model so its fast and reliable. models cheaper than 2.5-flash are not reliable based on testing. Within the node, establish a system prompt (Role: Model) instructing the AI to process user input into structured nutritional data—identifying meal components, estimating portion weights, and warning it not to reveal its internal steps. Pass the user input as a prompt (Role: User) using the expression {{ $json.message }} along with today’s date context: {{ $today.format('yyyy-MM-dd') }}.

AI Processing Configuration
AI Processing Configuration

To store the parsed responses, add a Google Sheets node configured to “Append” rows, and set it to Map Each Column Manually. You can map fields originating from the trigger and model response: - User_ID: {{ $json.chat_id }} - Date: Extract and format the date directly with {{ DateTime.fromSeconds($json.date).format('yyyy-LL-d') }}. - Dietary metrics like Meal_description, Calories, Proteins, Carbs, and Fats can be defined automatically by mapping them from structured outputs generated by the AI model.

Append to Google Sheets
Append to Google Sheets

There is all sorts of existing nodes (in n8n, a “node” is basically a building block or a step in your automation workflow—it can be a trigger that starts the flow, an action that connects to a specific app’s API like sending a message, or a logic step that filters or processes data) that we can use. For this use case, reusing the google sheet node from official requires getting API keys, but that is well documented by n8n and google.

Finally, configure another Telegram node to send a reply back to the user. Set the Resource to Message and Operation to Send Message. For the Chat ID, retrieve it from the initial trigger using {{ $('Telegram Trigger').item.json.message.chat.id }}. Include the formatted Text from the AI calculation {{ $json.message }}. Under Additional Fields, be sure to set Parse Mode to MarkdownV2 so any formatting from the AI looks correct, and toggle off “Append n8n Attribution” for a cleaner message.

Send Telegram Summary Message
Send Telegram Summary Message

For the initial setup, because it’s new, I was experimenting and took 4-5 hours, because it was interesting; but been using that for maintaining calories now; it’s great.

Conclusion

AI is more prevalent these days, instead of building these automation no code solutions via these tools, users directly build with AI, there are pros and cons.. it’s already deployed on the server (the automation tool, one time setup), can deploy any number of times.. limit depends on the server limits, I’m okay.. but people need to know of how to debug in case of error, I mean there is AI for that too; if using n8n/automation.. everything is contained within this little confinement work area.

I’ll be trying out other automation experiments, this is serving me well, recently I gained a lot of weight, though not overweight.. I still look fit from an outside view; but a little fat in stomach and back.. I started eating snacks every night and lots of oats (used to prepare the previous night with milk and sugar.. keep it in freezer).. the next morning eating it, I drove this diet for some time, it was good for my morning routine (not going to office on an empty stomach), but the problem was I gained like 5 kgs, I have never been this much weight in my entire life! but I’m 6ft.. so the weight is kinda explainable.

Me when 76kgs, ideal for my height, less fat content ratio in my body; this is before I got muscle buildup.

image when I was 76kgs
image when I was 76kgs

but in terms of physique, , I got visibly more muscle development..after above image, idk.. started to go to gym again, let’s see, till now I’ve been continuing to do it every day except Sunday at home. But I’ll track the progress.

Updating this part as of March 2026, it’s happening again, I feel out of place, everyone around here is behind.. so behind .. than I expect them to be in, when I see, I see a fine line between things and it’s like I can slip in between them.. and go past beyond. I see it like this, a highway road that is busy with vehicles going left and right, but I see a path in slow motion that I can slip in between and move to the other side, I see what others are not seeing, IDK how long I will be blessed with this gift or curse that I have, can’t share this with anyone, I exposed this lil bit to sq#3, ~Future me is this happening again? Hope you landed on things, learned from past.