> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/tasks/daily-sales-report-email.md).

# Email a daily sales report every morning with Duaer

In Duaer, read yesterday's orders from Google Sheets at 9am, total amount and count per salesperson, and send one report email.
## Build the daily report in Duaer

1. Add [Schedule Trigger](/build/schedule-trigger.md): Trigger Interval Days, Trigger at Hour 9am.
2. Add [Google Sheets](/build/google-sheets.md) with Get Row(s) on your orders sheet. It needs Date, Rep, Amount, and Order columns, with dates like 2026-10-01.
3. Add [Filter](/build/filter.md): {{ $json.Date }} is equal to {{ $now.minus({ days: 1 }).toFormat("yyyy-MM-dd") }} to keep yesterday only.
4. Add [Summarize](/build/summarize.md): under Fields to Summarize, Amount with Sum and Order with Count; Fields to Split By Rep. You get one item per rep with sum_Amount and count_Order.
5. Add [Aggregate](/build/aggregate.md) with All Item Data (Into a Single List) to put every rep into one item under data.
6. Add [Send Email](/build/send-email.md): To Email your list, Subject Sales report {{ $now.minus({ days: 1 }).toFormat("yyyy-MM-dd") }}, Text {{ $json.data.map(r => r.Rep + ": " + r.sum_Amount + ", " + r.count_Order + " orders").join("\n") }}.
7. Publish the digital organization.

## Common issues

- 9am became 9pm: the time zone is wrong. Refer to [Fix a Duaer Schedule Trigger that runs at the wrong time](/troubleshooting/schedule-trigger-wrong-time.md).
- No orders yesterday means no Summarize output and no email. To send a no-orders note, add [If](/build/if.md) after Filter.
- Data lives in Excel: swap Google Sheets for [Extract from File](/build/extract-from-file.md) on an uploaded or cloud file.
## Questions

### Can Duaer post the report to a WeCom group?

Yes. Replace Send Email at the end of the Duaer flow with the WeCom node message-push resource and the same expression.

### What are the Duaer Summarize output fields called?

Duaer Summarize names them aggregation_field, such as sum_Amount and count_Order.

## Related

- [Run a Duaer digital organization on a schedule](https://doc.duaer.com/build/schedule-trigger.md)
- [Summarize fields in Duaer](https://doc.duaer.com/build/summarize.md)
- [Send mail with Send Email in Duaer](https://doc.duaer.com/build/send-email.md)
- [Fix a Duaer Schedule Trigger that runs at the wrong time](https://doc.duaer.com/troubleshooting/schedule-trigger-wrong-time.md)

