It is 5:30 in the morning in the Westland, and Jan is already at his desk in the kantoor adjacent to greenhouse complex three. The auction clock at Royal FloraHolland in Aalsmeer started running 30 minutes ago, and the first batch of today’s sales confirmations has arrived. His operation sold 4,200 stems of Chrysanthemum, 2,800 stems of Gerbera, and 1,100 pots of Anthurium through the klok (auction clock) system. Simultaneously, his direct sales team has confirmed orders from two German wholesalers, a French supermarket chain buyer, and a UK garden centre purchasing group.
Each order needs to be matched to available inventory in the greenhouse, allocated to a picking team, coordinated with the koelcel (cold storage) schedule, matched with a transport slot, and documented with the correct phytosanitary paperwork for cross-border shipments. The transport trucks leave for Aalsmeer distribution at 10:00, for the German border at 11:00, and for the Channel Tunnel logistics hub at 12:00.
Jan has four and a half hours to process everything. His office coordinator, two picking team leads, and a logistics assistant are all working from different information sources: auction confirmations in email, direct orders in WhatsApp conversations with buyers, inventory counts on a whiteboard in greenhouse two, and transport schedules in a Google Sheet that was last updated at 17:00 yesterday.
By 7:30, someone will have shipped the wrong variety to the wrong buyer. It happens at least twice a week.
The Westland: Europe’s greenhouse engine
The Westland is a municipality in South Holland that contains the densest concentration of greenhouses on Earth. Over 80% of the municipality’s surface area is covered by glass. The region produces cut flowers, potted plants, vegetables, and ornamental plants that are distributed across Europe through Royal FloraHolland, the world’s largest flower auction, and through direct sales channels to retailers, wholesalers, and export markets.
Jan manages operations at a greenhouse complex that grows chrysanthemums, gerberas, and anthuriums across 12 hectares of heated greenhouse space. The operation is mid-scale by Westland standards: large enough to be a regular presence on the FloraHolland auction clock, but small enough that order processing is handled by a team of four rather than a dedicated logistics department.
The Dutch horticulture sector operates on a fundamental characteristic: perishability. Cut flowers have a vase life measured in days. From the moment a stem is cut in the Westland, the clock is ticking. Every hour between harvest and the consumer’s vase reduces the product’s value and the customer’s satisfaction. This perishability drives the entire supply chain’s obsession with speed, accuracy, and temperature control.
Where the errors come from
Jan tracked shipping errors over three months. The results surprised him — not because the error rate was high (9% of orders had some discrepancy), but because of where the errors originated.
40% of errors: variety confusion. The operation grows multiple cultivars of each flower type. A chrysanthemum order might specify “Baltica White,” “Anastasia Green,” or “Pina Colada” (yes, that is a chrysanthemum cultivar name). When the picking team receives an order that says “2,400 stems Chrysanthemum, white, 70cm,” they sometimes pick the wrong white cultivar. The difference matters to the buyer: Baltica White and Zembla White have different stem strength, head size, and price points.
30% of errors: quantity mismatches. The auction system works in units called “karren” (trolley carts) and “fusten” (buckets). A sale of 2,400 stems on the auction might be packed in 40 fusten of 60 stems each, or 48 fusten of 50 stems each, depending on the stem length and packing specification. When the picking team reads “2,400 stems” without the packing specification, they default to their standard configuration, which may not match what the auction system expects.
20% of errors: documentation mismatch. Cross-border shipments require phytosanitary certificates from the NVWA (Nederlandse Voedsel- en Warenautoriteit). The certificate must match the actual contents of the shipment: species, quantity, and origin greenhouse. When a last-minute substitution happens — greenhouse two does not have enough Baltica White, so greenhouse three’s crop is substituted — the phytosanitary documentation must be updated. This update sometimes does not happen before the truck leaves.
10% of errors: transport allocation. Orders for the German market need to be on the 11:00 truck. Orders for the UK need the 12:00 truck. When multiple orders are being processed simultaneously and the picking area is shared, shipments occasionally end up on the wrong truck. The German wholesaler receives flowers intended for the UK garden centre, and vice versa.
“Every one of these errors costs us money and reputation,” Jan says. “A variety confusion that reaches the buyer results in a claim. A documentation error at the German border results in a delay and potential destruction of the shipment. A transport mix-up means we pay for express correction shipping. And in this industry, one bad delivery can cost you a relationship that took three years to build.”
The 4-hour morning crunch
The order processing workflow between 5:30 and 10:00 is the heart of the operation’s daily cycle.
5:30 - 6:00: Sales confirmation intake. Auction results arrive via email from FloraHolland’s digital platform. Direct sales orders arrive via WhatsApp messages from buyers, emails from purchasing departments, and occasionally phone calls. The office coordinator, Miriam, collates these into a master order list in Google Sheets.
6:00 - 7:00: Inventory matching. Each order must be matched against available inventory in the greenhouse. The previous day’s harvest quantities are on a whiteboard in greenhouse two (updated by the harvest team lead before going home). This morning’s early harvest additions are communicated via WhatsApp by the team lead who started at 5:00. Miriam cross-references orders against available inventory, identifies shortfalls, and flags orders that cannot be fully fulfilled from the current harvest.
7:00 - 8:00: Picking instructions. For each order, Miriam generates picking instructions: the specific cultivar, stem length, quantity, packing specification (fusten configuration), and quality grade. These instructions are printed and distributed to the two picking teams in the greenhouse. Communication between the kantoor and the greenhouse floor happens via WhatsApp, the same channel used for personal messages, family photos, and football scores.
8:00 - 9:00: Phytosanitary and transport documentation. Cross-border orders require NVWA phytosanitary certificates and transport documentation including CMR (international consignment notes). Miriam prepares these based on the order details and the actual picked quantities (which sometimes differ from the ordered quantities due to last-minute quality sorting). The documents must be printed and attached to the shipment before loading.
9:00 - 10:00: Loading coordination. Orders are consolidated by destination, loaded onto the correct trucks, and checked against the documentation. The logistics assistant manages the loading dock, cross-referencing the physical shipment against the picking list and the transport documents.
Four hours. Every morning. With no margin for error and no buffer for the inevitable disruptions: a picking team discovering quality issues with a batch, a buyer changing their order at 7:30, a truck arriving 40 minutes late from the transport company.
What the AI agent does
The AI agent was designed to automate the information flow between sales, inventory, picking, documentation, and transport. Here is the workflow:
Order intake and normalisation. The agent monitors email (Gmail) and WhatsApp for incoming orders. FloraHolland auction confirmations are parsed automatically: buyer name, product, cultivar, quantity, stem length, packing specification, and delivery destination are extracted and structured. Direct sales orders arrive in various formats — some buyers send structured purchase orders, others send WhatsApp messages like “Same as last week but 200 extra Anastasia Green” — and the agent normalises these into a standard order format.
For the “same as last week” type orders, the agent references the historical order database to reconstruct the full order specification, then confirms with the buyer: “Confirming: 1,800 Baltica White 70cm, 1,200 Anastasia Green 60cm, 200 additional Anastasia Green 60cm. Correct?”
Real-time inventory matching. Instead of relying on yesterday’s whiteboard, the agent maintains a running inventory based on harvest reports submitted via WhatsApp by the harvest team leads. When a team lead sends “Greenhouse 2 harvest complete: 3,400 Baltica White 70cm, 2,100 Baltica White 60cm,” the agent updates the available inventory. Orders are matched against this real-time inventory, and shortfalls are flagged immediately — not at 7:00 when Miriam gets to that step.
Picking instruction generation. The agent generates detailed picking instructions in Google Sheets that are shared with the picking team leads. Each instruction includes the cultivar (with internal product code to eliminate variety confusion), exact quantity, stem length, packing specification (fusten count and stems per fust), quality grade, and the destination tag for transport sorting. The picking team leads access these on a tablet in the greenhouse rather than waiting for printed sheets from the kantoor.
Phytosanitary and transport documentation. For cross-border shipments, the agent pre-fills the NVWA phytosanitary certificate application with the correct species names (Latin nomenclature as required by international plant protection standards), quantities, greenhouse registration numbers, and destination country details. The CMR consignment note is generated automatically from the order and transport data. When substitutions occur during picking, the agent updates the documentation before the truck loads.
Transport allocation and loading checklist. Based on order destinations and transport schedules, the agent allocates each order to the correct truck and generates a loading sequence checklist. The logistics assistant at the loading dock uses a tablet to check off each order as it is loaded, and the system verifies that the physical load matches the documentation.
The first week: the auction clock integration
The biggest challenge in the first week was not technical — it was temporal. The FloraHolland auction clock runs on a fixed schedule, and sales confirmations arrive in batches that correspond to auction rounds. The agent needed to process each batch, match it to inventory, and generate picking instructions fast enough for the greenhouse team to start picking before the next batch arrived.
The initial configuration processed auction batches in approximately 8 minutes, which was fast but not fast enough. The first auction round’s orders needed to be in the picking team’s hands by 6:15 to maintain the loading schedule. The agent was optimised to process standard auction batches in under 4 minutes, with complex batches (multiple cultivars, special packing requirements) taking up to 7 minutes.
The direct sales channel posed a different challenge. Auction orders are structured data. Direct sales messages are human conversation. A German wholesaler who has been buying from Jan for fifteen years does not send formal purchase orders; he sends WhatsApp messages in a mix of German and Dutch with abbreviations that make sense to exactly two people. “Morgen 3K BW 70, 2K AG 60, zelfde verpakking als vorige week, LG Dieter” translates to “Tomorrow 3,000 Baltica White 70cm, 2,000 Anastasia Green 60cm, same packing as last week, regards Dieter.”
The agent learned these buyer-specific communication patterns. For each regular buyer, it maintains a profile that includes their typical order patterns, abbreviations, packing preferences, and delivery schedules. After the first two weeks of manual correction, the agent’s interpretation accuracy for regular buyer messages reached 96%.
The cultivar confusion solution
The 40% of shipping errors caused by variety confusion was addressed through a specific design choice: every picking instruction uses the internal product code, not the cultivar name.
In the greenhouse, each cultivar has a three-digit code printed on the row markers. Baltica White is 127, Zembla White is 134, Anastasia Green is 208. The picking instruction says “Code 127, 2,400 stems, 40 fusten x 60” — not “White Chrysanthemum, 2,400.” The code is unambiguous. The cultivar name is included for reference but is not the primary identifier.
This seemingly simple change eliminated variety confusion almost entirely. In the first month after implementation, variety errors dropped from an average of 3.2 per week to 0.3 per week. The remaining errors were caused by mislabelled rows in the greenhouse — a planting error, not a processing error.
The numbers after three months
Order processing time: 4 hours to 25 minutes. The time from sales confirmation to picking instructions available on the greenhouse floor dropped from 4 hours to 25 minutes. This includes order intake (automatic), inventory matching (2-3 minutes), human review of the matched orders (10-15 minutes by Miriam), and picking instruction distribution (automatic). Complex days with high order volume or many special requests take up to 45 minutes.
Delivery accuracy: 91% to 98.5%. Orders shipped correctly — right cultivar, right quantity, right packing, right destination — improved from 91% to 98.5%. The remaining 1.5% of errors are primarily caused by quality issues discovered during picking that require last-minute substitutions (handled correctly by the documentation system but occasionally not communicated to the buyer in time) and rare transport delays that affect temperature-sensitive products.
Supplier communication: 3 hours/day to 40 minutes/day. Jan’s operation sources packaging materials, crop protection products, and growing media from multiple suppliers. Communication with these suppliers — placing orders, confirming deliveries, resolving discrepancies — consumed approximately 3 hours of Miriam’s day. The agent now handles routine supplier orders (packaging materials with standard reorder points, growing media on a fixed schedule) and only routes exceptions to Miriam.
Claim reduction. Customer claims related to order errors dropped from an average of EUR 4,800 per month to EUR 600 per month. In the floriculture industry, a claim typically involves the full invoice value of the incorrect shipment plus a goodwill credit on the next order. The reduction in claims represents a significant margin improvement.
Staff impact. Miriam, the office coordinator, went from working 5:30am to 2:00pm under constant pressure to working 6:00am to 1:30pm with a less stressful morning. The two picking team leads report that receiving clear, code-based instructions on a tablet is faster and less error-prone than interpreting printed sheets. The logistics assistant at the loading dock says the digital checklist has made the loading process “boring, which in logistics is exactly what you want.”
The seasonal challenge
Horticulture is seasonal. Valentine’s Day, International Women’s Day (March 8th, a major flower holiday in Eastern European markets), Mother’s Day, and the autumn wedding season create demand spikes that stress every part of the supply chain.
The AI agent was first tested under pressure during the Mother’s Day 2026 peak. Order volume was approximately 280% of normal weekly volume. The agent processed 14,300 stems worth of orders in the first morning alone, compared to a typical day’s 8,000-9,000. The processing time per order remained stable at 25-30 minutes because the bottleneck was human review, not automated processing. The picking team capacity was the actual constraint — they could only pick so fast — but at least they started picking on time rather than waiting for instructions until 7:00.
“Mother’s Day used to be the most stressful day of the year,” Jan says. “This year it was just the busiest. There’s a difference.”
What Jan would do differently
“I should have started with the inventory system, not the order processing,” Jan says. “The order processing automation is impressive, but it’s only as good as the inventory data it works with. We spent the first two weeks correcting inventory discrepancies that existed before the agent was implemented. If I had cleaned up and digitised the inventory tracking first, the order processing would have worked correctly from day one.”
“I also underestimated the resistance from the harvest team leads. They had been communicating with the kantoor via WhatsApp for years and had their own system. Asking them to send structured harvest reports instead of casual messages felt bureaucratic to them. Once they saw that it eliminated the morning inventory confusion, they came around, but the transition took patience.”
The operation is now exploring two extensions. First, predictive ordering for packaging materials based on the sales forecast and historical auction patterns — so that fust and tray inventory is automatically maintained without manual reorder points. Second, integration with FloraHolland’s digital auction platform for automatic pre-loading of quality photos and product specifications, which are required for auction lots and currently uploaded manually by Miriam each afternoon.
Miriam, for her part, says the best thing about the system is not the time savings. It is that she no longer wakes up at 4:45am with anxiety about whether the whiteboard in greenhouse two was updated correctly.