Every Monday it pulls KPI rows from a metrics sheet, asks GPT to write a short narrative on what changed, and emails a formatted report to stakeholders. Turns raw numbers into an executive-ready update.
{
"name": "Weekly KPI Report Email",
"nodes": [
{
"id": "kp01aa",
"name": "Monday Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.1,
"position": [
220,
300
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 8 * * 1"
}
]
}
}
},
{
"id": "kp02bb",
"name": "Read KPIs",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.4,
"position": [
440,
300
],
"parameters": {
"operation": "read",
"documentId": "YOUR_SHEET_ID",
"sheetName": "KPIs"
}
},
{
"id": "kp03cc",
"name": "Write Commentary",
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.4,
"position": [
660,
300
],
"parameters": {
"modelId": "gpt-4o",
"messages": {
"values": [
{
"role": "system",
"content": "Write a concise exec summary of these KPIs: highlights, concerns, next steps."
},
{
"role": "user",
"content": "{{ JSON.stringify($json) }}"
}
]
}
}
},
{
"id": "kp04dd",
"name": "Email Report",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
880,
300
],
"parameters": {
"resource": "message",
"operation": "send",
"sendTo": "stakeholders@example.com",
"subject": "Weekly KPI Report",
"message": "={{ $json.message.content }}",
"options": {}
}
}
],
"connections": {
"Monday Trigger": {
"main": [
[
{
"node": "Read KPIs",
"type": "main",
"index": 0
}
]
]
},
"Read KPIs": {
"main": [
[
{
"node": "Write Commentary",
"type": "main",
"index": 0
}
]
]
},
"Write Commentary": {
"main": [
[
{
"node": "Email Report",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {},
"meta": {}
}