This is an automation that turns monthly Google Sheets actuals into MD&A commentary (through OpenAI API), writes to Notion, and notifies Slack — triggered via Webhook.
finance-board-pack-ai-automation/
├─ README.md
├─ LICENSE
├─ workflow.json # High-level list of Make modules
├─ data/
│ └─ board_model_example.csv # Example “Board_Model” Google Sheet
├─ demo_output/
│ ├─ sample_notion_row.md
│ └─ sample_slack_message.md
├─ docs/
│ └─ architecture.md # Text architecture diagram
├─ screenshots/
│ ├─ Google_Sheets_Actuals.png
│ ├─ Make_Scenario_Overview.png
│ └─ Notion_DB_Structure.png
Images are stored in screenshots/ and linked relative to README.
Entry point. Opening the webhook URL (or calling it from another tool) triggers the full run.
Stores the base reporting currency (e.g., GBP).
Calls your FX provider (e.g., ExchangeRate.host / ECB demo).
Response is mapped to a variable and later stored in Notion as raw JSON.
Keeps the selected data rates object handy for later use.
Reads Board_Model → ‘actuals’ tab
Headers: entity, currency, period_yyyy_mm, metric, amount.
Wraps the rows into a JSON array with fixed schema:
entity, currency, period_yyyy_mm, metric, amount.
Model: gpt-4o (or later).
Prompt: describes the group performance based on the JSON rows, in professional MD&A language.
Database: Board Pack Run Log
Fields typically mapped:
- Run ID – timestamp or static prefix + period
- Period – from the sheet (e.g.,
2025-07) - Entities – list of entities found
- Base Currency – from JSON
- FX Rates (JSON) – raw JSON string from HTTP step
- MD&A Summary – trimmed OpenAI completion text
- Board Pack PPTX Link – optional future extension
- Requested By – webhook source / caller
Posts a short summary plus a link to the Notion row / Sheets / Drive.
For a visual overview, see docs/architecture.md.
Duplicate the:
- Google Sheet
- Notion database
- Periods / months
- Metrics / amounts structure
Keep the same header structure.
Optionally adapt to each client’s tone, KPIs, sector, metrics.
The scenario architecture remains identical, enabling scalable reuse across your fractional-CFO portfolio.
Located inside /data and /demo_output:
data/board_model_example.csv— ready to import into Google Sheets as your “Board_Model → actuals” tabdemo_output/sample_notion_row.md— typical Notion row outputdemo_output/sample_slack_message.md— Slack summary preview
This project is released under the MIT License. Use it freely as a template for your finance-automation portfolio.


