New production orders from a spreadsheet straight to the shop floor Telegram chat
The office adds an order to a spreadsheet, and the shop floor hears about it when someone calls or walks over with a printout. This n8n workflow sends every new order to the shop floor's Telegram chat every 15 minutes and marks it in the sheet as sent.
Author
- Adrian HuniaCo-founder of SEVENEDGE
- Published:
- Last verified:
- n8n version:
- 2.8.4
In short
What it does
- Reads the production order sheet every 15 minutes
- Picks orders that have not been announced yet
- Flags orders due within 2 days as urgent
- Sends one short Telegram message per order
- Marks each order in the sheet as announced
What it does not do
- Does not re-announce changes to an order already sent
- Does not understand dates written as 05.11.2026
- Does not plan production or assign machines
- Does not replace a production system
What it needs
- n8n (tested on 2.8.4)
- A Google Sheet of orders
- A Telegram bot and the shop floor chat ID
New production orders from a spreadsheet straight to the shop floor Telegram chat
In many manufacturing companies the plan lives in a spreadsheet. The office adds an order, and the shop floor learns about it by phone, from a printout, or only when someone asks what to do next. This n8n workflow does one thing: every new order lands in a Telegram chat the supervisor already has on their phone.
It is deliberately small, six nodes. All the logic sits in one code node and one sheet column.

State lives in the sheet, not in n8n
The workflow does not remember what it sent. The sheet does: the Announced column gets yes once the order has gone to the chat. The next run skips those rows.
const pending = rows.filter(r => {
const flag = String(r[COL.status] ?? '').trim().toLowerCase();
const hasId = String(r[COL.id] ?? '').trim() !== '';
return hasId && flag !== DONE;
});
That makes the state visible and easy to fix by hand. Clear the cell and the order goes out again.
Most urgent first
Each order gets the number of days to its due date. Orders due within urgentDays (2 by default) get a red dot, and the list is sorted by the nearest due date. On the shop floor what matters is what burns today, not alphabetical order.
🔴 ORDER 2026-114
Product: R-200 shelving unit
Quantity: 40
Station: Welding
Due: 2026-11-07 (2 days)
Priority: A
One message per order, not a combined report. The supervisor can reply to a specific order in a thread.
Configuration
Column names live in the settings node, so the sheet does not have to adapt to the workflow.
| Parameter | Default | Purpose |
|---|---|---|
colOrderId, colProduct, colQuantity | Order, Product, Quantity | column names |
colDueDate, colStation, colPriority | Due date, Station, Priority | column names |
colStatus / announcedValue | Announced / yes | state column and the "sent" value |
urgentDays | 2 | days to due date that make an order urgent |
maxPerRun | 20 | message cap per run |
Limitations
The order is Telegram first, then the sheet update. If the message goes out and the update fails, the order is sent again on the next run. We chose a duplicate over a lost order.
The date is read with new Date(), so ISO dates (2026-11-07) work and the Polish format 07.11.2026 does not. Orders in that column go out without the day count and without the urgent flag.
A change to an order that was already announced (a different quantity, a moved due date) does not trigger a new message. That would need a version column or a comparison with the previous state.
Running every 15 minutes means up to 15 minutes of delay and reading the whole sheet each time. With thousands of rows, filter by status in the query itself.
When it does not make sense
If there are a few orders a day and the office and shop floor share a room, just say it. The workflow makes sense when they are separate and the plan changes several times a day. When the spreadsheet starts to crack and the shop floor needs a screen with the queue, statuses and work time, that is a production management system. Notifications like this one are also part of our n8n implementations, and for broader process work see process automation.
Take it with you
How to cite this
Adrian Hunia (2026). New production orders from a spreadsheet straight to the shop floor Telegram chat. SEVENEDGE. https://sevenedge.pl/en/workflows/zlecenia-produkcyjne-telegram-hala (accessed: November 5, 2026)
Sources
- n8n docs — Telegramn8n docs
- n8n docs — Google Sheetsn8n docs
Who is behind this
Adrian Hunia
Co-founder of SEVENEDGE
Co-founder of SEVENEDGE. Designs and deploys business systems for small companies, from production management to time tracking. Works with Next.js, FastAPI and PostgreSQL. SEVENEDGE has no subcontractors — both owners write the code.
Related documents
Other workflows we documented the same way.
- Contract review against your playbook: clause by clause, with a gate for the lawyerA contract lands in a folder, Claude extracts the clauses, an agent assesses each one against your negotiating positions, and code computes the verdict. While writing this up we found a bug in the published version that dropped two of every three assessments. We describe it here along with the fix.
- A three-agent AI support desk: triage, documentation research, reply draft and a human gateOne agent classifies the ticket, a second looks for the answer in your own documentation, a third drafts the reply. Only a reply that passes three conditions at once goes out on its own. A person sees the rest, and every question your docs cannot answer becomes a documentation task.


