Open-source alternative to Microsoft Sentinel playbooks

Sentinel playbooks run as Azure Logic Apps workflows with separate charges. Shuffle, triggered by Wazuh alerts, can run enrichment, ticket sync, chat notification and response workflows in your own infrastructure.

On this page

Open-source alternative to Microsoft Sentinel playbooks: the short answer

Shuffle workflows triggered by Wazuh alerts can replace the enrichment, ticket sync, chat notification and response playbooks that most teams run in Sentinel. Sentinel playbooks are Azure Logic Apps workflows, and Microsoft notes that additional charges can apply because of that dependency. Those charges sit outside the Sentinel analytics bill, so a team reviewing its Sentinel spend, or planning for the move to the Microsoft Defender portal after March 31, 2027, should list every playbook and its trigger, actions and connectors before deciding what to rebuild. Shuffle is a security automation (SOAR) platform licensed under AGPL-3.0, and all of its features are available in the open-source edition.

The migration is a rebuild, not an import. Logic Apps connectors such as ServiceNow, Microsoft Teams, Slack and Microsoft Defender actions have no direct equivalent in Shuffle, so each one must be matched to a Shuffle app, either an existing app or one built from an OpenAPI specification or with the Python app SDK. Playbook logic, including conditions, retries and approval steps, must be rewritten as Shuffle workflows, and saved credentials must be re-entered and protected. Confirm each app's coverage with the Shuffle app catalog before scoping, since some Microsoft-specific actions may need custom work.

Shuffle's licensing is metered on app runs, meaning actions that actually execute, while triggers and skipped actions are not counted and users, apps and workflows are unlimited. Costs therefore grow with automation volume rather than with seats, so the team should estimate runs per alert from its playbooks and ask its own alert volume data to model them. On the infrastructure side, the Shuffle server, its OpenSearch document store and at least one Orborus runtime node must be hosted, backed up and patched by the team or its implementation partner. Keep the SHUFFLE_ENCRYPTION_MODIFIER value safe from the start, because changing it breaks every saved app authentication.

Which Sentinel playbook capability maps to which open-source component

This table maps each Sentinel playbook use case and trigger to the Shuffle workflow, Wazuh alert feed or Shuffle app that would replace it, and flags where a Microsoft connector has no direct equivalent. Read each row as a rebuild task: the open-source column names the component, and the gap column names the work that remains. Confirm each app's availability in your Shuffle version before you plan the rebuild.

Sentinel capabilityOpen-source componentWhat you rebuild or confirm
Enrichment playbookShuffle workflow with lookup apps called after a Wazuh alertRebuild each enrichment lookup as an OpenAPI-based or Python app, and confirm the threat intelligence source has an app or a generic HTTP action
Bi-directional ticket sync (for example ServiceNow)Shuffle workflow using a ticketing app or HTTP actions in both directionsConfirm whether a ServiceNow or other ITSM app exists for your version; otherwise build an app from the vendor's API specification
Teams or Slack orchestration and notificationShuffle chat or webhook actions posting alert summaries to a channelConfirm the Teams or Slack app availability; Logic Apps connector templates do not transfer, so rebuild message formats and approvals
Automated response (for example isolating an endpoint)Shuffle workflow calling response actions through Wazuh active response or an endpoint API appConfirm which response actions Wazuh active response covers on each agent operating system, and test rollback before enabling automation
Automation rule triggerWazuh alert rule match forwarded to a Shuffle webhook triggerShuffle has no Azure-native trigger, so map each automation rule condition to a Wazuh rule ID, level or group filter
Manual playbook runShuffle workflow started by an analyst from the Shuffle interfaceDefine who may run each workflow, and confirm role and SSO settings in your edition
Microsoft prebuilt connectorsShuffle apps built from OpenAPI specifications or the Python app SDKConnectors are not carried over; inventory every connector used by existing playbooks and rebuild or retire each one
Credentials for connected servicesShuffle encrypted credential store using the encryption modifier secretBack up the encryption modifier secret with the database, because changing or losing it breaks all saved app authentications

Shuffle and the alternatives for each playbook type

Sentinel playbooks cover enrichment, ticket sync, chat notification and response, and each type can be rebuilt differently. The cards below cover Shuffle as the primary option, the simpler and commercial paths, and the engineering and licensing trade-offs to check before you commit.

Shuffle as the primary option

Shuffle is a SOAR platform licensed under AGPL-3.0 that can run every playbook type from one place. Its server stores workflow data in an OpenSearch document database, and Orborus runtimes start a worker for each workflow execution. Wazuh alerts can trigger workflows directly, so enrichment, ticket sync and chat steps sit in one tool. Confirm that each Logic Apps connector you use has a Shuffle app or an OpenAPI definition you can wrap.

Apps built from OpenAPI or Python

Shuffle apps are versioned Docker containers built either in the App Creator from an OpenAPI specification or in Python with the Shuffle app SDK. OpenAPI suits REST ticketing and chat APIs with published specs. Python suits internal systems, custom enrichment and anything that needs logic beyond a single call. Before migration, list every Sentinel connector in use and check whether an existing Shuffle app covers it, because app coverage and maturity vary and you may need to write and test the rest.

Open-source and enterprise limits

Shuffle states that all features are available in the open-source edition, while paid tiers differ in feature limits, scaling and support. Since v2.1.1 those limits are actively enforced. Licensing is priced on app runs, meaning executed actions, and triggers and skipped actions are not counted. Ask Shuffle to confirm in writing which limits apply to your expected run volume, how scaling is licensed, and what support covers before you rely on the open-source edition for production response.

Engineering effort for workflows

The main recurring cost is in-house workflow engineering, not the software. Someone must build, test, version and review each playbook, rotate the credentials that Shuffle stores with AES-256 encryption, and protect the SHUFFLE_ENCRYPTION_MODIFIER secret, since losing or changing it breaks saved app authentications. Plan for a named owner and a test process before cutover. Shuffle can be deployed with Docker Compose, Docker Swarm, a hybrid cloud setup or Kubernetes, and the choice affects who operates it.

Scripted playbooks for simple cases

Some playbook types are simple enough to replace with a short script run by a Wazuh active response or a scheduled job. Examples include a single enrichment lookup or a one-way chat notice. Scripts are cheaper to start and easier to review in version control, but they lack the visual run history, retries and approvals that a workflow engine gives. Use scripts for narrow steps with stable inputs, and move anything with branching, approvals or ticket state into a workflow tool.

General automation tools and commercial SOAR

Generic workflow automation such as n8n can handle chat notification and ticket sync when the team already runs it and the security steps are light. It lacks native case and alert handling for security operations, so check that for each playbook. A commercial SOAR remains the right call when the security team needs built-in case management, vendor-supported content packs, and a contractual support path that the in-house team cannot provide. Compare total cost against your own engineering time before deciding.

How Wazuh alerts trigger Shuffle workflows

The core of this replacement is a handoff: the Wazuh server analyzes agent data with its decoders and rules, raises an alert, and Shuffle picks up that alert to start a workflow. Before you build anything, confirm how your Wazuh alerts will reach Shuffle in your version, and which trigger type your workflows will use, since the trigger options in your Shuffle build are the detail to verify against the Shuffle documentation for your release. Once a workflow is started, the runtime takes over. Shuffle's runtime component, Orborus, polls the backend for jobs, starts a worker for each workflow execution, and that worker starts the app containers that perform each action. Because each run is isolated in its own containers, a failing enrichment step is easier to trace to one app than a failure inside a single monolithic automation engine.

The Shuffle server side has three parts: a frontend, a Go backend API listening on port 5001, and an OpenSearch document database that stores workflows and execution records. Your platform team should plan for OpenSearch as a stateful dependency with its own backup and sizing decisions, separate from the Wazuh indexer. Saved app credentials and API keys, such as ticketing or chat tokens, are kept in that OpenSearch store and encrypted with AES-256 using the SHUFFLE_ENCRYPTION_MODIFIER secret. The configuration docs warn that losing or changing this value breaks every saved app authentication, so record it in your secrets manager before the first workflow is saved, back it up with the rest of the deployment, and include it in your restore test.

Which Microsoft connectors to rebuild and how

Before you rebuild anything, export each playbook as an ARM template and list every Logic Apps workflow and every API connection it references. Microsoft describes playbook templates as ARM templates that contain a Logic Apps workflow and API connections, so the connection resources in the template show which external systems and identities each playbook uses. Record the trigger, the actions, the credentials or managed identity behind each connection, and the scope it runs under. Note which playbooks run from automation rules and which run manually, because the trigger model changes how you rebuild them in Shuffle.

  • Workflows: List each Logic Apps workflow with its trigger type and its action sequence.
  • API connections: Record each connection resource, its connector type and the account or identity it uses.
  • Secrets: Identify every key, token or certificate that a connection depends on, and where it is stored today.
  • Triggers: Mark which playbooks start from Sentinel incidents or alerts and which start by hand.
  • Owners: Name the team that depends on each playbook so you can test with them.

Confirm the full list with your Azure administrator, because connections can exist without being visible in the portal view you usually check.

Running Shuffle next to Sentinel during the transition

Sentinel and Shuffle can run side by side for a while, but only if one system owns each trigger and each response action. The cards below cover what keeps Sentinel incidents and Wazuh-triggered playbooks in step, and where duplicate tickets or double responses usually come from.

Split trigger ownership by source

Decide which alert sources feed Sentinel analytics and which feed Wazuh alerts that Shuffle picks up. Write the split down per data source, not per playbook. If a Wazuh alert and a Sentinel incident describe the same host event, one of them must be the authority for ticketing and response. Review the split whenever a Microsoft connector is retired or a Wazuh agent is added to an endpoint that Sentinel already covers.

Keep Logic Apps running until cutover

Playbooks are Azure Logic Apps workflows, and automation rules still trigger them until you change those rules. During the transition, inventory every automation rule and manual playbook run that is still active. Disable a rule only after its Shuffle replacement has been tested against the same alert type. Ask whether any playbook is attached to an incident trigger that Sentinel will keep firing after the move to the Defender portal.

Prevent duplicate tickets

A Logic Apps ticket sync and a Shuffle ticket action can both open a ServiceNow or other ITSM record for one event. Use a single system of record for ticket creation, and store the external ticket ID in both platforms so each side can check for an existing record before opening a new one. Test the duplicate path with a deliberately repeated alert in a non-production tenant before you rely on it.

Guard against double response actions

Automated containment, such as disabling an account or isolating a host, must run once. Give each response action one owner and a lock or idempotency check in Shuffle, and confirm that Sentinel automation rules do not fire the same action on the same incident. Record which system executed each action in the audit trail so responders can tell them apart during a live event.

Plan around the Defender portal change

After March 31, 2027, Sentinel is available only in the Microsoft Defender portal. In that portal, Defender XDR data privacy and retention policies apply instead of Sentinel's, and the Fusion analytics rule is replaced by Defender XDR correlation. Those changes can shift which incidents Sentinel produces, so compare the incident set in the Defender portal with what your Wazuh alerts show before you retire any trigger.

Agree a cutover and rollback plan

Set a written cutover date for each playbook, with an owner who can switch the trigger back if the Shuffle workflow fails. Confirm that the Shuffle deployment has more than one Orborus node so workflows keep running if one fails, and that the SHUFFLE_ENCRYPTION_MODIFIER secret is backed up, because changing it breaks saved app authentications. Keep Logic Apps definitions exported until the last rollback window has closed.

Migrating playbooks from Logic Apps to Shuffle

This sequence moves Sentinel playbook logic out of Azure Logic Apps and into Shuffle workflows that run in your own infrastructure and start from Wazuh alerts. Each step ends with a check you can verify before the next one begins, so the Logic Apps can be switched off only after the replacements have run successfully.

  1. Inventory playbooks and automation rules

    The security operations lead exports the list of Sentinel playbooks and the automation rules that call them, including the trigger, each connector used, the owner and the last time each one ran. Playbook templates are ARM templates that contain a Logic Apps workflow and API connections, so the export should keep those definitions for reference. The inventory is complete when every automation rule maps to a playbook and every playbook has a named owner and a recorded trigger.

  2. Classify playbooks by use case

    Sort each playbook into the categories Microsoft recommends: enrichment, bidirectional ticket sync, chat notification, and automated response. Mark the ones that write changes to endpoints, identities or firewalls, because those need approval steps and tighter credential scope in Shuffle. Note which playbooks depend on Microsoft-only data sources, since those will need a different input from Wazuh. The output is a short register that lists each playbook, its category, its risk level and its target replacement.

  3. Stand up Shuffle for production

    The platform team installs Shuffle on a single server with Docker Compose for a pilot, or on Kubernetes with Helm charts for a production deployment that needs more than one host. For high availability, the Shuffle configuration docs call for an OpenSearch cluster, optional Memcached, NFS when several backends run, and more than one Orborus node. Set the SHUFFLE_ENCRYPTION_MODIFIER secret before saving any credentials, and store it in your secrets manager. The step is done when the frontend loads, the backend answers on port 5001, and a test workflow runs on an Orborus worker.

  4. Configure SSO with OpenID Connect

    The identity team connects Shuffle to your identity provider using OpenID Connect, which Shuffle added in version 1.0.0 and which Shuffle Cloud is moving toward in place of SAML. Map the groups that should be able to edit workflows separately from the groups that can only view runs, and enforce SSO for the tenant. Confirm the exact configuration keys and claim mappings in the Shuffle extensions documentation for your version. The step is complete when a test user signs in through the identity provider and sees only the permissions assigned to their group.

  5. Rebuild connectors and re-enter credentials

    Shuffle apps are built from OpenAPI specifications in the App Creator or written in Python with the Shuffle app SDK, so each Microsoft connector needs an equivalent app or a custom one for your ticketing system, chat tool and enrichment sources. Re-enter every API key and service credential in Shuffle, because saved credentials do not move from Logic Apps. Shuffle encrypts them with AES-256 using the encryption modifier, and changing or losing that value breaks every saved authentication, so record it in your key management process before entering credentials. The step is done when each app authenticates against its live system in a test run.

  6. Test in a non-production workflow

    The detection engineer builds each replacement workflow in a non-production Shuffle instance, triggered by sample Wazuh alerts from a lab agent rather than production events. Compare each output with the Sentinel run for the same input, checking ticket fields, chat messages, enrichment results and any response actions. Confirm that failed actions are logged and that a second Orborus node can take over a running workflow. The step is complete when the outputs match the approved baseline and the test record is signed off by the owner of each playbook.

  7. Switch triggers from Sentinel to Wazuh

    Change the alert source for each approved workflow so it starts from Wazuh alerts instead of Sentinel incidents. Disable the matching Sentinel automation rule only after the Shuffle workflow has run in production for a monitored period that the security team sets. Keep response actions behind the approval steps identified during classification. The step is done when each production alert produces the expected workflow run and no Sentinel automation rule still fires for the same event.

  8. Decommission Logic Apps

    Once every replacement has run in production, the platform owner disables the Logic Apps, removes the API connections that are no longer used, and records the final state in the change log. Logic Apps can incur additional charges while they exist, so confirm the billing impact with your Azure account team and remove the resources in the same change window. Keep the exported ARM templates and the playbook register in your records. The step is complete when the Azure resource list no longer contains active playbooks and the audit record links each retired playbook to its Shuffle replacement.

Questions buyers ask before replacing Sentinel playbooks

What drives the cost of replacing Sentinel playbooks?

The cost comes from three places: the Logic Apps charges you stop paying, the platform you run in their place, and the people who rebuild and test the workflows. Microsoft notes that playbooks run on Azure Logic Apps and that additional charges can apply, so the Azure line item is separate from the analytics bill and should be read on its own invoice. Shuffle's open-source edition includes all features, and its paid tiers differ in limits, scaling and support. Its licensing is metered on app runs, meaning actions that actually execute, while triggers, skipped actions, users, apps and workflows are not counted. Ask any vendor or partner for a quote that lists each playbook, its expected run volume, the connectors to rebuild and the testing included, so the one-time and recurring costs are visible.

How long does it take to rebuild playbooks on Shuffle?

Duration depends mainly on the number of playbooks, how many Microsoft connectors each one uses, and how many systems it must reach, such as ticketing, chat and identity. Simple enrichment flows are usually quicker to rebuild than response playbooks that change state in other systems, because those need approval steps, rollback logic and careful testing. Shuffle apps are built from OpenAPI specifications in the App Creator or written in Python with the app SDK, so an existing vendor API with a clear specification is faster to wrap than an undocumented one. Ask for a written scope listing each playbook and its dependencies before agreeing on a timeline. DeployOpen agrees scope, deliverables and timelines in writing before work starts.

Can an internal team rebuild Sentinel playbooks without outside help?

Yes, a team with workflow automation experience and API skills can do the work, especially if the playbook count is small. The skills that matter most are reading the existing Logic Apps definitions, handling API authentication, writing tests for each action, and running workflows safely in production. Shuffle is a SOAR platform with its own architecture to learn, including the backend, Orborus runtime and app containers. Teams that have not run it before often underestimate the time needed for credential handling and testing. A useful first step is to rebuild one low-risk enrichment playbook end to end, measure the effort, and then decide whether the rest of the migration should be internal, outsourced or split.

What does the replacement need from our environment before work starts?

Four things must be in place. First, a working Wazuh deployment that produces the alerts your playbooks should trigger on, since Shuffle workflows in this design start from Wazuh alerts. Second, a Shuffle server, which Shuffle documents as a single Docker Compose host, Docker Swarm, a hybrid with Shuffle Cloud, or Kubernetes with Helm charts. Third, service accounts or API credentials for each target system, such as the ticketing platform, chat tool and identity provider. Fourth, API access and network paths from the Shuffle runtime to those systems. Shuffle encrypts saved credentials with AES-256 using the SHUFFLE_ENCRYPTION_MODIFIER secret, and the docs warn that losing or changing that value breaks every saved app authentication, so back it up with the rest of your secrets. Confirm each item in your own environment before estimating effort.

Is Shuffle free to self-host?

Shuffle's code is licensed under AGPL-3.0, and the company states that all features are available in the open-source edition. The paid tiers differ in feature limits, scaling and support, and since version 2.1.1 those limits are actively enforced between the open-source and enterprise editions. Self-hosting therefore has no software license fee for the open-source edition, but you still pay for the server capacity, storage, staff time and any support you choose. Before you commit, check which limits affect your planned workflow count, run volume and scaling, and confirm with the vendor how they apply to your version. Review the AGPL-3.0 obligations with your legal team if you plan to modify Shuffle and offer it to others.

Does high availability need more than one Orborus node?

Yes, if workflows must keep running when one runtime node fails. Shuffle's configuration docs recommend more than one Orborus node so that work continues if one fails. Orborus polls the backend for jobs and starts a worker for each workflow execution, so a single node is a single point of failure for execution even if the backend is redundant. The same docs recommend an OpenSearch cluster for the document store, optional Memcached for a shared cache, NFS for shared files when running several backends, and scaling the backend and frontend across servers. Test failover with a real playbook before relying on it for response actions, and confirm which of these components your chosen deployment model supports.

When does a DeployOpen engagement make sense for playbook migration?

An engagement makes sense when the playbook inventory is large, when response actions touch production systems, or when your team lacks time to build and test the Shuffle runtime alongside Wazuh. DeployOpen plans, implements, integrates, hardens, backs up, upgrades and documents self-hosted open-source platforms inside your own infrastructure, and most engagements are fixed-scope with deliverables and timelines agreed in writing before work starts. DeployOpen also runs security testing, which can validate that response workflows behave correctly under failure and that credentials are protected. Ongoing support and upgrades are available as retainers. DeployOpen does not publish a price list, so a quote follows from the written scope.

Which Wazuh release should we target for a Shuffle integration?

Target the current Wazuh 4.14 release line and confirm the exact patch level in your environment before planning. Wazuh 4.14.9 was released on 14 October 2026 and 4.14.8 on 23 September 2026, and the 4.14 line has shipped patch releases roughly every one to two months. Because patches arrive regularly, plan the integration so that alert formats and rule IDs are checked after each upgrade, and keep a test environment where workflows can be validated first. Shuffle recommends the latest Docker tag for stable releases and the nightly tag only for experimental changes, so pin versions in production and record the tag you deployed.

What you give up and what you gain

The main gain is control over workflow code and where data flows. A Shuffle workflow is something your team builds, versions and reviews, and it runs on servers you choose, so enrichment lookups, ticket updates and chat messages can stay inside your network and your residency boundary. Shuffle states that all features are available in its open-source edition and that its paid tiers differ in feature limits, scaling and support. Pricing is metered on app runs, meaning actions that actually execute, while triggers and skipped actions are not counted, and users, apps and workflows are unlimited. Before cutover, ask Shuffle to confirm in writing how app runs are counted for your planned playbooks, and model the expected number of executed actions per alert, since that figure drives the metered cost. The trade-off is breadth and managed operation. Sentinel playbooks reach Microsoft connectors and Azure identities out of the box, and Logic Apps sits inside Azure's managed service. With Shuffle, every connector you use is an app that your team either installs from the existing catalog or writes from an OpenAPI specification or with the Python app SDK, then tests and maintains. Microsoft connectors such as Teams, ServiceNow and Entra-based actions need to be rebuilt or verified individually. Check each app's support status and its API credentials before you retire a playbook, and do not assume a Logic Apps connector has an equivalent with the same behavior.

After cutover, your team owns patching, scaling and credential rotation. Shuffle's server, its Go backend, its frontend, its OpenSearch document database and the Orborus runtime nodes are all yours to upgrade, and the Shuffle docs recommend the latest Docker tag for stable releases and the nightly tag for experimental changes, so the tag you pin becomes a change control decision. For availability, the docs call for an OpenSearch cluster, shared storage when running several backends, and more than one Orborus node so workflows keep running if one fails. Assign an owner for each of these in your runbook. Credential rotation needs the most care: saved app credentials and API keys are encrypted with AES-256 using the SHUFFLE_ENCRYPTION_MODIFIER secret, and losing or changing that value breaks every saved app authentication. Store that secret in your secrets manager, define who may rotate it, and test restoration before you need it.

How DeployOpen works on this

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Sentinel playbook replacement, that means mapping each Logic Apps workflow to a Shuffle workflow triggered by Wazuh alerts, with the connectors, credentials and approvals agreed in writing before work starts.

How we scope

  • Inventory every Sentinel playbook, its trigger, its automation rule and the connectors it calls
  • Classify each playbook as enrichment, ticket sync, chat notification or automated response
  • Agree in writing which Microsoft connectors are rebuilt, retired or replaced by a Shuffle app
  • Confirm which Shuffle app or OpenAPI definition covers each external system you use

How we build

  • Deploy Shuffle in the architecture your environment supports, such as Docker Compose, Swarm, hybrid or Kubernetes
  • Configure Wazuh alert triggers and map each workflow to its Wazuh rule groups and severity levels
  • Store app credentials under a managed SHUFFLE_ENCRYPTION_MODIFIER secret with documented custody
  • Test each workflow against replayed alerts and record which runs are counted under the app-run metric

How we hand over

  • Provide a workflow register listing each playbook replacement, its trigger, owner and rollback step
  • Document the Shuffle and Wazuh configuration, backup procedure and secret recovery process
  • Run a walkthrough with your SOC so analysts can edit workflows and read execution logs
  • Deliver the test records and change history needed for your internal and external reviews

How we support

  • Engagements are fixed-scope, so scope, deliverables and timelines are agreed in writing first
  • Ongoing support, upgrades and continuous testing are available as a retainer after handover
  • Plan Shuffle and Wazuh version upgrades with a test workflow run before each production change
  • Ask any quote to separate one-time build effort from recurring support, hosting and licensing costs

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.