Forecast Daily Sales with Timestral and n8n
Every morning an ops team stares at last week's numbers and guesses whether today will be busy or slow. Time-series forecasting — predicting a future number from a sequence of past numbers — used to require a data scientist. Mistral's Timestral model, released October 15 2026, runs that forecast on an ordinary laptop CPU in under a second, with no GPU and no ML background needed.
Install Timestral and wrap it in a tiny local server
Timestral is a Python library — a package you install with the `pip` command. It downloads Mistral's forecasting model weights to your machine. You then write a 20-line Python file that turns it into a local HTTP server (a mini web service running on your own computer at port 8000) so that n8n can talk to it like any other API. Open a terminal and run the two commands shown below, then paste the server code into a file called `server.py`.
Set up your Google Sheet with a sales column
Create a Google Sheet with one column labelled Date (column A) and one labelled Sales (column B). Add at least 30 rows of past daily sales figures — the model needs historical context to forecast. Leave one empty row at the bottom: that is where n8n will write today's prediction.
Create the n8n workflow and add a Schedule Trigger
n8n is a visual automation tool where each step is a block called a node. A trigger node is the first node — it decides *when* the workflow starts. You want it to fire every morning before the team arrives. In n8n, click + New Workflow in the left sidebar to open a blank canvas, then add your trigger.
Read the sales column from Google Sheets
Click the + connector on the right side of the Schedule Trigger to add the next node. Search for Google Sheets and choose the Get Many Rows operation. This node will pull all the rows from your sheet so n8n can pass the numbers to Timestral. You need to connect your Google account the first time — n8n will walk you through a standard Google sign-in pop-up.
Send the numbers to Timestral with an HTTP Request node
Now add an HTTP Request node — n8n's all-purpose tool for calling any web address. You'll use a Code node first to reshape the Google Sheets rows into a plain list of numbers, then pass them to your local Timestral server. The Code node lets you write a tiny snippet of JavaScript; don't worry, you can copy it exactly as shown.
Write the forecast back to Google Sheets
Add one more Google Sheets node. This time use the Append Row operation to write a new row containing today's date and Timestral's predicted value. The predicted value lives at `{{ $json.forecast }}` in n8n's expression language — that double-curly syntax just means 'pull this field from the previous step's output'.
Activate the workflow and watch the first run
You have built the full pipeline. Now flip it on. In n8n, click the Inactive toggle at the top-right of the canvas — it turns green and says Active. From this point on, the workflow fires automatically every morning at 7 am. You can also click Execute Workflow right now to run it immediately and confirm the forecast lands in your sheet.
What you get
Every morning at 7 am, n8n reads your Google Sheet, runs the last 30+ days of sales through Timestral's 5M-parameter forecasting model on your local CPU, and appends the predicted value for the next day. Your team opens the sheet and sees tomorrow's forecast already waiting — no manual work, no cloud GPU bill. Rough effort: ~2–3 hours first time; free (Timestral weights are free under Modified MIT, n8n Community Edition is free, Google Sheets is free). You need a machine that can run Python — a standard laptop is fine..
Sources
-
mistral.aiIntroducing Timestral — Mistral AI
-
github.commistralai/timestral — GitHub (inference code, Apache-2.0)
-
marktechpost.comMistral AI Releases Timestral: A 209M Forecasting Model Family — MarkTechPost
-
docs.n8n.ioGoogle Sheets node — n8n docs
-
docs.n8n.ioHTTP Request node — n8n docs
-
docs.n8n.ioExecution History — n8n docs
NowGTM at Claimlane
Latest postLatest from the blog