🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Square to Outlook, month end sales CSV emailed

Lisa Granqvist Partner Workflow Automation Expert

Month-end reporting sounds simple until you’re hunting for the right Square date range, exporting the same report again, and realizing one location is missing. Then you’re stuck cleaning spreadsheets and replying to “can you resend that?” emails.

Square Outlook CSV automation hits hardest when ops managers are juggling multiple locations, but finance leads and agency-style fractional CFOs feel it too. You get a consistent Sales Summary-style CSV in your inbox automatically, every month, without babysitting Square exports.

This workflow pulls last month’s completed orders for every Square location, builds a clean summary, turns it into a CSV, then emails it via Microsoft Outlook. You’ll see what it fixes, what you need, and how teams typically adapt it.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Square to Outlook, month end sales CSV emailed

The Challenge: Month-End Square Sales Reporting That Doesn’t Break

Square’s dashboard report is fine when you’re looking at one store and you have time. Month end is rarely like that. You’re switching between locations, double-checking the “previous month” window, exporting, naming files, then stitching totals together in a spreadsheet so someone else can do forecasting, payroll checks, or commission payouts. One missed filter, one wrong timezone assumption, one location with zero sales that still needs to be “accounted for,” and the whole thing turns into a back-and-forth thread that wastes the first morning of the month.

It adds up fast. Here’s where it usually breaks down in the real world.

  • Exporting the Sales Summary manually turns into a recurring calendar chore that still gets skipped when people are busy.
  • Multi-location accounts invite mistakes, because one forgotten location quietly throws off the totals.
  • CSV files are rarely “ready,” so someone ends up cleaning headers, formatting dates, or re-labeling columns.
  • If you’re paying commissions or sending numbers to a landlord or partner, late reports create awkward conversations and rushed decisions.

The Fix: Monthly Square Sales Summary CSV, Sent via Outlook

This automation runs on a schedule (the 1st of every month at 8:00 AM), calculates the exact start and end dates for the previous calendar month, and then talks to Square’s API for you. It first fetches every Square location connected to your account, then loops through them to pull completed orders for the month. Locations with no sales get ignored automatically, so your report stays focused. Next, it aggregates the order data into a summary designed to match what you see in Square Dashboard > Reports > Sales Summary. Finally, it generates a clean CSV file and emails it through Microsoft Outlook to whoever needs it.

The workflow starts with a monthly schedule trigger. From there, it calculates last month’s date window, pulls locations and orders from Square, and compiles a consistent summary. The end result is a CSV attachment delivered via Outlook, ready to forward or drop into your finance process.

What Changes: Before vs. After

Real-World Impact

Say you run 5 Square locations and you send a month-end sales CSV to a manager and a bookkeeper. Manually, it’s usually about 15 minutes per location to filter dates, export, and sanity-check totals, plus another 15 minutes to combine and email it, so roughly 90 minutes. With this workflow, the “work” is basically zero on the day it runs: it triggers automatically, compiles the CSV, and emails it. You might spend 10 minutes once a month skimming the attachment, which means you keep about an hour back every month (and the deadline stress disappears).

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Square account + Square API access token to fetch locations and orders.
  • Microsoft Outlook account to send the CSV to stakeholders.
  • Square API credential (Header Auth) (get it from the Square Developer dashboard, then paste as a Bearer token).

Skill level: Intermediate. You won’t write an app, but you will add credentials, confirm date logic, and test with your own Square data.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A monthly schedule kicks it off. The workflow runs automatically on the 1st at 8:00 AM, so you stop relying on reminders or someone’s memory.

Dates are calculated for the previous month. A small code step derives the correct start and end window, which matters more than people think when month end lands on weekends or you’re operating across timezones.

Square data is pulled across all locations. It fetches your Square locations first, then pulls completed orders for each one via HTTP requests. If a location has no sales, it’s filtered out so your CSV stays clean.

A sales summary is assembled and emailed. The workflow aggregates the orders into a Sales Summary-style dataset, converts it into a CSV file, and sends it through Microsoft Outlook to the recipient you choose.

You can easily modify who receives the email to support different reporting lines. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set the monthly trigger that starts the workflow and generates the previous month date list.

  1. Add and open Monthly Schedule Starter.
  2. Set the schedule rule to run monthly and confirm the hour is Trigger At Hour 8.
  3. Connect Monthly Schedule Starter to Derive Previous Month Dates as shown in the workflow flow.

Step 2: Connect Square API Data Sources

Retrieve Square locations and orders so each location is queried for every day in the previous month.

  1. Open Retrieve Square Sites and set URL to https://connect.squareup.com/v2/locations.
  2. Credential Required: Connect your httpHeaderAuth credentials in Retrieve Square Sites.
  3. In Expand Location List, set Field To Split Out to locations and Fields To Include to id.
  4. Open Fetch Square Orders and set URL to https://connect.squareup.com/v2/orders/search with Method POST.
  5. Set JSON Body to { "location_ids": ["{{ $json.locations.id }}"], "query": { "filter": { "state_filter": { "states": ["COMPLETED"] }, "date_time_filter": { "created_at": { "start_at": "{{ $('Derive Previous Month Dates').item.json.date }}T00:00:00-05:00", "end_at": "{{ $('Derive Previous Month Dates').item.json.date }}T23:59:59-05:00" } } } }, "limit": 1000, "return_entries": false }.
  6. Credential Required: Connect your httpHeaderAuth credentials in Fetch Square Orders.

Step 3: Set Up Processing and Filtering

Generate the date list, filter empty responses, compute totals, and convert results to a CSV file.

  1. Open Derive Previous Month Dates and keep the provided JavaScript Code for generating a list of dates.
  2. In Filter Empty Sales, ensure the condition checks that Value 1 is {{ $json.orders }} with the operator Not Empty.
  3. Open Assemble Sales Summary and confirm Mode is Run Once for Each Item to compute per-day totals.
  4. In Generate CSV Report, set Binary Property Name to sales_report and File Name to =sales_report_{{ $('Monthly Schedule Starter').item.json.timestamp }}.csv.

Tip: If the CSV file name looks blank, verify that Monthly Schedule Starter is providing a timestamp value during tests.

Step 4: Configure Output Email Delivery

Send the generated report as an email attachment using Outlook.

  1. Open Email Report Dispatch and set To Recipients to your email address (replace [YOUR_EMAIL]).
  2. Confirm Subject is Your Last Month's Square Sales Report and Body Content contains the HTML message.
  3. Under Additional FieldsAttachments, ensure Binary Property Name is sales_report.
  4. Credential Required: Connect your Microsoft Outlook credentials in Email Report Dispatch (this node needs credentials but none are configured yet).

⚠️ Common Pitfall: If the email sends without an attachment, verify that Generate CSV Report runs before Email Report Dispatch and that the binary property name matches sales_report.

Step 5: Test and Activate Your Workflow

Run a manual test to confirm data retrieval, CSV generation, and email delivery, then activate for monthly production use.

  1. Click Execute Workflow to run from Monthly Schedule Starter and watch items flow through Fetch Square Orders and Assemble Sales Summary.
  2. Confirm Generate CSV Report outputs a binary file named like sales_report_<timestamp>.csv.
  3. Verify an email arrives from Email Report Dispatch with the CSV attachment.
  4. Once successful, toggle the workflow to Active so it runs monthly at the scheduled time.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Square credentials can expire or lack permissions. If things break, check the Square Developer dashboard token status and the Header Auth value in n8n first.
  • If you add pagination for high-volume locations, it’s easy to undercount by stopping at 1,000 orders. Validate totals against Square Dashboard the first month you run it.
  • Microsoft Outlook sending can fail if your tenant blocks programmatic attachments or the mailbox has restrictions. Check the Outlook credential connection in n8n and test with a smaller CSV during setup.

Common Questions

How quickly can I implement this Square Outlook CSV automation?

Usually about 30 minutes if your Square token and Outlook login are ready.

Can non-technical teams implement this Square Outlook CSV reporting?

Yes. You’ll mostly be copying an API token into n8n and testing that the email arrives with the attachment.

Is n8n free to use for this Square Outlook CSV workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Square API access (typically included with your Square developer access) and any optional add-ons you choose to run in n8n.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Square Outlook CSV solution to my specific challenges?

You can. Common tweaks are changing the schedule in “Monthly Schedule Starter,” adjusting the date logic in “Derive Previous Month Dates,” or altering which fields appear in the CSV in “Assemble Sales Summary.” If you need a different destination, you can swap “Email Report Dispatch (Microsoft Outlook)” for Gmail, or add Google Sheets to archive each month automatically.

Why is my Square connection failing in this workflow?

Most of the time it’s an expired or misformatted Square access token (the header should look like “Bearer …”). Also check that the token has access to the right account and locations. If you suddenly start pulling lots of orders, rate limiting can show up as intermittent failures, so it’s worth retrying or adding simple backoff logic.

What’s the capacity of this Square Outlook CSV solution?

For most small businesses, it’s plenty. The main limitation is how many orders you’re pulling per location and whether you add pagination beyond the first 1,000 orders. On n8n Cloud, capacity depends on your plan’s monthly executions; if you self-host, you’re mostly constrained by your server resources and Square API limits.

Is this Square Outlook CSV automation better than using Zapier or Make?

Often, yes, especially if you have multiple locations and want the report to match Square’s Sales Summary closely. This workflow relies on custom logic (date handling, looping locations, filtering empty locations, and aggregating orders), which is doable in Zapier/Make but tends to get expensive or fiddly as soon as you add branching and data shaping. n8n also gives you a self-host option, which is handy if you run lots of automations and don’t want every extra task to raise your bill. The trade-off is setup responsibility: you’ll test it once and you should validate the first report against Square’s dashboard. If you want someone to sanity-check it with you, Talk to an automation expert.

Once this is live, month-end sales reporting becomes background noise. The workflow handles the repetitive parts so you can focus on what the numbers actually mean.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal