More

Book a free call
Fixed price in writing before we start

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

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.

Workflow canvas for production orders: a 15-minute trigger, column settings, reading the sheet, picking new orders, a Telegram message and marking the row as announced
Six nodes. The Announced column in the sheet is the only state the workflow keeps, so an order never reaches the shop floor twice.

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.

identify-new-orders.js
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.

Telegram message
🔴 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.

ParameterDefaultPurpose
colOrderId, colProduct, colQuantityOrder, Product, Quantitycolumn names
colDueDate, colStation, colPriorityDue date, Station, Prioritycolumn names
colStatus / announcedValueAnnounced / yesstate column and the "sent" value
urgentDays2days to due date that make an order urgent
maxPerRun20message 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

  1. n8n docs — Telegramn8n docs
  2. 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.

7SVENAI assistant, not a human

You are chatting with an AI assistant. Replies are generated by artificial intelligence (Cerebras) and may contain mistakes. Please do not share sensitive data in the chat.

Your personal data is controlled by SEVENEDGE ADRIAN HUNIA. We use your chat messages to answer your questions and, if you ask, to book a meeting. Details and your rights: Privacy policy.

Hi! I'm SVEN, the SEVENEDGE AI assistant. We build apps, SaaS and AI automations. How can I help?
SVEN, the SEVENEDGE mascot, looking through a requestSVEN, the SEVENEDGE mascot, thinking over a coffeeSVEN, the SEVENEDGE mascot, working at a laptop
Got an app idea?