If you're selling SaaS to automotive OEMs, Tier 1 suppliers, AV developers, or fleet operators, your customers operate under NHTSA FMVSS recall obligations, ISO 26262 functional safety lifecycles, UNECE WP.29 cybersecurity mandates (UNR 155/UNR 156), CCPA telematics data restrictions, and FMCSA hours-of-service rules.
Your onboarding emails, API health checks, and incident response workflows need to speak that language — or you'll lose deals to vendors who do.
Here are 5 production-ready n8n automations built for AutoTech/Mobility SaaS vendors, with full workflow JSON you can deploy today.
Workflow 1: AutoTech Customer Onboarding Drip
Segment customers by tier and flag on Day 0 — then send compliance-specific content that matches their actual regulatory exposure.
Customer tiers: LARGE_OEM_AUTOMAKER · TIER1_SAFETY_SUPPLIER · AUTONOMOUS_VEHICLE_DEVELOPER · EV_CHARGING_NETWORK_OPERATOR · FLEET_MANAGEMENT_OPERATOR · MOBILITY_AS_A_SERVICE · CONNECTED_VEHICLE_DATA_PROVIDER
Compliance flags: NHTSA_FMVSS_CERTIFIED · ISO_26262_FUNCTIONALLY_SAFE · UNECE_WP29_CYBERSECURITY · CCPA_TELEMATICS_DATA · FMCSA_DOT_REGULATED · RECALL_OBLIGATED · GDPR_EU_OEM_CUSTOMER
Day 0 (immediate): FMVSS conformance documentation template + NHTSA Early Warning Reporting (EWR) system enrollment link + UNECE WP.29 UNR 155 cybersecurity gap assessment checklist + ISO 26262 ASIL classification mapping guide — all gated by flag.
Day 3: CCPA telematics data minimization worksheet + FMCSA ELD integration setup guide (if FMCSA_DOT_REGULATED).
Day 7: Recall readiness tabletop drill invitation (if RECALL_OBLIGATED) + ISO 26262 safety lifecycle review template.
{
"name": "AutoTech Onboarding Drip",
"nodes": [
{
"id": "trigger-1",
"name": "Customer Signup Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "autotech-onboarding",
"responseMode": "responseNode"
},
"position": [
100,
300
]
},
{
"id": "segment-2",
"name": "Segment by Tier & Flag",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const c = $json; const tier = c.tier || 'CONNECTED_VEHICLE_DATA_PROVIDER'; const flags = c.compliance_flags || []; return [{ json: { ...c, tier, flags, isOEM: tier === 'LARGE_OEM_AUTOMAKER', isTier1: tier === 'TIER1_SAFETY_SUPPLIER', isAV: tier === 'AUTONOMOUS_VEHICLE_DEVELOPER', isFleet: tier === 'FLEET_MANAGEMENT_OPERATOR', isEV: tier === 'EV_CHARGING_NETWORK_OPERATOR', isMaaS: tier === 'MOBILITY_AS_A_SERVICE', hasISO26262: flags.includes('ISO_26262_FUNCTIONALLY_SAFE'), hasUNECE: flags.includes('UNECE_WP29_CYBERSECURITY'), hasCCPA: flags.includes('CCPA_TELEMATICS_DATA'), hasFMCSA: flags.includes('FMCSA_DOT_REGULATED'), hasRecall: flags.includes('RECALL_OBLIGATED') } }];"
},
"position": [
300,
300
]
},
{
"id": "day0-3",
"name": "Send Day 0 Welcome",
"type": "n8n-nodes-base.emailSend",
"parameters": {
"toEmail": "={{$json.email}}",
"subject": "Your NHTSA FMVSS & ISO 26262 compliance starter kit",
"message": "={{$json.isOEM ? 'FMVSS conformance template + EWR enrollment link + ASIL mapping guide attached.' : $json.isAV ? 'NHTSA AV Standing General Order 2021-01 checklist + UNR 155 gap assessment.' : 'ISO 26262 functional safety onboarding guide.'}} \n\nUnique to your stack: UNECE WP.29 UNR 156 software update management baseline."
},
"position": [
500,
200
]
},
{
"id": "wait-4",
"name": "Wait 3 Days",
"type": "n8n-nodes-base.wait",
"parameters": {
"unit": "days",
"amount": 3
},
"position": [
500,
400
]
},
{
"id": "day3-5",
"name": "Send Day 3 Integration Tips",
"type": "n8n-nodes-base.emailSend",
"parameters": {
"toEmail": "={{$json.email}}",
"subject": "={{$json.hasCCPA ? '[ACTION] CCPA telematics data minimization worksheet' : 'Day 3: ISO 26262 ASIL boundary checklist'}}",
"message": "={{$json.hasFMCSA ? 'FMCSA ELD integration guide \u2014 49 CFR Part 395 hours-of-service boundary setup.' : ''}} ={{$json.hasCCPA ? 'CCPA \u00a71798.100 telematics data minimization worksheet \u2014 define collection scope before fleet go-live.' : ''}}"
},
"position": [
700,
400
]
},
{
"id": "wait2-6",
"name": "Wait 4 More Days",
"type": "n8n-nodes-base.wait",
"parameters": {
"unit": "days",
"amount": 4
},
"position": [
700,
600
]
},
{
"id": "day7-7",
"name": "Send Day 7 Drill Invite",
"type": "n8n-nodes-base.emailSend",
"parameters": {
"toEmail": "={{$json.email}}",
"subject": "={{$json.hasRecall ? 'Book your NHTSA recall readiness drill \u2014 49 CFR \u00a7573.6 clock simulation' : 'ISO 26262 safety lifecycle review \u2014 book your session'}}",
"message": "={{$json.hasRecall ? 'Live 45-min tabletop drill simulating a FMVSS nonconformance safety defect escalation. We walk through your \u00a7573.6 Part 573 report timeline.' : 'ISO 26262 ASIL decomposition workshop \u2014 map your software items to safety goals before your next OEM audit.'}}"
},
"position": [
900,
600
]
},
{
"id": "log-8",
"name": "Log to Postgres",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "insert",
"table": "autotech_onboarding_log",
"columns": "customer_id,tier,flags,onboarded_at",
"additionalFields": {}
},
"position": [
1100,
400
]
}
],
"connections": {
"Customer Signup Webhook": {
"main": [
[
{
"node": "Segment by Tier & Flag",
"type": "main",
"index": 0
}
]
]
},
"Segment by Tier & Flag": {
"main": [
[
{
"node": "Send Day 0 Welcome",
"type": "main",
"index": 0
},
{
"node": "Wait 3 Days",
"type": "main",
"index": 0
}
]
]
},
"Wait 3 Days": {
"main": [
[
{
"node": "Send Day 3 Integration Tips",
"type": "main",
"index": 0
}
]
]
},
"Send Day 3 Integration Tips": {
"main": [
[
{
"node": "Wait 4 More Days",
"type": "main",
"index": 0
}
]
]
},
"Wait 4 More Days": {
"main": [
[
{
"node": "Send Day 7 Drill Invite",
"type": "main",
"index": 0
}
]
]
},
"Send Day 7 Drill Invite": {
"main": [
[
{
"node": "Log to Postgres",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow 2: ADAS & Safety System API Health Monitor
Poll every 3 minutes. When a safety-critical endpoint goes DOWN, annotate the alert with the exact NHTSA/ISO regulation at risk — not just 'service unavailable'.
| Endpoint | Regulatory Risk if DOWN |
|---|---|
adas_sensor_fusion_api |
ISO 26262 §5.5.3 ASIL D safety goal violation — immediate stop-sale risk |
nhtsa_ewr_reporting_api |
49 CFR §579.21 Early Warning Reporting — quarterly report gap if outage >24h |
fmvss_certification_portal |
FMVSS Part 571 certificate of conformance inaccessible — customs clearance risk |
unece_wp29_audit_log_api |
UNR 155 §7.3.4 cybersecurity incident log integrity — NCA audit failure |
ccpa_telematics_consent_api |
CCPA §1798.120 opt-out mechanism down — active violation if fleet is live |
{
"name": "AutoTech ADAS API Health Monitor",
"nodes": [
{
"id": "sched-1",
"name": "Every 3 Minutes",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 3
}
]
}
},
"position": [
100,
300
]
},
{
"id": "state-2",
"name": "Load Endpoint State",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const state = $getWorkflowStaticData('global'); if (!state.endpoints) state.endpoints = {}; const endpoints = [ { id: 'adas_sensor_fusion_api', url: process.env.ADAS_SENSOR_URL || 'https://adas.internal/health', regulation: 'ISO 26262 \u00a75.5.3 ASIL D safety goal violation', severity: 'CRITICAL' }, { id: 'nhtsa_ewr_reporting_api', url: process.env.NHTSA_EWR_URL || 'https://ewr.nhtsa.internal/health', regulation: 'NHTSA 49 CFR \u00a7579.21 EWR quarterly gap risk', severity: 'HIGH' }, { id: 'fmvss_certification_portal', url: process.env.FMVSS_URL || 'https://fmvss.internal/health', regulation: 'FMVSS Part 571 certificate inaccessible \u2014 customs risk', severity: 'HIGH' }, { id: 'unece_wp29_audit_log_api', url: process.env.UNECE_URL || 'https://unece.internal/health', regulation: 'UNR 155 \u00a77.3.4 cybersecurity incident log integrity', severity: 'HIGH' }, { id: 'ccpa_telematics_consent_api', url: process.env.CCPA_URL || 'https://consent.internal/health', regulation: 'CCPA \u00a71798.120 opt-out mechanism \u2014 active violation risk', severity: 'CRITICAL' } ]; return endpoints.map(e => ({ json: { ...e, previousStatus: state.endpoints[e.id] || 'UP' } }));"
},
"position": [
300,
300
]
},
{
"id": "check-3",
"name": "Check Each Endpoint",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "={{$json.url}}",
"options": {
"timeout": 8000,
"response": {
"response": {
"neverError": true
}
}
}
},
"position": [
500,
300
]
},
{
"id": "eval-4",
"name": "Evaluate Status",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const state = $getWorkflowStaticData('global'); if (!state.endpoints) state.endpoints = {}; const item = $json; const status = item.statusCode >= 200 && item.statusCode < 300 ? 'UP' : 'DOWN'; const prev = item.previousStatus; state.endpoints[item.id] = status; if (status === 'DOWN' && prev === 'UP') { return [{ json: { alert: true, id: item.id, status, regulation: item.regulation, severity: item.severity, ts: new Date().toISOString() } }]; } return [{ json: { alert: false } }];"
},
"position": [
700,
300
]
},
{
"id": "filter-5",
"name": "Only New Outages",
"type": "n8n-nodes-base.filter",
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$json.alert}}",
"value2": true
}
]
}
},
"position": [
900,
300
]
},
{
"id": "slack-6",
"name": "Alert Safety + CISO",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "#safety-alerts",
"text": "={{$json.severity}} AUTOTECH API DOWN: `{{$json.id}}`\nRegulation at risk: {{$json.regulation}}\nImmediate review required \u2014 ISO 26262/NHTSA recall obligation.\nTime: {{$json.ts}}"
},
"position": [
1100,
300
]
}
],
"connections": {
"Every 3 Minutes": {
"main": [
[
{
"node": "Load Endpoint State",
"type": "main",
"index": 0
}
]
]
},
"Load Endpoint State": {
"main": [
[
{
"node": "Check Each Endpoint",
"type": "main",
"index": 0
}
]
]
},
"Check Each Endpoint": {
"main": [
[
{
"node": "Evaluate Status",
"type": "main",
"index": 0
}
]
]
},
"Evaluate Status": {
"main": [
[
{
"node": "Only New Outages",
"type": "main",
"index": 0
}
]
]
},
"Only New Outages": {
"main": [
[
{
"node": "Alert Safety + CISO",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow 3: AutoTech Compliance Deadline Tracker
12 deadline types covering NHTSA EWR, FMVSS certification, ISO 26262 safety lifecycle reviews, UNECE WP.29 annual assessments, and CCPA data minimization audits.
{
"name": "AutoTech Compliance Deadline Tracker",
"nodes": [
{
"id": "sched-1",
"name": "Weekdays 7AM",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 7 * * 1-5"
}
]
}
},
"position": [
100,
300
]
},
{
"id": "load-2",
"name": "Load Deadlines from Postgres",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "executeQuery",
"query": "SELECT * FROM autotech_compliance_deadlines WHERE due_date <= NOW() + INTERVAL '60 days' AND (alert_sent_date IS NULL OR alert_sent_date < NOW() - INTERVAL '6 days') ORDER BY due_date ASC"
},
"position": [
300,
300
]
},
{
"id": "classify-3",
"name": "Classify Urgency",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const DEADLINE_TYPES = { NHTSA_EWR_QUARTERLY: { label: 'NHTSA EWR Quarterly Report', regulation: '49 CFR \u00a7579.21 \u2014 Early Warning Reporting', consequence: 'Civil penalty up to $22,239/day per 49 CFR \u00a730165' }, FMVSS_ANNUAL_CERTIFICATION: { label: 'FMVSS Annual Certification', regulation: 'NHTSA 49 CFR Part 571', consequence: 'NHTSA stop-sale order + import ban risk' }, RECALL_QUARTERLY_REPORT: { label: 'NHTSA Recall Quarterly Status', regulation: '49 CFR \u00a7573.7 \u2014 quarterly recall report', consequence: 'Defect investigation escalation' }, ISO_26262_SAFETY_LIFECYCLE_REVIEW: { label: 'ISO 26262 Safety Lifecycle Review', regulation: 'ISO 26262:2018 \u00a75.5.3 ASIL decomposition', consequence: 'OEM audit failure \u2014 contract termination risk' }, UNECE_WP29_ANNUAL_ASSESSMENT: { label: 'UNECE WP.29 Annual Cybersecurity Assessment', regulation: 'UNR 155 \u00a77.3.3 annual review obligation', consequence: 'Type approval withdrawal \u2014 new vehicle launch blocked' }, CCPA_DATA_MINIMIZATION_ANNUAL: { label: 'CCPA Telematics Data Minimization Audit', regulation: 'CCPA \u00a71798.100 + CPRA \u00a71798.140(ah)', consequence: '$7,500/intentional violation \u2014 AG enforcement' }, FMCSA_ELD_COMPLIANCE_REVIEW: { label: 'FMCSA ELD Compliance Review', regulation: '49 CFR Part 395 \u2014 ELD mandate', consequence: 'DOT out-of-service order for fleet operator' }, DOT_REGISTRATION_ANNUAL: { label: 'DOT Registration Annual Renewal', regulation: '49 CFR Part 390 USDOT number', consequence: 'Carrier operations halt' }, CPSC_RECALL_READINESS: { label: 'CPSC Recall Readiness Review', regulation: '15 USC \u00a72064(b)(3) \u2014 substantial product hazard', consequence: 'CPSC mandatory recall + civil penalty' }, GDPR_ART28_DPA_RENEWAL: { label: 'GDPR Art.28 DPA Renewal (EU OEM customers)', regulation: 'GDPR Art.28 \u2014 controller-processor agreement', consequence: 'EU OEM contract breach \u2014 GDPR Art.83(4) \u20ac10M fine' }, SOC2_TYPE2_RENEWAL: { label: 'SOC2 Type II Renewal', regulation: 'AICPA SOC2 \u2014 OEM vendor security requirement', consequence: 'OEM vendor assessment failure \u2014 contract loss' }, ANNUAL_PENTEST: { label: 'Annual Penetration Test', regulation: 'UNECE WP.29 UNR 155 \u00a77.3.5 threat analysis', consequence: 'NCA cybersecurity audit gap' } }; const items = $input.all(); return items.map(item => { const d = item.json; const days = Math.ceil((new Date(d.due_date) - new Date()) / 86400000); const meta = DEADLINE_TYPES[d.deadline_type] || {}; const urgency = days <= 0 ? 'OVERDUE' : days <= 7 ? 'CRITICAL' : days <= 14 ? 'URGENT' : days <= 30 ? 'WARNING' : 'NOTICE'; return { json: { ...d, days_until_due: days, urgency, ...meta } }; });"
},
"position": [
500,
300
]
},
{
"id": "email-4",
"name": "Email Safety + Legal",
"type": "n8n-nodes-base.emailSend",
"parameters": {
"toEmail": "={{$json.safety_owner_email}}",
"ccEmail": "legal@company.com",
"subject": "=[{{$json.urgency}}] {{$json.label}} due in {{$json.days_until_due}} days \u2014 {{$json.regulation}}",
"message": "=Deadline: {{$json.due_date}}\nRegulation: {{$json.regulation}}\nConsequence if missed: {{$json.consequence}}\nOwner: {{$json.owner}}\n\nAction required: {{$json.action_items}}"
},
"position": [
700,
300
]
},
{
"id": "update-5",
"name": "Mark Alert Sent",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "update",
"table": "autotech_compliance_deadlines",
"updateKey": "id",
"columns": "alert_sent_date",
"additionalFields": {}
},
"position": [
900,
300
]
}
],
"connections": {
"Weekdays 7AM": {
"main": [
[
{
"node": "Load Deadlines from Postgres",
"type": "main",
"index": 0
}
]
]
},
"Load Deadlines from Postgres": {
"main": [
[
{
"node": "Classify Urgency",
"type": "main",
"index": 0
}
]
]
},
"Classify Urgency": {
"main": [
[
{
"node": "Email Safety + Legal",
"type": "main",
"index": 0
}
]
]
},
"Email Safety + Legal": {
"main": [
[
{
"node": "Mark Alert Sent",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow 4: NHTSA Safety Defect & Recall Incident Pipeline
8 incident types, each with its own clock. The NHTSA safety defect 5-day clock starts the moment you know — not when you file.
| Incident Type | Clock | Regulation |
|---|---|---|
FMVSS_NONCOMPLIANCE_SAFETY_DEFECT |
5 business days | 49 CFR §573.6 Part 573 Report |
NHTSA_ODI_COMPLAINT_CLUSTER |
72h investigation | 49 CFR §579.21 EWR threshold |
AV_SAFETY_INCIDENT |
24h | NHTSA Standing General Order 2021-01 |
ISO_26262_SAFETY_VIOLATION |
2h | ISO 26262 §8.4.5 ASIL D safety mechanism failure |
UNECE_WP29_CYBERSECURITY_BREACH |
72h | UNR 155 §7.3.4 — notify NCA |
CCPA_TELEMATICS_DATA_BREACH |
72h | CCPA §1798.82 + CPRA §1798.150 |
FMCSA_HOURS_SERVICE_VIOLATION |
24h | 49 CFR §395.3 — fleet operator liability |
PRODUCT_LIABILITY_CLAIM_AUTOMOTIVE |
24h | litigation hold + preservation order |
{
"name": "AutoTech Safety Defect & Recall Pipeline",
"nodes": [
{
"id": "webhook-1",
"name": "Incident Intake Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "autotech-incident",
"responseMode": "responseNode"
},
"position": [
100,
300
]
},
{
"id": "classify-2",
"name": "Classify & Set Clock",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const INCIDENT_CLOCKS = { FMVSS_NONCOMPLIANCE_SAFETY_DEFECT: { hours: 120, regulation: '49 CFR \u00a7573.6 Part 573 Safety Defect Report', notify: ['safety', 'legal', 'ceo'], consequence: 'NHTSA stop-sale + civil penalty $22,239/day' }, NHTSA_ODI_COMPLAINT_CLUSTER: { hours: 72, regulation: '49 CFR \u00a7579.21 EWR complaint threshold trigger', notify: ['safety', 'regulatory_affairs'], consequence: 'NHTSA Preliminary Evaluation investigation' }, AV_SAFETY_INCIDENT: { hours: 24, regulation: 'NHTSA Standing General Order 2021-01 AV crash reporting', notify: ['safety', 'legal', 'cto'], consequence: 'SGO reporting failure \u2014 regulatory sanction + AV testing suspension' }, ISO_26262_SAFETY_VIOLATION: { hours: 2, regulation: 'ISO 26262:2018 \u00a78.4.5 ASIL D safety mechanism failure', notify: ['safety', 'engineering'], consequence: 'OEM type approval suspension' }, UNECE_WP29_CYBERSECURITY_BREACH: { hours: 72, regulation: 'UNECE UNR 155 \u00a77.3.4 cybersecurity incident notification to NCA', notify: ['ciso', 'legal', 'safety'], consequence: 'NCA sanction + type approval withdrawal' }, CCPA_TELEMATICS_DATA_BREACH: { hours: 72, regulation: 'CCPA \u00a71798.82 + CPRA \u00a71798.150 breach notification', notify: ['legal', 'ciso'], consequence: '$150/consumer statutory damages' }, FMCSA_HOURS_SERVICE_VIOLATION: { hours: 24, regulation: '49 CFR \u00a7395.3 FMCSA hours of service', notify: ['compliance', 'fleet_ops'], consequence: 'DOT out-of-service \u2014 fleet operations halt' }, PRODUCT_LIABILITY_CLAIM_AUTOMOTIVE: { hours: 24, regulation: 'Litigation hold + evidence preservation order', notify: ['legal', 'safety'], consequence: 'Spoliation sanctions \u2014 FRCP Rule 37(e)' } }; const i = $json; const meta = INCIDENT_CLOCKS[i.incident_type] || { hours: 72, regulation: 'General automotive safety incident', notify: ['safety'], consequence: 'Unknown' }; const deadline = new Date(Date.now() + meta.hours * 3600000).toISOString(); return [{ json: { ...i, ...meta, response_deadline: deadline, incident_id: 'AUTO-' + Date.now() } }];"
},
"position": [
300,
300
]
},
{
"id": "pg-3",
"name": "Log to Postgres",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "insert",
"table": "autotech_incidents",
"columns": "incident_id,incident_type,regulation,response_deadline,consequence,reported_at",
"additionalFields": {}
},
"position": [
500,
200
]
},
{
"id": "slack-4",
"name": "Slack Safety Channel",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "#safety-incidents",
"text": "=AUTOTECH INCIDENT: {{$json.incident_type}}\nClock: {{$json.hours}}h ({{$json.regulation}})\nDeadline: {{$json.response_deadline}}\nConsequence: {{$json.consequence}}\nID: {{$json.incident_id}}"
},
"position": [
500,
400
]
},
{
"id": "resp-5",
"name": "Respond with Incident ID",
"type": "n8n-nodes-base.respondToWebhook",
"parameters": {
"responseBody": "={\"incident_id\": \"{{$json.incident_id}}\", \"response_deadline_iso\": \"{{$json.response_deadline}}\", \"response_deadline_hours\": {{$json.hours}}, \"regulation\": \"{{$json.regulation}}\", \"consequence\": \"{{$json.consequence}}\"}",
"responseHeaders": {
"entries": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"position": [
700,
300
]
}
],
"connections": {
"Incident Intake Webhook": {
"main": [
[
{
"node": "Classify & Set Clock",
"type": "main",
"index": 0
}
]
]
},
"Classify & Set Clock": {
"main": [
[
{
"node": "Log to Postgres",
"type": "main",
"index": 0
},
{
"node": "Slack Safety Channel",
"type": "main",
"index": 0
},
{
"node": "Respond with Incident ID",
"type": "main",
"index": 0
}
]
]
}
}
}
Workflow 5: Weekly AutoTech KPI Report
Every Monday at 7AM: pull safety, recall, and compliance metrics. Flag the ones that need CEO or Safety leadership attention before the week starts.
{
"name": "AutoTech Weekly KPI Report",
"nodes": [
{
"id": "sched-1",
"name": "Monday 7AM",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 7 * * 1"
}
]
}
},
"position": [
100,
300
]
},
{
"id": "pg1-2",
"name": "Safety Incidents This Week",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "executeQuery",
"query": "SELECT incident_type, COUNT(*) as count, MIN(response_deadline) as earliest_deadline FROM autotech_incidents WHERE reported_at >= NOW() - INTERVAL '7 days' GROUP BY incident_type ORDER BY count DESC"
},
"position": [
300,
200
]
},
{
"id": "pg2-3",
"name": "Overdue Compliance Items",
"type": "n8n-nodes-base.postgres",
"parameters": {
"operation": "executeQuery",
"query": "SELECT deadline_type, due_date, owner, regulation FROM autotech_compliance_deadlines WHERE due_date < NOW() AND resolved_at IS NULL ORDER BY due_date ASC"
},
"position": [
300,
400
]
},
{
"id": "build-4",
"name": "Build KPI Report",
"type": "n8n-nodes-base.code",
"parameters": {
"jsCode": "const incidents = $input.item(0)?.json?.rows || []; const overdue = $input.item(1)?.json?.rows || []; const fmvssDefects = incidents.filter(i => i.incident_type === 'FMVSS_NONCOMPLIANCE_SAFETY_DEFECT'); const avIncidents = incidents.filter(i => i.incident_type === 'AV_SAFETY_INCIDENT'); const recallOverdue = overdue.filter(d => d.deadline_type === 'RECALL_QUARTERLY_REPORT'); const iso26262Open = incidents.filter(i => i.incident_type === 'ISO_26262_SAFETY_VIOLATION'); const flags = []; if (fmvssDefects.length > 0) flags.push('[FMVSS DEFECT OPEN]'); if (avIncidents.length > 0) flags.push('[AV INCIDENT OPEN]'); if (recallOverdue.length > 0) flags.push('[RECALL REPORT OVERDUE]'); if (iso26262Open.length > 0) flags.push('[ISO 26262 VIOLATION]'); const subject = flags.length ? flags.join(' / ') + ' \u2014 Weekly AutoTech Safety KPI' : 'Weekly AutoTech Safety KPI \u2014 All Clear'; const body = `AutoTech Safety KPI \u2014 Week of ${new Date().toDateString()}\n\nSafety Incidents (7 days):\n${incidents.map(i => ` ${i.incident_type}: ${i.count} (earliest deadline: ${i.earliest_deadline || 'N/A'})`).join('\n') || ' None'}\n\nOverdue Compliance Items:\n${overdue.map(d => ` [${d.deadline_type}] due ${d.due_date} \u2014 owner: ${d.owner} \u2014 ${d.regulation}`).join('\n') || ' None'}\n\nISO 26262 violations this week: ${iso26262Open.length}\nAV safety incidents: ${avIncidents.length}\nFMVSS nonconformance reports: ${fmvssDefects.length}`; return [{ json: { subject, body } }];"
},
"position": [
500,
300
]
},
{
"id": "email-5",
"name": "Email CEO + Safety + Legal",
"type": "n8n-nodes-base.emailSend",
"parameters": {
"toEmail": "ceo@company.com",
"ccEmail": "safety@company.com,legal@company.com",
"bccEmail": "ciso@company.com",
"subject": "={{$json.subject}}",
"message": "={{$json.body}}"
},
"position": [
700,
300
]
}
],
"connections": {
"Monday 7AM": {
"main": [
[
{
"node": "Safety Incidents This Week",
"type": "main",
"index": 0
},
{
"node": "Overdue Compliance Items",
"type": "main",
"index": 0
}
]
]
},
"Safety Incidents This Week": {
"main": [
[
{
"node": "Build KPI Report",
"type": "main",
"index": 0
}
]
]
},
"Overdue Compliance Items": {
"main": [
[
{
"node": "Build KPI Report",
"type": "main",
"index": 1
}
]
]
},
"Build KPI Report": {
"main": [
[
{
"node": "Email CEO + Safety + Legal",
"type": "main",
"index": 0
}
]
]
}
}
}
Why AutoTech SaaS Buyers Demand Self-Hosting
| Self-Hosting Argument | Regulation | What They're Really Protecting |
|---|---|---|
| NHTSA EWR audit trail stays on OEM infrastructure | 49 CFR §579.21 | NHTSA subpoena scope — pre-production safety signals |
| UNECE WP.29 UNR 155 cybersecurity incident records | UNR 155 §7.3.4 | National authority (NCA) access boundary |
| CCPA telematics data — no third-party ML training | CCPA §1798.140(ah) sharing definition | Fleet operator data sovereignty |
| ISO 26262 safety lifecycle records — OEM audit demand | ISO 26262:2018 §5 | Type approval chain of custody |
| FMCSA ELD data — driver hours boundary | 49 CFR §395.15 | DOT roadside inspection data scope |
5 Questions AutoTech Buyers Will Ask Before They Sign
Q: Will your n8n workflow execution environment affect our FMVSS certification scope?
A: No. n8n processes compliance event metadata — it doesn't execute safety-critical ASIL D code paths. Your FMVSS certification scope is defined by the ECU firmware and vehicle control systems, not by the compliance workflow layer. We document the boundary explicitly for your Tier 1 supplier audits.
Q: How does your NHTSA EWR integration handle pre-production safety signals without triggering a Preliminary Evaluation?
A: The workflow applies the 49 CFR §579.21 threshold logic (signal count + time window) before escalating. Pre-production signals below threshold are logged to your secure Postgres instance without touching the NHTSA EWR submission API — keeping the data inside your boundary until you decide to file.
Q: Can we isolate CCPA-regulated telematics data from your workflow processing?
A: Yes — with n8n self-hosted, telematics data stays in your VPC. The workflow reads aggregated event metadata, not raw GPS or behavioral data. CCPA §1798.140(ah) sharing definition doesn't trigger because no data leaves your controlled environment.
Q: What's your ISO 26262 ASIL boundary for workflow-triggered safety alerts?
A: The workflow is QM (Quality Management) — it monitors and reports, it doesn't control safety-critical actuators. Your ASIL D boundary stays within the ECU. We document this decomposition for your ISO 26262 §5.5.3 ASIL allocation records.
Q: How does your UNECE WP.29 cybersecurity incident logging satisfy UNR 155 §7.3.4?
A: The workflow captures incident_id, detection timestamp, system scope, and remediation actions — all required fields under UNR 155 §7.3.4. Records are append-only in Postgres with immutable timestamps. For NCA audits: export via query, sign with your PKI, submit. No manual reconstruction needed.
Get These Workflows + 11 More
All 5 workflows above are free — grab the JSON above and import directly into n8n.
If you want the complete FlowKit bundle (15 production-ready n8n templates covering customer onboarding, AI support bots, lead capture, invoice automation, price monitoring, and more): stripeai.gumroad.com
The full bundle is $97 — one sale pays for itself if it saves one compliance deadline escalation.
Built with n8n. All workflow JSON is MIT-licensed — use freely, modify, deploy.
Top comments (0)