Security automation for NIS2 incident reporting deadlines

Shuffle playbooks can run the NIS2 Article 23 clock, draft the early warning, notification and final report, and collect evidence as the incident is handled. This page covers what the reporting sequence requires, which open-source platforms fit, and where tooling stops and human decisions begin.

On this page

Security automation for NIS2 incident reporting deadlines starts with the 24-hour clock

NIS2 asks essential and important entities to prove they can move through a fixed reporting sequence after a significant incident, and automation can help a great deal with the first step. Under Article 23(4), an entity must submit an early warning without undue delay and within 24 hours of becoming aware of a significant incident. That early warning should say whether the incident is suspected of being caused by unlawful or malicious acts and whether it could have a cross-border impact. Within 72 hours, the entity must submit an incident notification that updates the early warning and gives an initial assessment of severity, impact and, where available, indicators of compromise. A final report follows no later than one month after the notification. An intermediate report is due only when the CSIRT or competent authority asks for it. Trust service providers face a stricter variant: they must notify significant incidents affecting their trust services within 24 hours instead of 72.

The clock starts when the entity becomes aware of the incident, so the detection and triage path is where the deadline is won or lost. A Shuffle playbook can be triggered from alerts in your SIEM or EDR, enrich the event with asset ownership and threat intelligence, check whether the affected systems fall in scope, and page the people who must decide on significance, all within minutes. Recital 102 asks that the early warning contain only what is needed to make authorities aware and let you seek help, so the automated draft should be short and fill in fields such as the suspected cause and cross-border indicators from data you already hold. Decide now who approves the early warning, which mailbox or portal it goes to, and how the timestamp of awareness is recorded, because that timestamp is what you will be asked to defend.

NIS2 creates no certificate of compliance. National competent authorities oversee compliance through inspections, security audits, security scans, information requests and administrative fines under Articles 32 to 34, and essential entities face ex ante supervision while important entities face ex post supervision. Your evidence is therefore the record of how each report was produced, not a badge. Ask your national transposition law and competent authority what format and channel they expect, because implementing detail varies by Member State. The Commission's 20 January 2026 proposal, COM(2026) 13, would amend NIS2, including a new small mid-cap category, but it still needs approval by the European Parliament and the Council, so confirm its status before you design around it.

Mapping Article 23 and Implementing Regulation 2024/2690 to Shuffle playbook steps

This table maps each NIS2 Article 23 reporting step, the trust service variant and the significant incident criteria in Implementing Regulation 2024/2690 to what the function must produce and how to build it in Shuffle with Wazuh or Security Onion inputs. Read each row as a design requirement: the clock starts at awareness, so the workflow must timestamp that moment and stage the outputs. Main takeaway: the 24-hour early warning should be a short, automated draft that a human confirms, while the 72-hour notification and one-month final report depend on evidence the playbook collects as the incident unfolds.

RequirementWhat the function must doHow to configure Shuffle and alert inputs
Article 23(4)(a): early warning within 24 hoursRecord the time of awareness, state whether malicious or unlawful acts are suspected and whether cross-border impact is possible, using minimal informationTrigger from a Wazuh alert or Security Onion Suricata alert with a high-severity rule; start a timer step at awareness; a template step fills the suspicion and cross-border fields for analyst approval
Article 23(4)(b): notification within 72 hoursUpdate the early warning, give an initial assessment of severity and impact, and list indicators of compromise where availableEnrichment actions pull affected hosts, users and IOCs from the SIEM; a timer step at 72 hours from awareness raises an escalation if no approved notification exists; the IOC list exports from the case record
Article 23(4)(c): intermediate report on requestProvide status updates when the CSIRT or competent authority asks, from the same case recordUse a manual trigger or approval-gated workflow that exports the current case timeline and status without re-running containment actions
Article 23(4)(d): final report within one monthDescribe severity, impact, threat type or likely root cause, mitigations applied and ongoing, and any cross-border impactScheduled reminder at the one-month mark from the notification; a report template step pulls the action log, approvals and enrichment results from the case record
Article 23 trust service variant: 24-hour notificationTrust service providers notify within 24 hours of awareness instead of 72 hours, so the notification timer must be set differently for that entity typeUse a per-tenant or per-workflow variable that sets the notification timer to 24 hours; confirm the classification with counsel and the national authority before deploying
Implementing Regulation 2024/2690: significant incident criteriaDecide whether an event meets the significant incident criteria for the entity's service type, which the regulation sets for DNS, cloud, data center, managed and other providersClassification step scores alerts against documented criteria and routes only matching events to the reporting path; an analyst approval gate records the decision and its rationale
Approval gates and evidence trailShow who approved each report, when it was sent and what automated actions ran, since an assessor will sample this recordRequire human approval before any external submission; log each Shuffle workflow execution and output; confirm retention with the case management and log platform before go-live

Which Shuffle deployment fits a reporting team

A single server running Shuffle under Docker Compose is the simplest option to stand up and the easiest to reason about. Everything, including the frontend, the backend API, the OpenSearch document database and the Orborus runtime, sits on one host. That simplicity is also its main weakness for reporting: if the host sits inside the same network or identity domain an attacker has reached, the tool that files the report may be affected by the incident it is reporting.

  • Continuity: One host means one failure point. A compromised hypervisor, disk or admin account takes out detection, enrichment and reporting together.
  • Inbound firewall needs: Analysts reach the backend on port 5001 and the frontend through your proxy, so inbound rules must be scoped to the reporting network.
  • High availability: The configuration docs recommend an OpenSearch cluster, several backends and more than one Orborus node. A single server cannot meet that guidance.
  • Credential safety: Saved app credentials are encrypted with the SHUFFLE_ENCRYPTION_MODIFIER secret, so back up that secret separately from the host.
  • Best fit: Pilots and non-critical playbooks, not the sole route for a 24-hour early warning.

Confirm with your own architecture team whether the host can sit outside the production identity domain and how restoration is tested before you rely on it for regulatory deadlines.

Open-source platforms that feed and run NIS2 reporting

NIS2 reporting depends on evidence collected while the incident is still moving: alerts, network traces, indicators and identity records. The platforms below cover that chain, from detection and network evidence through threat intelligence to the automation that assembles the early warning, notification and final report.

Shuffle for playbooks and reporting steps

Shuffle runs the workflows that gather alert context, enrich indicators and draft the 24-hour early warning, 72-hour notification and one-month final report. It is licensed under AGPL-3.0, so self-hosting and any modification you distribute carry source obligations to confirm with counsel. Check how app runs are counted for your expected alert volume, and who maintains the playbooks when a connected tool changes its API.

Wazuh for alerts and agent inventory

Wazuh provides the alert stream and the endpoint software inventory that show which systems were affected and when. Its core is licensed under GPL-2.0, and its dashboard includes prebuilt views for compliance frameworks such as HIPAA and NIST 800-53, which are not NIS2 views. Confirm that agent coverage reaches the systems in your NIS2 scope, including those in offline or segmented networks.

Security Onion with Suricata and Zeek

Security Onion bundles Suricata for network intrusion detection and Zeek for network analysis, producing the traffic records that show how an intrusion moved and whether cross-border systems were involved. Security Onion is licensed under the Elastic License 2.0, which has terms to review before commercial use. Sensor placement decides what the evidence can show, so confirm where taps or mirror ports can be installed in your network.

MISP and OpenCTI for indicators

MISP and OpenCTI hold the indicators of compromise that the notification must include where they are available, and they record what was shared with sector or national CSIRT communities. MISP is licensed under AGPL-3.0, while OpenCTI Community Edition is under Apache 2.0 and its Enterprise Edition is under a separate license. Decide which platform is the system of record for indicators so the figures in the report match what was sent.

Keycloak for SSO into Shuffle

Keycloak can provide OpenID Connect single sign-on to Shuffle, so analysts who draft and approve reports are identified and their actions are attributable in the audit trail. Keycloak is licensed under Apache-2.0. Check which Shuffle SSO method your version supports, confirm that SAML is being deprecated on Shuffle Cloud, and plan how reviewers and the emergency access account are managed.

Building the reporting playbook in phases

The sequence turns NIS2 reporting from a memo that someone remembers under pressure into a tested Shuffle workflow with named owners, evidence capture and approval gates. Each phase closes with an artifact the reader can show an assessor or a national authority.

  1. Confirm significant incident criteria with counsel

    Legal counsel, the CISO and the compliance lead agree which events count as significant under the national transposition law and Implementing Regulation (EU) 2024/2690, if your sector is covered by it. Record the criteria, the decision owner and the national competent authority or CSIRT you report to. The output is a signed criteria note that the playbook logic will reference, so every trigger has a documented basis.

  2. Map alert sources and owners

    List every source that can reveal an incident, including the SIEM, EDR, identity provider, cloud audit logs, network sensors and vendor notifications, and name the team that receives each one. Note which sources are reachable from Shuffle and which need a connector or a custom app built from an OpenAPI specification. The output is a source register that shows where the reporting clock can start, and who must be reached out of hours.

  3. Build the clock and reminder workflow

    Create a Shuffle workflow that records the time the entity became aware of a potential significant incident, then issues reminders against the 24-hour early warning and 72-hour notification deadlines in Article 23(4). The workflow should write its timestamps to the case record, not to a chat thread. Test it with a synthetic alert so the timestamps and reminders are confirmed before any live use. The output is a tested timer with a logged start time.

  4. Draft the early warning template

    Write the early warning template to carry only what Recital 102 expects: whether the incident is suspected of unlawful or malicious acts, and whether it could have a cross-border impact. Keep fields short so responders can complete them within the first hours without diverting effort from containment. The workflow pre-fills known facts from the alert and leaves the rest as marked fields. The output is an approved template stored with version control.

  5. Add enrichment and evidence capture

    Add Shuffle actions that enrich the alert with asset ownership, user context and threat intelligence, and that preserve the raw alert, query results and timestamps as evidence. Store each artifact with a hash and a link to the case so the later notification and final report can cite it. Confirm with the security lead which indicators of compromise can be shared, since the notification must include them where available. The output is an evidence bundle that fills the notification fields without manual copying.

  6. Add approval gates before external submission

    Insert a manual approval step before any message leaves the organization to the authority. The approver, typically the incident lead with counsel review, confirms the content, the severity assessment and the sender identity. Shuffle should log who approved, when and which version was sent. Confirm that submission credentials for reporting portals are stored under the platform's encryption controls and are limited to the people who need them. The output is a sent-message record tied to an approval.

  7. Test the workflow with tabletop exercises

    Run tabletop exercises that walk the team through a suspected significant incident from first alert to early warning, notification and approval, using the playbook as the script. Record which steps were slow, which fields were unclear and where a person had to improvise. Fix the workflow and template, then retest the changed steps. The output is an exercise report with dated findings and the changes they produced, which is evidence assessors commonly ask for.

  8. Add the final report workflow

    Extend the case so the final report, due no later than one month after the notification under Article 23(4)(d), draws on the timeline, evidence bundle and approval records already captured. Add fields for severity and impact, the likely root cause or threat type, applied and ongoing mitigations, and any cross-border impact. Ask the team to confirm whether an intermediate report has been requested by the CSIRT or authority. The output is a final report draft generated from the case, reviewed before submission.

Evidence auditors and authorities ask for and which component produces it

This table maps each evidence item a supervisor may ask for after a NIS2 significant incident to what it proves and the component that produces it. Read it as a checklist for designing the playbook, since evidence that is not written during the response is hard to reconstruct later. NIS2 issues no certificate of compliance, so this record supports inquiries from national competent authorities rather than a pass or fail result.

Evidence itemWhat it provesProducing component
First awareness timestampWhen the entity became aware of a significant incident, which starts the 24-hour and 72-hour clocks under Article 23Wazuh alert timestamp, plus the Shuffle trigger time and the case record opened by the playbook
Early warning copy and submission timeThat the early warning went out within 24 hours and contained the required indicators, such as suspected unlawful or malicious acts and cross-border impactShuffle execution log of the submission step, with the sent message and API response stored in the case
Incident notification copy and submission timeThat the 72-hour notification gave an initial assessment of severity, impact and available indicators of compromiseShuffle execution log and the stored notification document, versioned in the case record
IOC lists and their sourceWhich indicators supported the assessment, where each came from and when it was enrichedShuffle enrichment actions against MISP or OpenCTI, plus Wazuh alerts that triggered the lookups
Wazuh alert historyRaw detection evidence, rule IDs and affected agents across the incident windowWazuh indexer, which stores alerts, and the Wazuh server rules that generated them
Shuffle execution logsWhich automated actions ran, in what order, with what inputs and outputs, and whether any failedShuffle workflow execution records in the OpenSearch backend, including the worker run for each execution
Approval records for containment actionsThat a person authorized each disruptive or destructive response step before it ranShuffle approval steps and the recorded approver identity, reviewed alongside the identity provider log
Final report contentDetailed description of the incident, root cause or threat type, mitigation applied and ongoing measures, due within one month of notificationCase record assembled from the timeline, alert history and approvals, reviewed and signed by the entity's staff
Access and change records for the playbooksWho could edit or run NIS2 playbooks and which version was live during the incidentShuffle workflow version history and SSO audit logs, to be confirmed in the chosen deployment

Questions buyers ask about NIS2 reporting automation

Can open source software meet NIS2 incident reporting obligations?

Yes, the software does not decide compliance, but open-source tools can cover the reporting workflow. NIS2 Article 23 sets the sequence: an early warning within 24 hours of becoming aware of a significant incident, an incident notification within 72 hours, and a final report no later than one month after the notification. A self-hosted SOAR platform such as Shuffle can time these steps, collect the indicators and logs, and assemble the evidence as the incident progresses. Whether a given tool satisfies your national authority is a question for your legal and compliance team, and the national transposition law in each member state applies. Confirm the specific reporting channel and template your competent authority expects before you design the playbook.

What drives the cost of a NIS2 reporting automation project?

The main cost drivers are the number of playbooks, the number and complexity of integrations, and the staffing model. Each playbook needs logic for early warning, notification and final report, plus branches for cross-border impact and malicious versus accidental causes. Each connected tool needs an app or OpenAPI definition, credentials handling and testing. Shuffle's licensing is based on app runs, meaning actions that actually execute in a workflow, while triggers and skipped actions are not counted, and users, apps and workflows are unlimited, according to Shuffle's pricing article. Higher alert volume therefore raises run-based cost. Ask for a fixed-scope quote that lists playbooks, integrations, environments and who maintains the work after go-live.

How long does implementation take?

The duration depends on the agreed scope, so there is no standard timeline to quote here. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. The timeline usually depends on how many reporting paths you need, how many source systems must feed the playbooks, whether a test environment exists, and how quickly your legal and incident response teams can approve the templates. Ask the implementation partner to confirm the milestones, the testing period and the acceptance criteria in the written scope before you commit to a date.

What does the internal team need to provide?

The internal team provides decisions and access. Legal or compliance staff must confirm the significance criteria, the reporting contacts and the templates for each NIS2 stage. Security operations staff must name the alert sources, the escalation paths and the approval roles for any containment action. Platform engineers must provide hosts or cloud accounts, network paths to the tools, and secrets storage for connector credentials. Expect reviews at each stage, because a playbook that sends an early warning with the wrong content is worse than a delayed one. Put these responsibilities into the scope so both sides know who signs off each step.

Can our own team build and run these playbooks without a partner?

A capable security engineering team can build and run Shuffle playbooks, but the deciding factors are skills, time and ongoing capacity. Shuffle apps are built from OpenAPI specifications or written in Python with the Shuffle app SDK, and they run as versioned Docker containers, so someone must own that code. High availability also requires an OpenSearch cluster, more than one Orborus node and shared storage, as the Shuffle configuration docs describe. The team must also keep connectors working as vendor APIs change and test playbooks before each release. Compare the cost of these internal hours with a fixed-scope partner engagement and a retainer for upgrades and testing.

Does automation replace legal judgment on whether an incident is significant?

No. Automation can gather facts, timestamp events and draft the fields of each report, but deciding whether an incident is significant and whether it has cross-border impact is a legal and operational judgment. NIS2 Article 23 leaves that assessment to the entity, and the significance criteria are set out in Commission Implementing Regulation (EU) 2024/2690 for the sectors it covers. Design the playbook so that a named person approves each submission before it leaves your organization, and record that approval in the case file. Keep the human decision points visible in the workflow.

Which NIS2 requirements change the playbook design?

Three requirements shape the design. The early warning should contain only the information needed to make the CSIRT or authority aware, according to Recital 102, so the playbook should not force a full investigation into the first submission. The notification adds an initial assessment and indicators of compromise where available. The final report must describe root cause, mitigation and cross-border impact in detail. Trust service providers face a 24-hour notification instead of 72 hours. Confirm which entity type and sector apply to you before building the timer logic.

What tooling alone does not satisfy in NIS2 reporting

A SOAR playbook can collect evidence and draft the three NIS2 Article 23 reports on time, but several obligations still depend on people making decisions, interpreting national rules and keeping policies current. The cards below cover the parts of reporting that automation prepares but cannot finish on its own.

Significance decisions need a named person

Whether an incident is a significant incident is a judgment made against the criteria in Implementing Regulation (EU) 2024/2690 and the entity's own impact assessment. A playbook can score indicators and flag candidates, but the 24-hour clock starts when the entity becomes aware, so the approver, the escalation path and the time they were notified must be recorded. Check that the playbook has a documented approval step that pages a named role at any hour.

National transposition changes the rules

NIS2 is a directive, so the reporting channel, the authority, the form and some timing details come from each Member State's transposition law. A playbook hard-coded to one country's portal or template can fail in another market where the entity operates. Ask counsel to confirm which national authority and CSIRT receive each report and keep those endpoints in configuration, not in workflow logic.

Pending amendments to the obligations

On 20 January 2026 the Commission proposed targeted amendments to NIS2 in COM(2026) 13, including a new small mid-cap category. The proposal still needs approval by the European Parliament and the Council, so the scope and simplification measures that apply to an entity may change. Assign an owner to track the proposal and build playbook templates so that thresholds and entity categories live in reviewable settings.

Final reports need analyst judgment

The final report due no later than one month after notification must describe severity, impact, the likely root cause, applied and ongoing mitigations and any cross-border impact. Automation can gather timelines, affected hosts and indicators, but explaining root cause and judging cross-border effects requires an analyst who reviews the evidence. Confirm that the case record separates machine-collected facts from analyst conclusions, with a reviewer sign-off before submission.

Out-of-hours staffing gaps

Early warnings can fall due at night, on weekends or during public holidays, when the 24-hour clock keeps running. Playbooks can send notifications and create tasks, but someone still has to approve and submit, and to answer follow-up requests from the authority. Check the on-call rota, the backup approver for each role and whether the team can reach the reporting channel from outside the corporate network.

Documented policies under Article 21

Article 21 risk-management measures and the reporting obligations in Article 23 are assessed through the entity's documented policies, procedures and records, not through a tool's configuration alone. Incident response roles, escalation criteria, playbook change control and review dates need written owners and approval history. Ask the implementation partner how playbook versions map to policy versions, and who signs off each change before it runs in production.

How DeployOpen scopes and delivers NIS2 reporting automation

DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For NIS2 reporting automation, that means a written scope that maps each reporting stage to a Shuffle playbook, built and tested in your environment, then handed over with documentation your team can run and maintain.

How we scope

  • Confirm which entity classification applies and which national transposition law sets your reporting contacts and channels
  • Map each Article 23 stage to the alert sources, enrichment steps and evidence fields it depends on
  • Agree in writing the playbooks, integrations, deliverables and timeline, as engagements are fixed-scope

How we build

  • Deploy Shuffle in your chosen architecture, such as Docker Compose, Docker Swarm, hybrid or Kubernetes with Helm charts
  • Build playbooks that collect timestamps, affected systems and indicators for the 24-hour, 72-hour and one-month outputs
  • Store app credentials with the encryption secret handled under your own key management and tested before production

How we hand over

  • Test each workflow against agreed sample incidents and record the results for your review
  • Document playbook logic, approval gates, run limits and the steps a reporting owner takes at each deadline
  • Train your incident response and compliance staff to run, modify and review the playbooks

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover
  • Keep connectors and app versions current as upstream tools and Shuffle releases change
  • Review playbooks when national transposition rules or the Commission's NIS2 amendments take effect

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.