Workflow: Manual Baserow Update

Workflow Details

Download Workflow
{
    "nodes": [
        {
            "id": "70a44436-4b51-458a-ae93-60edeed170de",
            "name": "On clicking 'execute'",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                240,
                300
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "d4c2dfa2-30bb-4f06-96c2-5811472302d2",
            "name": "Cron",
            "type": "n8n-nodes-base.cron",
            "position": [
                240,
                100
            ],
            "parameters": {
                "triggerTimes": {
                    "item": [
                        {
                            "mode": "custom",
                            "cronExpression": "15 7 * * 1-6"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "86924546-e4f2-4795-8e80-9e49626d2c42",
            "name": "Baserow",
            "type": "n8n-nodes-base.baserow",
            "position": [
                460,
                200
            ],
            "parameters": {
                "tableId": 680,
                "databaseId": 146,
                "additionalOptions": []
            },
            "credentials": {
                "baserowApi": {
                    "id": "37",
                    "name": "Baserow account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "36f2947b-67cf-47eb-891f-e7e3b5ba9eac",
            "name": "Fetch tradegate stock page",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                680,
                200
            ],
            "parameters": {
                "url": "https:\/\/www.tradegate.de\/orderbuch.php",
                "options": [],
                "responseFormat": "string",
                "queryParametersUi": {
                    "parameter": [
                        {
                            "name": "isin",
                            "value": "={{$json[\"ISIN\"]}}"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "b516e751-d1d1-43a0-8f19-6787a5c56ddc",
            "name": "Parse tradegate stock page",
            "type": "n8n-nodes-base.htmlExtract",
            "position": [
                900,
                200
            ],
            "parameters": {
                "options": [],
                "extractionValues": {
                    "values": [
                        {
                            "key": "WKN",
                            "cssSelector": "#col1_content > table > tbody > tr:nth-child(2) > td:nth-child(1)"
                        },
                        {
                            "key": "ISIN",
                            "cssSelector": "#col1_content > table > tbody > tr:nth-child(2) > td:nth-child(3)"
                        },
                        {
                            "key": "Currency",
                            "cssSelector": "#col1_content > table > tbody > tr:nth-child(2) > td:nth-child(4)"
                        },
                        {
                            "key": "Name",
                            "cssSelector": "#col1_content > h2"
                        },
                        {
                            "key": "Bid",
                            "cssSelector": "#bid"
                        },
                        {
                            "key": "Ask",
                            "cssSelector": "#ask"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "e51556c7-3f3a-4e4d-96e9-942f436422af",
            "name": "Build HTML",
            "type": "n8n-nodes-base.function",
            "position": [
                1560,
                200
            ],
            "parameters": {
                "functionCode": "const columns = Object.keys(items[0].json);\n\n\/\/ Define the basic table structure\nlet table_header = `<table style=\"border: 1px solid black; border-collapse: collapse;\"><tr>${columns.map(e => '<th style=\"border: 1px solid black; border-collapse: collapse;\">' + e + '<\/th>').join('')}<\/tr>`;\nlet table_content = \"\";\nlet table_footer = '<\/table>';\n\n\/\/ Add content to our table\nfor (item of items) {\n    table_content += '<tr>'\n    for (column of columns) {\n        table_content += `<td style=\\\"border: 1px solid black; border-collapse: collapse;\\\">${item.json[column]}<\/td>`\n    }\n    table_content += '<\/tr>'\n}\n\n\/\/ Prepare HTML email body\nconst email_html = `<body style=\"font-family: Sans-Serif;\">\n<p>Investments as of ${$now.setZone(\"Europe\/Dublin\").setLocale('ie').toFormat('fff')}:<\/p>\n${table_header}\n${table_content}\n${table_footer}\n<p>Total: ${items.map(e => parseFloat(e.json['Current Value'])).reduce((a, b) => a + b, 0).toFixed(2)}<\/p>\n<p><small>Workflow #${$workflow.id}<\/small><\/p>\n<\/body>`\n\n\nreturn [{\n    json: {\n        html: email_html\n    }\n}];"
            },
            "typeVersion": 1
        },
        {
            "id": "361bf8f2-298c-4b96-9f21-4f4620f1e9a9",
            "name": "Format result",
            "type": "n8n-nodes-base.set",
            "position": [
                1120,
                200
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "Name",
                            "value": "={{ $node[\"Baserow\"].json[\"Name\"] }}"
                        },
                        {
                            "name": "ISIN",
                            "value": "={{ $node[\"Baserow\"].json[\"ISIN\"] }}"
                        },
                        {
                            "name": "Count",
                            "value": "={{ $node[\"Baserow\"].json[\"Count\"] }}"
                        },
                        {
                            "name": "Purchase Price",
                            "value": "={{ $node[\"Baserow\"].json[\"Purchase Price\"] }}"
                        },
                        {
                            "name": "Current Value",
                            "value": "={{ (parseFloat($json[\"Bid\"].replace(',', '.')) * parseFloat($node[\"Baserow\"].json[\"Count\"])).toFixed(2) }}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "id": "c2f329dc-3b97-402a-9d63-ed863c2aee84",
            "name": "Calculate change",
            "type": "n8n-nodes-base.set",
            "position": [
                1340,
                200
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "Change",
                            "value": "={{ ( parseFloat($json[\"Current Value\"]) - parseFloat($json[\"Purchase Price\"]) ).toFixed(2) }}"
                        },
                        {
                            "name": "Change (%)",
                            "value": "={{ ( ( ( parseFloat($json[\"Current Value\"]) - parseFloat($json[\"Purchase Price\"]) ) \/ parseFloat($json[\"Purchase Price\"]) ) * 100).toFixed(2) }}"
                        }
                    ]
                },
                "options": []
            },
            "typeVersion": 1
        },
        {
            "id": "e0876374-c9f3-4253-8764-9aa78faa2193",
            "name": "SendGrid",
            "type": "n8n-nodes-base.sendGrid",
            "position": [
                1780,
                200
            ],
            "parameters": {
                "subject": "Investment report",
                "toEmail": "mutedjam@n8n.io",
                "resource": "mail",
                "fromEmail": "mutedjam@n8n.io",
                "contentType": "text\/html",
                "contentValue": "={{ $json[\"html\"] }}",
                "additionalFields": []
            },
            "credentials": {
                "sendGridApi": {
                    "id": "143",
                    "name": "SendGrid account"
                }
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "Cron": {
            "main": [
                [
                    {
                        "node": "Baserow",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Baserow": {
            "main": [
                [
                    {
                        "node": "Fetch tradegate stock page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Build HTML": {
            "main": [
                [
                    {
                        "node": "SendGrid",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Format result": {
            "main": [
                [
                    {
                        "node": "Calculate change",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Calculate change": {
            "main": [
                [
                    {
                        "node": "Build HTML",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On clicking 'execute'": {
            "main": [
                [
                    {
                        "node": "Baserow",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Fetch tradegate stock page": {
            "main": [
                [
                    {
                        "node": "Parse tradegate stock page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Parse tradegate stock page": {
            "main": [
                [
                    {
                        "node": "Format result",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Receive updates when a customer is created in HelpScout
View
Enhance Chat Responses with Real-Time Search Data via Bright Data & Gemini AI
View
Convert Parquet, Avro, ORC & Feather via ParquetReader to JSON
View
Blog Automation TEMPLATE
View
HN Who is Hiring Scrape
View
My workflow
View
HTTP Stickynote Automation Webhook
View
chrome extension backend with AI
View
GitHub Stickynote Create Triggered
View
Automation
View