Operations automation
The task was given. Who took it and how far did it get?
We developed a system for a team assigning work through Telegram and tracking it in ClickUp. The aim is to give tasks an owner and status and provide organised management information. The manager types or speaks the tasks the way they would say them aloud. Employees answer with buttons. The report arrives on its own.
How it is set up
The system in a few numbers
These are settings and rules of the built workflow. They are not measured results.
The problem
A task given verbally is left without an owner, a deadline or a status.
Before the system the team assigned work by phone or in the group chat. That is quick, but it leaves no trace: no owner, no deadline, no status.
Today
- Assigning: by phone or in the group chat, among all the other messages.
- The owner: nobody has written down who took the task or by when.
- Status: the manager asks each person how far they have got.
- A problem: it surfaces once the deadline has already passed.
- The report: put together by hand at the end of the day.
With the system
- Assigning: one message to the bot, typed or spoken, with several tasks at once.
- The owner: every task belongs to a specific person, with a deadline or an explicit “no deadline”.
- Status: the employee presses a button and ClickUp is updated.
- A problem: the reason reaches the manager immediately, with one sentence from the employee.
- The report: arrives at 18:00, counted by the system.
How it works
From the message to the closed task
Everything happens in the private chat with the bot in Telegram. The team opens no other application.
The manager types or speaks the tasks
The way they would say them aloud: who, what and by when. One message can hold several tasks, with nicknames and in any word order. A voice message can be up to two minutes. A task with no stated deadline stays “no deadline” and is never counted as overdue.
The system reads the message
Simple sentences are parsed with rules. Voice messages and unclear ones also go through a language model. The model only proposes: who may assign to whom and exactly when the deadline falls is decided in code.
A preview before sending
The bot shows who, what and by when, and under each person their open tasks, so overload is visible. For voice the preview starts with the line “I heard: …”. A correction is made by replying to the preview, for example “no, by Friday”. The buttons are Send now, Tomorrow at 8:00 and Cancel.
The task is created in ClickUp and goes to the person
After confirmation the task is created in the department’s list in ClickUp and the employee receives a card in their private chat: what, from whom and by when. The link between the message and the task is stored in the database.
The employee answers with a button
Started changes the status in ClickUp. Done closes the task. When the assigner asked for a photo, the bot requests it and attaches it to the task. Reassign hands the task to a colleague in the same department and notifies the lead.
On a problem: a reason and one sentence
The employee picks a reason from ready-made buttons and writes one sentence on what exactly stopped. The manager receives the category immediately and the sentence word for word. The reason goes into ClickUp as a comment and into the report.
Postponement with approval
The pre-deadline reminder has a “I need more time” button with a choice: plus two hours, tomorrow or Friday. The request goes to the department lead with Approve and Decline. On approval the deadline changes in ClickUp too.
Flows
What moves between Telegram, ClickUp and the database
Each flow is a separate n8n workflow. The Telegram entry point is shared by all of them, because a bot can have only one address for incoming messages.
New task
Status
Problem reason
New deadline
Recurring tasks
Status reconciliation
Reports
Error signal
“Source” is the place treated as correct when the two sides disagree.
What arrives on its own
One working day of the system
08:00 — good morning
Everyone receives their tasks for the day, the overdue ones and a short “No deadline” section. Leads also see what ran over yesterday in their department.
Around the deadline — a reminder
Two hours before the deadline a reminder arrives with two buttons. After it passes, a short nudge, at most two per task and only within the department’s working hours.
12:00 — what is stuck
The manager receives unanswered postponement requests and blocked and overdue tasks. If nothing is stuck, no message is sent.
18:00 — daily report
Done, in progress, overdue and blocked with the reasons. On Friday a weekly ranking arrives, and on the 1st a monthly report with the change from the previous month.
Beyond tasks
Questions and announcements in the same chat
The manager does not open ClickUp to see who is busy with what. They ask the bot, by text or by voice.
Who is free
Free people are listed on one line. Under each busy person are their tasks with deadlines, to decide who should get the new one.
Who is doing what
All open tasks by department and by person, marked as new, started, blocked, awaiting postponement or overdue. A lead sees their department, an employee their own tasks.
Today’s tasks
One list for the day: how many in total, how many done and how many overdue. Every new task joins it automatically.
Announcement to everyone
A message to the whole team or one department, with a preview before sending and a “Seen” button. The manager sees how many people have seen it.
Recurring tasks
“Every working day”, “every Monday” or “every month on the 5th” in the sentence makes the task recurring. It reaches the person by itself on that day.
Sending in the morning
Tasks written in the evening or on a day off can go out at 8:00 on the next working day, so nobody is disturbed outside working hours.
Control
What protects the system from errors and from silence
A model helps interpret the message. Validation and confirmation determine what is recorded. Operational events are traceable.
The model proposes, code decides
The language model is used to understand the message. Assignment rights, the deadline and the counting in reports are code, not a model’s answer.
Nothing is sent without confirmation
Until the manager presses the button under the preview, nobody has received anything. An unrecognised voice message comes back with a request to type it.
An event log
Assigned, started, done, blocked: every movement is recorded with the person and the time. A separate log keeps who assigned what.
Reconciliation with ClickUp
If ClickUp does not accept a status change, the next reconciliation finds the mismatch and fixes it without involving people.
A signal on error
When a workflow fails, a separate flow records the case and tells the developer which node stopped and what to check.
A morning pulse
Every morning at 08:00 the system checks the database, the bot, the webhook address, ClickUp and tasks with no movement for over three days. An answer is always sent, including when everything works.
Connected tools
Telegram, n8n, ClickUp and PostgreSQL. Separate flows handle tasks, statuses, reminders and reports.
The system runs on a server in the EU, in the client’s own account. The server, ClickUp and the language model are in the client’s name. The database is backed up daily and backups are kept for 14 days.
- Telegram — the only interface for the manager and the team.
- n8n — the flows: entry, task creation, reminders, reports, reconciliation, errors.
- ClickUp — the tasks, statuses, deadlines, comments and photos.
- PostgreSQL — people and nicknames, the message-to-task link, the events and the log.
Who it is for
When this approach works
Not the right tool when
- The team does not use Telegram. The bot cannot message first and everyone has to press Start once.
- You expect the system to decide instead of the manager. It prepares the preview; the confirmation is yours.
- Nobody will maintain the list of people, departments and statuses in ClickUp.
A good fit when
- The team already talks in Telegram and does not want another app.
- The manager assigns with words, not with forms.
- Tasks have one owner and a clear end.
- You want to see what is stuck today, not at the end of the week.
What the project demonstrates
Automation can connect the tools a team already uses without adding a new interface for every task. This case presents the built workflow without claiming an unmeasured number of hours saved.
The limits we state up front:
- Speech recognition makes more mistakes in noise. That is why the preview shows what was heard and should be read before sending.
- Telegram does not let a bot message first. A new employee receives tasks after pressing Start and being linked to their name by the manager.
- ClickUp statuses are created by a person in the interface. If someone renames them, the link stops until it is fixed.
- The reason for a “Problem” is typed, not spoken, because it goes to the manager without a preview.
Questions
What people ask before an automation like this
Does the team have to learn ClickUp?
No. Employees receive tasks in their private chat with the bot and answer with buttons. ClickUp is where the tasks are stored and tracked.
What happens if the bot misunderstands?
There is always a preview before sending: who, what and by when. If something is wrong, you reply to the preview with just the correction and a new preview arrives. Until you confirm, nobody receives anything.
What exactly does the language model do?
It helps interpret a freely spoken or written message. It does not count, does not decide permissions and sends nothing by itself. The numbers in reports are counted in code, and simple sentences are parsed with rules, without a model.
Where is the data kept?
On a server in the EU, in the client’s own account. The server, ClickUp and the language model are in the client’s name and paid by the client.
What happens if the system stops?
On an error in any flow the developer receives a signal. Separately, every morning a check confirms that the database, the bot and ClickUp respond. Until the problem is fixed, the team assigns work the way it did before.
How much time does it save?
We do not state a number. We present the built workflow without claiming an unmeasured number of hours saved.
Can the same be done with other tools?
The approach is to connect the tools the team already uses. Which ones those are for you, and what their interfaces allow, is checked at the start of the project.
Where do tasks get lost in your team?
Describe how you assign work today and what you want to see at the end of the day.