The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "168",
"name": "Smart Factory Use Case",
"nodes": [
{
"name": "Values higher than 50\u00b0C",
"type": "n8n-nodes-base.if",
"position": [
250,
550
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"temperature_celsius\"]}}",
"value2": 50,
"operation": "largerEqual"
}
]
}
},
"typeVersion": 1
},
{
"name": "Data from factory sensors",
"type": "n8n-nodes-base.amqpTrigger",
"position": [
50,
700
],
"parameters": {
"sink": "berlin_factory_01",
"options": {}
},
"credentials": {
"amqp": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Set sensor data",
"type": "n8n-nodes-base.set",
"position": [
450,
850
],
"parameters": {
"values": {
"number": [
{
"name": "temeprature_fahrenheit",
"value": "={{$node[\"Data enrichment (\u00b0C to \u00b0F)\"].json[\"temperature_fahrenheit\"]}}"
},
{
"name": "temperature_celsius",
"value": "={{$node[\"Data enrichment (\u00b0C to \u00b0F)\"].json[\"body\"][\"temperature_celsius\"]}}"
},
{
"name": "machine_uptime",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"uptime\"]}}"
},
{
"name": "time_stamp",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"time_stamp\"]}}"
}
],
"string": [
{
"name": "machine_name",
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"name": "Ingest machine data",
"type": "n8n-nodes-base.crateDb",
"position": [
650,
850
],
"parameters": {
"table": "machine_data",
"columns": "temperature_fahrenheit, temperature_celsius, machine_name, machine_uptime, time_stamp"
},
"credentials": {
"crateDb": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Ingest incident data",
"type": "n8n-nodes-base.crateDb",
"position": [
850,
450
],
"parameters": {
"table": "incident_data",
"columns": "incident_id, html_url, incident_timestamp"
},
"credentials": {
"crateDb": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Set incident info",
"type": "n8n-nodes-base.set",
"position": [
650,
450
],
"parameters": {
"values": {
"string": [
{
"name": "incident_id",
"value": "={{$node[\"Create an incident\"].json[\"id\"]}}"
},
{
"name": "html_url",
"value": "={{$node[\"Create an incident\"].json[\"html_url\"]}}"
},
{
"name": "incident_timestamp",
"value": "={{$node[\"Create an incident\"].json[\"created_at\"]}}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"name": "Create an incident",
"type": "n8n-nodes-base.pagerDuty",
"position": [
450,
450
],
"parameters": {
"title": "=Incident with {{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}",
"additionalFields": {}
},
"credentials": {
"pagerDutyApi": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Data enrichment (\u00b0C to \u00b0F)",
"type": "n8n-nodes-base.function",
"position": [
250,
850
],
"parameters": {
"functionCode": "temp_fahrenheit = (items[0].json.body.temperature_celsius * 1.8) + 32;\nitems[0].json.temperature_fahrenheit = temp_fahrenheit;\nreturn items;"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
450,
640
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"Set sensor data": {
"main": [
[
{
"node": "Ingest machine data",
"type": "main",
"index": 0
}
]
]
},
"Set incident info": {
"main": [
[
{
"node": "Ingest incident data",
"type": "main",
"index": 0
}
]
]
},
"Create an incident": {
"main": [
[
{
"node": "Set incident info",
"type": "main",
"index": 0
}
]
]
},
"Values higher than 50\u00b0C": {
"main": [
[
{
"node": "Create an incident",
"type": "main",
"index": 0
}
],
[
{
"node": "Do nothing",
"type": "main",
"index": 0
}
]
]
},
"Data from factory sensors": {
"main": [
[
{
"node": "Data enrichment (\u00b0C to \u00b0F)",
"type": "main",
"index": 0
},
{
"node": "Values higher than 50\u00b0C",
"type": "main",
"index": 0
}
]
]
},
"Data enrichment (\u00b0C to \u00b0F)": {
"main": [
[
{
"node": "Set sensor data",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
amqpcrateDbpagerDutyApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Smart Factory Use Case. Uses amqpTrigger, crateDb, pagerDuty, noOp. Event-driven trigger; 9 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Create A Table In Cratedb And Insert Data. Uses manualTrigger, crateDb. Event-driven trigger; 4 nodes.
Reagendamiento. Uses executeWorkflowTrigger, redis, n8n-nodes-evolution-api, dataTable. Event-driven trigger; 73 nodes.
Blotato. Uses googleSheets, @blotato/n8n-nodes-blotato. Event-driven trigger; 65 nodes.
This template is a hands-on, practical exam designed to help you master n8n Expressions—the key to accessing and manipulating data in your workflows.
This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.