Merge pull request #104 from CalcsLive/add-calcslive-workflow

Add CalcsLive custom node workflow - unit-aware calculations demo
This commit is contained in:
Eliad Shahar
2025-09-28 16:49:44 +03:00
committed by GitHub
2 changed files with 290 additions and 1 deletions

5
.gitignore vendored
View File

@@ -90,4 +90,7 @@ package-lock.json
.python-version
# Claude Code local settings (created during development)
.claude/settings.local.json
.claude/settings.local.json
# E3D development directory
.e3d/

View File

@@ -0,0 +1,286 @@
{
"name": "CalcsLive Demo Workflow Template",
"description": "Demonstrates @calcslive/n8n-nodes-calcslive custom node (https://www.npmjs.com/package/@calcslive/n8n-nodes-calcslive) that brings unit-aware physical quantities (PQ) and calculations to the n8n ecosystem in a composable manner. Example workflow with cylinder mass calculations.",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-128,
-192
],
"id": "c6331ca9-2a74-419e-a15f-a11e5f3c0583",
"name": "When clicking 'Execute workflow'"
},
{
"parameters": {
"articleId": "3M6UW7CQB-2AP",
"inputPQs": {
"pq": [
{
"symbol": "D",
"value": 200,
"unit": "mm"
},
{
"symbol": "h",
"value": 20,
"unit": "cm"
}
]
},
"outputPQs": {
"pq": [
{
"symbol": "A",
"unit": "m^2"
},
{
"symbol": "V",
"unit": "m^3"
}
]
}
},
"type": "@calcslive/n8n-nodes-calcslive.calcsLive",
"typeVersion": 1,
"position": [
128,
-80
],
"id": "c22f212e-52ef-4d4f-b398-0bd4f2250705",
"name": "Cylinder Calcs: (D, h) => (A, V)",
"credentials": {
"calcsLiveApi": {
"id": "REPLACE_WITH_YOUR_CALCSLIVE_CREDENTIAL_ID",
"name": "Your CalcsLive API Credential"
}
}
},
{
"parameters": {
"articleId": "3M6UW7CQB-2AP",
"inputPQs": {
"pq": [
{
"symbol": "d",
"value": 360,
"unit": "km"
},
{
"symbol": "t",
"value": 10,
"unit": "h"
}
]
}
},
"type": "@calcslive/n8n-nodes-calcslive.calcsLive",
"typeVersion": 1,
"position": [
336,
-288
],
"id": "9b8cc0ea-d130-48a3-8552-4346f20a5ad0",
"name": "Speed Calc: (d, t) => v",
"credentials": {
"calcsLiveApi": {
"id": "REPLACE_WITH_YOUR_CALCSLIVE_CREDENTIAL_ID",
"name": "Your CalcsLive API Credential"
}
}
},
{
"parameters": {
"articleId": "3M6VLSBHB-3HT",
"inputPQs": {
"pq": [
{
"symbol": "ρ",
"value": 1000,
"unit": "kg/m^3"
},
{
"symbol": "V",
"value": "={{ $json.data.calculation.outputs.V.value }}",
"unit": "={{ $json.data.calculation.outputs.V.unit }}"
}
]
},
"outputPQs": {
"pq": [
{
"symbol": "m",
"unit": "kg"
}
]
}
},
"type": "@calcslive/n8n-nodes-calcslive.calcsLive",
"typeVersion": 1,
"position": [
336,
-80
],
"id": "5bf3e5ab-d1f6-42e7-9e64-b4b78bcbfa99",
"name": "Mass Calc: (ρ, V) => m",
"credentials": {
"calcsLiveApi": {
"id": "REPLACE_WITH_YOUR_CALCSLIVE_CREDENTIAL_ID",
"name": "Your CalcsLive API Credential"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a026dc84-665f-4898-8de9-ccdbaa530bfa",
"name": "Distance",
"value": 360,
"type": "number"
},
{
"id": "de7d6d3e-151c-4390-b2d9-bf78da0159eb",
"name": "DistanceUnit",
"value": "km",
"type": "string"
},
{
"id": "49c1e979-a0c2-403e-bed1-ef28eb8513ad",
"name": "Time",
"value": 2,
"type": "number"
},
{
"id": "54ae6f42-844f-4bf2-b6d3-a6e159d46e9e",
"name": "TimeUnit",
"value": "h",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
128,
-288
],
"id": "8b83b9e5-d7a4-4f74-b5bc-e6012a0f606a",
"name": "Fields: (d, t)"
},
{
"parameters": {
"sendTo": "user@example.com",
"subject": "CalcsLive Calculation Results",
"message": "=Hello!\n\nThis is an automated email from your n8n workflow using @calcslive/n8n-nodes-calcslive.\n\nCalculation Results:\n- Total Physical Quantities: {{ $json.data.calculation.totalPQs }}\n- Mass Result: {{ $json.data.calculation.outputs.m.value }} {{ $json.data.calculation.outputs.m.unit }}\n\nBest regards,\nYour CalcsLive Workflow",
"options": {
"attachmentsUi": {
"attachmentsBinary": []
}
}
},
"id": "2b48a81e-84f8-439d-aa58-6cc7b1c00480",
"name": "Send Email",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
528,
-80
],
"credentials": {
"gmailOAuth2": {
"id": "REPLACE_WITH_YOUR_GMAIL_CREDENTIAL_ID",
"name": "Your Gmail Account"
}
}
}
],
"pinData": {},
"connections": {
"When clicking 'Execute workflow'": {
"main": [
[
{
"node": "Fields: (d, t)",
"type": "main",
"index": 0
},
{
"node": "Cylinder Calcs: (D, h) => (A, V)",
"type": "main",
"index": 0
}
]
]
},
"Speed Calc: (d, t) => v": {
"main": [
[]
]
},
"Mass Calc: (ρ, V) => m": {
"main": [
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"Fields: (d, t)": {
"main": [
[
{
"node": "Speed Calc: (d, t) => v",
"type": "main",
"index": 0
}
]
]
},
"Cylinder Calcs: (D, h) => (A, V)": {
"main": [
[
{
"node": "Mass Calc: (ρ, V) => m",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": [
"calculation",
"calculator",
"math",
"engineering",
"unit-conversion",
"unit-converter",
"unit-aware",
"unit-awareness",
"physics",
"formula",
"computation",
"measurement",
"custom-node",
"PQ",
"physical-quantity",
"integration",
"composable"
]
}