MISP n8n integrationAutomate MISP with n8n.
Can a workflow drive a MISP instance end to end? It can. The MISP n8n integration exposes 44 operations across 11 resources: events, attributes, event tags, feeds and more. There is no MISP trigger node, so a Schedule Trigger or a webhook opens the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the MISP n8n integration actually give you?
It puts a MISP instance behind a workflow instead of behind a browser tab. n8n ships a MISP node that talks to the MISP API with an automation key, and it exposes 44 operations spread over 11 resources: events, attributes, event tags, feeds, galaxies, noticelists, objects, organisations, tags, users and warninglists. Nothing to install, on n8n Cloud or on a self-hosted instance.
Take the first scenario, documenting something that just came in. A Schedule Trigger picks up the item, event.create opens a MISP event under the organization you choose, then attribute.create attaches the value to that event with a Type of url, text or comment. One run, one documented event, no copying between tabs.
Reporting is the second win. event.getAll with Return All switched on walks the pages of the API and hands every event to the next node, which can be Google Sheets for a weekly summary, or Postgres when the history has to be queried months later. attribute.search does the same on a narrower slice, filtered by Tags or Category.
Third, the review that happens before an event goes out. event.update adjusts Analysis and Threat Level ID while an analyst works, eventTag.add stamps the agreed tag, and event.publish closes the loop. A message to Slack at that moment tells the team the event is published.
The node covers 44 operations across 11 resources. When a workflow needs an endpoint outside that catalog, the HTTP Request node calls it directly and reuses the same credential through predefined authentication, so the automation key never gets stored twice.
Two things shape how you design these workflows. There is no MISP trigger node, so every run starts from a Schedule Trigger at a fixed interval, from an n8n Webhook (a URL another service calls), or from another tool's trigger. And any list operation stops at Limit until Return All is enabled. If you are still weighing platforms before committing, the n8n review takes the hosting question apart.
How do you connect MISP to n8n?
- 01
Generate an automation key in MISP
In MISP, API keys are called automation keys. Open Event Actions > Automation and copy the key sitting there. MISP's automation keys documentation covers how to generate more of them, which is worth doing if you would rather give each workflow its own key than share one across the whole instance.
- 02
Create the MISP credential in n8n
Open the Credentials menu in n8n and add a MISP credential. Two fields carry the connection: API Key, the automation key you just copied, and Base URL, the address of your MISP instance. A credential is created once and then reused by every workflow, and the node offers it in a dropdown instead of asking you to paste the key again.
- 03
Pick a resource and an operation
Drop the MISP node into a workflow, select the credential, then choose a resource and an operation, Event and Publish for instance. Required fields are not decorative: leave one empty and the node stops the execution. Values that come from an earlier node go in as expressions, written
{{ $json.field }}, which is how n8n reads a field off the incoming item.
What can the MISP node do?
The MISP node exposes 44 operations across 11 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add | Remove | Disable | Enable | Publish | Search | Unpublish |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Attribute | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Event | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Event Tag | ✓ | ✓ | ||||||||||
| Feed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Galaxy | ✓ | ✓ | ✓ | |||||||||
| Noticelist | ✓ | ✓ | ||||||||||
| Object | ✓ | |||||||||||
| Organisation | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| Tag | ✓ | ✓ | ✓ | ✓ | ||||||||
| User | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| Warninglist | ✓ | ✓ |
Operations index
Attribute
6 operationsCreate an attribute
attribute.createWhat you see in n8n
Notes & use cases
New values land in MISP as attributes, and this call creates one inside an event you already identified.
Key parameters
- Event UUID: the UUID of the event the attribute gets attached to, often
{{ $json.field }}from the node that created the event. - Type: three choices,
text,urlandcomment. - Value: required, so the node halts the execution while it stays empty.
- Distribution: an additional field that decides who will be able to see this event once published.
Delete an attribute
attribute.deleteWhat you see in n8n
Notes & use cases
Removal is the whole job here: the attribute disappears from the event it was attached to.
Key parameters
- Attribute ID: the UUID or the numeric ID of the attribute, both accepted.
Get an attribute
attribute.getWhat you see in n8n
Notes & use cases
Reading one attribute back gives the following nodes its full record rather than the identifier alone.
Key parameters
- Attribute ID: the UUID or numeric ID of the attribute you want.
Get many attributes
attribute.getAllWhat you see in n8n
Notes & use cases
Listing attributes without a filter returns them in a batch, one n8n item per attribute.
Key parameters
- Return All: switched on, n8n chains the pages of the API until every attribute is in; switched off, it stops at Limit.
- Limit: the maximum number of attributes returned when Return All stays off.
Get a filtered list of attributes
attribute.searchWhat you see in n8n
Notes & use cases
Search narrows the list down to the attributes that match what you pass in, instead of pulling everything and filtering afterwards.
Key parameters
- Value: the value to match, an address in the shape of
127.0.0.1for example. - Tags: a comma-separated list of tags.
- Category: restricts the search to one category.
- Use JSON to Specify Fields: turned on, the search fields are written as JSON instead of filled in the form.
Update an attribute
attribute.updateWhat you see in n8n
Notes & use cases
Editing an existing attribute happens through this operation, which leaves the fields you do not fill untouched.
Key parameters
- Attribute ID: the ID of the attribute to update.
- Distribution: an update field for who will be able to see this event once published.
- Sharing Group Name or ID: only useful when Sharing Group is the value selected in Distribution, chosen from the list or given as an expression.
Event
8 operationsCreate an event
event.createWhat you see in n8n
Notes & use cases
Every MISP event starts somewhere, and this operation opens a new one under an organization you select.
Key parameters
- Organization Name or ID: picked from the list, or given as an expression when the value comes from an earlier node.
- Information: the description of the event, up to 65535 characters.
- Threat Level ID: High, Medium, Low or Undefined.
- Analysis: the analysis maturity level, Initial, Ongoing or Complete.
Delete an event
event.deleteWhat you see in n8n
Notes & use cases
Deleting an event takes it out of the instance, and the attributes attached to it go with the event.
Key parameters
- Event ID: the UUID or numeric ID of the event.
Get an event
event.getWhat you see in n8n
Notes & use cases
Pulling one event back by its identifier hands the rest of the workflow the full record to work from.
Key parameters
- Event ID: the UUID or numeric ID of the event, accepted in either form.
Get many events
event.getAllWhat you see in n8n
Notes & use cases
Bulk reading is what this call is for: MISP returns the events, and n8n turns each one into a separate item.
Key parameters
- Return All: on, n8n follows the pages until the whole list is retrieved; off, it stops early.
- Limit: the ceiling on how many events come back while Return All is off.
Publish an event
event.publishWhat you see in n8n
Notes & use cases
Publishing moves an event into its published state, the point from which its distribution setting decides who sees it.
Key parameters
- Event ID: the UUID or numeric ID of the event to publish.
Get a filtered list of events
event.searchWhat you see in n8n
Notes & use cases
Filtering at the source keeps the run light: MISP returns only the events matching the criteria you set.
Key parameters
- Value: the value to match,
127.0.0.1for instance. - Published: a boolean filter on the published state.
- Search All: matches against any tag names, event descriptions, attribute values or attribute comments.
- Deleted: a boolean that brings deleted records into the scope.
Unpublish an event
event.unpublishWhat you see in n8n
Notes & use cases
The reverse move: the event leaves its published state and goes back to being an internal record.
Key parameters
- Event ID: the UUID or numeric ID of the event.
Update an event
event.updateWhat you see in n8n
Notes & use cases
Editing an event after the fact goes through here, field by field, without touching what you leave blank.
Key parameters
- Event ID: the UUID or numeric ID of the event to change.
- Information: the description, up to 65535 characters.
- Analysis: Initial, Ongoing or Complete.
- Distribution: who will be able to see this event once published.
Event Tag
2 operationsAdd a tag to an event
eventTag.addWhat you see in n8n
Notes & use cases
Tags are how events stay findable later, and this call attaches one to an event that already exists.
Key parameters
- Event ID: the UUID or numeric ID of the event receiving the tag.
- Tag Name or ID: chosen from the list, or given as an expression when the tag depends on the incoming item.
Remove a tag from an event
eventTag.removeWhat you see in n8n
Notes & use cases
Detaching a tag leaves the event itself alone, only the link between the two disappears.
Key parameters
- Event ID: the UUID or numeric ID of the event.
- Tag Name or ID: the tag to detach, from the list or as an expression.
Feed
6 operationsCreate a feed
feed.createWhat you see in n8n
Notes & use cases
A feed is registered in MISP with a name, a provider and a URL, and this operation writes that registration.
Key parameters
- Name: required text.
- Provider: required text.
- URL: required, in the shape of
https://example.com. - Rules: an additional field holding the filter rules for the feed.
Disable a feed
feed.disableWhat you see in n8n
Notes & use cases
Turning a feed off is a single call, and the registration stays in place for later.
Key parameters
- Feed ID: the UUID or numeric ID of the feed.
Enable a feed
feed.enableWhat you see in n8n
Notes & use cases
Switching a feed back on takes the same shape, with the identifier as the only thing to provide.
Key parameters
- Feed ID: the UUID or numeric ID of the feed to enable.
Get a feed
feed.getWhat you see in n8n
Notes & use cases
One feed, read by its identifier, with its registration returned to the next node.
Key parameters
- Feed ID: the UUID or numeric ID of the feed.
Get many feeds
feed.getAllWhat you see in n8n
Notes & use cases
The full inventory of feeds comes back here, one n8n item per feed.
Key parameters
- Return All: on, every feed is retrieved page after page; off, the run stops at Limit.
- Limit: how many feeds at most come back while Return All is off.
Update a feed
feed.updateWhat you see in n8n
Notes & use cases
Changing a registration without deleting it is what this operation is for.
Key parameters
- Feed ID: the ID of the feed to update.
- URL: the address the feed points at.
- Provider: the provider recorded for the feed.
- Rules: the filter rules for the feed.
Galaxy
3 operationsDelete a galaxy
galaxy.deleteWhat you see in n8n
Notes & use cases
Removing a galaxy is a one shot call: the node sends a single identifier and MISP drops that galaxy from the instance the credential points to.
Key parameters
- Galaxy ID: the UUID or the numeric ID of the galaxy to delete. When the value arrives from an earlier node, reference it with an expression, the n8n syntax that reads a field of the incoming item, written
{{ $json.field }}.
Get a galaxy
galaxy.getWhat you see in n8n
Notes & use cases
Point the node at one galaxy and it returns that record on its own, so a workflow never has to walk the whole instance to find it.
Key parameters
- Galaxy ID: the UUID or the numeric ID of the galaxy to read.
Get many galaxies
galaxy.getAllWhat you see in n8n
Notes & use cases
Listing galaxies hands the workflow the inventory the instance holds, which is the usual first step before anything gets filtered or compared further down.
Key parameters
- Return All: switched on, n8n keeps requesting pages until every galaxy has come back; switched off, the node stops at Limit.
- Limit: the maximum number of galaxies returned while Return All stays off.
Noticelist
2 operationsGet a noticelist
noticelist.getWhat you see in n8n
Notes & use cases
A single noticelist comes back when the node is given its number, without touching the rest of the catalog. That keeps the output small enough to read in one look when the run is being debugged.
Key parameters
- Noticelist ID: the numeric ID of the noticelist to fetch, hardcoded when the workflow always reads the same one, or taken from the incoming item with an expression written
{{ $json.field }}.
Get many noticelists
noticelist.getAllWhat you see in n8n
Notes & use cases
Pulling the full set of noticelists gives a workflow the view of everything that catalog carries at a given moment.
Key parameters
- Return All: on, the node walks through the API pages until nothing is left; off, it hands back only what Limit allows.
- Limit: caps how many noticelists the node returns.
Object
1 operationGet a filtered list of objects
object.searchWhat you see in n8n
Notes & use cases
Searching objects starts from a value: the node sends it to MISP and returns the objects that match.
Key parameters
- Value: required, the value to look for, an IP address such as
127.0.0.1in the example the field shows. - Tags: a comma separated list of tags, in the
tag1,tag2form. - Search All: matches any tag names, event descriptions, attribute values or attribute comments.
Organisation
5 operationsCreate an organization
organisation.createWhat you see in n8n
Notes & use cases
Creating an organization writes a new entry in MISP under the name the node sends.
Key parameters
- Name: required, the organization name, and the only value the operation needs to run.
- Additional Fields: the optional block that carries Description, Sector, Nationality, Type, Created by Email and User Count in the same call.
Delete an organization
organisation.deleteWhat you see in n8n
Notes & use cases
Once an organization no longer belongs on the instance, this operation removes its record in a single call. Since nothing in the node asks for a confirmation, the safety net belongs in the workflow itself.
Key parameters
- Organisation ID: the UUID or the numeric ID of the organisation to remove, which is why a read step usually runs first to confirm the right record was picked.
Get an organization
organisation.getWhat you see in n8n
Notes & use cases
Reading one organization record is all this does: the node returns the entry matching the identifier it was given, and nothing around it.
Key parameters
- Organisation ID: the UUID or the numeric ID of the organisation to read, mapped from the preceding node with an expression such as
{{ $json.field }}.
Get many organizations
organisation.getAllWhat you see in n8n
Notes & use cases
The full roster of organizations known to the instance comes back here, one item per organization.
Key parameters
- Return All: enabled, n8n chains the API pages until every organization sits in the output; disabled, Limit decides how many come back.
- Limit: the ceiling on the number of organizations returned.
Update an organization
organisation.updateWhat you see in n8n
Notes & use cases
Editing an existing organization means naming it by ID, then listing what should change in the Update Fields block.
Key parameters
- Organisation ID: required, the ID of the organisation to update.
- Update Fields: the block that carries Name, Description, Sector, Nationality and Type.
Tag
4 operationsCreate a tag
tag.createWhat you see in n8n
Notes & use cases
Tags are created from a name, and the node can give the new tag its color in the same call.
Key parameters
- Name: required, the tag name.
- Color: a hex color code for the tag, inside Additional Fields.
Delete a tag
tag.deleteWhat you see in n8n
Notes & use cases
When a tag stops being used, this operation removes it from the instance by number.
Key parameters
- Tag ID: required, the numeric ID of the tag to delete, often taken from an earlier node with an expression such as
{{ $json.field }}.
Get many tags
tag.getAllWhat you see in n8n
Notes & use cases
Every tag defined on the instance comes back through this operation, the list most other tag work starts from.
Key parameters
- Return All: on, the node pages through the API until the tag list is complete; off, Limit sets the cutoff.
- Limit: the maximum number of tags in the output.
Update a tag
tag.updateWhat you see in n8n
Notes & use cases
Renaming a tag or changing its color runs through this operation, with the tag named by its ID.
Key parameters
- Tag ID: required, the ID of the tag to update.
- Update Fields: carries Name and Color, the hex color code of the tag.
User
5 operationsCreate a user
user.createWhat you see in n8n
Notes & use cases
Onboarding an account takes two values, an address and a role, and the node creates the user from them.
Key parameters
- Email: required, the address of the account, in the
name@email.comform the field shows. - Role ID: required, and role IDs are available in the MISP dashboard at
/roles/index. - Organization Name or ID: chosen from the list the node loads, or given as an ID through an expression.
Delete a user
user.deleteWhat you see in n8n
Notes & use cases
Offboarding ends here: the node removes the user whose number it is given, and the workflow moves on to whatever comes next.
Key parameters
- User ID: required, the numeric ID of the user to delete. A run that leaves it empty stops there, since an empty required field blocks the node.
Get a user
user.getWhat you see in n8n
Notes & use cases
One user record, fetched by number, lands in the output of this operation. It reads a single account, so it pairs well with a loop when several have to be checked.
Key parameters
- User ID: required, the numeric ID of the user to read, usually mapped from the item the previous node produced with an expression such as
{{ $json.field }}.
Get many users
user.getAllWhat you see in n8n
Notes & use cases
This operation walks the user directory of the instance and returns the accounts it finds.
Key parameters
- Return All: on, every page of users is fetched; off, Limit caps the number of accounts returned.
- Limit: how many users at most come back in one run.
Update a user
user.updateWhat you see in n8n
Notes & use cases
Changes to an existing account travel through Update Fields, with the account named by its ID.
Key parameters
- User ID: required, the ID of the user to update.
- Update Fields: carries Email, GPG Key, Inviter Name or ID and Organization Name or ID.
Warninglist
2 operationsGet a warninglist
warninglist.getWhat you see in n8n
Notes & use cases
Warninglists are read one at a time here, by number, which keeps the payload down when only one of them matters to the run.
Key parameters
- Warninglist ID: required, the numeric ID of the warninglist. When the number comes from an earlier step rather than being typed in, an expression like
{{ $json.field }}carries it over.
Get many warninglists
warninglist.getAllWhat you see in n8n
Notes & use cases
The catalog of warninglists the instance carries comes back in one run.
Key parameters
- Return All: on, n8n requests page after page until the catalog is complete; off, Limit trims the output.
- Limit: the maximum number of warninglists returned.
Need help automating MISP with n8n?
A person reads every message.

