This workflow corresponds to n8n.io template #3453 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "59b786fe-8e45-4616-aa45-9748df144c3a",
"name": "MySQL",
"type": "n8n-nodes-base.mySql",
"position": [
-80,
220
],
"parameters": {
"query": "SELECT \n company,\n cost_center AS default_cost_center,\n COUNT(*) AS project_count\nFROM \n tabProject\nWHERE \n status = 'Open' \n AND project_type = 'External'\n AND is_active = 'Yes'\n AND budgeted_project_cost = 0\n \nGROUP BY \n company, cost_center\nORDER BY \n company, project_count DESC;\n",
"options": {},
"operation": "executeQuery"
},
"typeVersion": 2.4
},
{
"id": "48c20822-9f2e-4108-8bfb-b300689a9724",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-360,
220
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "3757860b-b7a0-4617-a398-37ac42f1acea",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
180,
200
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "A",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "423062ba-e116-4e22-aa00-29107e8c24ce",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.default_cost_center }}",
"rightValue": "Cost Center A"
}
]
},
"renameOutput": true
},
{
"outputKey": "B",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e065ab84-61fd-4e6c-8835-92d08be3e359",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.default_cost_center }}",
"rightValue": "Cost Center B"
}
]
},
"renameOutput": true
},
{
"outputKey": "C",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0ef8ce35-2507-4ff4-8dea-11380262098e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.default_cost_center }}",
"rightValue": "=COST CENTER C"
}
]
},
"renameOutput": true
},
{
"outputKey": "D",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9152e548-cca9-441c-b4b6-8903f449dc2b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.default_cost_center }}",
"rightValue": "Cost Center D"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "bf8fd5f4-e107-44e8-af1a-be32596d664e",
"name": "Microsoft Outlook6",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
560,
-20
],
"parameters": {
"subject": "Project Cost Missing",
"bodyContent": "==<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Missing Budgeted Cost Notification</title>\n <style>\n body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; }\n .email-container { max-width: 600px; margin: 20px auto; background-color: #ffffff; border-radius: 8px; overflow: hidden; }\n .email-header { background-color: #007BFF; color: #ffffff; padding: 20px; text-align: center; font-size: 18px; font-weight: bold; }\n .email-body { padding: 20px; font-size: 16px; color: #333333; }\n .email-body strong { color: #007BFF; }\n .email-footer { padding: 10px 20px; font-size: 14px; color: #555555; text-align: left; }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"email-header\">\n {{ $json.default_cost_center }} - Project Data Missing\n </div>\n <div class=\"email-body\">\n Dear {{ $json.default_cost_center }} Team,<br><br>\n There are <strong>{{ $json.project_count }}</strong> active projects with missing <strong>Budgeted Cost</strong>.<br>\n Kindly coordinate with the <strong>Accounts Team</strong> to update the missing values for accurate tracking.<br><br>\n Your timely attention is appreciated.<br><br>\n Regards,\n </div>\n <div class=\"email-footer\">\n <strong>Amjid Ali</strong><br>\n Automation Demo \u2013 n8n\n </div>\n </div>\n</body>\n</html>\n",
"toRecipients": "user@example.com",
"additionalFields": {
"bodyContentType": "html"
}
},
"typeVersion": 2
},
{
"id": "e4ffe557-0862-401e-9f65-7195a72db1d9",
"name": "Microsoft Outlook1",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
560,
160
],
"parameters": {
"subject": "Projects Cost Missing",
"bodyContent": "==<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Missing Budgeted Cost Notification</title>\n <style>\n body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; }\n .email-container { max-width: 600px; margin: 20px auto; background-color: #ffffff; border-radius: 8px; overflow: hidden; }\n .email-header { background-color: #007BFF; color: #ffffff; padding: 20px; text-align: center; font-size: 18px; font-weight: bold; }\n .email-body { padding: 20px; font-size: 16px; color: #333333; }\n .email-body strong { color: #007BFF; }\n .email-footer { padding: 10px 20px; font-size: 14px; color: #555555; text-align: left; }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"email-header\">\n {{ $json.default_cost_center }} - Project Data Missing\n </div>\n <div class=\"email-body\">\n Dear {{ $json.default_cost_center }} Team,<br><br>\n There are <strong>{{ $json.project_count }}</strong> active projects with missing <strong>Budgeted Cost</strong>.<br>\n Kindly coordinate with the <strong>Accounts Team</strong> to update the missing values for accurate tracking.<br><br>\n Your timely attention is appreciated.<br><br>\n Regards,\n </div>\n <div class=\"email-footer\">\n <strong>Amjid Ali</strong><br>\n Automation Demo \u2013 n8n\n </div>\n </div>\n</body>\n</html>\n",
"toRecipients": "user@example.com",
"additionalFields": {
"bodyContentType": "html"
}
},
"typeVersion": 2
},
{
"id": "e0722ebd-1e05-4efe-a27a-e4db193dec80",
"name": "Microsoft Outlook7",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
560,
380
],
"parameters": {
"subject": "Projects Cost Missing",
"bodyContent": "==<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Missing Budgeted Cost Notification</title>\n <style>\n body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; }\n .email-container { max-width: 600px; margin: 20px auto; background-color: #ffffff; border-radius: 8px; overflow: hidden; }\n .email-header { background-color: #007BFF; color: #ffffff; padding: 20px; text-align: center; font-size: 18px; font-weight: bold; }\n .email-body { padding: 20px; font-size: 16px; color: #333333; }\n .email-body strong { color: #007BFF; }\n .email-footer { padding: 10px 20px; font-size: 14px; color: #555555; text-align: left; }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"email-header\">\n {{ $json.default_cost_center }} - Project Data Missing\n </div>\n <div class=\"email-body\">\n Dear {{ $json.default_cost_center }} Team,<br><br>\n There are <strong>{{ $json.project_count }}</strong> active projects with missing <strong>Budgeted Cost</strong>.<br>\n Kindly coordinate with the <strong>Accounts Team</strong> to update the missing values for accurate tracking.<br><br>\n Your timely attention is appreciated.<br><br>\n Regards,\n </div>\n <div class=\"email-footer\">\n <strong>Amjid Ali</strong><br>\n Automation Demo \u2013 n8n\n </div>\n </div>\n</body>\n</html>\n",
"toRecipients": "user@example.com",
"additionalFields": {
"bodyContentType": "html"
}
},
"typeVersion": 2
}
],
"connections": {
"MySQL": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Microsoft Outlook6",
"type": "main",
"index": 0
}
],
[
{
"node": "Microsoft Outlook1",
"type": "main",
"index": 0
}
],
[
{
"node": "Microsoft Outlook7",
"type": "main",
"index": 0
}
],
[]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "MySQL",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Need to keep your finance or operations team updated on missing project costs? This practical automated report workflow does the job without AI — and saves hours weekly. Runs on a weekly schedule Queries your MySQL database for projects missing cost data Filters by Generates a…
Source: https://n8n.io/workflows/3453/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Microsoftoutlook Schedule. Uses mySql, scheduleTrigger, microsoftOutlook. Scheduled trigger; 6 nodes.
This workflow automates the backup of your self-hosted n8n instance by exporting all workflows and saving them as individual files to a designated OneDrive folder. Each file is timestamped for easy ve
Synchronize OKRs (Objectives and Key Results) between Monday.com and Jira to automatically calculate progress variance, update dashboards, and share variance reports via Slack and Outlook. This workfl
Generate Weekly n8n Execution Report and Email Summary Automatically runs every 7 days to pull all n8n workflow executions from the past week Merges execution data with workflow information to provide
This workflow automatically connects to the Square API and generates a monthly sales summary report for all your Square locations. The report matches the figures displayed in Square Dashboard > Rep