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

Dynamically create tables in Airtable for your Webflow form submissions
View
Manual Stickynote Automation Webhook
View
Splitout Redis Create Triggered
View
My workflow
View
Respondtowebhook Stickynote Automate Webhook
View
Functionitem Executecommand Update Webhook
View
Code Webhook Create Webhook
View
Search news using Perplexity AI and post to X (Twitter)
View
Colombian Invoices Processing
View
Manual GoogleSheets Automate Triggered
View