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

SearchApi Youtube Video Summary
View
Dynamically generate HTML page from user request using OpenAI Structured Output
View
Manual Stickynote Automation Webhook
View
Code Webhook Create Webhook
View
Quickbooks Automate
View
CoinMarketCap_DEXScan_Agent_Tool
View
Manual HTTP Create Webhook
View
Analyze the sentiment of feedback and send a message on Mattermost
View
Standup Bot - Override Config
View
Automate
View