n8n Intermediate: Real Business Workflows · Module 3 of 11

Get Your Daily Revenue Total by Email, Automatically, using n8n

n8nIntermediate~9 min practice40 steps

Why this matters

Robert’s intro to this module

Every evening, someone at Pine Ridge Lawn Care spends about 20 minutes adding up the day’s jobs. Some nights it gets skipped, and the owner finds out how the week went on Friday, if at all.

A workflow can do it on a clock. After this module the day’s total lands in the owner’s inbox at 5pm on its own, and nobody opens the sheet.

You build four steps in a line: a Schedule Trigger, Get row(s) in sheet, Summarize and Gmail Send a message.

What you’ll build

A workflow that runs every day at 5pm Denver time, reads only today’s rows from the Pine Ridge Job Log, adds up the Amount column into one field, sum_Amount, and emails the total to the owner.

You test it with Execute workflow and check your inbox. Publishing is the last step, and it is what actually turns the schedule on.

What you need

  • Nothing to start the practicen8n, the sheet and Gmail are practice copies. Pine Ridge Lawn Care and its jobs are made up.
  • An n8n account, to do it for realSign up with this link (affiliate link: I may earn a commission, at no cost to you).
  • A Google Sheet job logMake a tab called Jobs with four columns in row 1: Date, Customer, Job, Amount. Write dates as year-month-day, like 2026-09-28, and put plain numbers in Amount, with no $ sign.
  • Google Sheets and Gmail connectedIn each step, click Create new credential and choose Sign in with Google. If you connected them before, the account is already picked.

Concepts

3 ideas you’ll use in the practice.

A schedule needs a time and a time zone

Set Trigger Interval to Days, Days Between Triggers to 1, and Trigger at Hour to 5pm. Then open the workflow’s Settings and set Timezone, for example America/Denver. If you skip it, 5pm means the default zone, and the owner gets the report at the wrong time.

A schedule only runs once the workflow is published.

Filter the sheet to today

Without a filter, Get row(s) in sheet returns every row in the log. Add a filter: Column Date, value {{ $today.toFormat('yyyy-MM-dd') }}. That is today’s date in the workflow’s time zone, written the way your sheet writes it.

If your sheet writes dates differently, change the format to match, or nothing will match.

Summarize is a spreadsheet total

Each job comes out as its own item. Summarize adds them up: set Aggregation to Sum and Field to Amount. The output field is called sum_Amount, and you use that name in the email.

Need the job count as well? Click Add Field and add a Count.

Practice

Do every step yourself in a practice copy of the real tool. It checks your work, and “Do it for me” finishes any step you get stuck on.

n8nGet Your Daily Revenue Total by Email, Automatically, using n8n40 steps · ~9 min · nothing touches your real accounts

Do it for real

Now repeat it in your own account. Tick each step as you go.

Quick check

3 questions to check you’ve got it.

1. Why set the workflow’s Timezone?

  • So 5pm means 5pm where the business is
  • To make the workflow faster
  • Because Gmail requires it
Show the answer

So 5pm means 5pm where the business is. The default zone may differ from yours, and the report would arrive at the wrong hour.

2. What does the filter on the Date column do?

  • It returns only today’s jobs instead of every row
  • It sorts the sheet
  • It deletes old rows
Show the answer

It returns only today’s jobs instead of every row. Without it, the total would add up every day in the log.

3. The schedule is set but no email arrives at 5pm. What did you probably forget?

  • To click Publish
  • To rename the sheet
  • To add a Count
Show the answer

To click Publish. A schedule only runs once the workflow is published.

Up next · Module 4

n8n: Call Any API with the HTTP Request Node

Start module 4 →