DEV Community

Alex Kane
Alex Kane

Posted on

n8n for ManufacturingTech & Industry 4.0 SaaS Vendors: 5 Automations for OSHA PSM, EPA RMP, FDA CGMP, and ITAR

Your ITAR compliance attorney called. The DDTC investigator who showed up at your cloud automation vendor's data center already has the technical data transmission logs. The criminal referral is on the U.S. Attorney's desk. The call is not to warn you — it is to tell you the voluntary disclosure window has closed.

ITAR 22 CFR §120.50 defines "export" to include making ITAR-controlled technical data available via any electronic means — including routing it through a cloud integration platform. Every ManufacturingTech SaaS vendor using n8n or any cloud iPaaS to automate workflows involving CAD files, process specifications, quality data, or test results for defense articles has an undocumented export route. Criminal penalty: $1,000,000 per violation + 20 years (22 USC §2778(c)).

The same logic applies to OSHA PSM incidents (your vendor holds the process event logs), EPA RMP accidental releases (your vendor received the sensor alerts), and FDA CGMP batch failures (your vendor processed the batch records). The investigators know how to subpoena it.

Here are 5 n8n automations purpose-built for ManufacturingTech and Industry 4.0 SaaS vendors.


Tier Classification

Segment your accounts before building these workflows:

DISCRETE_MANUFACTURING_SAAS_VENDOR
  Flags: OSHA_PSM_COVERED_PROCESS_PROCESSOR | ITAR_TECHNICAL_DATA_HANDLER | NIST_SP_800_82_ICS_SUBJECT
  Fastest clock: OSHA_FATALITY_NOTIFICATION 8h (29 CFR §1904.39(a))

PROCESS_MANUFACTURING_SAAS_VENDOR
  Flags: OSHA_PSM_COVERED_PROCESS_PROCESSOR | EPA_RMP_SUBJECT
  Fastest clock: EPA_RMP_EMERGENCY_NOTIFICATION IMMEDIATE (40 CFR §68.195(b))

MEDICAL_DEVICE_MFG_SAAS_VENDOR
  Flags: FDA_CGMP_21_CFR_PART_211_PROCESSOR | ISO_13485_CERTIFIED_PROCESSOR
  Fastest clock: FDA_CGMP_FIELD_ALERT_REPORT 3 business days (21 CFR §314.81(b)(1))

DEFENSE_MANUFACTURING_SAAS_VENDOR
  Flags: ITAR_TECHNICAL_DATA_HANDLER | NIST_SP_800_82_ICS_SUBJECT
  Fastest clock: ITAR_VIOLATION_DISCOVERY IMMEDIATE (22 CFR §122.4)

FOOD_BEVERAGE_MFG_SAAS_VENDOR
  Flags: FDA_CGMP_21_CFR_PART_211_PROCESSOR | EPA_RMP_SUBJECT
  Fastest clock: EPA_RMP_EMERGENCY_NOTIFICATION IMMEDIATE (40 CFR §68.195(b))

AUTOMOTIVE_MANUFACTURING_SAAS_VENDOR
  Flags: OSHA_PSM_COVERED_PROCESS_PROCESSOR | NIST_SP_800_82_ICS_SUBJECT
  Fastest clock: OSHA_FATALITY_NOTIFICATION 8h (29 CFR §1904.39(a))

INDUSTRY40_STARTUP
  Flags: varies by customer base
  Fastest clock: depends on covered processes
Enter fullscreen mode Exit fullscreen mode

Why Your Cloud Automation Vendor Is an ITAR Problem

ITAR 22 CFR §120.50 — The statutory definition of "export" includes making ITAR-controlled technical data "available to a foreign national" by any electronic means. A cloud iPaaS routing CAD files, process specs, CNC programs, or quality inspection data for defense articles through servers accessible to foreign national employees = potential unlicensed export.

Your ManufacturingTech SaaS platform using any cloud iPaaS must:

  1. Enumerate the automation vendor in your Technology Control Plan
  2. Screen all technical data flows for ITAR-controlled content before routing
  3. Ensure cloud vendor cannot expose technical data to foreign nationals
  4. Document the ITAR determination for each data type processed

Cannot prove all four? You have an undocumented export route. DDTC voluntary disclosure before investigation = significant penalty reduction. After = criminal referral.

Self-hosting argument: A self-hosted n8n instance on U.S.-based infrastructure with documented access controls eliminates the cloud iPaaS export route. Procurement-level differentiator for DEFENSE_MANUFACTURING_SAAS_VENDOR accounts.


1. Tier-Segmented Onboarding Drip

Route new accounts by manufacturing tier. Each tier gets a Day 0 compliance brief for their specific regulatory exposure.

{
  "name": "ManufacturingTech SaaS - Tier-Segmented Onboarding Drip",
  "nodes": [
    {
      "id": "1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        100,
        300
      ],
      "parameters": {
        "path": "mfg-onboarding",
        "responseMode": "onReceived"
      }
    },
    {
      "id": "2",
      "name": "Route by Tier",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        350,
        300
      ],
      "parameters": {
        "mode": "rules",
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c1",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "DISCRETE_MANUFACTURING_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "DISCRETE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c2",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "PROCESS_MANUFACTURING_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "PROCESS"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c3",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "MEDICAL_DEVICE_MFG_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "MEDICAL_DEVICE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c4",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "DEFENSE_MANUFACTURING_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "DEFENSE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c5",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "FOOD_BEVERAGE_MFG_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "FOOD_BEV"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c6",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "AUTOMOTIVE_MANUFACTURING_SAAS_VENDOR",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "AUTOMOTIVE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "c7",
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "INDUSTRY40_STARTUP",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "STARTUP"
            }
          ]
        }
      }
    },
    {
      "id": "3a",
      "name": "DISCRETE Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        50
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"OSHA PSM & ITAR: What Your Cloud Automation Vendor Is Holding\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"DISCRETE_MANUFACTURING_SAAS_VENDOR: OSHA 29 CFR 1910.119(m) - incident investigation begins within 48h; cloud automation vendor holds process event logs OSHA will subpoena. ITAR 22 CFR 120.50 - cloud iPaaS routing technical data for defense articles = potential unlicensed export ($1M/violation criminal). See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3b",
      "name": "PROCESS Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        150
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"EPA RMP Immediate Notification: Your Cloud Automation Stack Is In Scope\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"PROCESS_MANUFACTURING_SAAS_VENDOR: EPA RMP 40 CFR 68.195(b) - IMMEDIATE LEPC/LERT notification for accidental releases. Cloud automation receiving process sensor alerts = EPA inspector evidence. OSHA PSM 1910.119(m) 48h investigation start. See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3c",
      "name": "MEDICAL_DEVICE Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        250
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"FDA 21 CFR Part 11: Your Cloud Automation Stack Is a Quality System Component\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"MEDICAL_DEVICE_MFG_SAAS_VENDOR: FDA 21 CFR Part 11 - cloud automation creating/modifying electronic records (batch records, CAPA, audit trails) is a validated quality system component subject to FDA inspection. ISO 13485:2016 8.5.2 CAPA within 30d. Field Alert Report 3 business days per 21 CFR 314.81(b)(1). See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3d",
      "name": "DEFENSE Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        350
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"ITAR 22 CFR 120.50: Your Cloud Automation Vendor May Be an Unlicensed Export\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"DEFENSE_MANUFACTURING_SAAS_VENDOR: ITAR 22 CFR 120.50 - making technical data available via electronic means to unauthorized recipients = unlicensed export. Criminal: $1M/violation + 20 years (22 USC 2778(c)). DFARS 252.204-7012(c)(1): 72h DC3 report. See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3e",
      "name": "FOOD_BEV Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        450
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"FDA FSMA CGMP & EPA RMP: Your Cloud Automation Stack Holds Regulated Records\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"FOOD_BEVERAGE_MFG_SAAS_VENDOR: FDA FSMA 21 CFR 121 PCQI + 21 CFR 211 CGMP - cloud automation processing batch/HACCP data holds FDA-regulated electronic records. EPA RMP 68.195(b) IMMEDIATE for accidental releases. See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3f",
      "name": "AUTOMOTIVE Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        550
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"OSHA 1904.39 in Automotive Manufacturing: 8h Fatality Clock\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"AUTOMOTIVE_MANUFACTURING_SAAS_VENDOR: OSHA 29 CFR 1904.39 - 8h fatality + 24h amputation/hospitalization notification. Cloud automation receiving production-line alerts holds OSHA investigation evidence. IATF 16949:2016 10.2.4 CAPA records in cloud scope. See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3g",
      "name": "STARTUP Day0",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        600,
        650
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({ personalizations:[{to:[{email:$json.email}],subject:\"Industry 4.0 Startup: OSHA, EPA RMP, and ITAR Exposure You Need to Know\"}],from:{email:'alex@flowkithq.com'},content:[{type:'text/plain',value:\"INDUSTRY40_STARTUP: If your platform touches OSHA PSM-covered processes, 1910.119(m) applies. EPA RMP 68.195(b) IMMEDIATE if covered substances. ITAR 120.50 if routing defense technical data. NIST SP 800-82 ICS for OT integrations. See: https://stripeai.gumroad.com\"}]}) }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Route by Tier",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Tier": {
      "main": [
        [
          {
            "node": "DISCRETE Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "PROCESS Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "MEDICAL_DEVICE Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "DEFENSE Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "FOOD_BEV Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AUTOMOTIVE Day0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "STARTUP Day0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Day 0 brief by tier:

  • DISCRETE: OSHA PSM §1910.119(m) 48h investigation + ITAR §120.50 export route
  • PROCESS: EPA RMP §68.195(b) IMMEDIATE + OSHA PSM 48h investigation start
  • MEDICAL_DEVICE: FDA 21 CFR Part 11 validated quality system + ISO 13485:2016 §8.5.2 CAPA 30d
  • DEFENSE: ITAR §120.50 $1M criminal + DFARS 252.204-7012(c)(1) 72h DC3
  • FOOD_BEV: FDA FSMA CGMP batch records + EPA RMP IMMEDIATE
  • AUTOMOTIVE: OSHA §1904.39 8h fatality + IATF 16949:2016 CAPA records
  • STARTUP: OSHA PSM / ITAR / NIST SP 800-82 ICS as applicable

2. OSHA/EPA/FDA/ITAR Deadline Tracker

8 clock types. Fires the correct notification the moment a deadline is created.

{
  "name": "ManufacturingTech SaaS - OSHA/EPA/FDA/ITAR Deadline Tracker",
  "nodes": [
    {
      "id": "1",
      "name": "Webhook - Deadline Created",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        100,
        400
      ],
      "parameters": {
        "path": "mfg-deadline",
        "responseMode": "onReceived"
      }
    },
    {
      "id": "2",
      "name": "Route by Clock Type",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        350,
        400
      ],
      "parameters": {
        "mode": "rules",
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d1",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "OSHA_FATALITY_NOTIFICATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_8H"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d2",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "OSHA_AMPUTATION_NOTIFICATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_24H"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d3",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "OSHA_PSM_INCIDENT_INVESTIGATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_PSM_48H"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d4",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "EPA_RMP_EMERGENCY_NOTIFICATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "EPA_IMMEDIATE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d5",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "FDA_CGMP_FIELD_ALERT_REPORT",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "FDA_3D"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d6",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "ITAR_VIOLATION_DISCOVERY",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "ITAR_IMMEDIATE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d7",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "ISO_13485_CAPA_INITIATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "ISO_30D"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "d8",
                    "leftValue": "={{ $json.deadline_type }}",
                    "rightValue": "DFARS_DC3_72H",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "DFARS_72H"
            }
          ]
        }
      }
    },
    {
      "id": "3a",
      "name": "OSHA Fatality 8h",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        50
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL: OSHA fatality - 8h OSHA Area Office notification (29 CFR 1904.39(a)). Account:'+$json.account_id+'. Cloud automation process logs = OSHA subpoena target. Call 1-800-321-OSHA NOW.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3b",
      "name": "OSHA Amputation 24h",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        150
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL: OSHA amputation/eye-loss/hospitalization - 24h OSHA notification (29 CFR 1904.39(a)). Account:'+$json.account_id+'.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3c",
      "name": "OSHA PSM 48h",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        250
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'HIGH: OSHA PSM - investigation team must BEGIN within 48h (29 CFR 1910.119(m)). Account:'+$json.account_id+'. Cloud automation holds process event logs OSHA will subpoena - preserve immediately.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3d",
      "name": "EPA RMP Immediate",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        350
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL: EPA RMP 68.195(b) - IMMEDIATE LEPC/LERT notification required for accidental release. Account:'+$json.account_id+'. Cloud sensor alert data = EPA inspector evidence.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3e",
      "name": "FDA CGMP 3d",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        450
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'HIGH: FDA CGMP Field Alert Report due 3 business days (21 CFR 314.81(b)(1)). Account:'+$json.account_id+'. Cloud batch records = FDA 21 CFR Part 11 electronic records - preserve audit trail.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3f",
      "name": "ITAR Immediate",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        550
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL: ITAR violation (22 CFR 122.4) - DDTC voluntary disclosure IMMEDIATELY. Account:'+$json.account_id+'. Criminal: $1M/violation + 20 years. Cloud automation = potential unlicensed export route. Engage export counsel NOW.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3g",
      "name": "ISO 13485 30d",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        650
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'MEDIUM: ISO 13485:2016 8.5.2 CAPA - initiate within 30 days of NC detection. Account:'+$json.account_id+'. Cloud automation CAPA records = notified body audit evidence.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3h",
      "name": "DFARS DC3 72h",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        650,
        750
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL: DFARS 252.204-7012(c)(1) - 72h cyber incident report to DC3 required. Account:'+$json.account_id+'. Cloud automation platform holding CUI = DFARS scope. Report at: dibnet.dod.mil'}) }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {
    "Webhook - Deadline Created": {
      "main": [
        [
          {
            "node": "Route by Clock Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Clock Type": {
      "main": [
        [
          {
            "node": "OSHA Fatality 8h",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OSHA Amputation 24h",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OSHA PSM 48h",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "EPA RMP Immediate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "FDA CGMP 3d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ITAR Immediate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ISO 13485 30d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "DFARS DC3 72h",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode
Type Clock Regulation
OSHA_FATALITY_NOTIFICATION 8 hours 29 CFR §1904.39(a)
OSHA_AMPUTATION_NOTIFICATION 24 hours 29 CFR §1904.39(a)
OSHA_PSM_INCIDENT_INVESTIGATION 48h to start 29 CFR §1910.119(m)
EPA_RMP_EMERGENCY_NOTIFICATION IMMEDIATE 40 CFR §68.195(b)
FDA_CGMP_FIELD_ALERT_REPORT 3 business days 21 CFR §314.81(b)(1)
ITAR_VIOLATION_DISCOVERY IMMEDIATE 22 CFR §122.4
ISO_13485_CAPA_INITIATION 30 days ISO 13485:2016 §8.5.2
DFARS_DC3_72H 72 hours DFARS 252.204-7012(c)(1)

Fastest clock: EPA RMP §68.195(b) — IMMEDIATE. If your platform receives sensor alerts for accidental releases of RMP-listed substances (ammonia, chlorine, etc.), your incident pipeline must fire before the LEPC phone call.


3. Manufacturing API Health Monitor (15-min)

Monitors APIs that feed OSHA, EPA, FDA, and ITAR notification pipelines. If incident reporting goes down, your 8h clock fires with no notification.

{
  "name": "ManufacturingTech SaaS - API Health Monitor (15min)",
  "nodes": [
    {
      "id": "1",
      "name": "Every 15 Minutes",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        100,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      }
    },
    {
      "id": "2",
      "name": "Check Production Management API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        200
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/health/production-management",
        "options": {
          "timeout": 10000,
          "response": {
            "response": {
              "neverError": true
            }
          }
        }
      }
    },
    {
      "id": "3",
      "name": "Check Quality Management API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        350
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/health/quality-management",
        "options": {
          "timeout": 10000,
          "response": {
            "response": {
              "neverError": true
            }
          }
        }
      }
    },
    {
      "id": "4",
      "name": "Check ITAR Export Control API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        500
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/health/itar-export-control",
        "options": {
          "timeout": 10000,
          "response": {
            "response": {
              "neverError": true
            }
          }
        }
      }
    },
    {
      "id": "5",
      "name": "Check Incident Reporting API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        650
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/health/incident-reporting",
        "options": {
          "timeout": 10000,
          "response": {
            "response": {
              "neverError": true
            }
          }
        }
      }
    },
    {
      "id": "6",
      "name": "Evaluate Health",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        600,
        400
      ],
      "parameters": {
        "jsCode": "const checks = [\n  { name: 'production_management_api', reg: 'OSHA PSM 1910.119(m)' },\n  { name: 'quality_management_api', reg: 'FDA 21 CFR Part 11 / ISO 13485:2016' },\n  { name: 'itar_export_control_api', reg: 'ITAR 22 CFR 120.50' },\n  { name: 'incident_reporting_api', reg: 'EPA RMP 68.195(b) IMMEDIATE / OSHA 8h' }\n];\nconst results = $input.all().map(i => i.json);\nconst issues = [];\nfor (let i = 0; i < results.length; i++) {\n  if (!results[i] || results[i].$response?.statusCode !== 200) {\n    issues.push({ endpoint: checks[i]?.name || 'unknown', reg: checks[i]?.reg || '', status: results[i]?.$response?.statusCode || 'timeout' });\n  }\n}\nreturn [{ json: { healthy: issues.length === 0, issues, checked_at: new Date().toISOString() } }];"
      }
    },
    {
      "id": "7",
      "name": "Alert if Down",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        850,
        400
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "h1",
              "leftValue": "={{ $json.issues.length }}",
              "rightValue": 0,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            }
          ]
        }
      }
    },
    {
      "id": "8",
      "name": "Slack Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1100,
        300
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'ManufacturingTech API DOWN: '+$json.issues.map(i=>i.endpoint+' ('+i.reg+')').join(', ')+' | OSHA/EPA/ITAR clocks may not fire. '+$json.checked_at}) }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {
    "Every 15 Minutes": {
      "main": [
        [
          {
            "node": "Check Production Management API",
            "type": "main",
            "index": 0
          },
          {
            "node": "Check Quality Management API",
            "type": "main",
            "index": 0
          },
          {
            "node": "Check ITAR Export Control API",
            "type": "main",
            "index": 0
          },
          {
            "node": "Check Incident Reporting API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Production Management API": {
      "main": [
        [
          {
            "node": "Evaluate Health",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Quality Management API": {
      "main": [
        [
          {
            "node": "Evaluate Health",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check ITAR Export Control API": {
      "main": [
        [
          {
            "node": "Evaluate Health",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Incident Reporting API": {
      "main": [
        [
          {
            "node": "Evaluate Health",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Evaluate Health": {
      "main": [
        [
          {
            "node": "Alert if Down",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Alert if Down": {
      "main": [
        [
          {
            "node": "Slack Alert",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Monitored endpoints:

  • production_management_api — OSHA PSM §1910.119(m) incident evidence source
  • quality_management_api — FDA 21 CFR Part 11 / ISO 13485:2016 §8.5.2 CAPA records
  • itar_export_control_api — ITAR 22 CFR §120.50 export control screening
  • incident_reporting_api — EPA RMP §68.195(b) IMMEDIATE / OSHA 8h notification

If incident_reporting_api goes down during an EPA RMP release, your LEPC notification is delayed. The IMMEDIATE clock does not pause for downtime.


4. OSHA/EPA/FDA/ITAR Incident Pipeline

8 incident types, each routed to the correct notification with the right regulatory clock.

{
  "name": "ManufacturingTech SaaS - OSHA/EPA/FDA/ITAR Incident Pipeline",
  "nodes": [
    {
      "id": "1",
      "name": "Webhook - Incident",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        100,
        400
      ],
      "parameters": {
        "path": "mfg-incident",
        "responseMode": "onReceived"
      }
    },
    {
      "id": "2",
      "name": "Log Incident",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        400
      ],
      "parameters": {
        "method": "POST",
        "url": "https://your-platform.com/api/incidents",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({account_id:$json.account_id,incident_type:$json.incident_type,reported_at:new Date().toISOString(),details:$json}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "3",
      "name": "Route by Incident Type",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        600,
        400
      ],
      "parameters": {
        "mode": "rules",
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i1",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "OSHA_FATALITY",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_FATALITY"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i2",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "OSHA_AMPUTATION",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_AMPUTATION"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i3",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "OSHA_PSM_INCIDENT",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OSHA_PSM"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i4",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "EPA_RMP_ACCIDENTAL_RELEASE",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "EPA_RMP"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i5",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "FDA_CGMP_BATCH_FAILURE",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "FDA_CGMP"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i6",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "ITAR_VIOLATION_DETECTED",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "ITAR"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i7",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "ISO_13485_NONCONFORMITY",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "ISO_NC"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "i8",
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "SOC2_SECURITY_INCIDENT",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "SOC2"
            }
          ]
        }
      }
    },
    {
      "id": "4a",
      "name": "OSHA Fatality Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        100
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL OSHA FATALITY: 29 CFR 1904.39(a) - 8h OSHA Area Office notification. Account:'+$json.account_id+'. Preserve ALL cloud automation logs - OSHA subpoena authority over vendor. Call 1-800-321-OSHA.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4b",
      "name": "OSHA Amputation Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        220
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL OSHA AMPUTATION: 29 CFR 1904.39(a) - 24h OSHA Area Office notification. Account:'+$json.account_id+'. Cloud process logs = OSHA evidence.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4c",
      "name": "OSHA PSM Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        340
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'HIGH OSHA PSM: 29 CFR 1910.119(m) - investigation team must BEGIN within 48h. Account:'+$json.account_id+'. Cloud automation holds process event data OSHA will subpoena - legal hold NOW.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4d",
      "name": "EPA RMP Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        460
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL EPA RMP: 40 CFR 68.195(b) - IMMEDIATE LEPC/LERT notification required. Account:'+$json.account_id+'. Cloud sensor alert logs = EPA inspector evidence.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4e",
      "name": "FDA CGMP Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        580
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'HIGH FDA CGMP BATCH FAILURE: 21 CFR 314.81(b)(1) Field Alert Report - 3 business days. Account:'+$json.account_id+'. Cloud batch records = FDA 21 CFR Part 11 electronic records - audit trail preservation required.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4f",
      "name": "ITAR Alert",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        700
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'CRITICAL ITAR VIOLATION: 22 CFR 122.4 - DDTC voluntary disclosure IMMEDIATELY. Account:'+$json.account_id+'. Criminal: $1M/violation + 20 years. Cloud automation = potential unlicensed export. Engage export counsel NOW.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4g",
      "name": "ISO 13485 CAPA",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        820
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'MEDIUM ISO 13485 NC: 8.5.2 CAPA initiate within 30 days. Account:'+$json.account_id+'. Cloud automation CAPA records = notified body audit evidence.'}) }}"
            }
          ]
        }
      }
    },
    {
      "id": "4h",
      "name": "SOC2 Incident",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        900,
        940
      ],
      "parameters": {
        "method": "POST",
        "url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({text:'MEDIUM SOC2 INCIDENT: CC7.2-CC7.5 - 72h notification to affected parties. Account:'+$json.account_id+'. Cloud automation event logs = SOC2 auditor evidence.'}) }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {
    "Webhook - Incident": {
      "main": [
        [
          {
            "node": "Log Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Incident": {
      "main": [
        [
          {
            "node": "Route by Incident Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Incident Type": {
      "main": [
        [
          {
            "node": "OSHA Fatality Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OSHA Amputation Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OSHA PSM Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "EPA RMP Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "FDA CGMP Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ITAR Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ISO 13485 CAPA",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "SOC2 Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode
Incident Type Clock Authority
OSHA_FATALITY 8 hours 29 CFR §1904.39(a)
OSHA_AMPUTATION 24 hours 29 CFR §1904.39(a)
OSHA_PSM_INCIDENT 48h investigation start 29 CFR §1910.119(m)
EPA_RMP_ACCIDENTAL_RELEASE IMMEDIATE 40 CFR §68.195(b)
FDA_CGMP_BATCH_FAILURE 3 business days 21 CFR §314.81(b)(1)
ITAR_VIOLATION_DETECTED IMMEDIATE DDTC 22 CFR §122.4
ISO_13485_NONCONFORMITY 30 days CAPA ISO 13485:2016 §8.5.2
SOC2_SECURITY_INCIDENT 72 hours AICPA TSC CC7.2-CC7.5

The OSHA PSM argument: When OSHA investigators arrive after a PSM incident, they do not limit document requests to your facility. §1910.119(m) requires preservation of all process data relevant to the incident. Cloud automation platforms that received sensor alerts or safety system notifications in the hours before the incident hold records OSHA can subpoena directly — outside your legal hold.


5. Weekly KPI Report

Runs every Monday. Counts accounts by tier, compliance flag coverage, open OSHA/EPA/FDA/ITAR incidents. CEO + compliance officer.

{
  "name": "ManufacturingTech SaaS - Weekly KPI Report",
  "nodes": [
    {
      "id": "1",
      "name": "Every Monday 09:00",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        100,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1"
            }
          ]
        }
      }
    },
    {
      "id": "2",
      "name": "Get Accounts by Tier",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        200
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/api/analytics/accounts-by-tier"
      }
    },
    {
      "id": "3",
      "name": "Get Flag Counts",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        400
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/api/analytics/flag-counts"
      }
    },
    {
      "id": "4",
      "name": "Get Open Incidents",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        350,
        600
      ],
      "parameters": {
        "method": "GET",
        "url": "https://your-platform.com/api/incidents/open"
      }
    },
    {
      "id": "5",
      "name": "Build KPI Report",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        600,
        400
      ],
      "parameters": {
        "jsCode": "const tiers = $('Get Accounts by Tier').first().json;\nconst flags = $('Get Flag Counts').first().json;\nconst incidents = $('Get Open Incidents').first().json;\nconst lines = [\n  '# ManufacturingTech SaaS - Weekly KPI',\n  '',\n  '## Accounts by Tier',\n  'DISCRETE_MFG_SAAS: ' + (tiers.DISCRETE_MANUFACTURING_SAAS_VENDOR||0),\n  'PROCESS_MFG_SAAS: ' + (tiers.PROCESS_MANUFACTURING_SAAS_VENDOR||0),\n  'MEDICAL_DEVICE_MFG: ' + (tiers.MEDICAL_DEVICE_MFG_SAAS_VENDOR||0),\n  'DEFENSE_MFG_SAAS: ' + (tiers.DEFENSE_MANUFACTURING_SAAS_VENDOR||0),\n  'FOOD_BEV_MFG_SAAS: ' + (tiers.FOOD_BEVERAGE_MFG_SAAS_VENDOR||0),\n  'AUTOMOTIVE_MFG_SAAS: ' + (tiers.AUTOMOTIVE_MANUFACTURING_SAAS_VENDOR||0),\n  'INDUSTRY40_STARTUP: ' + (tiers.INDUSTRY40_STARTUP||0),\n  '',\n  '## Compliance Flag Coverage',\n  'OSHA_PSM_COVERED: ' + (flags.OSHA_PSM_COVERED_PROCESS_PROCESSOR||0),\n  'EPA_RMP_SUBJECT: ' + (flags.EPA_RMP_SUBJECT||0),\n  'FDA_CGMP_PROCESSOR: ' + (flags.FDA_CGMP_21_CFR_PART_211_PROCESSOR||0),\n  'ITAR_HANDLER: ' + (flags.ITAR_TECHNICAL_DATA_HANDLER||0),\n  'ISO_13485: ' + (flags.ISO_13485_CERTIFIED_PROCESSOR||0),\n  'NIST_800_82_ICS: ' + (flags.NIST_SP_800_82_ICS_SUBJECT||0),\n  'SOC2_REQUIRED: ' + (flags.SOC2_REQUIRED||0),\n  '',\n  '## Open Incidents',\n  'Total: ' + (incidents.total||0),\n  'OSHA_FATALITY: ' + (incidents.OSHA_FATALITY||0),\n  'EPA_RMP_RELEASE: ' + (incidents.EPA_RMP_ACCIDENTAL_RELEASE||0),\n  'ITAR_VIOLATION: ' + (incidents.ITAR_VIOLATION_DETECTED||0),\n  'FDA_CGMP_BATCH: ' + (incidents.FDA_CGMP_BATCH_FAILURE||0),\n  '',\n  'Generated: ' + new Date().toISOString()\n];\nreturn [{json:{report:lines.join('\\n'),to:'ceo@yourcompany.com',bcc:'compliance@yourcompany.com'}}];"
      }
    },
    {
      "id": "6",
      "name": "Email Report",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        850,
        400
      ],
      "parameters": {
        "method": "POST",
        "url": "https://api.sendgrid.com/v3/mail/send",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "=",
              "value": "={{ JSON.stringify({personalizations:[{to:[{email:$json.to}],cc:[{email:$json.bcc}],subject:'ManufacturingTech KPI - '+new Date().toLocaleDateString('en-US',{weekday:'long',year:'numeric',month:'short',day:'numeric'})}],from:{email:'reports@flowkithq.com'},content:[{type:'text/plain',value:$json.report}]}) }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {
    "Every Monday 09:00": {
      "main": [
        [
          {
            "node": "Get Accounts by Tier",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Flag Counts",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Open Incidents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Accounts by Tier": {
      "main": [
        [
          {
            "node": "Build KPI Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Flag Counts": {
      "main": [
        [
          {
            "node": "Build KPI Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Open Incidents": {
      "main": [
        [
          {
            "node": "Build KPI Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build KPI Report": {
      "main": [
        [
          {
            "node": "Email Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The Self-Hosting Argument for ManufacturingTech Accounts

ITAR 22 CFR §120.50 — Self-hosted n8n on U.S. infrastructure with documented access controls eliminates the cloud iPaaS export route. Procurement-level differentiator for DEFENSE_MANUFACTURING_SAAS_VENDOR.

OSHA PSM 29 CFR §1910.119 — Self-hosted n8n means you control the process event evidence chain of custody — not outside your legal hold.

FDA 21 CFR Part 11 — Cloud automation platforms creating/modifying electronic records for CGMP manufacturing are quality system components requiring validation. Self-hosted n8n gives the manufacturer control of the validated environment.

NIST SP 800-82r3 — ICS/OT networks with PSM-covered processes have specific cybersecurity requirements. Self-hosted n8n inside the OT network perimeter meets SP 800-82 segmentation requirements that cloud iPaaS does not.


Get These Workflows

All 5 workflows — plus 10 more for adjacent ManufacturingTech use cases — in the FlowKit n8n template store:

https://stripeai.gumroad.com

Individual templates: $12-$29. Bundle (15 templates): $97.


Regulations cited accurate as of May 2026. Technical analysis, not legal advice. Consult qualified export counsel for ITAR determinations.

Top comments (0)