DEV Community

Alex Kane
Alex Kane

Posted on

n8n for InsurTech & Insurance SaaS Vendors: 5 Automations for GLBA Safeguards Rule, NAIC Model Law #668, NYDFS 23 NYCRR 500, FCRA, and OFAC Compliance

Insurance SaaS vendors operate in one of the most heavily regulated environments in tech. You process nonpublic personal information (NPI), consumer credit data, health records for life/health carriers, and claims payments. You're subject to federal GLBA, state-level NAIC model laws, NYDFS cybersecurity regulation for NY-licensed entities, FCRA for consumer data users, and OFAC for every payment.

This guide gives you five production-ready n8n workflows with complete JSON — and explains why routing insurance data through cloud iPaaS creates specific compliance exposures that self-hosted n8n eliminates by architecture.

The regulatory stack

GLBA Safeguards Rule (16 CFR §314): The FTC's GLBA Safeguards Rule applies to all financial institutions — including insurance carriers and agents. The 2023 amended rule requires a written information security program (WISP), annual risk assessment, encryption of NPI in transit and at rest, and third-party service provider (TPSP) oversight. Under §314.4(f), you must select vendors with appropriate safeguards AND contractually require those safeguards in writing. Every cloud iPaaS processing NPI is a TPSP requiring a written contract, annual oversight, and WISP documentation.

NAIC Data Security Model Law #668: Adopted by 22+ states as of 2025, this model law requires insurance licensees to develop a WISP, conduct annual risk assessments, oversee third-party service providers (§14), and notify the state insurance commissioner within 72 hours of a cybersecurity event affecting more than 250 state residents.

NYDFS 23 NYCRR 500: For NY-licensed insurers, this cybersecurity regulation requires a written cybersecurity program, penetration testing (§500.5), audit trail retention for 6 years (§500.6), CISO appointment, and — under §500.17 — notification to the NYDFS Superintendent within 72 hours of determining a material cybersecurity event.

FCRA (15 USC §1681): Applies when you use consumer reports (CLUE, MVRs, credit scores) in underwriting or claims. Adverse action notices required within 5 business days; dispute reinvestigation within 30 days.

OFAC SDN screening: All policyholders and claims payees must be screened against the OFAC Specially Designated Nationals list. A match requires immediate blocking — and tipping off the matched party is itself a sanctions violation.

The cloud iPaaS problem for insurance SaaS

The GLBA Safeguards Rule §314.4(f) creates a specific structural problem: every cloud automation platform that receives, processes, or accesses policyholder NPI is a third-party service provider. You must:

  1. Select that vendor based on their security safeguards
  2. Execute a written contract requiring those safeguards
  3. Conduct periodic oversight of their implementation
  4. Document all of this in your annual WISP update

This is not a one-time checkbox. It is an ongoing obligation that grows with every new iPaaS tool in your stack.

Self-hosted n8n eliminates the TPSP relationship entirely. NPI processed by n8n stays inside your GLBA-compliant network boundary. No written contract required for the automation layer. No periodic oversight obligation. No WISP entry for the automation platform. Your annual WISP review becomes simpler, not more complex.

For NYDFS-regulated entities: the NYDFS §500.17 72-hour notification clock runs from when you determine that a material event occurred — not when you finish your investigation. Cloud iPaaS incident notification SLAs (typically 24-48 hours) may consume most of your notification window before your team even starts reviewing the event.


Workflow 1: InsurTech Tier-Segmented GLBA/NYDFS Compliance Onboarding Drip

This webhook-triggered workflow segments new customers into 7 tiers (ENTERPRISE_INSURANCE_CARRIER_SAAS, INSURTECH_MGA_PLATFORM, CLAIMS_MANAGEMENT_SAAS, POLICY_ADMIN_SAAS, INSURANCE_ANALYTICS_SAAS, SURPLUS_LINES_PLATFORM, INSURTECH_STARTUP) and sends a personalized Day 0 email with the exact compliance obligations most relevant to their tier.

Enterprise carrier customers receive the GLBA §314.4(f) TPSP exposure brief. MGA platform customers receive the NAIC Model Law #668 + surplus lines NIMA/SLIMPACT overview. NYDFS-regulated entities receive the §500.17 72-hour notification clock explainer. Claims management customers receive the FCRA adverse action and NAIC Unfair Claims Settlement Practices brief.

{
  "name": "InsurTech Tier-Segmented GLBA/NYDFS Compliance Onboarding Drip",
  "nodes": [
    {
      "id": "wh1",
      "name": "Customer Signed Up",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        240,
        300
      ],
      "parameters": {
        "path": "insurtech-onboarding",
        "responseMode": "responseNode"
      }
    },
    {
      "id": "res1",
      "name": "Respond 200",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        440,
        180
      ],
      "parameters": {
        "responseCode": 200,
        "responseData": "allEntries"
      }
    },
    {
      "id": "sw1",
      "name": "Segment by Compliance Tier",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        640,
        300
      ],
      "parameters": {
        "mode": "rules",
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "ENTERPRISE_INSURANCE_CARRIER_SAAS",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "CARRIER"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "INSURTECH_MGA_PLATFORM",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "MGA"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.flags.nydfs_regulated }}",
                    "rightValue": true,
                    "operator": {
                      "type": "boolean",
                      "operation": "true"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "NYDFS"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.flags.claims_management }}",
                    "rightValue": true,
                    "operator": {
                      "type": "boolean",
                      "operation": "true"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "CLAIMS"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.tier }}",
                    "rightValue": "INSURTECH_STARTUP",
                    "operator": {
                      "type": "string",
                      "operation": "notEquals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "DEFAULT"
            }
          ]
        }
      }
    },
    {
      "id": "em_carrier",
      "name": "Day 0 \u2014 GLBA Safeguards Rule TPSP Exposure",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        100
      ],
      "parameters": {
        "fromEmail": "compliance@yourcarriersaas.com",
        "toEmail": "={{ $json.admin_email }}",
        "subject": "[CarrierSaaS] GLBA Safeguards Rule 16 CFR \u00a7314 \u2014 Your Cloud iPaaS Is a Third-Party Service Provider",
        "emailType": "text",
        "message": "Hi {{ $json.company_name }},\n\nWelcome to the enterprise carrier tier. As a platform processing nonpublic personal information (NPI) on behalf of insurance carriers and their customers, your workflow automation layer creates a specific GLBA Safeguards Rule exposure that most insurance SaaS vendors miss.\n\nThe GLBA \u00a7314.4(f) problem:\nThe FTC's GLBA Safeguards Rule (16 CFR \u00a7314.4(f)) requires financial institutions \u2014 and insurance carriers qualify as financial institutions under GLBA \u2014 to select and retain service providers that maintain appropriate safeguards AND contractually require those safeguards in writing. This obligation flows to every vendor that receives, processes, or accesses NPI on the carrier's behalf.\n\nCloud iPaaS as TPSP: when you route policyholder NPI (names, policy numbers, claims data, payment information, health data for life/health carriers) through a cloud automation platform, that platform is a third-party service provider under 16 CFR \u00a7314.4(f). You must:\n1. Select vendors that implement appropriate safeguards\n2. Execute a written contract requiring those safeguards\n3. Conduct periodic oversight of their safeguards\n4. Update vendor lists in your annual written information security program (WISP)\n\nFTC enforcement exposure: FTC Act \u00a75 unfair or deceptive acts \u2014 enforcement actions against carriers that failed to implement WISP, document TPSP oversight, or maintain NPI safeguards. State insurance regulators can file parallel actions under state GLBA equivalents.\n\nSelf-hosted n8n: NPI never leaves your GLBA-compliant network boundary. No third-party service provider relationship for the automation layer. No written contract required. No periodic oversight obligation. Your WISP annual update becomes simpler, not more complex.\n\nGLBA TPSP compliance automation: https://stripeai.gumroad.com\n\nCarrierSaaS Compliance Team"
      }
    },
    {
      "id": "em_mga",
      "name": "Day 0 \u2014 NAIC Model Law + Surplus Lines Compliance Brief",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        240
      ],
      "parameters": {
        "fromEmail": "compliance@yourmgaplatform.com",
        "toEmail": "={{ $json.admin_email }}",
        "subject": "[MGAPlatform] NAIC Data Security Model Law #668 + Surplus Lines NIMA/SLIMPACT \u2014 MGA Compliance Brief",
        "emailType": "text",
        "message": "Hi {{ $json.company_name }},\n\nAs a managing general agent platform, you operate at the intersection of carrier delegation, state surplus lines regulation, and the NAIC Data Security Model Law. Your automation architecture must handle all three.\n\nNAIC Data Security Model Law #668: adopted by 22+ states as of 2025, this model law requires insurance licensees to:\n- Develop and implement a written information security program (WISP)\n- Conduct annual risk assessments\n- Oversee third-party service providers (\u00a714)\n- Notify the state insurance commissioner within 72 hours of a cybersecurity event that impacts more than 250 state residents\n\nThe \u00a714 TPSP obligation mirrors GLBA: every vendor with access to nonpublic information must be covered by a written contract. Cloud iPaaS processing policyholder data = unlisted TPSP = Model Law \u00a714 violation in WISP audit.\n\nSurplus lines: if your MGA platform supports E&S placements, Nonadmitted and Reinsurance Reform Act (NRRA) compliance + state stamping office reporting deadlines apply. NIMA/SLIMPACT home state rules: premium tax allocation and stamping filings due within 30-60 days of policy effective date depending on state.\n\nYour MGA compliance workflows: https://stripeai.gumroad.com\n\nMGAPlatform Compliance Team"
      }
    },
    {
      "id": "em_nydfs",
      "name": "Day 0 \u2014 NYDFS 23 NYCRR 500 Cybersecurity Event 72h Clock",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        380
      ],
      "parameters": {
        "fromEmail": "compliance@yournydfsinsurer.com",
        "toEmail": "={{ $json.admin_email }}",
        "subject": "[NYDFSInsurer] 23 NYCRR \u00a7500.17 \u2014 Material Cybersecurity Event 72-Hour Notification Clock",
        "emailType": "text",
        "message": "Hi {{ $json.company_name }},\n\nAs a NYDFS-regulated insurance entity, your most time-sensitive compliance obligation is the 23 NYCRR \u00a7500.17 cybersecurity event notification requirement. This clock starts the moment you determine a cybersecurity event is material \u2014 not when you complete your investigation.\n\nThe 72-hour clock:\n23 NYCRR \u00a7500.17(a) requires notification to the NYDFS Superintendent within 72 hours of determining that a material cybersecurity event has occurred. 'Material' under \u00a7500.1(g) includes events that have a reasonable likelihood of materially harming any material part of your normal operations OR that require notice to any government body, self-regulatory agency, or other supervisory body.\n\nCloud iPaaS and the 72-hour window: if your automation platform experiences an outage, data exposure, or unauthorized access event at 2AM on a Saturday, the 72-hour clock may already be running before your security team knows about it. Cloud iPaaS incident notification SLAs (typically 24-48 hours via email to security contact) may consume most of your notification window before internal review begins.\n\nSelf-hosted n8n: all incident detection, alerting, and notification automation runs inside your NYDFS-compliant perimeter. No external SLA dependency. Your security team receives the first alert, not the fourth.\n\nAdditional NYDFS obligations your automation must handle:\n- \u00a7500.6 audit trail retention: 6 years\n- \u00a7500.9 risk assessment: annual\n- \u00a7500.11 third-party service provider security policy: written, updated annually\n- \u00a7500.22 annual certification: due April 15 each year\n\nYour NYDFS compliance workflows: https://stripeai.gumroad.com\n\nNYDFSInsurer Compliance Team"
      }
    },
    {
      "id": "em_claims",
      "name": "Day 0 \u2014 Claims Data FCRA + State Unfair Claims Practices Brief",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        520
      ],
      "parameters": {
        "fromEmail": "compliance@yourclaimssaas.com",
        "toEmail": "={{ $json.admin_email }}",
        "subject": "[ClaimsSaaS] FCRA \u00a71681 + NAIC Unfair Claims Settlement Practices Model Act \u2014 Claims Compliance Brief",
        "emailType": "text",
        "message": "Hi {{ $json.company_name }},\n\nAs a claims management SaaS, you process consumer credit and insurance claims data subject to both the Fair Credit Reporting Act (FCRA) and state unfair claims settlement practices laws. Your automation architecture must handle both.\n\nFCRA in claims context: 15 USC \u00a71681 applies when your platform uses consumer reports (including insurance claims history, CLUE reports from LexisNexis, or MVRs) in underwriting or claims decisions:\n- Adverse action notice within a reasonable time (FTC guidance: 5 business days) when consumer information contributes to a coverage denial, premium increase, or claims denial\n- Permissible purpose required for every consumer report pull\n- Dispute handling: \u00a71681i \u2014 reinvestigation within 30 days (45 days with supplemental information)\n- Data furnisher obligations: \u00a71681s-2 \u2014 if your platform reports claims data to consumer reporting agencies\n\nNAIC Unfair Claims Settlement Practices Model Act: adopted in some form by all 50 states. Key deadlines vary by state but typically include:\n- Acknowledge written claim within 10 days\n- Accept or deny claim within 15 business days of proof of loss\n- State insurance department examination trigger: pattern of violations\n\nCloud iPaaS and claims data: routing CLUE data, MVRs, or medical records through cloud automation creates FCRA permissible purpose documentation and security obligations for data you don't control. Self-hosted n8n: claims data audit trail stays inside your compliance boundary.\n\nYour claims compliance workflows: https://stripeai.gumroad.com\n\nClaimsSaaS Compliance Team"
      }
    },
    {
      "id": "em_default",
      "name": "Day 0 \u2014 InsurTech General Compliance Welcome",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        660
      ],
      "parameters": {
        "fromEmail": "onboarding@yourinsurtech.com",
        "toEmail": "={{ $json.admin_email }}",
        "subject": "Welcome to InsurTech Platform \u2014 Your Compliance Automation Is Ready",
        "emailType": "text",
        "message": "Hi {{ $json.company_name }},\n\nWelcome. Your insurance compliance automation platform is active.\n\nAs an InsurTech company, your workflows touch nonpublic personal information (NPI), consumer credit data, claims records, and premium payment data. Multiple federal and state laws govern how this data must be handled.\n\nKey obligations your automation covers:\n- GLBA Safeguards Rule 16 CFR \u00a7314: written information security program, TPSP oversight\n- NAIC Data Security Model Law #668: 22+ states, 72h cybersecurity event notification\n- NYDFS 23 NYCRR 500: cybersecurity program, \u00a7500.17 material event notification\n- FCRA 15 USC \u00a71681: adverse action notices, permissible purpose, dispute handling\n- State insurance department examination: data availability and audit trail requirements\n- OFAC SDN: screening requirements for policyholders and claims payees\n\nSetup guide: https://stripeai.gumroad.com\n\nInsurTech Platform Team"
      }
    }
  ],
  "connections": {
    "Customer Signed Up": {
      "main": [
        [
          {
            "node": "Respond 200",
            "type": "main",
            "index": 0
          },
          {
            "node": "Segment by Compliance Tier",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Segment by Compliance Tier": {
      "main": [
        [
          {
            "node": "Day 0 \u2014 GLBA Safeguards Rule TPSP Exposure",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Day 0 \u2014 NAIC Model Law + Surplus Lines Compliance Brief",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Day 0 \u2014 NYDFS 23 NYCRR 500 Cybersecurity Event 72h Clock",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Day 0 \u2014 Claims Data FCRA + State Unfair Claims Practices Brief",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Day 0 \u2014 InsurTech General Compliance Welcome",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Workflow 2: InsurTech Regulatory API Health Monitor

This 3-minute scheduled monitor polls 5 regulatory endpoints (NAIC data security portal, NYDFS cybersecurity portal, GLBA/FTC portal, CFPB FCRA portal, OFAC SDN API) and alerts your CISO immediately when any endpoint goes unreachable. Uses $getWorkflowStaticData for deduplication — one alert per 15-minute window, not one per poll cycle.

Each alert message includes the specific regulatory obligation that depends on that endpoint (e.g., NYDFS portal down = §500.17 filing process unavailable; OFAC SDN API down = screening gap that creates exposure for all new transactions during the outage).

{
  "name": "InsurTech Regulatory API Health Monitor",
  "nodes": [
    {
      "id": "sched1",
      "name": "Every 3 Minutes",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 3
            }
          ]
        }
      }
    },
    {
      "id": "fn1",
      "name": "Dedup Check",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        300
      ],
      "parameters": {
        "jsCode": "const store = $getWorkflowStaticData('global');\nconst key = 'last_alert_' + new Date().toISOString().slice(0,16);\nif (store[key]) return [];\nstore[key] = true;\nreturn $input.all();"
      }
    },
    {
      "id": "http1",
      "name": "NAIC Data Security Portal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        640,
        100
      ],
      "parameters": {
        "method": "GET",
        "url": "https://content.naic.org/sites/default/files/inline-files/cmte_e_it_exam_cybersecurity_model_668.pdf",
        "options": {
          "timeout": 10000
        },
        "continueOnFail": true
      }
    },
    {
      "id": "http2",
      "name": "NYDFS Cybersecurity Portal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        640,
        240
      ],
      "parameters": {
        "method": "GET",
        "url": "https://www.dfs.ny.gov/industry_guidance/cybersecurity",
        "options": {
          "timeout": 10000
        },
        "continueOnFail": true
      }
    },
    {
      "id": "http3",
      "name": "GLBA Safeguards FTC Portal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        640,
        380
      ],
      "parameters": {
        "method": "GET",
        "url": "https://www.ftc.gov/business-guidance/privacy-security/gramm-leach-bliley-act",
        "options": {
          "timeout": 10000
        },
        "continueOnFail": true
      }
    },
    {
      "id": "http4",
      "name": "FCRA Consumer Finance Portal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        640,
        520
      ],
      "parameters": {
        "method": "GET",
        "url": "https://www.consumerfinance.gov/compliance/compliance-resources/other-applicable-requirements/fair-credit-reporting-act/",
        "options": {
          "timeout": 10000
        },
        "continueOnFail": true
      }
    },
    {
      "id": "http5",
      "name": "OFAC SDN Screening API",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        640,
        660
      ],
      "parameters": {
        "method": "GET",
        "url": "https://ofac.treasury.gov/faqs/topic/1586",
        "options": {
          "timeout": 10000
        },
        "continueOnFail": true
      }
    },
    {
      "id": "if1",
      "name": "Any Endpoint Down?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        860,
        380
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": false,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "leftValue": "={{ $('NAIC Data Security Portal').item.json.error }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "isNotEmpty"
              }
            },
            {
              "leftValue": "={{ $('NYDFS Cybersecurity Portal').item.json.error }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "isNotEmpty"
              }
            },
            {
              "leftValue": "={{ $('GLBA Safeguards FTC Portal').item.json.error }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "isNotEmpty"
              }
            }
          ]
        }
      }
    },
    {
      "id": "em_alert",
      "name": "Alert \u2014 Regulatory Portal Down",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        1060,
        260
      ],
      "parameters": {
        "fromEmail": "monitor@yourinsurtech.com",
        "toEmail": "ciso@yourinsurtech.com",
        "subject": "[InsurTech ALERT] Regulatory Portal Unreachable \u2014 NAIC/NYDFS/GLBA Monitor",
        "emailType": "text",
        "message": "REGULATORY PORTAL HEALTH ALERT\n\nTime: {{ $now.toISO() }}\n\nEndpoint status:\n- NAIC Data Security Portal: {{ $('NAIC Data Security Portal').item.json.error || 'OK' }}\n  Rule: NAIC Model Law #668 \u2014 22+ state adoption, cybersecurity program requirements\n- NYDFS Portal: {{ $('NYDFS Cybersecurity Portal').item.json.error || 'OK' }}\n  Rule: 23 NYCRR \u00a7500.17 \u2014 material cybersecurity event 72h notification\n- GLBA FTC Portal: {{ $('GLBA Safeguards FTC Portal').item.json.error || 'OK' }}\n  Rule: 16 CFR \u00a7314 \u2014 TPSP written contract + annual safeguards oversight\n- FCRA Portal: {{ $('FCRA Consumer Finance Portal').item.json.error || 'OK' }}\n  Rule: 15 USC \u00a71681 \u2014 adverse action 5BD, reinvestigation 30d\n- OFAC SDN: {{ $('OFAC SDN Screening API').item.json.error || 'OK' }}\n  Rule: OFAC SDN screening for policyholders and claims payees\n\nAction required: verify regulatory guidance availability before processing policyholder updates or claims decisions that rely on current regulatory portal data."
      }
    }
  ],
  "connections": {
    "Every 3 Minutes": {
      "main": [
        [
          {
            "node": "Dedup Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Dedup Check": {
      "main": [
        [
          {
            "node": "NAIC Data Security Portal",
            "type": "main",
            "index": 0
          },
          {
            "node": "NYDFS Cybersecurity Portal",
            "type": "main",
            "index": 0
          },
          {
            "node": "GLBA Safeguards FTC Portal",
            "type": "main",
            "index": 0
          },
          {
            "node": "FCRA Consumer Finance Portal",
            "type": "main",
            "index": 0
          },
          {
            "node": "OFAC SDN Screening API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Any Endpoint Down?": {
      "main": [
        [
          {
            "node": "Alert \u2014 Regulatory Portal Down",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Workflow 3: InsurTech Compliance Deadline Tracker

This daily weekday workflow tracks 12 compliance deadline types and sends email alerts when any deadline falls within 30 days:

  • NYDFS_500_ANNUAL_CERTIFICATION — 23 NYCRR §500.22 annual certification due April 15
  • GLBA_ANNUAL_WISP_REVIEW — 16 CFR §314.4(a) annual written information security program update
  • NAIC_MODEL_LAW_RISK_ASSESSMENT — NAIC Model Law #668 §4 annual risk assessment
  • NAIC_MODEL_LAW_TPSP_REVIEW — Model Law #668 §14 third-party service provider annual review
  • FCRA_REINVESTIGATION — 15 USC §1681i dispute reinvestigation 30-day deadline
  • FCRA_ADVERSE_ACTION_NOTICE — 15 USC §1681m adverse action notice 5-business-day clock
  • NYDFS_500_PENETRATION_TEST — 23 NYCRR §500.5(b)(2) annual penetration test
  • STATE_INSURANCE_EXAM_RESPONSE — state insurance department examination response (30-90 days)
  • SURPLUS_LINES_STAMPING_FILING — surplus lines stamping office filing (30-60 days from policy effective date)
  • OFAC_SCREENING_QUARTERLY — quarterly full re-screen of policyholder and claims payee database
  • SOC2_TYPE2_RENEWAL — annual SOC 2 Type II audit renewal
  • PENTEST_ANNUAL — annual penetration test (NYDFS §500.5 + cyber insurance underwriter requirement)
{
  "name": "InsurTech Compliance Deadline Tracker",
  "nodes": [
    {
      "id": "sched1",
      "name": "Weekdays 8AM",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * 1-5"
            }
          ]
        }
      }
    },
    {
      "id": "fn1",
      "name": "Check All Deadlines",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        300
      ],
      "parameters": {
        "jsCode": "const today = new Date();\nconst deadlines = [\n  { type: 'NYDFS_500_ANNUAL_CERTIFICATION', desc: 'NYDFS 23 NYCRR \u00a7500.22 annual certification \u2014 due April 15 each year', rule: '23 NYCRR \u00a7500.22', days: Math.ceil((new Date(today.getFullYear(),3,15) - today)/(86400000)) },\n  { type: 'GLBA_ANNUAL_WISP_REVIEW', desc: 'GLBA Safeguards Rule 16 CFR \u00a7314 annual written information security program (WISP) review and update', rule: '16 CFR \u00a7314.4(a)', days: 365 },\n  { type: 'NAIC_MODEL_LAW_RISK_ASSESSMENT', desc: 'NAIC Data Security Model Law #668 \u00a74 annual risk assessment', rule: 'NAIC Model Law #668 \u00a74', days: 365 },\n  { type: 'NAIC_MODEL_LAW_TPSP_REVIEW', desc: 'NAIC Model Law #668 \u00a714 third-party service provider security review \u2014 annual oversight required', rule: 'NAIC Model Law #668 \u00a714', days: 365 },\n  { type: 'FCRA_REINVESTIGATION', desc: 'FCRA \u00a71681i dispute reinvestigation \u2014 30 days from consumer dispute receipt (45 with supplemental info)', rule: '15 USC \u00a71681i', days: 30 },\n  { type: 'FCRA_ADVERSE_ACTION_NOTICE', desc: 'FCRA adverse action notice \u2014 5 business days from adverse decision based on consumer report', rule: '15 USC \u00a71681m', days: 5 },\n  { type: 'NYDFS_500_PENETRATION_TEST', desc: 'NYDFS 23 NYCRR \u00a7500.5(b)(2) annual penetration test', rule: '23 NYCRR \u00a7500.5(b)(2)', days: 365 },\n  { type: 'STATE_INSURANCE_EXAM_RESPONSE', desc: 'State insurance department examination response \u2014 varies 30-90 days by state', rule: 'State Insurance Code', days: 30 },\n  { type: 'SURPLUS_LINES_STAMPING_FILING', desc: 'Surplus lines stamping office filing \u2014 30-60 days from policy effective date (state-specific)', rule: 'NRRA + state surplus lines law', days: 30 },\n  { type: 'OFAC_SCREENING_QUARTERLY', desc: 'OFAC SDN list quarterly full re-screen of policyholder and claims payee database', rule: '31 CFR \u00a7501.603', days: 90 },\n  { type: 'SOC2_TYPE2_RENEWAL', desc: 'SOC 2 Type II annual audit renewal', rule: 'AICPA SOC 2', days: 365 },\n  { type: 'PENTEST_ANNUAL', desc: 'Annual penetration test for insurance SaaS \u2014 required by NYDFS \u00a7500.5 and cyber insurance underwriters', rule: 'NYDFS \u00a7500.5 / cyber UW', days: 365 }\n];\nreturn deadlines.filter(d => d.days <= 30).map(d => ({json: d}));"
      }
    },
    {
      "id": "if1",
      "name": "Any Due Soon?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        640,
        300
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": false,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "leftValue": "={{ $input.all().length }}",
              "rightValue": 0,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            }
          ]
        }
      }
    },
    {
      "id": "em1",
      "name": "Send Deadline Alerts",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        840,
        180
      ],
      "parameters": {
        "fromEmail": "compliance@yourinsurtech.com",
        "toEmail": "cco@yourinsurtech.com",
        "subject": "[InsurTech] Compliance Deadlines Due Within 30 Days \u2014 {{ $input.all().length }} Items",
        "emailType": "text",
        "message": "INSURTECH COMPLIANCE DEADLINE ALERT\n\nItems due within 30 days:\n\n{{ $input.all().map(item => `- ${item.json.type} (${item.json.days}d): ${item.json.desc}\\n  Rule: ${item.json.rule}`).join('\\n\\n') }}\n\nAction: review each deadline and assign owner. NYDFS \u00a7500.22 annual certification and NAIC Model Law #668 risk assessment are regulatory obligations with state insurance department examination exposure if missed.\n\nCompliance dashboard: https://stripeai.gumroad.com"
      }
    }
  ],
  "connections": {
    "Weekdays 8AM": {
      "main": [
        [
          {
            "node": "Check All Deadlines",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check All Deadlines": {
      "main": [
        [
          {
            "node": "Any Due Soon?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Any Due Soon?": {
      "main": [
        [
          {
            "node": "Send Deadline Alerts",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Workflow 4: InsurTech Compliance Incident Pipeline

This webhook-triggered incident routing workflow handles 8 incident types with pre-calculated response windows:

Incident Type Deadline Authority
NYDFS_500_CYBERSECURITY_EVENT 72 hours from determination 23 NYCRR §500.17(a)
NAIC_MODEL_LAW_CYBERSECURITY_EVENT 72 hours per affected state (250+ residents) NAIC Model Law #668 §8
GLBA_NPI_BREACH 30 days (FTC guidance) + parallel state notifications 16 CFR §314.4(h)
OFAC_SANCTIONS_MATCH IMMEDIATE — block + 10-day OFAC report 31 CFR §501.603
FCRA_ADVERSE_ACTION_MISSED 5 business days from adverse decision 15 USC §1681m
STATE_INSURANCE_EXAM_FINDING 30-90 days (state-specific response window) State Insurance Code
SURPLUS_LINES_FILING_LAPSE 30-60 days (state-specific cure period) NRRA + state law
DATA_BREACH_CONSUMER_FINANCIAL 72h NYDFS/NAIC + 30d GLBA customer notification Dual obligation

The NYDFS_500_CYBERSECURITY_EVENT handler is the most time-critical: it fires the moment you determine materiality, starts the 72-hour clock explicitly in the notification email, and lists all parallel state notifications that may also be required.

{
  "name": "InsurTech Compliance Incident Pipeline",
  "nodes": [
    {
      "id": "wh1",
      "name": "Incident Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        240,
        300
      ],
      "parameters": {
        "path": "insurtech-incident",
        "responseMode": "responseNode"
      }
    },
    {
      "id": "res1",
      "name": "Respond 200",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        440,
        180
      ],
      "parameters": {
        "responseCode": 200,
        "responseData": "allEntries"
      }
    },
    {
      "id": "sw1",
      "name": "Route by Incident Type",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        640,
        300
      ],
      "parameters": {
        "mode": "rules",
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "NYDFS_500_CYBERSECURITY_EVENT",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "NYDFS_72H"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "GLBA_NPI_BREACH",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "GLBA_30D"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "OFAC_SANCTIONS_MATCH",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "OFAC_IMMEDIATE"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "NAIC_MODEL_LAW_CYBERSECURITY_EVENT",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "NAIC_72H"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "FCRA_ADVERSE_ACTION_MISSED",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "FCRA_5BD"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "STATE_INSURANCE_EXAM_FINDING",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "STATE_EXAM"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "SURPLUS_LINES_FILING_LAPSE",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "SURPLUS"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": false,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "leftValue": "={{ $json.incident_type }}",
                    "rightValue": "DATA_BREACH_CONSUMER_FINANCIAL",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ]
              },
              "renameOutput": true,
              "outputKey": "BREACH_DUAL"
            }
          ]
        }
      }
    },
    {
      "id": "em_nydfs",
      "name": "NYDFS \u00a7500.17 \u2014 72h Notification Clock",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        40
      ],
      "parameters": {
        "fromEmail": "compliance@yourinsurtech.com",
        "toEmail": "ciso@yourinsurtech.com,cco@yourinsurtech.com",
        "subject": "[CRITICAL] NYDFS \u00a7500.17 \u2014 72-Hour Cybersecurity Notification Clock STARTED",
        "emailType": "text",
        "message": "NYDFS 23 NYCRR \u00a7500.17 NOTIFICATION CLOCK\n\nClock started: {{ $now.toISO() }}\nDeadline: {{ $now.plus({hours:72}).toISO() }}\nIncident: {{ $json.incident_description }}\n\nNYDFS \u00a7500.17(a) requires notification to the Superintendent of Financial Services within 72 hours of DETERMINING that a material cybersecurity event has occurred. Determination = this moment.\n\nImmediate actions required:\n1. Designate incident response lead\n2. Preserve all logs and audit trails (\u00a7500.6 requires 6-year retention)\n3. Assess scope: does event affect NY-resident policyholders?\n4. Prepare NYDFS Cybersecurity Event Notice at: https://www.dfs.ny.gov/apps_and_licensing/insurance_companies/cybersecurity_reporting\n5. Brief CISO and legal counsel within 2 hours\n\nParallel notifications that may be required:\n- NAIC Model Law #668 states (if >250 residents affected per state): 72h per state notification\n- GLBA Safeguards Rule 16 CFR \u00a7314.4(h): notify affected customers 'as expeditiously as possible'\n- State insurance commissioner notifications (varies by state)\n\nDo NOT delay notification pending completion of forensic investigation. \u00a7500.17 clock runs from determination of materiality, not completion of review.\n\nIncident dashboard: https://stripeai.gumroad.com"
      }
    },
    {
      "id": "em_glba",
      "name": "GLBA NPI Breach \u2014 30-Day Clock",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        160
      ],
      "parameters": {
        "fromEmail": "compliance@yourinsurtech.com",
        "toEmail": "cco@yourinsurtech.com,legal@yourinsurtech.com",
        "subject": "[URGENT] GLBA NPI Breach \u2014 30-Day Customer Notification Clock",
        "emailType": "text",
        "message": "GLBA NPI BREACH NOTIFICATION\n\nEvent time: {{ $json.event_time }}\nNPI affected: {{ $json.npi_description }}\nCustomers affected: {{ $json.customer_count }}\n\nGLBA Safeguards Rule 16 CFR \u00a7314.4(h): covered financial institutions must notify affected customers of NPI breaches as expeditiously as possible. FTC interpretive guidance: 30 days is the outer limit for notification unless law enforcement delay requested.\n\nAdditional notifications required:\n- State insurance commissioners: most Model Law #668 states require notification within 72 hours if >250 residents affected\n- State data breach laws: 47 states have their own data breach notification laws with timelines ranging from immediate to 90 days\n- FTC notification: \u00a7314.4(h)(2) requires notification to the FTC as well as affected customers\n\nAction: initiate breach response protocol. Identify all NPI categories exposed (policyholder names, policy numbers, SSNs, financial account information, health data for life/health carriers). Draft customer notification letters.\n\nCompliance support: https://stripeai.gumroad.com"
      }
    },
    {
      "id": "em_ofac",
      "name": "OFAC Sanctions Match \u2014 IMMEDIATE",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        280
      ],
      "parameters": {
        "fromEmail": "compliance@yourinsurtech.com",
        "toEmail": "bso@yourinsurtech.com,legal@yourinsurtech.com",
        "subject": "[IMMEDIATE] OFAC SDN Match \u2014 Block and Freeze Required",
        "emailType": "text",
        "message": "OFAC SANCTIONS MATCH \u2014 IMMEDIATE ACTION\n\nMatch time: {{ $now.toISO() }}\nMatched entity: {{ $json.matched_entity }}\nSDN category: {{ $json.sdn_category }}\nTransaction/policy: {{ $json.transaction_id }}\n\nOFAC regulations (31 CFR Part 501) prohibit any transaction with a Specially Designated National. Violation penalties: civil up to $330,947 per transaction; criminal up to $1M + 20 years imprisonment.\n\nImmediate actions:\n1. Block the transaction / freeze the policy or claim payment NOW\n2. Do NOT notify the SDN-matched party (tipping off is itself a sanctions violation)\n3. Report to OFAC within 10 days via OFAC's online reporting system at: https://ofac.treasury.gov/ofac-reporting-and-license-application-forms\n4. Preserve all records related to the blocked transaction\n5. Legal review: determine if voluntary self-disclosure is appropriate\n\nNote: cloud iPaaS routing sanctions screening results creates a risk that match data is accessible to non-US-person cloud employees before your BSO reviews it. Self-hosted n8n keeps sanctions match data inside your compliance perimeter.\n\nBSO hotline: [INSERT DIRECT LINE]\nOFAC hotline: 1-800-540-6322"
      }
    },
    {
      "id": "em_naic",
      "name": "NAIC Model Law \u2014 72h State Notification",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        900,
        400
      ],
      "parameters": {
        "fromEmail": "compliance@yourinsurtech.com",
        "toEmail": "cco@yourinsurtech.com",
        "subject": "[URGENT] NAIC Data Security Model Law #668 \u2014 72-Hour State Commissioner Notification",
        "emailType": "text",
        "message": "NAIC DATA SECURITY MODEL LAW #668 \u2014 STATE NOTIFICATION REQUIRED\n\nEvent: {{ $json.incident_description }}\nAffected states: {{ $json.affected_states }}\nEstimated residents affected: {{ $json.resident_count }}\n\nNAIC Model Law #668 \u00a78: licensees must notify the state insurance commissioner within 72 hours of determining a cybersecurity event that affects more than 250 residents of the state.\n\n22+ states have adopted Model Law #668 as of 2025 (including NY, OH, SC, MI, NH, CT, MO, IN, MN, WI, CO, MS, TX, RI, MD, ID, DC, AR, IA, KY, VT, ME, MT). Check adoption status for each affected state.\n\nFor NY-licensed entities: NYDFS \u00a7500.17 is the parallel notification with the same 72-hour clock \u2014 file both simultaneously.\n\nState notification portals:\n- NY NYDFS: https://www.dfs.ny.gov/apps_and_licensing/insurance_companies/cybersecurity_reporting\n- Other states: use NAIC NIPR portal or state-specific filing systems\n\nCompliance support: https://stripeai.gumroad.com"
      }
    }
  ],
  "connections": {
    "Incident Webhook": {
      "main": [
        [
          {
            "node": "Respond 200",
            "type": "main",
            "index": 0
          },
          {
            "node": "Route by Incident Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Incident Type": {
      "main": [
        [
          {
            "node": "NYDFS \u00a7500.17 \u2014 72h Notification Clock",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "GLBA NPI Breach \u2014 30-Day Clock",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OFAC Sanctions Match \u2014 IMMEDIATE",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "NAIC Model Law \u2014 72h State Notification",
            "type": "main",
            "index": 0
          }
        ],
        [],
        [],
        [],
        []
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Workflow 5: InsurTech Weekly Compliance KPI Dashboard

This Monday morning workflow builds a KPI report segmented by all 7 customer tiers and tracks 6 compliance activity metrics: NYDFS incidents (7d), GLBA incidents (7d), OFAC matches (7d), NAIC events (7d), open deadlines (30d), and new customers (7d). Sent to CEO with CCO and CISO copied.

{
  "name": "InsurTech Weekly Compliance KPI Dashboard",
  "nodes": [
    {
      "id": "sched1",
      "name": "Monday 8AM",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * 1"
            }
          ]
        }
      }
    },
    {
      "id": "fn1",
      "name": "Build KPI Report",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        300
      ],
      "parameters": {
        "jsCode": "const store = $getWorkflowStaticData('global');\nconst now = new Date();\nconst kpi = {\n  week: now.toISOString().slice(0,10),\n  mrr_by_tier: {\n    enterprise_carrier: store.mrr_carrier || 0,\n    mga_platform: store.mrr_mga || 0,\n    claims_management: store.mrr_claims || 0,\n    policy_admin: store.mrr_policy_admin || 0,\n    insurance_analytics: store.mrr_analytics || 0,\n    surplus_lines: store.mrr_surplus || 0,\n    startup: store.mrr_startup || 0\n  },\n  total_mrr: Object.values({enterprise_carrier: store.mrr_carrier || 0, mga_platform: store.mrr_mga || 0, claims_management: store.mrr_claims || 0, policy_admin: store.mrr_policy_admin || 0, insurance_analytics: store.mrr_analytics || 0, surplus_lines: store.mrr_surplus || 0, startup: store.mrr_startup || 0}).reduce((a,b) => a+b, 0),\n  nydfs_incidents_7d: store.nydfs_incidents_7d || 0,\n  glba_incidents_7d: store.glba_incidents_7d || 0,\n  ofac_matches_7d: store.ofac_matches_7d || 0,\n  naic_events_7d: store.naic_events_7d || 0,\n  open_deadlines_30d: store.open_deadlines || 0,\n  new_customers_7d: store.new_customers_7d || 0\n};\nstore.mrr_prev = kpi.total_mrr;\nreturn [{json: kpi}];"
      }
    },
    {
      "id": "em1",
      "name": "Send Weekly KPI",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2,
      "position": [
        640,
        300
      ],
      "parameters": {
        "fromEmail": "analytics@yourinsurtech.com",
        "toEmail": "ceo@yourinsurtech.com",
        "ccEmail": "cco@yourinsurtech.com,ciso@yourinsurtech.com",
        "subject": "[InsurTech] Weekly Compliance KPI \u2014 {{ $json.week }}",
        "emailType": "text",
        "message": "INSURTECH WEEKLY COMPLIANCE KPI\nWeek: {{ $json.week }}\n\nMRR BY TIER:\n- Enterprise Carrier: ${{ $json.mrr_by_tier.enterprise_carrier }}\n- MGA Platform: ${{ $json.mrr_by_tier.mga_platform }}\n- Claims Management: ${{ $json.mrr_by_tier.claims_management }}\n- Policy Administration: ${{ $json.mrr_by_tier.policy_admin }}\n- Insurance Analytics: ${{ $json.mrr_by_tier.insurance_analytics }}\n- Surplus Lines: ${{ $json.mrr_by_tier.surplus_lines }}\n- InsurTech Startup: ${{ $json.mrr_by_tier.startup }}\nTOTAL MRR: ${{ $json.total_mrr }}\n\nCOMPLIANCE ACTIVITY (7 DAYS):\n- NYDFS \u00a7500.17 events: {{ $json.nydfs_incidents_7d }}\n- GLBA NPI incidents: {{ $json.glba_incidents_7d }}\n- OFAC SDN matches: {{ $json.ofac_matches_7d }}\n- NAIC Model Law events: {{ $json.naic_events_7d }}\n- Open deadlines (30d): {{ $json.open_deadlines_30d }}\n- New customers: {{ $json.new_customers_7d }}\n\nCompliance automation: https://stripeai.gumroad.com"
      }
    }
  ],
  "connections": {
    "Monday 8AM": {
      "main": [
        [
          {
            "node": "Build KPI Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build KPI Report": {
      "main": [
        [
          {
            "node": "Send Weekly KPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Why this matters: the GLBA TPSP math

GLBA §314.4(f) doesn't have a per-violation civil penalty like HIPAA or NYDFS §500. But FTC enforcement actions against financial institutions that failed to implement adequate information security programs consistently result in multi-year consent orders requiring third-party audits at the company's expense — typically $200,000–$500,000 per audit cycle.

The structural argument: cloud iPaaS routing NPI creates a TPSP relationship that:

  • Requires a written contract before any NPI flows
  • Requires annual oversight documentation in your WISP
  • Creates an FTC examination finding if either obligation is missing
  • Creates parallel state insurance commissioner exposure under NAIC Model Law #668 §14

Self-hosted n8n eliminates the TPSP relationship. The automation layer becomes part of your own information systems — subject to your WISP, not an entry in it.


Self-hosting comparison

Obligation Cloud iPaaS Self-Hosted n8n
GLBA §314.4(f) TPSP written contract Required before NPI flows Not applicable — your own system
GLBA annual TPSP oversight Annual review + WISP update Not applicable
NAIC Model Law #668 §14 iPaaS = unlisted TPSP = exam finding Inside your WISP boundary
NYDFS §500.17 incident notification iPaaS SLA consumes your 72h window First alert goes to your CISO
OFAC sanctions data Match data on cloud servers Match data inside your perimeter

All 5 workflows are available at stripeai.gumroad.com.

This article describes workflow architecture patterns. It is not legal advice. Consult qualified insurance regulatory counsel for compliance determinations.

Top comments (0)