Workflow: Code Webhook Automate

Workflow Details

Download Workflow
{
    "id": "x2kgOnBLtqAjqUVS",
    "meta": {
        "instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a"
    },
    "name": "Automated Work Attendance with Location Triggers",
    "tags": [],
    "nodes": [
        {
            "id": "b2cba308-6d47-432b-9296-58f233f15565",
            "name": "Webhook",
            "type": "n8n-nodes-base.webhook",
            "position": [
                0,
                0
            ],
            "webhookId": "801c8367-af7b-4371-8684-cc699090b97f",
            "parameters": {
                "path": "time-track",
                "options": []
            },
            "typeVersion": 2
        },
        {
            "id": "67354f1c-9dac-4edd-b07d-f1b0dbd80159",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                0,
                -260
            ],
            "parameters": {
                "width": 1120,
                "height": 180,
                "content": "## Check if the Worksheet Exists"
            },
            "typeVersion": 1
        },
        {
            "id": "5fc5a1a6-f18d-4ee0-a70b-30de48a45dc7",
            "name": "Google Drive",
            "type": "n8n-nodes-base.googleDrive",
            "position": [
                220,
                -220
            ],
            "parameters": {
                "filter": [],
                "options": [],
                "resource": "fileFolder",
                "returnAll": true,
                "queryString": "WorkTimeTracking"
            },
            "credentials": {
                "googleDriveOAuth2Api": {
                    "id": "U6W5tWhDvO7rQ73t",
                    "name": "Google Drive account"
                }
            },
            "executeOnce": false,
            "typeVersion": 3,
            "alwaysOutputData": true
        },
        {
            "id": "a0b63be4-fa46-413f-82fe-42e6edc24f29",
            "name": "Create Worksheet",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                800,
                -240
            ],
            "parameters": {
                "title": "WorkTimeTracking",
                "options": {
                    "locale": ""
                },
                "resource": "spreadsheet",
                "sheetsUi": {
                    "sheetValues": [
                        {
                            "title": "Worklog"
                        }
                    ]
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "TvzWrF2qPL7RjlJK",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.5
        },
        {
            "id": "796e3ef6-3002-493e-8d89-10cba2d8026d",
            "name": "Return if Null",
            "type": "n8n-nodes-base.code",
            "position": [
                400,
                -220
            ],
            "parameters": {
                "jsCode": "return [{json: {empty: items.length == 1 && Object.keys(items[0].json).length == 0}}];"
            },
            "typeVersion": 2
        },
        {
            "id": "7af7ce4b-93e0-4058-8a45-9fd8269ddc77",
            "name": "Doesn't exist?",
            "type": "n8n-nodes-base.if",
            "position": [
                580,
                -220
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "version": 2,
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "215b8ced-c6f5-4cf2-8755-9bba928dbe84",
                            "operator": {
                                "type": "boolean",
                                "operation": "true",
                                "singleValue": true
                            },
                            "leftValue": "={{$json[\"empty\"]}}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "f2bc21c6-805b-49e7-b026-a4de56dce1fa",
            "name": "Set Logging Details",
            "type": "n8n-nodes-base.set",
            "position": [
                780,
                20
            ],
            "parameters": {
                "mode": "raw",
                "options": [],
                "jsonOutput": "={\n  \"Date\": \"{{ $now.format('yyyy-MM-dd') }}\",\n  \"Time\": \"{{ $now.format('hh:mm') }}\",\n  \"Direction\":\"Check-In\"\n}\n"
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "64bc8b93-a925-49d6-9e52-3f30f0c9e5a8",
            "name": "Create Log",
            "type": "n8n-nodes-base.googleSheets",
            "position": [
                1000,
                20
            ],
            "parameters": {
                "columns": {
                    "value": {
                        "Date": "={{ $json.Date }}",
                        "Time": "={{ $json.Time }}",
                        "Direction": "={{ $('Webhook').item.json.headers.direction ? $('Webhook').item.json.headers.direction : \"\"}}"
                    },
                    "schema": [
                        {
                            "id": "Date",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Date",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Time",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Time",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        },
                        {
                            "id": "Direction",
                            "type": "string",
                            "display": true,
                            "required": false,
                            "displayName": "Direction",
                            "defaultMatch": false,
                            "canBeUsedToMatch": true
                        }
                    ],
                    "mappingMode": "defineBelow",
                    "matchingColumns": []
                },
                "options": [],
                "operation": "append",
                "sheetName": {
                    "__rl": true,
                    "mode": "list",
                    "value": 308318361,
                    "cachedResultUrl": "https:\/\/docs.google.com\/spreadsheets\/d\/1P7-Uqa4SPA6keujkkOTru1wdS2qDryJVkz0Nz_sFp7A\/edit#gid=308318361",
                    "cachedResultName": "Worklog"
                },
                "documentId": {
                    "__rl": true,
                    "mode": "id",
                    "value": "={{ $('Google Drive').item.json.id }}"
                }
            },
            "credentials": {
                "googleSheetsOAuth2Api": {
                    "id": "TvzWrF2qPL7RjlJK",
                    "name": "Google Sheets account"
                }
            },
            "typeVersion": 4.5
        },
        {
            "id": "cabca7d5-b4ae-45db-904d-f8efb37c4ab2",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                660,
                -40
            ],
            "parameters": {
                "width": 600,
                "height": 280,
                "content": "## Log Check-In or Check-Out"
            },
            "typeVersion": 1
        },
        {
            "id": "5b9505fc-71a4-42c1-805f-c363384b4c8a",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -440,
                -320
            ],
            "parameters": {
                "color": 3,
                "width": 380,
                "height": 640,
                "content": "## Location-Based Time Tracking\n\nThis automation streamlines your time tracking by using location triggers. Here's how it works:\n\nCreate two shortcuts in the iPhone Shortcuts app:\n\nName one \"Check-In\" and the other \"Check-Out.\"\nWithin each shortcut, use the \"Get Content from URL\" action to call the Webhook. Set the Header Direction for \"Check-In\" or \"Check-Out\"\n\n\nNow, whenever you enter or exit the specified location, your iPhone will automatically record the time in your Google Sheet. This creates a seamless and accurate log of your work hours or time spent at a particular place."
            },
            "typeVersion": 1
        }
    ],
    "active": true,
    "pinData": [],
    "settings": {
        "timezone": "Europe\/Lisbon",
        "callerPolicy": "workflowsFromSameOwner",
        "executionOrder": "v1",
        "executionTimeout": -1,
        "saveManualExecutions": true
    },
    "versionId": "2de5264f-eb68-4919-a3f3-133a8ceb45bb",
    "connections": {
        "Webhook": {
            "main": [
                [
                    {
                        "node": "Google Drive",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Google Drive": {
            "main": [
                [
                    {
                        "node": "Return if Null",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Doesn't exist?": {
            "main": [
                [
                    {
                        "node": "Create Worksheet",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Set Logging Details",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Return if Null": {
            "main": [
                [
                    {
                        "node": "Doesn't exist?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Create Worksheet": {
            "main": [
                [
                    {
                        "node": "Set Logging Details",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set Logging Details": {
            "main": [
                [
                    {
                        "node": "Create Log",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Suspicious_login_detection
View
Shopify order UTM to Baserow
View
Syncro to Clockify
View
Telegram Webhook Send Webhook
View
Bitrix24 Chatbot Application Workflow example with Webhook Integration
View
Hacker News to Video Template - AlexK1919
View
How to automatically import CSV files into postgres
View
AI CV Screening Workflow
View
Receive updates for events in ClickUp
View
HTTP Stickynote Create Webhook
View