# Automating Daily and Weekly Business Reports Using n8n and Airtable

### Introduction & What This Automation Does

In this project, I built a fully automated business reporting system using n8n, Airtable, Slack, and Outlook. The goal of this automation is simple but extremely powerful: eliminate manual report preparation and automatically deliver structured business reports to the right people at the right time.

Every day and every week, the system gathers business data from multiple departments, processes it, generates summaries, and distributes reports automatically. Department heads receive reports specific to their department, while the CEO receives a complete overview of the entire business.

All business data in this project is stored inside Airtable. Airtable acts as the main database where finance, sales, and operational data are recorded. The automation workflows process this data, summarize it, and then deliver the results through email and Slack.

You can download and import the complete n8n workflow JSON (including the custom code and LLM prompts) from the link below to run the automation in your own n8n environment:  
[https://drive.google.com/drive/folders/1eusfyr2Gv\_uoVMdg7jEVHHhFzA67BOxD?usp=drive\_link](https://drive.google.com/drive/folders/1eusfyr2Gv_uoVMdg7jEVHHhFzA67BOxD?usp=drive_link)

The automation performs the following tasks:

*   Collects finance, sales, and operations data from Airtable
    
*   Generates daily summaries for each department
    
*   Generates weekly summaries for each department
    
*   Sends department-specific reports to department heads
    
*   Sends a complete business summary to the CEO
    
*   Posts formatted reports to Slack channels
    
*   Automatically triggers alerts when business metrics fall below thresholds
    

To better understand the outcome of the automation, it is helpful to first look at the final results before diving into the technical workflows.

After executing the Business Daily Report workflow, the system automatically sends four emails:

*   One email to the Head of Finance
    
*   One email to the Head of Sales
    
*   One email to the Head of Operations
    
*   One complete business report to the CEO
    

At the same time, the report is also posted into a Slack channel dedicated to daily business reporting.

Result example — Daily report emails

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/2a30643b-10a6-41ea-a8ff-e47624fe06f7.png align="center")

Result example — Daily Slack report

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/88cfb209-c6fe-4b11-a3ca-e6c754d61ada.png align="center")

The Business Weekly Report workflow works the same way but processes weekly data instead of daily data.

With the final output demonstrated, we can now move into the quick demo of the system.

* * *

### Quick Demo

You can watch the quick demo of the full automation here:

**YouTube Demo:**  

%[https://www.youtube.com/watch?v=ZF7KWc2-jsQ] 

* * *

### Technologies Used and Prerequisites

This automation combines several modern tools to build a complete reporting system.

| Technology | Purpose |
| --- | --- |
| n8n | Workflow automation engine |
| Airtable | Database for business data |
| Slack | Internal report delivery |
| Outlook | Email report delivery |
| JavaScript | Custom data processing |
| LLM Chain | Summarizing notes and explanations |

Before implementing this project, you should have access to the following tools:

*   n8n instance (cloud or self-hosted)
    
*   Airtable account
    
*   Slack workspace
    
*   Outlook email account
    
*   Basic understanding of n8n workflows
    

You can copy the full Airtable database used in this project from the public template below:  
[https://airtable.com/appMPHtayl4J13AIo/shrRu7M0kxyjOTwaJ](https://airtable.com/appMPHtayl4J13AIo/shrRu7M0kxyjOTwaJ)

Each department uses three tables:

Finance Tables:

*   `finance_transactions`
    
*   `finance_daily`
    
*   `finance_weekly`
    

Sales Tables:

*   `sales_transactions`
    
*   `sales_daily`
    
*   `sales_weekly`
    

Operations Tables:

*   `operations_logs`
    
*   `operations_daily`
    
*   `operations_weekly`
    

The transactions tables store raw operational data, while the daily and weekly tables store summarized reports generated by the automation workflows.

These tables already contain sample data so the automation can be tested immediately without additional setup.

* * *

### Workflow Explanation

#### Business Daily Report Workflow

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/b48d7d3d-30ad-432e-bf52-370f4944e0c4.png align="center")

The Business Daily Report workflow is responsible for generating daily reports for all departments and sending a complete summary to the CEO.

The workflow begins with two triggers:

*   **Schedule Trigger** – Runs every day at 5 PM
    
*   **Manual Trigger** – Allows the workflow to be executed manually for testing
    

Immediately after the trigger, a **Set Node** centralizes configuration values such as:

*   Department head email addresses
    
*   CEO email address
    
*   LLM summarization prompt
    

Keeping these values in a single node makes the workflow easier to maintain and modify.

The main workflow then calls three subworkflows:

*   Finance Daily Report
    
*   Sales Daily Report
    
*   Operation Daily Report
    

Each subworkflow processes data for its respective department and returns structured output to the main workflow.

* * *

#### Finance Daily Report Subworkflow

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/d9382783-196a-4a6b-96b0-b88f350fe4d9.png align="center")

This subworkflow generates the daily finance report.

The workflow starts with the **When Executed by Another Workflow** trigger, which receives input data from the main workflow.

Next, an **Airtable Search Node** retrieves today's records from the `finance_transactions` table using an Airtable formula that filters records for the current day.

Since multiple records can be returned, the data is aggregated into a single structure.

Inside a **Code Node**, the system calculates:

*   Total revenue
    
*   Total expense
    
*   Total cash in
    
*   Total cash out
    

These values form the core metrics of the finance report.

The workflow then uses an **LLM Chain Node** to summarize finance notes from the day's transactions. Instead of sending raw notes, the LLM generates a clear explanation of key financial events.

Once calculations and summaries are complete, the workflow creates a new record in the `finance_daily` table to store the report results.

Next, alert conditions are evaluated.

If:

*   Profit is less than 1000
    
*   Expense is greater than 1000
    

An alert email is automatically sent to the Head of Finance.

After alerts are processed, the complete finance report is emailed using Outlook.

Finally, a **Set Output Node** formats structured output data that will be returned to the main workflow.

* * *

#### Sales Daily Report Subworkflow

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/2d80c2b1-33f3-489c-9d33-f593e36ab574.png align="center")

The Sales Daily Report subworkflow processes sales data.

The Airtable search node retrieves records from the `sales_transactions` table.

A Code Node calculates key sales metrics:

*   Total leads
    
*   Total deals
    
*   Best performing marketing channel
    
*   Total revenue
    

Alert conditions are then evaluated.

If:

*   Total deals are less than 10
    
*   Conversion rate is below 2%
    

An alert email is sent to the Head of Sales.

The sales report is then emailed, and structured output is returned to the main workflow.

* * *

#### Operation Daily Report Subworkflow

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/3046b4f2-48db-4d88-8b6a-379655e18971.png align="center")

This subworkflow analyzes operational performance.

Records are retrieved from the `operations_logs` table.

A Code Node calculates operational metrics:

*   Total orders received
    
*   Total orders completed
    
*   Total orders failed
    
*   Completion rate
    

If the completion rate drops below **90%**, an alert email is sent to the Head of Operations.

The operations report is then emailed, and structured output data is returned to the main workflow.

* * *

#### CEO Report Generation

After all subworkflows finish execution, the main workflow merges the outputs from finance, sales, and operations.

A complete business summary is generated and sent to the CEO via Outlook.

Result example — CEO email report

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/2a7cdfc4-0533-44d8-a803-246d34f1c653.png align="center")

The report is also posted to Slack.

Because Slack uses Markdown formatting, the HTML report is first converted into Markdown before being sent.

Result example — Slack daily report

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/88cfb209-c6fe-4b11-a3ca-e6c754d61ada.png align="center")

* * *

#### Business Weekly Report Workflow

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/f67384ef-15b2-4653-aac9-4469093f1f91.png align="center")

The Business Weekly Report workflow is almost identical to the daily workflow.

The main differences are:

*   The **Schedule Trigger runs every Friday at 5 PM**
    
*   Weekly subworkflows are used instead of daily ones
    

The weekly subworkflows retrieve records from the **last 7 days** instead of the current day.

Data is stored in:

*   `finance_weekly`
    
*   `sales_weekly`
    
*   `operations_weekly`
    

Alert thresholds are also adjusted to reflect weekly performance expectations.

Once all weekly subworkflows complete, the reports are merged and delivered to the CEO through Outlook and Slack using the same delivery logic as the daily workflow.

Result example — Weekly Email report

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/b5ce7de5-a1d0-4cf4-91eb-4b2c0f5fed1a.png align="center")

Result example — Weekly Slack report

![](https://cdn.hashnode.com/uploads/covers/682c577bb9129c264d975875/931c900a-e6a5-44bd-b6a5-b4c4526e147d.png align="center")

* * *

### Summary

In this project, we built a fully automated business reporting system using n8n, Airtable, Slack, and Outlook.

The automation collects business data, processes it, summarizes it, and automatically delivers daily and weekly reports to the right stakeholders. Department heads receive reports tailored to their teams, while the CEO receives a complete overview of business performance.

This type of automation removes the need for manual reporting, reduces human error, and ensures that critical business information is always delivered on time.

By combining workflow automation, structured databases, custom code, and AI summarization, it becomes possible to build powerful internal systems that significantly improve operational efficiency.

If you want to explore the project yourself, you can import the provided workflow JSON and connect it to your own Airtable, Slack, and Outlook accounts.

Thanks for reading, and I'll see you in the next project.
