Guides

How to email a monthly report from Airtable automatically (CSV or Excel)

Updated

A monthly report is simple to describe: on the 1st, send last month's records as a file to the people who need them. An agency sends each client their month of hours. A finance team sends the invoice list to the accountant. In Airtable the hard parts are selecting exactly last month's rows and getting a real CSV or Excel file into an inbox without anyone remembering to do it.

Step 1: a view that holds last month

Whatever sends the report, build the view first. Airtable's relative date filters are easy to misread. According to its help article on filtering, is within the past month means the past 30 days counted from today, not the previous calendar month. On 1 November it returns about 2 October to 1 November. There is an is within this calendar month option for the current month, but no previous-calendar-month option. You have three ways to cover last month:

Here is a formula for the second approach. It compares the first day of each month and returns Yes when the difference is exactly one month:

IF(
  DATETIME_DIFF(
    DATETIME_PARSE(DATETIME_FORMAT(TODAY(), 'YYYY-MM-01')),
    DATETIME_PARSE(DATETIME_FORMAT({Date}, 'YYYY-MM-01')),
    'months'
  ) = 1,
  'Yes',
  'No'
)

A shorter version compares text: DATETIME_FORMAT({Date}, 'YYYY-MM') = DATETIME_FORMAT(DATEADD(TODAY(), -1, 'months'), 'YYYY-MM'). Name the field Last month, then create a view with Last month is Yes, any other filters (for example Status is Approved), a sensible sort and only the columns the reader needs. Two cautions. Formulas that use TODAY() are refreshed on Airtable's schedule rather than at midnight, so send the report some hours after midnight on the 1st, not at 00:01. And check a record dated on the last day of a month, in your own timezone, before you rely on the view.

Step 2: choose how the file leaves Airtable

Airtable automation with Send email

Use the At scheduled time trigger with the Months interval: every 1 to 12 months, on a day from the 1st to the 31st or the last day, at a set time. Add Find records on your view, then Send an email and insert the found records. Know the limits, which match what we describe in the guide on emailing more than 100 records:

This is fine for a short summary email, such as ten rows of totals per client. For a full list, readers get a truncated table they cannot sort.

Zapier or Make

Both can run on the 1st: Zapier with Schedule by Zapier, Make with a scheduled scenario. A typical chain is search the Airtable view, build a CSV, then send it with Gmail or Outlook, or save it to Drive. Zapier's Free plan has 100 tasks a month with two-step Zaps only; multi-step Zaps need the Professional plan (from $19.99 a month billed yearly for 750 tasks). Make's Free plan has 1,000 credits a month and paid plans start at $9 for 10,000 credits. A 500-row view processed row by row can eat a free allowance in one run, so test and read the usage. Our Zapier and Make comparison goes deeper.

A script in an automation

A scheduled automation with a Run a script action can read the view, build CSV text and post it to an email API such as SendGrid or Postmark with fetch. It works, and you own the code, the API key and the failures. See the script guide.

ViewCourier monthly export

ViewCourier is built for this one job, and it is one option among those above. You connect a read-only Airtable token and pick the last-month view. You choose CSV, Excel (.xlsx) or a PDF report, add up to five recipients, and set a monthly schedule: a day from 1 to 28, an hour and a timezone. Each run emails the view as an attachment with a dated filename. The Free plan covers one weekly or monthly export of up to 1,000 rows; Starter (€9) allows 3 exports of up to 5,000 rows; Pro (€19) allows 25 of up to 50,000.

Step by step with ViewCourier

  1. Create the Last month view described above, and hide fields that clients or the accountant should not see.
  2. In Airtable, create a personal access token with read-only scopes for the base (data.records:read and schema.bases:read).
  3. In ViewCourier, add an export: paste the token, select the base, table and view, and choose Excel (.xlsx) for people who live in Excel or CSV for imports.
  4. Set Monthly, day 1, an hour such as 07:00, and your timezone. Choosing a morning hour leaves the TODAY() formula time to refresh.
  5. Edit the filename template, for example Hours-{date}.xlsx; the {date} placeholder is the run date.
  6. Add recipients and, if you like, tick Don't send scheduled emails when the view has no records. Press Send now to test; a manual send always sends.
  7. Check the first real run on the 1st, then forget about it.

Example: agency monthly client report

An agency tracks hours in a Time entries table with Client, Date, Hours, Task and Billable. It creates a view Client A last month filtered on Client is Client A, Last month is Yes and Billable is checked, sorted by date, with internal notes hidden. Each client has their own view and export, mailed on the 1st at 07:00 to the client's contact and the account manager. Clients get a dated Excel sheet that is the record of what was sent. The Free plan covers one such client; Starter covers three, Pro up to 25.

Example: month-end invoices

A finance team keeps an Invoices table with Invoice date, Amount, Status and Exported. The view filters Last month is Yes and Status is Sent. On the 1st, the accountant gets Invoices-2026-11-01.csv to import into the bookkeeping package. Because the file is a snapshot, late edits do not change the copy already sent. If a correction matters, send another export with Send now.

Which to pick

For a short summary to colleagues who read email in Airtable terms, a native automation is free and enough. When the report must be a real file, a script or Zapier and Make can build one, at the cost of setup and per-run usage. For the least upkeep, a scheduled export service sends the file for you. More examples live in the weekly client report guide, the Excel export guide, the PDF report guide and, if the file also needs to land in cloud storage, saving it to Google Drive or Dropbox.

FAQ

Can an Airtable automation email a monthly CSV report?

It can send a monthly email, using the At scheduled time trigger with a Months interval, but the Send email action cannot create a CSV. It can attach files that already sit in an attachment field, and it can insert up to 100 records as a list or grid in the body. To send a CSV of a view each month you need a script, a tool such as Zapier or Make, or a scheduled-export service.

Does the Airtable filter 'is within the past month' mean last calendar month?

No. Airtable's help article says it means the past 30 days counted from today, not the previous calendar month. For last month's records, use a formula field that compares the record's month with today's, or two date conditions with fixed start and end dates that you edit each month. Airtable also offers 'is within this calendar month', which covers the current month only.

Which day of the month can ViewCourier run a monthly export?

You choose a day from 1 to 28, an hour and a timezone. For a last-month report, the 1st is the natural choice. There is no last-day-of-month option, so a report that must run on the final day needs a different tool, or a month-to-date report on the 28th.

Is the monthly Excel or CSV file a snapshot?

Yes. Each run builds the file from the view as it is at that moment and attaches it, so later edits in Airtable do not change the copy already in the inbox. That is useful for month-end invoicing, because you can keep the file that was actually sent. Delete or archive nothing from the view until the email has arrived.

Is monthly export available on the free plan?

Yes. The Free plan includes one export that runs weekly or monthly, up to 1,000 rows, as CSV, Excel or PDF, to up to five recipients. More exports, larger views and daily schedules need Starter at 9 euros a month or Pro at 19 euros, and new accounts get a 14-day trial without a card.

Let ViewCourier do it

Connect a read-only Airtable token, pick a view, and choose daily, weekly or monthly at your time and timezone. Every run emails a clean CSV, Excel or PDF file to up to five people. Free plan for one weekly or monthly export; the 14-day trial of daily schedules needs no credit card.

Start free trial

More guides