{"workflow":{"id":13502,"name":"Perform unit-aware calculations and conversions with CalcsLive","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-02-18T21:17:20.983Z","description":"## What this workflow does\n\nThis template demonstrates how to perform **unit-aware calculations** with automatic unit conversion using the CalcsLive community node. It shows three calculation patterns:\n\n1. **Speed calculation**: Convert distance and time into velocity (km → km/h)\n2. **Cylinder volume**: Calculate volume from diameter and height (cm → Liters)\n3. **Chained calculations**: Pass output from one calculation as input to another (Volume → Mass)\n\n## Workflow Screenshot\n![demoworkflow.png](fileId:4524)\n\n## CalcsLive Articles Used\n\nYou can view and customize each calculation article in the CalcsLive editor:\n\n| Calculation | Article ID | Link |\n|-------------|------------|------|\n| Speed Calc | 3M6P9TF5P-3XA | [Open in Editor](https://calcslive.com/editor/3M6P9TF5P-3XA) |\n| Cylinder Volume | 3M6P9TF5P-3XA | [Open in Editor](https://calcslive.com/editor/3M6P9TF5P-3XA) |\n| Mass Calc | 3M6PBGU7S-3CA | [Open in Editor](https://calcslive.com/editor/3M6PBGU7S-3CA) |\n\n**Note:** \n- Speed and Cylinder Volume use the **same multi-purpose article** (3M6P9TF5P-3XA), demonstrating how one article can serve multiple calculation needs. \n- Meanwhile, Cylinder Volume and Mass Calc are **chained together as composables** - the volume output feeds directly into the mass calculation.  \nThis pattern offers both flexibility and power for complex workflows.\n\n## Seamless Data Flow\n\nAn implicit but powerful feature: **full unit freedom - input data flows seamlessly through the workflow**. The \"Set\" nodes prepare data that CalcsLive nodes consume directly via expressions. CalcsLive then delivers outputs in your specified units, ready to feed downstream nodes. Both inputs and outputs integrate naturally with n8n's data model - no transformation needed.\n\n## Why use CalcsLive?\n\n- **570+ units** across 67+ categories with automatic conversion\n- **No formula coding** - use pre-built calculation articles\n- **Chain calculations** - output from one calc feeds into another\n- **Unit flexibility** - input in any unit, get output in your preferred unit\n\n## Prerequisites\n\n1. Install the CalcsLive community node: `@calcslive/n8n-nodes-calcslive`\n2. Get an API key from [calcslive.com](https://www.calcslive.com) (free tier available)\n3. Create CalcsLive API credentials in n8n\n\n## How to use\n\n1. Import this workflow\n2. Configure your CalcsLive API credentials\n3. Click \"Execute workflow\" to see the calculations run\n4. Modify the input values in the \"Set\" nodes to test different scenarios\n\n## Example use cases\n\n- **E-commerce**: Calculate shipping costs based on package dimensions and weight\n- **Manufacturing**: Convert between metric and imperial units in production workflows\n- **IoT**: Process sensor data with proper unit handling\n- **Engineering**: Chain multiple physics calculations together\n\n## Resources\n\n- [CalcsLive - n8n Integration](https://calcslive.com/help/api-integration#n8n-integration)\n- [npm Package](https://www.npmjs.com/package/@calcslive/n8n-nodes-calcslive)\n- [GitHub Repository](https://github.com/calcslive/n8n-nodes-calcslive)\n","workflow":{"meta":{"templateCredsSetupCompleted":false},"name":"Unit-aware calculations with CalcsLive","tags":[],"nodes":[{"name":"Sticky Note - Intro","type":"n8n-nodes-base.stickyNote","position":[32,-576],"parameters":{"width":672,"height":512,"content":"## 🚀 CalcsLive Demo Workflow\n\nThis workflow demonstrates **unit-aware calculations** with automatic unit conversion.\n\n### What you'll learn:\n1. Basic calculations can be reused.\n2. Input units flexibility: no extra conversion needed\n3. Choose output units per downstream needs \n4. Chained calculations (calculations are composable)\n\n### Setup:\n1. Install `@calcslive/n8n-nodes-calcslive` from Community Nodes\n2. Get API key from [calcslive.com](https://www.calcslive.com)\n3. Configure credentials, then click Execute!\n\n### Next:\nCreate/copy your own unit aware calculations in CalcsLive and use to power your n8n workflow.\n\n### Help:\nSupported units: https://calcslive.com/help/units-reference"},"typeVersion":1},{"name":"Sticky Note - Speed","type":"n8n-nodes-base.stickyNote","position":[832,-64],"parameters":{"color":2,"width":352,"height":208,"content":"### 📊 Speed Calculation\n\nArticleID: 3M6P9TF5P-3XA\nCalc link: https://calcslive.com/editor/3M6P9TF5P-3XA\n\nInputs & outputs variable symbols are populated in dropdown list for cherry-picking.\n\nOutput: Speed in valid unit."},"typeVersion":1},{"name":"Sticky Note - Volume","type":"n8n-nodes-base.stickyNote","position":[608,336],"parameters":{"color":2,"width":208,"height":176,"content":"### 📦 Cylinder Volume\n\nArticleID: 3M6P9TF5P-3XA\nCalc link: https://calcslive.com/editor/3M6P9TF5P-3XA\n\nOutput: Volume in valid unit."},"typeVersion":1},{"name":"Sticky Note - Merge","type":"n8n-nodes-base.stickyNote","position":[840,416],"parameters":{"color":4,"width":200,"height":190,"content":"### 🔀 Merge Node\n\nCombines data from:\n- Cylinder Volume (V)\n- Density Input (ρ)\n\nBoth are needed for Mass Calc."},"typeVersion":1},{"name":"Sticky Note - Mass","type":"n8n-nodes-base.stickyNote","position":[1056,416],"parameters":{"color":2,"width":304,"height":240,"content":"### ⛓️ Chained Calculation\n\nArticleID: 3M6PBGU7S-3CA\nCalc link: https://calcslive.com/editor/3M6PBGU7S-3CA\n\nThis node takes the **merged output** from Volume Calc + Density to calculate mass.\n\nThis is the power of composable calculations!"},"typeVersion":1},{"name":"When clicking 'Execute workflow'","type":"n8n-nodes-base.manualTrigger","position":[80,-48],"parameters":{},"typeVersion":1},{"name":"Set Density Input","type":"n8n-nodes-base.set","position":[432,368],"parameters":{"options":{},"assignments":{"assignments":[{"name":"Density","type":"number","value":1500},{"name":"DensityUnit","type":"string","value":"kg/m³"}]}},"typeVersion":3.4},{"name":"Speed Calc (d,t) → v","type":"@calcslive/n8n-nodes-calcslive.calcsLive","position":[640,-48],"parameters":{"inputPQs":{"pq":[{"unit":"={{ $json.unit }}","value":"={{ $json.distance }}","symbol":"d"},{"unit":"={{ $json.timeUnit }}","value":"={{ $json.time }}","symbol":"t"}]},"articleId":"3M6P9TF5P-3XA","outputPQs":{"pq":[{"unit":"km/h","symbol":"v"}]}},"credentials":{"calcsLiveApi":{"id":"","name":"CalcsLive API"}},"typeVersion":1},{"name":"Cylinder Volume (D,h) → V","type":"@calcslive/n8n-nodes-calcslive.calcsLive","position":[640,160],"parameters":{"inputPQs":{"pq":[{"unit":"={{ $json.DiaUnit }}","value":"={{ $json.Diameter }}","symbol":"D"},{"unit":"={{ $json.HeightUnit }}","value":"={{ $json.Height }}","symbol":"h"}]},"articleId":"3M6P9TF5P-3XA","outputPQs":{"pq":[{"unit":"L","symbol":"V"}]}},"credentials":{"calcsLiveApi":{"id":"","name":"CalcsLive API"}},"typeVersion":1},{"name":"Merge Volume + Density","type":"n8n-nodes-base.merge","position":[856,264],"parameters":{"mode":"combine","options":{},"combineBy":"combineAll"},"typeVersion":3},{"name":"Mass Calc (V,ρ) → m","type":"@calcslive/n8n-nodes-calcslive.calcsLive","position":[1072,264],"parameters":{"inputPQs":{"pq":[{"unit":"={{ $json.data.calculation.outputs.V.unit }}","value":"={{ $json.data.calculation.outputs.V.value }}","symbol":"V"},{"unit":"={{ $json.DensityUnit }}","value":"={{ $json.Density }}","symbol":"rho"}]},"articleId":"3M6PBGU7S-3CA","outputPQs":{"pq":[{"unit":"g","symbol":"m"}]}},"credentials":{"calcsLiveApi":{"id":"","name":"CalcsLive API"}},"typeVersion":1},{"name":"Sticky Note - Video","type":"n8n-nodes-base.stickyNote","position":[720,-576],"parameters":{"color":2,"width":464,"height":288,"content":"@[youtube](xC4iFwNkIQs)"},"typeVersion":1},{"name":"Set Inputs for Speed","type":"n8n-nodes-base.set","position":[432,-48],"parameters":{"options":{},"assignments":{"assignments":[{"name":"distance","type":"number","value":360},{"name":"unit","type":"string","value":"km"},{"name":"time","type":"number","value":2},{"name":"timeUnit","type":"string","value":"h"}]}},"typeVersion":3.4},{"name":"Set Inputs for Cylinder","type":"n8n-nodes-base.set","position":[432,160],"parameters":{"options":{},"assignments":{"assignments":[{"name":"Diameter","type":"number","value":2},{"name":"DiaUnit","type":"string","value":"cm"},{"name":"Height","type":"number","value":10},{"name":"HeightUnit","type":"string","value":"cm"}]}},"typeVersion":3.4}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Set Density Input":{"main":[[{"node":"Merge Volume + Density","type":"main","index":1}]]},"Set Inputs for Speed":{"main":[[{"node":"Speed Calc (d,t) → v","type":"main","index":0}]]},"Merge Volume + Density":{"main":[[{"node":"Mass Calc (V,ρ) → m","type":"main","index":0}]]},"Set Inputs for Cylinder":{"main":[[{"node":"Cylinder Volume (D,h) → V","type":"main","index":0}]]},"Cylinder Volume (D,h) → V":{"main":[[{"node":"Merge Volume + Density","type":"main","index":0}]]},"When clicking 'Execute workflow'":{"main":[[{"node":"Set Inputs for Speed","type":"main","index":0},{"node":"Set Inputs for Cylinder","type":"main","index":0},{"node":"Set Density Input","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":14,"nodeTypes":{"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.manualTrigger":{"count":1},"@calcslive/n8n-nodes-calcslive.calcsLive":{"count":3}}},"status":"published","readyToDemo":null,"user":{"name":"Don Wen","username":"dreamwell","bio":"Founder of CalcsLive, a fullstack SaaS for unit-aware live calculation solution platform.","verified":false,"links":["www.calcslive.com"],"avatar":"https://gravatar.com/avatar/0085c03c55f7b13965cb02db66f6ed70d78ebadad981c12f789171d68d48f6ef?r=pg&d=retro&size=200"},"nodes":[{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":5,"name":"Engineering"}],"image":[{"id":4524,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/demo_workflow_708575a61e.png"}]}}