How to migrate from Splunk SOAR to Tracecat without losing response coverage
If your Splunk SOAR renewal, licensing change or data residency requirement has forced a decision, plan on rebuilding playbooks and integrations in Tracecat, not copying them. Splunk SOAR playbooks are Python-based and its apps and assets carry configuration that Tracecat does not import as-is, so the effort depends mainly on how much custom Python you run and how many apps and assets are in use. Start with an inventory before anyone estimates the work. The move is usually led by security engineering, with the platform team owning hosting and the SIEM owner owning the alert feed. Tracecat is licensed under AGPL-3.0, and code in its enterprise packages and feature gates sits under a separate paid Enterprise Edition license. Confirm with Tracecat which features you need, such as single sign-on or multi-tenant workspace management, and whether they are in the open-source edition or the Enterprise Edition before you commit. Ask legal to review AGPL-3.0 obligations for any modifications you make and host for others.
Effort and risk are highest in three places: custom Python functions, apps whose vendor integrations need rebuilding as Tracecat connectors or custom actions, and the case handling that analysts rely on day to day. Run both platforms in parallel for a defined set of playbooks, and do not retire Splunk SOAR until alert intake, containment actions and case closure have been tested end to end. Ask DeployOpen or your internal team to produce a written scope that lists each playbook, its dependencies and its acceptance test, so the migration timeline follows from that list rather than from an assumption.
Which Splunk SOAR capabilities map to Tracecat and which need rework
This table maps the main Splunk SOAR building blocks to their Tracecat equivalents and marks each as clean, needs rework or gap. Use it to scope the migration before you export anything, and confirm each connector against the prebuilt list. The main takeaway is that playbook logic and case handling move with moderate rework, while SSO, multi-tenant workspaces and any unlisted app integration need a decision first.
| Splunk SOAR capability | Tracecat equivalent | Status and what to check |
|---|---|---|
| Playbooks (Python and .tgz exports) | Tracecat workflows with webhook triggers and actions | Needs rework. Rebuild logic as workflows rather than importing archives, and test each branch against recorded inputs. |
| Apps and actions | Prebuilt connectors (more than 100) and custom actions synced from Git | Clean for listed tools. Gap for unlisted apps. Confirm each connector against the prebuilt list before planning. |
| Assets and app configurations | Connector credentials and workspace secrets | Needs rework. Asset settings must be re-entered and credentials re-issued, since they do not carry over. |
| Custom Python functions | Custom actions synced from Git | Needs rework. Rewrite each function as an action and keep it in version control. |
| Container handling | Workflow steps operating on alert and case data | Needs rework. Map each container field to a Tracecat case or workflow input and validate the output. |
| Case handling | Case management in Tracecat | Needs rework. Map statuses, severities and analyst fields to Tracecat case fields. |
| Structured tables and reference lists | Structured tables | Clean for simple lookup data. Needs rework for lists tied to Splunk SOAR custom fields. |
| User access and SSO | Authentication with SSO as an Enterprise feature | Gap on the open-source edition. Decide on SSO and role mapping before cutover. |
| Multi-tenant workspaces | Workspace management as an Enterprise feature | Gap on the open-source edition. Plan one workspace per team if you cannot license Enterprise. |
| Alert source (Splunk or another SIEM) | Webhook triggers receiving SIEM alerts | Clean if the SIEM can send webhooks. Confirm payload format and authentication with the SIEM vendor. |
What exports from Splunk SOAR and what must be rebuilt
Splunk SOAR gives you a few documented export paths, but most of what makes an installation useful lives in configuration, code and history that must be re-created. The cards below separate what can be carried out as files from what has to be entered, rewritten or archived again in Tracecat before cutover.
Playbook archives as .tgz files
On-premises Splunk SOAR exports playbooks as .tgz playbook archives from the playbook editors. Export every playbook you still run, including inactive ones, and keep the archives under version control with a record of which Splunk SOAR version produced them. These files are the starting inventory for the mapping work, but they are not directly importable into Tracecat, so treat each one as a design document to translate step by step.
Classic editor playbooks need care
Splunk documents that the classic playbook editor was deprecated in 2024. Playbooks built in that editor may be harder to read and export cleanly than those built in the newer editor, so check which editor each playbook was built in before you plan its translation. Confirm with your Splunk account team or the Splunk documentation which export format your version produces for each editor.
Apps and assets re-entered
Apps and assets do not move as working configurations. Each integration needs a Tracecat connector or a custom action, and each asset's hostnames, service accounts and API credentials must be entered again and stored as Tracecat secrets. Build an inventory from the Splunk asset list first, record which credentials belong to which owner, and rotate anything that was shared across assets during the move.
Python functions rewritten as custom actions
Custom Python functions in Splunk SOAR have no drop-in equivalent. Rewrite each one as a Tracecat custom action with explicit inputs and outputs, then test it against a non-production system. Review every function for hardcoded paths, implicit dependencies on Splunk SOAR internals and Python 2 constructs, because these are the lines that fail silently after the move.
Case records and container history
Existing containers, case notes, artifacts and activity history are data, not configuration. Decide per record whether it is archived read-only, exported to your records system, or re-created as a Tracecat case for open work only. Export only through documented paths, and confirm with Splunk which fields and attachments survive each route before you commit to a retention plan.
Workflows and triggers reconnected
Playbook triggers that were tied to Splunk SOAR containers must be replaced by Tracecat webhook triggers or other supported inputs, and the SIEM or alert source must send events to the new endpoint. Test each trigger with sample alerts, confirm duplicate suppression behaves the same, and keep the old Splunk path running in parallel until the new workflows match expected outcomes.
The migration sequence from inventory to decommission
This sequence moves Splunk SOAR automation into Tracecat one alert source at a time, so every cutover is reversible and each step leaves a documented output. Teams finish with a decommissioned Splunk SOAR instance and a retained archive of its playbooks, apps and case history.
Inventory playbooks, apps, assets and alert sources
Export the playbook inventory from Splunk SOAR, listing each playbook with its owner, trigger, the apps and actions it calls, and how often it runs. Record every app, every asset configuration and every custom function, then list each SIEM or other source that sends containers into Splunk SOAR. The output is a playbook inventory with named owners, a dependency list of apps and assets, and a source register that shows which alerts feed which playbooks. Confirm the inventory with the people who triage alerts, because playbooks that nobody mentions are often the ones that break after cutover.
Classify playbooks by value and complexity
Sort the inventory into groups: playbooks to rebuild, playbooks to retire, and playbooks that depend on custom Python code that needs a rewrite before it can run as a Tracecat action. Mark which playbooks drive case handling, since containers and case state need their own mapping into Tracecat cases. The output is an agreed migration list with a decision and an owner for each playbook. Ask the SOC lead to sign off on retirements in writing so no active detection path disappears silently.
Rebuild a pilot workflow in a non-production Tracecat
Stand up a non-production Tracecat deployment using one of the self-hosted options the vendor documents, such as Docker Compose on a single host or Kubernetes through the Helm chart. Choose one representative playbook from the list, rebuild it as a Tracecat workflow with a webhook trigger, and recreate its integrations as Tracecat connectors or custom actions. Test it against replayed or sample alerts and compare the outcome with the Splunk SOAR run. The output is a signed-off pilot workflow, a test record and a list of integration gaps that need custom actions or a vendor check.
Run both platforms in parallel
Route copies of selected alerts to Tracecat while Splunk SOAR keeps handling production. Splunk or the other SIEM can send to both platforms through a duplicate forwarding rule or a second webhook, so analysts see results from each side. Compare case creation, enrichment results, containment actions and timestamps for each run. The output is a parallel-run log with discrepancies recorded, each one resolved or accepted by the owner. Keep Tracecat actions read-only or limited to non-destructive steps during this phase unless the change board approves otherwise.
Cut over one alert source at a time
Move each alert source to Tracecat only after its playbooks have passed the parallel run. Update the SIEM forwarding target or webhook, disable the matching Splunk SOAR playbook trigger, and confirm that new containers arrive as Tracecat cases. Keep the Splunk SOAR playbook disabled rather than deleted so the team can reverse the change. The output is an agreed cutover checklist per source, covering the forwarding change, the rollback path, the on-call contact and a sign-off from the SOC lead. Repeat until the source register shows every source on Tracecat.
Retire Splunk SOAR and archive its data
After every source has run on Tracecat for an agreed observation period, stop accepting new containers in Splunk SOAR and export the remaining data. Archive playbook exports, app and asset configuration records, custom code, audit logs and closed case history in a location your retention policy approves, and confirm that the archive can be read without a running Splunk SOAR instance. Then decommission the instance and revoke its service accounts and API keys. The output is a signed decommission record, an archive index with retention dates set by your policy, and a list of revoked credentials. Confirm retention periods with your compliance and legal teams before deletion.
Reconnecting Splunk or another SIEM as the alert source
Your SIEM keeps detecting; only the destination of its alerts changes. In the target design, Splunk or another SIEM sends alerts into Tracecat through a webhook trigger on a Tracecat workflow, and Tracecat takes over the case, enrichment and response steps that Splunk SOAR handled before. Before cutover, the alert contract has to be written down and agreed by both teams: the JSON payload fields the workflow will read, which field carries the unique alert identifier, how repeated alerts for the same event are de-duplicated, and how the SIEM's own severity or urgency values map to the severity levels your analysts use in Tracecat cases. Most migration problems in this area come from implicit assumptions about fields that the old Splunk SOAR container ingestion handled automatically, so list every field a playbook currently reads from a container and confirm it appears in the new payload.
The SIEM configuration itself belongs to the SIEM owner's team, not to the automation team. That team edits the alert action or webhook output in Splunk, or the equivalent in another SIEM, and should own the change record, the rollback step and the test alerts used to validate it. Ask them to confirm which saved searches or detection rules will send to Tracecat, whether any rules are currently excluded from Splunk SOAR and must stay excluded, and how authentication to the webhook is handled and rotated.
Run a parallel period in which Splunk SOAR and the Tracecat workflow both receive the same alerts. The check is not whether Tracecat runs, but whether both paths receive identical alerts: the same count, the same identifiers, the same severities and the same field values for a sample of detections across each rule group. Compare the two sides on a schedule your SOC agreed in advance, record every mismatch and its cause, and do not switch analysts to Tracecat cases as the primary queue until mismatches are explained and closed. Keep Splunk SOAR receiving alerts until that sign-off, so the rollback path stays intact.
Choosing a Tracecat deployment target for the migrated workload
Docker Compose on a single host is the lightest documented option. It suits evaluation, a proof of concept, or a small team that wants to run Tracecat next to its existing Splunk or other SIEM feed while playbooks are rebuilt. All components, including the API, frontend, workflow engine and data stores, share one machine, so the host is also the single point of failure and the capacity ceiling.
- Best fit: pilots, lab environments and migrations where the rebuild runs in parallel with the live Splunk SOAR instance.
- Operational load: one host to patch, back up and monitor, with no cluster skills required.
- Scaling limit: capacity and recovery depend on that one machine, so plan a larger-scale target before production cutover.
- Data stores: confirm how PostgreSQL and the S3-compatible object store are persisted and backed up on the host.
- Alert feed: confirm the webhook path from your SIEM can reach the host through your firewall rules.
Before relying on this target for production, confirm with the Tracecat documentation that the single-host layout meets your availability and backup expectations.
The AWS ECS Fargate path deploys Tracecat through Terraform into an AWS account you control. It fits organizations that already run security tooling on AWS, have Terraform practices and want managed container hosting without managing Kubernetes nodes. Your team owns the cloud account, networking, IAM roles, secrets and the Terraform state, so the shared responsibility split is explicit.
- Best fit: AWS-hosted environments with existing infrastructure-as-code review and change control.
- Managed compute: Fargate removes node patching, while your team still manages the surrounding AWS services.
- Data services: decide whether PostgreSQL and the object store are AWS-managed services or self-run components, and confirm the Terraform module supports your choice.
- Network placement: keep the webhook endpoint reachable from the SIEM and restrict administrative access to private paths.
- Recurring cost: compute, managed database, storage and logging are billed by AWS, so get a per-component estimate in writing.
Confirm the Terraform module version, the required AWS services and the Temporal deployment model against your own account and data residency rules before approving this target.
The Kubernetes option installs Tracecat with a Helm chart onto a cluster your platform team operates. It suits organizations with an established cluster, GitOps tooling and the skills to manage ingress, storage classes, secrets and upgrades. It is the usual choice when Tracecat must run beside other internal services with shared monitoring and policy controls.
- Best fit: teams with a production cluster, standard ingress and centralized observability.
- Stateful components: PostgreSQL, Temporal and object storage need persistent volumes or external services, which must be sized and backed up.
- Upgrades: version changes arrive through the chart, so pin versions and test them in a staging namespace first.
- Secrets and identity: route credentials through your existing secrets manager rather than values files in source control.
- Skills required: plan for cluster administration time, which recurs after go-live.
Confirm the chart version, the Temporal and PostgreSQL topology, and your storage backup targets with your platform team before committing to this path.
The air-gapped Kubernetes deployment is documented for environments with no runtime internet access. It serves regulated or classified networks, isolated security zones and operators who cannot allow outbound calls from the automation platform. Everything the platform needs at runtime, including container images and dependencies, must be staged into the isolated network through an approved transfer process.
- Best fit: isolated security enclaves where outbound connectivity is prohibited by policy.
- Artifact transfer: build a controlled process to bring images and chart dependencies across the boundary, with recorded approvals.
- Integrations: prebuilt connectors that call external SaaS APIs will not reach them from the enclave, so confirm which integrations must target internal endpoints.
- Updates: patching becomes a scheduled import, so align upgrade cadence with your change board.
- Evidence: keep records of every imported artifact for your assessors.
Confirm with Tracecat which components and integrations the air-gapped documentation covers, and validate the transfer process in your own environment before cutover.
What usually goes wrong in a Splunk SOAR to Tracecat move
Most failed SOAR migrations are not caused by the new platform itself. They come from assumptions made early about playbooks, credentials, alert flow and ownership, which surface only once real incidents run through the new system. The cards below cover the risks we see most often and the checks that prevent them.
Assuming playbooks port one to one
Splunk SOAR playbooks are Python-influenced visual flows that call apps and custom functions, while Tracecat workflows are built from triggers, actions and tables, with custom actions synced from Git. A playbook exported as a .tgz archive is a starting inventory, not a finished workflow. Before cutover, map each playbook to a Tracecat workflow, document every decision branch, and confirm which steps depend on Splunk-specific container or artifact fields.
Losing asset credentials in rekeying
Splunk SOAR assets hold credentials, endpoints and per-asset settings that do not travel with playbook exports. Each integration must be reconnected in Tracecat with its own secrets, and a missed credential usually fails only when a rare playbook path runs. Build an inventory of every asset, record its owner and permission scope, and store secrets in your approved secrets manager rather than in workflow definitions. Test each connection with a read-only call before any containment action is enabled.
Alert routing gaps during parallel run
During a parallel run, the SIEM may send alerts to both Splunk SOAR and Tracecat, or to neither, depending on how each forwarder and webhook was configured. Gaps are easy to miss because a quiet queue looks like a calm period. Confirm which alert source feeds each workflow, check trigger counts on both platforms for the same time window, and agree on a single cutover date for each alert type. Keep Splunk as the alert source for the migration, and document any SIEM rule that changes.
SSO and multi-tenant needs found late
Teams often discover late that single sign-on, role separation across business units or multi-tenant workspace management are required for their operating model. Per the Tracecat repository, multi-tenant workspace management and Git version control integration are Enterprise features, and the documentation describes authentication and single sign-on as enterprise capabilities. Ask Tracecat which edition covers each requirement, get the answer in writing, and decide before design begins whether the Enterprise Edition license is part of the scope and budget.
Untested custom actions
Custom Python functions from Splunk SOAR do not run unchanged in a Tracecat custom action, and a function that only fails on an edge case can pass a demo and break during an incident. Each custom action should have its own test inputs, expected outputs and error handling, including timeouts and partial failures. Run them against a non-production tenant that mirrors your real integrations, and review each change through Git before it is synced.
Unowned runbooks
A playbook without a named owner tends to break silently after a tool upgrade, a changed API or a staff move. During migration, every workflow needs an owner who approves changes, a review date, and a record of which analysts depend on it. Assign owners before cutover, add a short runbook for each workflow in your documentation system, and retire playbooks that no one can justify keeping.
How the migration changes with playbook count and starting point
A small team with a handful of playbooks on the Community License has the shortest inventory and the lowest cutover risk. The playbook count is small enough that each one can be read, rebuilt as a Tracecat workflow and tested against a sample alert before anyone depends on it. Much of the work sits in connections, because each app login and asset has to be recreated as a Tracecat integration and the alert source pointed at a webhook trigger.
- Inventory: list each playbook, the apps it calls and the assets it targets. A spreadsheet is usually enough at this size.
- Rewrite scope: short flows of lookups, enrichment and notifications are practical to rebuild by hand.
- Case handling: decide whether open cases are closed in Splunk SOAR before cutover or carried over as records in Tracecat case management.
- Cutover risk: run both systems in parallel for a short window, send the same test alerts to each and compare outcomes.
- Credentials: enter new API keys in Tracecat and retire the old ones in Splunk SOAR after cutover.
Before starting, confirm with your Splunk SOAR administrator which Community License limits apply to your instance and which playbooks run on a schedule, since scheduled playbooks are easy to miss in a manual inventory.
A large on-premises estate with many apps, assets and custom Python functions carries the most inventory and rewrite effort. Custom functions do not map one to one onto Tracecat, so each one needs a decision: rebuild it as a custom action, replace it with an existing connector or retire it. The cutover itself is usually better planned in waves than as a single switch, because each wave exposes a different set of dependencies.
- Inventory: export playbooks and catalog custom functions, internal libraries and Python dependencies before estimating anything. Ask for this inventory from the team that owns each app.
- Rewrite scope: Tracecat custom actions are synced from Git, so decide early how repositories, review and rollback will work.
- Cutover risk: group playbooks by business function and move one group at a time, keeping Splunk SOAR as the fallback for the group still in production.
- Operations: Tracecat uses Temporal for durable workflow execution, PostgreSQL and an S3-compatible object store, so the platform team needs to run those components alongside the application.
- Enterprise features: SSO, multi-tenant workspaces and Git version control integration are listed as Enterprise Edition features, so confirm licensing before designing access for each team.
Ask the Tracecat team which deployment model fits your estate, then confirm how much of the Python logic can move into actions without changes to internal dependencies.
A team already preparing a move to Splunk SOAR (Cloud) faces two migrations at once unless it chooses a target first. Splunk documents moving administration settings, apps, playbooks and custom functions to Splunk SOAR (Cloud), and it requires custom code to be converted to Python 3 before that move. Work done for the Cloud move is useful to a Tracecat move, but it is not a substitute for rewriting the code into Tracecat's action model.
- Decision point: choose the target before converting custom code, so the Python 3 effort is not repeated for a second platform.
- Reusable work: Python 3 code, documented inventories and tested playbook logic can be carried forward into Tracecat rewrites.
- Scope freeze: agree which playbooks, apps and assets are in scope for each path, and stop changes to the rest until the target is set.
- Export format: the classic playbook editor was deprecated in 2024, so confirm which playbook format your exports use before rebuilding them.
- Parallel running: keep the Cloud or on-premises instance available until the Tracecat cutover is verified.
Review the Splunk migration documentation with your Splunk contact, and confirm in writing which items the Cloud migration carries across and which items you must rebuild.
What drives the cost and duration of the move
How many playbooks and apps does a Splunk SOAR move involve?
The count of playbooks, custom functions, apps and assets sets most of the effort, so inventory them before anyone quotes a timeline. Export every playbook as a .tgz archive from the playbook table or editor, then list which apps each one calls and which assets it uses. A playbook that calls two built-in integrations is a small rebuild. A playbook that chains six apps, branches on custom Python logic and writes back to a case is a large one. Ask any party quoting the work to price the move per playbook with a complexity rating, and to show how it counted apps and assets.
How much does rewriting custom Python functions add to the move?
Custom Python code is usually the largest variable, because Tracecat does not run Splunk SOAR Python functions unchanged. Each custom function must be understood, then rebuilt as a Tracecat workflow step or a custom action. Actions can be synced from Git, which helps with version control and review, but the logic still has to be re-tested. Functions that only format data are cheap to rewrite. Functions that hold business rules, call internal APIs or handle credentials take longer. Ask for a per-function estimate with the assumptions written out.
Which costs are one-time and which recur after the move?
The move itself is one-time work, and running Tracecat afterward is recurring. One-time costs include the inventory, playbook rebuilds, asset and credential re-entry, testing, the parallel run and the cutover. Recurring costs include the servers or cloud accounts that host Tracecat, its PostgreSQL, Temporal and object storage components, staff time for upgrades and monitoring, and any support retainer. Tracecat itself is open source under AGPL-3.0, so the software line is not a license fee, but Enterprise Edition features are a separate paid license. Ask for the two groups to be quoted separately so you can compare the recurring run cost with what you pay today.
Does the move need Tracecat Enterprise Edition?
Only if your requirements include features that Tracecat lists as Enterprise features. Per the Tracecat repository, multi-tenant workspace management and Git version control integration are Enterprise features, and the documentation describes authentication and single sign-on as enterprise capabilities. If you need SSO for analysts, separate workspaces for business units, or Git-based version control, budget for the Enterprise Edition license and confirm its current terms with Tracecat. Community-edition-only deployments avoid that cost but may require workarounds that add engineering time.
How do SIEM integration changes affect the schedule?
Changing the alert source adds work that is easy to underestimate. Splunk SOAR often receives events through Splunk-specific containers, saved searches and notable event flows. Tracecat triggers workflows through webhooks, so you must confirm how Splunk or your other SIEM will send alerts, what fields arrive, and how they map to Tracecat cases. If you plan to move the SIEM at the same time, the schedule grows substantially. Ask for a written inventory of alert sources and field mappings before any build starts.
Why does testing and the parallel run take so much time?
Testing covers each rebuilt playbook against realistic alerts, plus the cases where it fails safely. A parallel run keeps Splunk SOAR and Tracecat both processing alerts for a period, so analysts can compare outcomes before you switch off the old platform. The length depends on alert volume, the number of playbooks in production and how many containment actions have side effects, such as blocking an address or disabling an account. Ask for a test plan with entry and exit criteria for the parallel run, and confirm who signs off on each playbook.
How much internal staff time does a SOAR migration need?
Internal staff time often costs more than external work, because only your analysts and engineers know which playbooks matter and what approvals they need. Expect time from SOC analysts to validate outcomes, from engineers who own the SIEM and identity systems, and from the people who approve credentials and change windows. Ask any implementation partner to name these roles, how many hours of their time the plan assumes, and when each person is needed so you can plan around existing duties.
What should I ask for in a migration quote?
A useful quote is a written, fixed scope that splits the work into phases and states its assumptions. Ask for the playbook inventory and complexity ratings, the custom function rewrite plan, the asset and credential re-entry approach, the SIEM integration work, the test plan and parallel run, cutover and rollback steps, and documentation handover. Request one-time and recurring costs as separate lines, and ask which Tracecat Enterprise features are assumed. DeployOpen plans and delivers these engagements under a written scope, and the quote follows from that scope.
How DeployOpen scopes and runs the migration
DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure, so a move from Splunk SOAR to Tracecat is handled as a defined engagement with written deliverables. The work is agreed in a fixed scope before it starts, and the Tracecat deployment, playbook mapping and SIEM reconnection stay in your cloud account, data center or air-gapped network.
How we scope
- Inventory every Splunk SOAR playbook, app, asset and custom function, and mark which ones still run in production.
- Decide which playbooks become Tracecat workflows, which become custom actions synced from Git, and which are retired.
- Confirm which Tracecat features your team needs, and whether any require the Enterprise Edition, before the scope is signed.
How we build
- Deploy Tracecat in the topology your environment supports, such as Docker Compose on a single host, Kubernetes with Helm, or air-gapped Kubernetes.
- Rebuild each mapped playbook as a Tracecat workflow with webhook triggers, then test it against replayed or sample alerts.
- Reconnect Splunk or another SIEM as the alert source and move container and case handling into Tracecat cases, with test results recorded.
How we hand over
- Deliver a playbook mapping register showing each source item, its Tracecat equivalent and its test status.
- Document the deployment, secrets handling, backup procedure and the connector configuration for each integration.
- Run a handover session with your SOC and platform engineers, then retire the Splunk SOAR path in agreed steps.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work begins.
- Ongoing support, Tracecat upgrades and continuous testing are available as a retainer after handover.
- Ask for a written quote that lists each deliverable, the environments in scope and the responsibilities that stay with your team.

