MISP workflows and automation

Teams that publish threat intelligence through MISP often need checks that run before an event leaves the instance. This page explains how MISP workflows and automation are designed, configured and verified in infrastructure you control.

On this page

When MISP workflows and automation pay off for your team

MISP workflows automate checks and actions that run around an event, so the same standards apply every time someone publishes. A workflow can block publication when required context is missing, normalize TLP tags to one labeling scheme, keep sensitive attributes away from enrichment services, and post a notice to a webhook or chat channel once an event goes out. The problem this addresses is a familiar one. A team shares to partners or a community, and recipients receive events with thin descriptions, mixed TLP labels on related attributes, or internal values sent to an external lookup. Each of these is a process gap that a reviewer can miss on a busy day, so the real question is whether the gap recurs often enough to justify encoding the check.

A team usually needs workflows when the same mistake keeps reaching recipients and the cost of that mistake is high. Typical signals include several people or automated importers publishing to one instance, sharing with external communities where distribution and TLP errors are hard to reverse, and enrichment steps that send data to third-party services. Before building anything, list the rules your reviewers already apply and sort them into hard gates, which stop publication, and advisory checks, which only notify. Assign a named owner to each rule. Workflows without an owner tend to drift away from the sharing agreements they were meant to enforce, which makes this a governance decision as much as a technical one.

Manual review remains the better fit in several situations. A small team sharing with a closed group may publish only a few events a week, and a reviewer reading each one can catch context problems that a rule would not understand. Rules also add failure modes. A gate that blocks legitimate publication during an incident, or an enrichment step that fails without a visible error, can create more work than it removes. If the decision depends on analyst judgment, such as whether a sharing agreement covers a particular source, keep a person in that loop. Automation fits best for repetitive checks with clear pass or fail criteria, such as tag format, required fields and known sensitive attribute types.

Use the published workflow blueprints as a starting point and adapt each one to your sharing agreements. The exact behavior of the workflow editor, including which triggers, conditions and actions are available, should be confirmed against the MISP release you run, because features can differ between versions and MISP 2.5 is the recommended line for new deployments. Test each workflow on a non-production instance with sample events, including events that should be blocked, and review who holds the permission to edit workflows. Ask any partner quoting this work to list the rules in scope, the test cases and the expected effort to maintain the rules after each MISP upgrade, since that maintenance recurs while the initial build does not.

Which workflow options fit which control goal

This table compares four MISP workflow control goals by trigger point, action, main risk and the check to run in the installed version. Each row is a decision to approve before a blueprint goes live. The main takeaway is that every workflow changes what users can publish, enrich or see, so name an owner for each rule before enabling it.

Control goalTrigger and actionMain riskConfirm in the installed version
Block publication when required context is missingTrigger: publish attempt. Action: halt publication if required context fields are empty.Users receive a failed publish with an unclear reason and may look for ways to skip the check.Which fields are checked, whether admins can override the block, and whether sync pushes are also blocked.
Normalize TLP tagsTrigger: event or attribute save. Action: map legacy or free-text markings to the approved TLP tag set.A marking mapped to a looser level lowers protection without raising an alert.The taxonomy version shipped, whether TLP tags are enabled, and whether the rule runs on edit as well as create.
Exclude sensitive data from enrichmentTrigger: enrichment request on an attribute. Action: skip enrichment modules for attributes tagged or typed as sensitive.Sensitive values can still reach external services through other enabled modules or partner sites.Which modules are enabled in misp-modules, whether the filter matches tags or types, and whether skipped lookups are logged.
Post notifications to webhooks or chatTrigger: publish or tag change. Action: send event metadata to a webhook or chat channel.Event titles or attribute values reach chat tools that have weaker access control than MISP.Which payload fields are sent, whether the payload can be limited to metadata, and where the webhook credential is stored.

Starting from the published blueprints

Each published blueprint encodes a common control, but it names tags, endpoints and roles that belong to your organization. The cards below show what each blueprint is meant to do, which values you must set locally, and what to test before the workflow runs against production events.

Publish gate for required context

The publish gate holds an event back from publishing when required context is missing, such as a TLP tag, a threat level or an organization tag. Confirm which fields your policy treats as mandatory and check that the blueprint's conditions match how analysts actually fill in events. Locally, you supply the required tag names and the sync or publishing paths the gate covers. Before enabling it, test events that pass, events missing each required field, and events arriving through sync so you know how the gate handles imported data.

TLP normalization for shared events

The TLP normalization blueprint maps inconsistent or legacy TLP labels onto the values your sharing rules use, so filters and sharing groups read one vocabulary. Locally, you list the source tag variants to convert and the target TLP tag you standardize on. Confirm which TLP taxonomy version your instance loads and whether changes should reach attributes as well as events. Test on a copy of events with mixed spellings, and verify that normalization never widens distribution for events already marked as restricted.

Enrichment exclusion for sensitive data

The enrichment exclusion blueprint stops enrichment modules from querying values that must stay inside your environment, such as internal hostnames, personal data or attributes marked for restricted sharing. Locally, you define the tag or attribute type that flags an item as sensitive and the enrichment modules it must skip. Check that the exclusion covers every module that sends data to an external service, including misp-modules, and read each module's data handling notes. Test by enriching a sensitive attribute and confirming in network logs that no outbound request is made.

Chat and webhook notifications

The notification blueprint posts a message to a chat channel or webhook when a selected event is published or a chosen tag is added, so responders see changes without polling MISP. Locally, you set the endpoint, the channel, the event filters and the fields included in each message. Store endpoint secrets in your platform's credential handling rather than in the workflow definition, and confirm exactly which event data leaves your network. Test against a non-production channel, a burst of events similar to your busiest day, and a failing endpoint to see how errors and retries appear.

Which checks should block publishing in MISP and which should only warn

Each check in a MISP publishing workflow should be classed as either a block, which stops the event from being published, or a warning, which lets it go out and flags it for follow-up. Making that call check by check, before the workflow is built, matters more than the tooling itself. The useful test is simple: would a recipient act differently on this event if the field were missing or wrong? Fields that change how a partner handles the data, such as the TLP marking, distribution level and sharing scope, are strong candidates for blocking. Fields that add analytical depth, such as a threat actor name or a confidence value, often belong in a warning tier. A blocking rule protects recipients, but it also delays sharing. If every event must carry a named threat actor before it can be published, an active phishing domain or a freshly observed exploit indicator can sit in draft while an analyst searches for attribution. The indicator loses value every hour it is held, and the communities that could block it wait with it. A reasonable pattern is to block only on the fields that make an event unsafe to share, and to route attribution gaps to a warning that names the responsible analyst and a deadline for closing the gap. A warning-only rule has the opposite failure. Events with no source, no confidence value or an incomplete context can reach partner instances through synchronization, where the original author cannot follow up with each recipient. Once data has been distributed, retracting it does not guarantee removal from every copy, so the cost of an incomplete event is paid downstream. Ask your sharing partners how they handle retractions and which fields their own intake processes require, because those answers set the minimum your instance should enforce before anything leaves it. Conflicting TLP labels deserve close attention. An event marked at one level while an attribute or tag carries a more permissive marking creates a sharing risk that no amount of later clean-up can reverse. Workflows can normalize tag formatting automatically, but they cannot decide which marking is correct. A sound approach is to block publication on any unresolved conflict and route the event to a named owner with authority over the marking. Confirm which TLP taxonomy and distribution levels your MISP version exposes before writing these rules, since the checks depend on the exact values stored. Before implementation, agree the full rule set with your information sharing owners. For each check, record whether it blocks, warns or escalates, who may override it, how the override is logged, and how long a warning can stay open. Test the rules against sample events that you label as illustrative, including a fast-moving indicator and a deliberately mislabeled event, and confirm the behavior in the workflow documentation for your deployed release. The owners who answer for the data should approve the thresholds, because they carry the consequences of both delay and disclosure.

How to set up MISP workflows step by step

This sequence takes MISP workflows from a written policy to live enforcement on a production instance. Each step closes with a check you can repeat, so a blocked publish, a passing publish and a delivered notification are proven before any rule touches live sharing. Operators who follow it end with tested, documented rules and a named owner for each one.

  1. Confirm the MISP version and installation method

    Record the MISP version and installation method for both the test and production instances, then check them against the project's download page, which recommends MISP 2.5 for new deployments. Ubuntu 24.04 is the platform the project pairs with its installer, and Docker, Ansible, Puppet and RPM options are also listed. Confirm that the workflow editor and blueprints in your version behave as the documentation describes. Done when both instances report the same version and the workflow list loads on the test instance.

  2. Define the policy each workflow enforces

    Write one policy statement per workflow before anyone opens the editor. A policy names the trigger, the condition, the action and the exception path. For example, a rule might block publishing when an event has no threat level or no TLP tag (illustrative). Agree each policy with the sharing community or internal owner who will answer for it. Done when each policy fits on one page, names the event fields it reads, and has been signed off by the person accountable for false blocks.

  3. Create the workflows in a test instance

    Build each workflow on the test instance from its policy, starting from a published blueprint where one fits and saving a copy to change. Keep one workflow per policy so a failing test points to a single rule. Export or record each workflow configuration in your change system so the same version can be reapplied later. Done when every workflow is enabled on the test instance only and appears in the workflow list under the name your policy used.

  4. Run sample events through each path

    Create sample events on the test instance for each policy: one that should pass and one that should be blocked. Include a case for the exception path if your policy defines one. After each publish attempt, check the result on screen. The blocked event should stay unpublished with the workflow's message, and the passing event should publish. Where a workflow posts to a webhook or chat channel, confirm the message appears there. Done when every sample produces the outcome its policy predicts.

  5. Review the audit trail and confirm notifications

    Open the audit log for each sample run and confirm that it records the workflow that fired, the event, the action taken and the user who triggered it. Check that each webhook or chat notification reached the intended channel, and that a failed delivery is logged and visible to an administrator. Done when every run has a matching log entry and each notification has been seen in its destination.

  6. Promote the workflows to production

    Apply the same workflow configuration to the production instance through your change process, then enable one workflow at a time. Run a controlled set of harmless test events in production, using a test organization or marker agreed with the sharing community, to repeat the blocked and passing checks. Confirm the notification path again. Done when production shows the same outcomes as the test instance and the change record links to the test results.

  7. Document an owner for each rule

    Record for each workflow the policy it enforces, the owner accountable for changes and false blocks, the version it was tested against and the date of its last review. Store this where your team keeps runbooks and link it to the configuration export. Done when every enabled workflow has a named owner and a review record, and each owner has confirmed the entry.

Securing automated actions, webhook credentials and sensitive data

Workflows can tag, publish and send data without a person clicking anything, so their permissions and secrets deserve the same review as any production integration. The cards below cover the accounts that run actions, who may edit workflows, where webhook and chat credentials live, what data leaves the instance, and how automated changes are recorded.

Least-privilege automation accounts

Workflow actions run under a MISP user account, so that account's role and sharing group determine what an automated step can read, edit or publish. Create a dedicated account for each workflow family, and keep administrator accounts out of it. Check which permissions each blueprint needs, such as tagging or publishing, and remove the rest. Confirm in your version's documentation which account a workflow step runs as before you enable it on production events.

Who can edit workflows

Workflow definitions change what happens to every event that matches them, so editing rights deserve the tightest control in the instance. If you sign users in through the OidcAuth plugin, its role mapping decides which MISP role each identity receives, and the plugin assigns the first matching role by priority. Review that priority order and the identity provider groups that feed it, because a broad group can grant workflow editing unintentionally.

Storing webhook and chat credentials

Webhook URLs for chat platforms and tokens for enrichment services act as bearer secrets, so anyone who reads a workflow definition may be able to post as your integration. Decide where these values live, such as a secrets store or a restricted configuration file, and confirm whether your MISP version masks them in the interface and in exports. Keep them out of shared blueprints and out of exported workflow files that other people can read.

Rotating and revoking endpoint credentials

Chat webhooks and API tokens should have a named owner, a rotation schedule, and a tested way to revoke them. Rotation breaks any workflow that still holds the old value, so update the MISP side and the receiving platform together in a planned window. Record which workflow uses which credential, so that a leaked or retired token can be traced to its consumers quickly.

Data sent to external endpoints

A workflow that sends an attribute to an external lookup, or posts an event summary to chat, moves that data outside your control. Before enabling a step, decide which TLP levels and tags are allowed to leave, whether the attribute value or only its type should be sent, and which endpoint is approved for that data. Check the endpoint's own retention and access terms, because MISP cannot control what a third party stores.

Logging automated changes to events

Changes made by workflows should be attributable in the same way as changes made by people. Confirm in your version which audit records a workflow action creates, including the acting account, the event touched and the field changed, and whether those records can be exported to your SIEM. Test one blocked publish and one tag normalization, then check that both appear in the log with a clear cause.

What drives the cost and effort of MISP workflow automation

The cost of MISP workflow automation comes mainly from people's time: the analysts and administrators who decide what a workflow should do, the engineer who builds and tests it, and the person who keeps it correct after the sharing rules change. Hardware and licensing are rarely the deciding factor, because MISP is licensed under the GNU AGPL version 3 and the workflow work happens inside an instance you already run. Separating one-time build work from recurring rule maintenance is the most useful step when you compare your own team with a partner, because the two categories are paid for and staffed in different ways.

Discovery comes first and is often underestimated. Before any workflow is written, someone has to document the publishing rules that exist today, including which events are allowed to publish, which tags must be present, how TLP markings are applied, and which enrichment modules touch sensitive data. In many instances those rules live partly in habit and partly in a few administrators' heads. Expect discovery to take longer where several sharing groups, distribution levels or synchronized communities depend on different conventions, and ask any partner to show how they will capture and confirm that inventory before they quote build work.

Policy decisions are the second cost component and they belong to the sharing owners, not the implementer. Someone with authority must decide what a blocked publish looks like, whether a missing TLP tag is corrected automatically or rejected, which chat channel receives alerts, and who may override a block. Each open decision adds review cycles and delays build and test, so resolve them in writing first. The build and test work then covers each workflow separately: its trigger, its conditions, its action, and the test events that prove it blocks, passes or alters data as intended. Integration with chat or webhook targets adds its own testing, including credentials, rate limits, and what happens when the target is unavailable.

Documentation and handover are one-time costs that are easy to cut and expensive to skip. A handover should explain each workflow's purpose, its owner, the decisions behind it, the test cases, and how to disable it safely. Ongoing review is the recurring cost. Taxonomies, galaxies, warning lists and feeds change over time, and a workflow that normalized tags correctly last year may need new rules when a taxonomy adds or retires values. Ask any quote to state who reviews workflows, how often, and who pays for changes that follow an upstream update, because those answers determine the long-term cost more than the initial build.

Limits to confirm in your environment before you rely on automation

Automation in MISP is only as dependable as the release, blueprint, sync topology, data volume and downstream targets it runs against. Each point below is a claim to test in your own environment, with a named owner who confirms it before automation goes live.

Workflow capabilities in your release

Workflow triggers, blocking behavior and actions differ between MISP releases, and the installed version decides what you can build. Confirm which trigger points, blocking steps and actions exist in the exact version you run, using the MISP release notes for that version. The project recommends MISP 2.5 for new deployments, so record the full version string in your change record and repeat this check after every upgrade. Owner: MISP administrator.

Blueprint behavior against current docs

Published blueprints are starting points, and their behavior can drift from the documentation as the project changes. Run each blueprint you plan to use on a test instance with sample events that cover missing context, mixed TLP tags and sensitive enrichment. Compare the outcome with the documented behavior and note any step that depends on a module or setting you have not enabled. Owner: MISP administrator, with the security team that owns the publishing policy.

Sync interaction with partner instances

Workflows that change, block or tag events act on the local instance, and the results reach partners only as far as synchronization carries them. Confirm which actions alter event content that is pushed, which distribution and sharing group settings each partner expects, and whether a blocked publish can leave an event partly updated on a peer. Test these cases with a non-production sync partner before go-live. Owner: sharing community administrator and partner liaison.

Performance on large event volumes

Workflow steps can run on every event or attribute that matches a trigger, so a rule that is light on a small instance may slow publishing, enrichment or synchronization as volume grows. Load-test with a copy of your real event volume and attribute mix, including bulk imports and feed-driven events. Watch queue depth, job duration and database load, and ask the platform team which background workers run the actions and how they are sized. Owner: platform engineering team that operates the MISP host.

Chat and webhook payload acceptance

Notification steps post event data to chat tools and webhook receivers, and each target expects a specific format, field set and message size. Check that the target accepts the payload the workflow produces, including escaping of special characters, long attribute lists and TLP markings that the receiving channel may display. Send test payloads to a non-production channel and confirm that sensitive fields are excluded or masked as policy requires. Owner: integration owner for the chat or SIEM target, with the security team.

Questions teams ask before automating MISP publishing

What drives the cost of MISP workflow automation?

The main cost drivers are the number of rules, how many external systems each rule touches, and how much of your current publishing process is written down. A rule that checks for a TLP tag is small work. A rule that blocks publishing until an owner, a confidence level and a sharing group are present, then posts to a chat channel, needs design decisions, test events and sign-off from the people who own that step. Recurring costs come from keeping workflows aligned with MISP upgrades and changes to your sharing policy. Ask any quote to list each rule, each integration, the test plan and who approves the behavior before go-live, and to separate one-time build work from ongoing support.

How long does a scoped MISP workflow engagement usually take?

Duration depends mainly on rule count, the number of integrations and how settled your publishing policy is. The written scope sets the timeline, so ask for milestones before you compare offers. A small set of checks against one chat endpoint moves faster than a set that includes blocking gates, tag normalization, enrichment restrictions and several webhooks, because each integration needs its own test and access setup. Delays usually come from policy decisions that are still open, not from the workflow logic itself. Ask for a schedule that lists milestones by rule group and integration, the dependencies on your team, and the acceptance tests for each.

What must our team provide before a MISP automation project starts?

Bring the decisions and access that only your organization can make. Start with a written publishing policy: which fields are mandatory, which TLP levels map to which sharing groups, and what counts as sensitive enough to stop enrichment. Provide sample events that reflect your real traffic, with redaction or synthetic data where needed. List each chat and webhook endpoint, its owner, and whether a test channel exists. Name one accountable owner for each rule and one approver for policy changes. A non-production MISP instance with test accounts is also needed. Missing owners cause more rework than technical gaps, so confirm them before the quote is final.

Can an internal team build MISP workflows without an outside partner?

Yes, an internal team can build them if it has MISP administration skills, someone who writes and reviews the workflow logic, and time to test against sample events. Many teams start from the published blueprints and adapt them to their policy. The step that needs the most care is review. A workflow that blocks publishing incorrectly affects other organizations in shared communities, so changes need a test instance and a rollback path. Outside help tends to add value when the policy is still being defined, when several integrations must be built together, or when the internal team lacks the capacity to maintain the result through MISP upgrades. Compare an internal estimate with a written scope before deciding.

Which MISP version should a new workflow project target?

Target MISP 2.5 for any new deployment. The project recommends 2.5 for new installs, describes 2.4 as end of life with security fixes only, and advises against installing new 2.4 instances. Workflow behavior can change between releases, so pin the version you test against and record it in your change log. Confirm which blueprints and plugins your chosen version supports before you design rules around them. If you run an existing 2.4 instance, plan the upgrade as its own work item. The project provides an upgrade script for Ubuntu, but it still needs validation in your environment before you rely on it.

What usually breaks in MISP publishing workflows?

Most failures trace back to unclear inputs. A tag vocabulary that differs between teams, a missing sharing group on one event type, or a chat webhook that rejects a payload format will each stop or misroute publishing. Blocking rules also fail quietly when they are too broad, holding up routine events while the team assumes the gate is working. Test each rule with positive and negative sample events, log every block and release decision, and check how the webhook receiver reports errors. Review rules after each MISP upgrade and after each change to your sharing policy.

What should we check before a workflow publishes events to a sharing community?

Check the distribution level, the sharing group, the TLP mapping and the minimum context required for every event type the workflow can publish. Confirm that the rule reads the attribute and event fields you expect, since a field renamed or left empty by an upstream feed can change the outcome. Verify that enrichment is skipped for events marked sensitive, and that the block message tells the submitter which field is missing. Run the workflow against a copy of recent events and review each result. Record who approved the rule and the date it went live, so the decision can be traced later.

Is ongoing workflow support available after the build is complete?

Yes, ongoing support is available as a retainer, separate from the fixed-scope build. DeployOpen does not publish a price list, so the cost follows from the written scope agreed for your workflows and platform. Support work usually covers reviewing workflows after MISP upgrades, adjusting rules when your policy changes, and fixing integration failures. Ask any quote to state what the retainer includes, how changes are requested and approved, how quickly incidents are handled, and which items fall outside it. Confirm these terms in writing before you sign, since they determine how the workflows are maintained.

How DeployOpen works on this

DeployOpen approaches MISP workflows and automation as a planned change to your instance, starting from the blueprints the MISP project publishes and adapting them to your sharing rules and tagging policy. Work is done in infrastructure you control, on a MISP release your team has confirmed, and every workflow is tested before it touches live events. Engagements are fixed-scope, with deliverables agreed in writing before work starts.

How we scope

  • Record which events must be blocked from publishing when context is missing, and who decides what counts as missing.
  • Map your TLP labelling rules, including which tags are normalized, which are rejected and which sharing groups apply.
  • List the enrichment sources and data types that must never be sent to external services, with a named owner for each.

How we build

  • Start from the MISP workflow blueprints and adapt each one to your tag taxonomy, roles and event lifecycle.
  • Build and version each workflow in a staging instance, with test events covering allowed, blocked and edge-case publishing.
  • Configure webhook and chat notifications with scoped credentials and message content reviewed against your data handling rules.

How we hand over

  • Deliver a written workflow catalog covering trigger, conditions, actions, owners and the test cases behind each workflow.
  • Document how to enable, disable and roll back each workflow, and who may approve changes to it.
  • Train the people who publish events to read blocked-publish messages and fix missing context on their own.

How we support

  • Re-test workflows after each MISP upgrade, starting with the version your team confirms during scoping.
  • Retest workflows and notification paths whenever your sharing groups, feeds or chat tools change.
  • Ongoing support is available as a retainer for workflow changes, upgrades and periodic reviews of workflow behavior.

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.