Reference · Tools

TheHive

Manage security incidents in TheHive (v3/v4): alerts, cases, observables, tasks, and logs. Supports Cortex analyzers/responders and binary file uploads.

Action (binary) Utility v1 Binary data

TheHive node manages security incidents in TheHive v3 and v4: alerts, cases, observables, tasks and logs, with Cortex analyzer and responder support and binary file uploads. A typical build is creating an alert from a detection, promoting it to a case, and attaching the observables for analysis.

Node type
Action (binary)
Parameters
73
Outputs
Output, Error
Credentials
TheHive API

TheHive

Manage security incidents in TheHive v3/v4 with binary file upload support

Overview

TheHive is an open-source Security Incident Response Platform (SIRP). This tool provides full CRUD operations for alerts, cases, tasks, task logs, and observables in TheHive v3/v4. It supports binary data uploads for file-type observables and log attachments via multipart form upload (Pattern B). It integrates with Cortex for executing analyzers on observables and responders on any resource type. Supports both v0 (TheHive 3) and v1 (TheHive 4) API versions with transparent branching.

Category: Utility
Tool Name: thehive
Version: 1

Appearance: Icon: lucide-Shield | Color: #F5A623

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires TheHive API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Alertalert
Casecase
Loglog
Observableobservable
Tasktask

Operations

OperationValueDescription
CountcountCount records matching the filters (v1 API only)
CreatecreateCreate a record
Execute AnalyzerexecuteAnalyzerExecute Cortex analyzers
Execute ResponderexecuteResponderExecute a Cortex responder
GetgetGet a single record
Get ManygetAllGet many records
Mark as ReadmarkAsReadMark alert as read
Mark as UnreadmarkAsUnreadMark alert as unread
MergemergeMerge alert into an existing case
PromotepromotePromote alert to a case
SearchsearchSearch records
UpdateupdateUpdate a record

Availability per resource:

  • Alertcount, create, executeResponder, get, getAll, markAsRead, markAsUnread, merge, promote, update
  • Casecount, create, executeResponder, get, getAll, update
  • Observablecount, create, executeAnalyzer, executeResponder, get, getAll, search, update
  • Taskcount, create, executeResponder, get, getAll, search, update
  • Logcreate, executeResponder, get, getAll

Parameters

Alert: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the alert. Supports expressions.
DescriptionstringYesDescription of the alert. Supports expressions.
SeverityoptionsYes2Severity of the alert. Default=Medium.
Options: 1 (low), 2 (medium), 3 (high)
DatestringYesDate and time when the alert was raised (ISO 8601). Supports expressions.
TagsstringYesComma-separated tags for the alert.
TLPoptionsYes2Traffic Light Protocol level. Default=Amber.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
StatusoptionsYesNewStatus of the alert.
Options: New, Updated, Ignored, Imported
TypestringYesType of the alert.
SourcestringYesSource of the alert.
Source ReferencestringYesSource reference of the alert.
FollowbooleanYestrueWhether the alert becomes active when updated.
Artifacts (JSON)jsonNo[]Observable artifacts as JSON array. Each object: { dataType, data, message, tags }.
JSON ParametersbooleanNotrueWhether to pass custom fields as JSON.
Additional FieldscollectionNo{}Optional alert settings.
— Case TemplatestringNoCase template to use when a case is created from this alert.
— Custom Fields (JSON)stringNoCustom fields as JSON object: { “fieldRef”: value }.

Alert: Get

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.
OptionscollectionNo{}Extra detail to request.
— Include Similar CasesbooleanNofalseWhether to include similar cases in the response.

Alert: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrows the alert list.
— TitlestringNoMatch on the alert title.
— DescriptionstringNoMatch on the alert description.
— SeverityoptionsNo2Match on severity.
Options: 1 (low), 2 (medium), 3 (high)
— TagsstringNoMatch on tags.
— TLPoptionsNo2Match on Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— FollowbooleanNofalseMatch on the follow flag.
— Custom Fields (JSON)stringNoMatch on custom fields, given as a JSON object.
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc. Example: +status or -date.

Alert: Count

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrows what is counted — the same sub-fields as Alert: Get Many above.

Alert: Update

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.
JSON ParametersbooleanNotrueWhether to pass custom fields as JSON.
Update FieldscollectionNo{}Values to change on the alert.
— TitlestringNoNew title.
— DescriptionstringNoNew description.
— SeverityoptionsNo2New severity.
Options: 1 (low), 2 (medium), 3 (high)
— StatusoptionsNoNewNew status.
Options: New, Updated, Ignored, Imported
— TagsstringNoNew comma-separated tags.
— TLPoptionsNo2New Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— FollowbooleanNotrueWhether the alert becomes active when updated.
— Case TemplatestringNoCase template to use when a case is created from this alert.
— Artifacts (JSON)stringNoArtifacts as JSON string.
— Custom Fields (JSON)stringNoCustom fields as JSON object.

Alert: Promote

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.
Additional FieldscollectionNo{}Options for the case that is created.
— Case TemplatestringNoCase template to use when promoting.

Alert: Merge

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.
Case ID (caseId)stringYesThe ID of the case to merge the alert into. Supports expressions.

Alert: Mark as Read

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.

Alert: Mark as Unread

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.

Alert: Execute Responder

ParameterTypeRequiredDefaultDescription
Alert IDstringYesThe ID of the alert. Supports expressions.
Responder IDstringYesID of the Cortex responder to execute. Use GET /connector/cortex/responder/{type}/{id} to list available responders.

Case: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the case. Supports expressions.
DescriptionstringYesDescription of the case. Supports expressions.
SeverityoptionsYes2Severity of the case.
Options: 1 (low), 2 (medium), 3 (high)
Start DatestringYesStart date of the case (ISO 8601).
OwnerstringYesOwner of the case.
FlagbooleanYesfalseWhether to flag the case.
TLPoptionsYes2Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
TagsstringYesComma-separated tags.
JSON ParametersbooleanNotrueWhether to pass custom fields as JSON.
OptionscollectionNo{}Optional case fields.
— End DatestringNoResolution date (ISO 8601).
— SummarystringNoSummary of the case.
— Metrics (JSON)jsonNo[]Case metrics as a JSON array.
— Custom Fields (JSON)stringNoCustom fields as a JSON object.

Case: Get

ParameterTypeRequiredDefaultDescription
Case ID (id)stringYesID of the case. Supports expressions.

Case: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrows the case list.
— TitlestringNoMatch on the case title.
— DescriptionstringNoMatch on the case description.
— SeverityoptionsNo2Match on severity.
Options: 1 (low), 2 (medium), 3 (high)
— TagsstringNoMatch on tags.
— TLPoptionsNo2Match on Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— StatusoptionsNoOpenMatch on case status.
Options: Open, Resolved, Deleted
— OwnerstringNoMatch on owner.
— FlagbooleanNofalseMatch on the flag.
— Start DatestringNoMatch on start date.
— End DatestringNoMatch on end date.
— SummarystringNoMatch on summary.
— Impact StatusoptionsNoMatch on impact status.
Options: NoImpact, WithImpact, NotApplicable
— Resolution StatusoptionsNoMatch on resolution status.
Options: Duplicated, FalsePositive, Indeterminate, Other, TruePositive
— Custom Fields (JSON)stringNoMatch on custom fields, given as a JSON object.
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc. Example: +status or -date.

Case: Count

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrows what is counted — the same sub-fields as Case: Get Many above.

Case: Update

ParameterTypeRequiredDefaultDescription
Case ID (id)stringYesID of the case. Supports expressions.
JSON ParametersbooleanNotrueWhether to pass custom fields as JSON.
Update FieldscollectionNo{}Values to change on the case.
— TitlestringNoNew title.
— DescriptionstringNoNew description.
— SeverityoptionsNo2New severity.
Options: 1 (low), 2 (medium), 3 (high)
— Start DatestringNoNew start date.
— End DatestringNoResolution date.
— OwnerstringNoNew owner.
— FlagbooleanNofalseWhether the case is flagged.
— TLPoptionsNo2New Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— TagsstringNoNew comma-separated tags.
— StatusoptionsNoOpenNew case status.
Options: Open, Resolved, Deleted
— SummarystringNoNew summary.
— Impact StatusoptionsNoImpact assessment.
Options: NoImpact, WithImpact, NotApplicable
— Resolution StatusoptionsNoHow the case was resolved.
Options: Duplicated, FalsePositive, Indeterminate, Other, TruePositive
— Metrics (JSON)jsonNo[]Case metrics as a JSON array.
— Custom Fields (JSON)stringNoCustom fields as a JSON object.

Case: Execute Responder

ParameterTypeRequiredDefaultDescription
Case ID (id)stringYesID of the case. Supports expressions.
Responder IDstringYesID of the Cortex responder to execute.

Observable: Create

ParameterTypeRequiredDefaultDescription
Case ID (caseId)stringYesID of the case. Supports expressions.
Data TypestringYesType of the observable (e.g., ip, domain, url, file, hash, mail, etc.). Use “file” for binary upload.
DatastringYesObservable data value (e.g., IP address, domain name, URL). (hidden when Data Type is file)
Binary PropertystringYesdataName of the binary property on the input item containing the file to upload. (shown when Data Type is file)
MessagestringYesDescription of the observable in the context of the case.
Start DatestringYesStart date (ISO 8601).
TLPoptionsYes2Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
IOCbooleanYesfalseWhether the observable is an Indicator of Compromise.
SightedbooleanYesfalseWhether the observable has been sighted.
StatusoptionsYesOkStatus of the observable.
Options: Ok, Deleted
OptionscollectionNo{}Optional observable fields.
— TagsstringNoComma-separated tags.

Observable: Get

ParameterTypeRequiredDefaultDescription
Observable IDstringYesID of the observable. Supports expressions.

Observable: Get Many

ParameterTypeRequiredDefaultDescription
Case ID (caseId)stringYesID of the case whose observables to list. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc. Example: +status or -date.
ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}What to search for.
— Data TypestringNoComma-separated data type filter.
— ValuestringNoMatch on the observable’s value.
— DescriptionstringNoMatch on the description.
— KeywordstringNoFree-text keyword search.
— MessagestringNoMatch on the message.
— TagsstringNoMatch on tags.
— IOCbooleanNofalseMatch on the IOC flag.
— SightedbooleanNofalseMatch on the sighted flag.
— TLPoptionsNo2Match on Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— Status (Status)optionsNoOkMatch on status. Note the capital S in the field name.
Options: Ok, Deleted
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc.

Observable: Count

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrows what is counted — the same sub-fields as Observable: Search above.

Observable: Update

ParameterTypeRequiredDefaultDescription
Observable IDstringYesID of the observable. Supports expressions.
Update FieldscollectionNo{}Values to change on the observable.
— MessagestringNoNew description in the context of the case.
— TagsstringNoNew comma-separated tags.
— TLPoptionsNo2New Traffic Light Protocol level.
Options: 0 (white), 1 (green), 2 (amber), 3 (red)
— IOCbooleanNofalseWhether the observable is an Indicator of Compromise.
— SightedbooleanNofalseWhether the observable has been sighted.
— StatusoptionsNoOkNew status.
Options: Ok, Deleted

Observable: Execute Analyzer

ParameterTypeRequiredDefaultDescription
Observable IDstringYesID of the observable. Supports expressions.
Data TypestringYesType of the observable (e.g., ip, domain, url, file, hash, mail, etc.).
Analyzer IDsstringYesComma-separated analyzer IDs in format “analyzerId::cortexId”.

Observable: Execute Responder

ParameterTypeRequiredDefaultDescription
Observable IDstringYesID of the observable. Supports expressions.
Responder IDstringYesID of the Cortex responder to execute.

Task: Create

ParameterTypeRequiredDefaultDescription
Case ID (caseId)stringYesID of the case. Supports expressions.
TitlestringYesTitle of the task. Supports expressions.
StatusoptionsYesWaitingStatus of the task.
Options: Waiting, InProgress, Completed, Cancel
FlagbooleanYesfalseWhether to flag the task.
OptionscollectionNo{}Optional task fields.
— DescriptionstringNoDescription of the task.
— OwnerstringNoOwner of the task.
— Start DatestringNoStart date (ISO 8601).
— End DatestringNoEnd date (ISO 8601).

Task: Get

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesID of the task. Supports expressions.

Task: Get Many

ParameterTypeRequiredDefaultDescription
Case ID (caseId)stringYesID of the case whose tasks to list. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc.
ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}What to search for.
— TitlestringNoMatch on the task title.
— DescriptionstringNoMatch on the description.
— OwnerstringNoMatch on the owner.
— StatusoptionsNoWaitingMatch on status.
Options: Waiting, InProgress, Completed, Cancel
— FlagbooleanNofalseMatch on the flag.
— Start DatestringNoMatch on start date.
— End DatestringNoMatch on end date.
OptionscollectionNo{}Sorting for the result list.
— SortstringNoSort attribute with prefix: + for asc, - for desc.

Task: Count

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrows what is counted — the same sub-fields as Task: Search above.

Task: Update

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesID of the task. Supports expressions.
Update FieldscollectionNo{}Values to change on the task.
— TitlestringNoNew title.
— DescriptionstringNoNew description.
— OwnerstringNoNew owner.
— StatusoptionsNoWaitingNew status.
Options: Waiting, InProgress, Completed, Cancel
— FlagbooleanNofalseWhether the task is flagged.
— Start DatestringNoNew start date.
— End DatestringNoNew end date.

Task: Execute Responder

ParameterTypeRequiredDefaultDescription
Task ID (id)stringYesID of the task. Supports expressions.
Responder IDstringYesID of the Cortex responder to execute.

Log: Create

ParameterTypeRequiredDefaultDescription
Task ID (taskId)stringYesID of the task the log belongs to. Supports expressions.
MessagestringYesContent of the log. Supports expressions.
Start DatestringYesDate of the log submission (ISO 8601).
StatusoptionsYesOkStatus of the log.
Options: Ok, Deleted
OptionscollectionNo{}Optional log fields.
— Attachment Binary PropertystringNoName of the binary property on the input item to attach. Leave empty for no attachment.

Log: Get

ParameterTypeRequiredDefaultDescription
Log IDstringYesID of the log. Supports expressions.

Log: Get Many

ParameterTypeRequiredDefaultDescription
Task ID (taskId)stringYesID of the task whose logs to list. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to the limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)

Log: Execute Responder

ParameterTypeRequiredDefaultDescription
Log IDstringYesID of the log. Supports expressions.
Responder IDstringYesID of the Cortex responder to execute.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

Every operation produces exactly one output item per input item — nothing fans out. Anything already on the item passes through, and binary data is forwarded unchanged.

  • Single-record operations (create, get, update, promote, merge, markAsRead, markAsUnread, executeAnalyzer, executeResponder) merge the returned record onto the top level of the item JSON.
  • List operations (getAll, search) put the whole list on one item as results, alongside resultCount. Use a Split Out node on results when you need one item per record downstream.
  • count puts the number on the item as count.
  • Endpoints that answer with no content leave success: true on the item.

executeAnalyzer accepts several analyzers at once and runs them in sequence; the item carries the last analyzer’s job result, so run one analyzer per node when you need each result separately.

Usage Examples

  • Create a security alert in TheHive
  • Get all cases with severity High
  • Create a file observable with binary upload
  • Execute a Cortex analyzer on an observable
  • Create a task log with file attachment
  • Promote an alert to a case
  • Execute a Cortex responder on a case

Example Configuration

Create an alert:

{
  "type": "thehive",
  "parameters": {
    "resource": "alert",
    "operation": "create",
    "title": "Suspicious Network Activity",
    "description": "Detected unusual traffic patterns",
    "severity": 2,
    "tlp": 2,
    "status": "New",
    "type": "network",
    "source": "SIEM",
    "sourceRef": "{{ $json.eventId }}",
    "date": "{{ $json.detectedAt }}",
    "follow": true,
    "tags": "network,suspicious,investigation"
  }
}

Create an alert carrying observable artifacts and custom fields:

{
  "type": "thehive",
  "parameters": {
    "resource": "alert",
    "operation": "create",
    "title": "Malware Detection",
    "description": "Malicious file detected on endpoint",
    "severity": 3,
    "tlp": 2,
    "status": "New",
    "type": "malware",
    "source": "EDR",
    "sourceRef": "{{ $json.eventId }}",
    "date": "{{ $json.detectedAt }}",
    "follow": true,
    "tags": "malware",
    "artifactsJson": "[{\"dataType\":\"file_hash\",\"data\":\"5d41402abc4b2a76b9719d911017c592\",\"message\":\"MD5 hash of malicious file\",\"tags\":[\"malware\",\"hash\"]}]",
    "additionalFields": {
      "caseTemplate": "malware-investigation",
      "customFieldsJson": "{\"priority\":\"high\",\"department\":\"IT\"}"
    }
  }
}

Update an alert:

{
  "type": "thehive",
  "parameters": {
    "resource": "alert",
    "operation": "update",
    "id": "alert-123",
    "updateFields": {
      "title": "Updated Alert Title",
      "severity": 3,
      "status": "Updated",
      "tags": "network,confirmed,escalated"
    }
  }
}

Promote an alert to a case:

{
  "type": "thehive",
  "parameters": {
    "resource": "alert",
    "operation": "promote",
    "id": "alert-123",
    "additionalFields": {
      "caseTemplate": "security-incident"
    }
  }
}

List new high-severity alerts:

{
  "type": "thehive",
  "parameters": {
    "resource": "alert",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "severity": 3,
      "tags": "malware"
    },
    "options": {
      "sort": "-date"
    }
  }
}

Create a case:

{
  "type": "thehive",
  "parameters": {
    "resource": "case",
    "operation": "create",
    "title": "Security Incident - Data Breach",
    "description": "Potential data breach detected in customer database",
    "severity": 3,
    "owner": "security-analyst",
    "flag": true,
    "tlp": 3,
    "startDate": "{{ $json.detectedAt }}",
    "tags": "breach,database,urgent",
    "options": {
      "summary": "Initial investigation required",
      "customFieldsJson": "{\"affectedSystems\":[\"db-prod-01\"],\"estimatedImpact\":\"high\"}"
    }
  }
}

Add an IP observable to a case:

{
  "type": "thehive",
  "parameters": {
    "resource": "observable",
    "operation": "create",
    "caseId": "case-456",
    "dataType": "ip",
    "data": "192.168.1.100",
    "message": "Suspicious IP address from network logs",
    "startDate": "{{ $json.detectedAt }}",
    "ioc": true,
    "sighted": true,
    "status": "Ok",
    "tlp": 2,
    "options": {
      "tags": "network,suspicious,internal"
    }
  }
}

Attach a file from an upstream node as a file observable:

{
  "type": "thehive",
  "parameters": {
    "resource": "observable",
    "operation": "create",
    "caseId": "case-456",
    "dataType": "file",
    "binaryPropertyName": "malwareFile",
    "message": "Suspected malware sample",
    "startDate": "{{ $json.detectedAt }}",
    "ioc": true,
    "sighted": false,
    "status": "Ok",
    "tlp": 3
  }
}

Run Cortex analyzers on an observable:

{
  "type": "thehive",
  "parameters": {
    "resource": "observable",
    "operation": "executeAnalyzer",
    "id": "observable-789",
    "dataType": "file",
    "analyzers": "Cuckoo_Sandbox_URL_analysis::cortex-01,VirusTotal_GetReport::cortex-01"
  }
}

Search observables:

{
  "type": "thehive",
  "parameters": {
    "resource": "observable",
    "operation": "search",
    "returnAll": false,
    "limit": 100,
    "filters": {
      "dataType": "ip",
      "ioc": true,
      "tlp": 2,
      "tags": "malicious"
    },
    "options": {
      "sort": "-createdAt"
    }
  }
}

Create an investigation task:

{
  "type": "thehive",
  "parameters": {
    "resource": "task",
    "operation": "create",
    "caseId": "case-456",
    "title": "Analyze Network Logs",
    "status": "Waiting",
    "flag": false,
    "options": {
      "description": "Review network logs for the past 24 hours",
      "owner": "network-analyst",
      "startDate": "{{ $json.detectedAt }}"
    }
  }
}

Log progress on a task, attaching a report file:

{
  "type": "thehive",
  "parameters": {
    "resource": "log",
    "operation": "create",
    "taskId": "task-101",
    "message": "Analysis completed. Found 15 suspicious connections. See attached report.",
    "startDate": "{{ $json.completedAt }}",
    "status": "Ok",
    "options": {
      "attachmentBinaryProperty": "reportFile"
    }
  }
}

Run a containment responder on a case:

{
  "type": "thehive",
  "parameters": {
    "resource": "case",
    "operation": "executeResponder",
    "id": "case-456",
    "responder": "Block_IP::cortex-01"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage security incidents in TheHive v3/v4 — alerts, cases, observables, tasks, logs, with Cortex integration and binary file upload support.

Alert Investigation Workflow

  1. Create Alert — initial security event detection
  2. Get Alert Details — retrieve full alert information
  3. Update Alert — add analysis findings
  4. Promote to Case — escalate for full investigation
  5. Create Observables — add IOCs and evidence
  6. Execute Analyzers — run automated analysis
  7. Create Tasks — assign investigation steps
  8. Execute Responders — take containment actions

Custom Fields

Custom fields are supplied as a JSON object string in the Custom Fields (JSON) field of the relevant collection, for example {"priority":"P1","department":"SOC","assignee":"analyst@company.com"}. Malformed JSON fails the item rather than being silently dropped.

API Versions

The node speaks both TheHive 3 (v0) and TheHive 4 (v1) APIs and picks the right calls for your instance. count is available on the v1 API only.

Frequently asked questions

What does an investigation flow look like?

Create the alert on detection, get its details, update it with analysis findings, promote it to a case for full investigation, then create observables against that case.

What is the Cortex integration for?

Running analyzers and responders — the automated enrichment and response actions Cortex provides — from inside the workflow rather than by hand in the UI.

Can it attach files?

Yes, binary file upload is supported, so evidence collected earlier in the workflow can be attached to the case.

How does this differ from the TheHive 5 node?

This targets v3 and v4. TheHive 5 has its own node covering the newer API, including comments, pages and queries.

Build with the TheHive node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need TheHive API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.