This workflow corresponds to n8n.io template #2447 — 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 →
{
"id": "pdgNdag49lwoTxUP",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Track Working Time and Pauses",
"tags": [],
"nodes": [
{
"id": "1ae951f1-acfa-4bd2-800e-22c7628e862d",
"name": "Create new page",
"type": "n8n-nodes-base.notion",
"position": [
1260,
-120
],
"parameters": {
"title": "Tracked Time via n8n",
"options": {
"icon": "\ud83e\udd16"
},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "1117f2f5-baf9-8054-b33b-efb4d8a3c7ab",
"cachedResultUrl": "https://www.notion.so/1117f2f5baf98054b33befb4d8a3c7ab",
"cachedResultName": "Time Tracker"
},
"propertiesUi": {
"propertyValues": [
{
"key": "Start|date",
"date": "={{ $now }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "490d1893-3828-4df6-8c0a-0a1476fc8727",
"name": "Update page with end date",
"type": "n8n-nodes-base.notion",
"position": [
1560,
780
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "End|date",
"date": "={{ $now }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "daef6212-b852-45ba-8100-103e231837cb",
"name": "If pause_in_minuten is empty",
"type": "n8n-nodes-base.if",
"position": [
1540,
220
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6ec8bb5f-d860-47a8-b631-c9535716ddc5",
"operator": {
"type": "number",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.property_break }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.1
},
{
"id": "ef724c03-885e-4066-b776-a84fe001a14a",
"name": "If page responded",
"type": "n8n-nodes-base.if",
"position": [
1260,
260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2130bdb4-54be-4d43-90bb-36f57826f2dc",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.1
},
{
"id": "aa51a557-7eec-410a-9cdd-1dac3e2e104d",
"name": "If page exist",
"type": "n8n-nodes-base.if",
"position": [
980,
-200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2130bdb4-54be-4d43-90bb-36f57826f2dc",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.1
},
{
"id": "738aa465-bd04-4c4e-9846-02ae66139789",
"name": "If page exist1",
"type": "n8n-nodes-base.if",
"position": [
980,
840
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2130bdb4-54be-4d43-90bb-36f57826f2dc",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.1
},
{
"id": "4547c3fd-6373-401a-9d33-caa1e9f5545e",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1260,
840
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6ec8bb5f-d860-47a8-b631-c9535716ddc5",
"operator": {
"type": "object",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.property_end }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.1
},
{
"id": "70424282-dcce-4f1a-aba0-af0e7947a4fd",
"name": "Set Break Duration",
"type": "n8n-nodes-base.set",
"position": [
740,
260
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9261c98a-3099-4409-b697-8c28f6ec0c06",
"name": "break_duration",
"type": "number",
"value": "={{ $json.body.duration }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ad1bd9ce-d7cc-4359-954b-8976f593c272",
"name": "Update break duration for current day",
"type": "n8n-nodes-base.notion",
"position": [
1820,
320
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Break|number",
"numberValue": "={{ $('Set Break Duration').item.json.break_duration }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "622eddf9-f719-412f-a07e-45e4d8390798",
"name": "Set break duration for current day",
"type": "n8n-nodes-base.notion",
"position": [
1820,
140
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Break|number",
"numberValue": "={{ $('Set Break Duration').item.json.break_duration }}"
}
]
}
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "29a96903-43f4-439d-9d35-95d557f7c544",
"name": "Get notion page by date",
"type": "n8n-nodes-base.notion",
"position": [
980,
260
],
"parameters": {
"limit": 1,
"filters": {
"conditions": [
{
"key": "Date|formula",
"condition": "equals",
"textValue": "={{ $now.format('dd.MM.yyyy') }}",
"returnType": "text"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "1117f2f5-baf9-8054-b33b-efb4d8a3c7ab",
"cachedResultUrl": "https://www.notion.so/1117f2f5baf98054b33befb4d8a3c7ab",
"cachedResultName": "Time Tracker"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "bca3aff3-2d7d-4cc0-8842-5de6db67fccd",
"name": "Set Message - End time already tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
960
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "End time already tracked."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a774ac50-49f3-420b-96c5-e97f46857f02",
"name": "Set Message - End time tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
780
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "End Time Tracked!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f50f5fc4-cf29-406b-940f-e8294c459b7f",
"name": "Set Message - Start time not yet tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
1140
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "Today's start time not yet tracked!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0450fc1d-9c3b-4af6-b5a4-52dc971a1a2e",
"name": "Set Message - Start not yet tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "Today's start time not yet tracked!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "fa1855df-e3b5-4052-b26a-7be840bcaf0c",
"name": "Set Message - Break time tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
140
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "=Tracked {{ $('Set Break Duration').item.json.break_duration }} minutes as break time."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3ba94d34-18e8-49d8-8924-4837d815e183",
"name": "Set Message - Break time updated",
"type": "n8n-nodes-base.set",
"position": [
2080,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "=Updated break time to {{ $('Set Break Duration').item.json.break_duration }} minutes."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "42465160-7eec-43ed-93ad-1d73745911a0",
"name": "Set Message - Start time already tracked",
"type": "n8n-nodes-base.set",
"position": [
2080,
-300
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "Start time already tracked."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8d35a443-f8ef-40fd-b7a0-8933a7a38b27",
"name": "Set Message - Start time already tracked1",
"type": "n8n-nodes-base.set",
"position": [
2080,
-120
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "419d7570-d1ce-44b1-814c-7757da92a188",
"name": "message",
"type": "string",
"value": "Start time tracked."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ee6e5e70-1d27-4edc-88d8-74b44611df39",
"name": "Get notion page with todays date",
"type": "n8n-nodes-base.notion",
"position": [
740,
-200
],
"parameters": {
"limit": 1,
"filters": {
"conditions": [
{
"key": "Date|formula",
"condition": "equals",
"textValue": "={{ $now.format('dd.MM.yyyy') }}",
"returnType": "text"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "1117f2f5-baf9-8054-b33b-efb4d8a3c7ab",
"cachedResultUrl": "https://www.notion.so/1117f2f5baf98054b33befb4d8a3c7ab",
"cachedResultName": "Time Tracker"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "875f1969-4958-4450-87a5-aad1f65b3a9d",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
260,
260
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Start",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.method }}",
"rightValue": "start"
}
]
},
"renameOutput": true
},
{
"outputKey": "Break",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6ddd1f12-a0d8-42df-9776-dff0f44ba82c",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.method }}",
"rightValue": "break"
}
]
},
"renameOutput": true
},
{
"outputKey": "End",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "61550dac-65a2-4e4b-99a8-4df4a357cec0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.method }}",
"rightValue": "end"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.1
},
{
"id": "ab59018e-a41c-4c48-9aa7-33d123cb2215",
"name": "Get notion page with todays date1",
"type": "n8n-nodes-base.notion",
"position": [
740,
840
],
"parameters": {
"limit": 1,
"filters": {
"conditions": [
{
"key": "Date|formula",
"condition": "equals",
"textValue": "={{ $now.format('dd.MM.yyyy') }}",
"returnType": "text"
}
]
},
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "1117f2f5-baf9-8054-b33b-efb4d8a3c7ab",
"cachedResultUrl": "https://www.notion.so/1117f2f5baf98054b33befb4d8a3c7ab",
"cachedResultName": "Time Tracker"
},
"filterType": "manual"
},
"credentials": {
"notionApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.2,
"alwaysOutputData": true
},
{
"id": "8cbdbe7f-3c32-48bb-bce6-80b918a7c31e",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-400
],
"parameters": {
"width": 2127.3212174343475,
"height": 469.85870733996774,
"content": "## Track start time"
},
"typeVersion": 1
},
{
"id": "e930da00-916b-4767-a34e-b985d97090ca",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
108.01971369783018
],
"parameters": {
"width": 2127.3212174343475,
"height": 596.8497421429678,
"content": "## Track break duration"
},
"typeVersion": 1
},
{
"id": "6b77fcde-e3ed-4cfa-bd89-9d1cc6660591",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
740
],
"parameters": {
"width": 2127.3212174343475,
"height": 627.9984865286092,
"content": "## Track end time"
},
"typeVersion": 1
},
{
"id": "85b40d37-3a55-4346-8c94-60eb2f8b6dba",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-104.58827842609037,
-400
],
"parameters": {
"color": 4,
"width": 538.9177312302156,
"height": 1760.750302860566,
"content": "## API Endpoint Trigger"
},
"typeVersion": 1
},
{
"id": "c09f93f1-a2c0-4146-8853-5283bd419a73",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-102.50502117110727,
-680
],
"parameters": {
"color": 6,
"width": 534.5813587043364,
"height": 247.95862766773985,
"content": "## Setup instructions\nVisit our [Unitize Documents](https://docs.unitize.de) to create a copy of the Time Tracker database as well as download the iOS Shortcut."
},
"typeVersion": 1
},
{
"id": "bfe988d1-81c5-4c70-affd-220cfc5016da",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2780,
320
],
"parameters": {
"options": {},
"respondWith": "text",
"responseBody": "={{ $json.message }}"
},
"typeVersion": 1.1
},
{
"id": "585efbae-ec10-4ef4-90a0-7bad55b4a150",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2640,
-400
],
"parameters": {
"color": 4,
"width": 415.1572200385813,
"height": 1766.1026447605514,
"content": "## Respond to iOS Shortcut"
},
"typeVersion": 1
},
{
"id": "b75485ce-d365-4743-a4ee-e16799e12c24",
"name": "Webhook - Track Time",
"type": "n8n-nodes-base.webhook",
"position": [
-20,
260
],
"parameters": {
"path": "track-time",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "f0e95932-b61d-4fcf-a3a6-5cef415fd8fe",
"connections": {
"If": {
"main": [
[
{
"node": "Update page with end date",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Message - End time already tracked",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Get notion page with todays date",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Break Duration",
"type": "main",
"index": 0
}
],
[
{
"node": "Get notion page with todays date1",
"type": "main",
"index": 0
}
]
]
},
"If page exist": {
"main": [
[
{
"node": "Set Message - Start time already tracked",
"type": "main",
"index": 0
}
],
[
{
"node": "Create new page",
"type": "main",
"index": 0
}
]
]
},
"If page exist1": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Message - Start time not yet tracked",
"type": "main",
"index": 0
}
]
]
},
"Create new page": {
"main": [
[
{
"node": "Set Message - Start time already tracked1",
"type": "main",
"index": 0
}
]
]
},
"If page responded": {
"main": [
[
{
"node": "If pause_in_minuten is empty",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Message - Start not yet tracked",
"type": "main",
"index": 0
}
]
]
},
"Set Break Duration": {
"main": [
[
{
"node": "Get notion page by date",
"type": "main",
"index": 0
}
]
]
},
"Webhook - Track Time": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Get notion page by date": {
"main": [
[
{
"node": "If page responded",
"type": "main",
"index": 0
}
]
]
},
"Update page with end date": {
"main": [
[
{
"node": "Set Message - End time tracked",
"type": "main",
"index": 0
}
]
]
},
"If pause_in_minuten is empty": {
"main": [
[
{
"node": "Set break duration for current day",
"type": "main",
"index": 0
}
],
[
{
"node": "Update break duration for current day",
"type": "main",
"index": 0
}
]
]
},
"Set Message - End time tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Get notion page with todays date": {
"main": [
[
{
"node": "If page exist",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Break time tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Break time updated": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Get notion page with todays date1": {
"main": [
[
{
"node": "If page exist1",
"type": "main",
"index": 0
}
]
]
},
"Set break duration for current day": {
"main": [
[
{
"node": "Set Message - Break time tracked",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Start not yet tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Update break duration for current day": {
"main": [
[
{
"node": "Set Message - Break time updated",
"type": "main",
"index": 0
}
]
]
},
"Set Message - End time already tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Start time already tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Start time not yet tracked": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Set Message - Start time already tracked1": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
notionApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Do you have to record your working hours yourself? Then this n8n workflow in combination with an iOS shortcut will definitely help you. Once set up, you can use a shortcut, which can be stored as an app icon on your home screen, to record the start, end and duration of your…
Source: https://n8n.io/workflows/2447/ — 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.
Fully automates your Day 0–30 employee onboarding sequence the moment HR submits a webhook. No manual steps, no missed tasks. 🔐 Provisions Google Workspace account via Admin API 💬 Posts a personalised
Proceeding. Uses gmail, googleTasks, googleCalendar, notion. Webhook trigger; 11 nodes.
Gumroad Sale → Notion CRM + Thank You Email. Uses notion, gmail. Webhook trigger; 3 nodes.
Automate WhatsApp communication for recruitment agencies with an interactive, structured customer experience. This workflow handles pricing inquiries, request submissions, tracking, complaints, and hu
Code. Uses googleSheets, gmail, supabase, stickyNote. Webhook trigger; 51 nodes.