The 7 steps
The order matters more than the speed.
Credentials, then environment variables, then import, then your values, then tables, then
publish. Done in that order, every node binds itself during the import — you publish in
one clean shot. Done out of order, you will spend the evening re-picking accesses box by
box.
1 Create the database
An empty PostgreSQL database, and a database user allowed to create tables in it. That is
all: CREATE DATABASE taskmaster;. The tables, meaning the shelves the bot
stores things on, come at step 6 in one click, with no terminal.
2 Create the four credentials in n8n
In n8n: Settings → Credentials. A credential is an access
saved once (a token, a key, a database login) that every node then reuses. n8n stores it
encrypted, which is why your keys never sit in the workflow file itself.
Name each one exactly as below, capital letters included. That name is how n8n matches an
access to a node when it reads the imported file. One capital out of place and you get to
rebind every node by hand.
Telegram account: type Telegram API
Postgres account: type Postgres, pointed at the database from step 1
OpenAI account: with a capital I, the n8n default name
Perplexity account: not "Perplexity API"
All four are needed to publish: n8n refuses to activate a workflow whose nodes have an
unconfigured access. If you don't want the AI part, move those nodes to Ollama or delete
them; the guide inside the bundle names each one.
3 Two environment variables
An environment variable is a setting you hand to the program itself
rather than to a workflow. n8n reads it once when it starts, so you set it and then
restart n8n: WEBHOOK_URL, your public address, and BOT_TOKEN,
the token from BotFather.
Why the first one matters: a program has no way of knowing the address the outside world
reaches it at. WEBHOOK_URL is what n8n hands to Telegram so the messages come
back to you. No AI keys here; those stay in the credentials from step 2.
4 Import the five files
Workflows → Add workflow → Import from File, once per file. Importing
means loading a drawing someone else made into your own n8n. Because the accesses already
exist under the right names, every node picks its own: no red nodes waiting for you.
5 Fill in your values
The template ships with four blanks, because four things belong to you and nobody else:
your Telegram chat id (so the bot knows who its administrator is), the name the bot gives
itself, its @username, and your public address. The Configure workflow
fills them for you: type the four values into one node, click Execute workflow,
and it replaces them everywhere. You can delete Configure afterwards.
The other route is to open the file in a text editor and replace the four values
yourself, before importing. Both work; the first one saves you the typos.
6 Create the tables, in one click
Open the Setup workflow and click Execute workflow. The eleven
tables the bot needs are created for you, which is why you never open a terminal. Running
it a second time breaks nothing and erases no data.
7 Publish, then write to the bot
Activate the three running workflows, not Setup. Activating is what tells n8n to listen
for real messages, and it is at that exact moment that n8n registers the webhook with
Telegram. Send /start to your bot from your own account: you are approved
automatically, because your chat id is the administrator one. Anyone else who finds your
bot lands in a pending list until you approve them.