Reference · Tools

Elastic Security

Manage Elastic Security cases, comments, tags, and connectors via the Kibana API.

Action Productivity v1

The Elastic Security node connects to the Kibana Cases API to manage security incidents without leaving your workflow — create cases when an alert fires, add triage comments as investigations progress, or tag cases closed once remediation is confirmed. It covers four resources: cases, case comments, case tags, and connectors. Authentication uses either Basic Auth or an API Key against your Kibana endpoint.

Node type
Action
Parameters
56
Outputs
Output, Error
Credentials
Elastic Security API

Elastic Security

Manage Elastic Security cases, comments, tags, and connectors.

Overview

Elastic Security tool integrates with the Elastic Security (Kibana) Cases API. Supports 4 resources: case (create, delete, get, getAll, getStatus, update), caseComment (add, get, getAll, remove, update), caseTag (add, remove), connector (create). Authentication supports Basic Auth (username/password) or API Key. The API base URL is the Kibana endpoint (e.g. https://kibana.example.com). All mutating operations require the kbn-xsrf: true header. Update operations use read-modify-write with version-based optimistic concurrency control.

Category: Productivity
Tool Name: elastic_security
Version: 1

Appearance: Icon: lucide-ShieldCheck | Color: #FEC514

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

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

Resources

ResourceValue
Casecase
Case CommentcaseComment
Case TagcaseTag
Connectorconnector

Operations

Each resource has its own Operation list, and several resources reuse the same operation values (get, getAll, add, remove, update). Pick the resource first, then the operation.

ResourceOperationValueDescription
CaseCreatecreateCreate a case.
CaseDeletedeleteDelete a case.
CaseGetgetGet a case.
CaseGet ManygetAllRetrieve many cases.
CaseGet StatusgetStatusRetrieve a summary of all case activity.
CaseUpdateupdateUpdate a case.
Case CommentAddaddAdd a comment to a case.
Case CommentGetgetGet a case comment.
Case CommentGet ManygetAllRetrieve many case comments.
Case CommentRemoveremoveRemove a comment from a case.
Case CommentUpdateupdateUpdate a comment in a case.
Case TagAddaddAdd a tag to a case.
Case TagRemoveremoveRemove a tag from a case.
ConnectorCreatecreateCreate a connector.

Parameters

Case: Get Status takes no parameters of its own — see All Operations.

Case: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the case.
Connector IDstringYesID of the connector to use for this case (ServiceNow, Jira, or IBM Resilient).
Connector TypeoptionsYes.jiraType of the connector. Must match the actual connector type — the node reads the connector first and fails the item if the types differ.
Options: .resilient, .jira, .servicenow
Issue TypestringYesType of the Jira issue to create for this case. (shown when Connector Type is .jira)
PrioritystringYesPriority of the Jira issue to create for this case. (shown when Connector Type is .jira)
UrgencyoptionsYes1Urgency of the ServiceNow ITSM issue to create for this case. (shown when Connector Type is .servicenow)
Options: 1 (Low), 2 (Medium), 3 (High)
SeverityoptionsYes1Severity of the ServiceNow ITSM issue to create for this case. (shown when Connector Type is .servicenow)
Options: 1 (Low), 2 (Medium), 3 (High)
ImpactoptionsYes1Impact of the ServiceNow ITSM issue to create for this case. (shown when Connector Type is .servicenow)
Options: 1 (Low), 2 (Medium), 3 (High)
CategorystringYesCategory of the ServiceNow ITSM issue to create for this case. (shown when Connector Type is .servicenow)
Issue TypesstringYesComma-separated list of numerical types of the IBM Resilient issue to create for this case. (shown when Connector Type is .resilient)
Severity CodenumberYes1Severity code of the IBM Resilient issue to create for this case. (shown when Connector Type is .resilient)
Additional FieldscollectionNo{}Optional properties to set on the new case.
— Description (description)stringNoDescription of the case.
— Owner (owner)stringNoValid application owner registered within the Cases RBAC system. Defaults to securitySolution.
— Sync Alerts (syncAlerts)booleanNofalseWhether to synchronize with alerts.

Case: Delete

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to delete.

Case: Get

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to retrieve.

Case: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the listing. Only the filters you add are sent.
— Status (status)optionsNoopenFilter cases by status.
Options: open, in-progress, closed
— Tags (tags)stringNoComma-separated list of tags to filter by.
— Owner (owner)stringNoFilter by case owner application.
Sort OptionscollectionNo{}How to order the listing.
— Sort Field (sortField)optionsNocreatedAtField to sort results by.
Options: createdAt, updatedAt
— Sort Order (sortOrder)optionsNoascSort direction.
Options: asc, desc

Case: Update

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to update.
Update FieldscollectionNo{}Fields to change. Add at least one — the item fails if this is empty.
— Description (description)stringNoNew description for the case.
— Status (status)optionsNoopenNew status for the case.
Options: open, in-progress, closed
— Sync Alerts (syncAlerts)booleanNofalseWhether to synchronize with alerts.
— Title (title)stringNoNew title for the case.

Case Comment: Add

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to add a comment to.
CommentstringYesText content of the comment.
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.
Additional FieldscollectionNo{}Optional properties to set on the comment.
— Owner (owner)stringNoValid application owner registered within the Cases RBAC system.

Case Comment: Get

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case containing the comment.
Comment IDstringYesID of the comment to retrieve.

Case Comment: Get Many

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to list comments for.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Case Comment: Remove

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case containing the comment to remove.
Comment IDstringYesID of the comment to remove.

Case Comment: Update

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case containing the comment.
Comment IDstringYesID of the comment to update.
CommentstringYesReplacement text for the comment.
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.

Case Tag: Add

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to add the tag to.
TagstringYesTag to attach to the case. The item fails if the case already carries this tag.

Case Tag: Remove

ParameterTypeRequiredDefaultDescription
Case IDstringYesID of the case to remove the tag from.
TagstringYesTag to remove from the case. The item fails if the case does not carry this tag.

Connector: Create

ParameterTypeRequiredDefaultDescription
Connector Name (name)stringYesDisplay name for the connector.
Connector TypeoptionsYes.jiraType of the connector to create.
Options: .resilient, .jira, .servicenow
API URLstringYesURL of the third-party instance (Jira, ServiceNow, or IBM Resilient).
EmailstringYesJira-registered email address. (shown when Connector Type is .jira)
API TokenstringYesJira API token. Stored as a password field. (shown when Connector Type is .jira)
Project KeystringYesJira project key. (shown when Connector Type is .jira)
UsernamestringYesServiceNow ITSM username. (shown when Connector Type is .servicenow)
PasswordstringYesServiceNow ITSM password. Stored as a password field. (shown when Connector Type is .servicenow)
API Key IDstringYesIBM Resilient API key ID. Stored as a password field. (shown when Connector Type is .resilient)
API Key SecretstringYesIBM Resilient API key secret. Stored as a password field. (shown when Connector Type is .resilient)
Organization IDstringYesIBM Resilient organization ID. (shown when Connector Type is .resilient)

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum number of items to process concurrently (1–20).

Output Data

Every operation merges the Kibana response onto the input item’s JSON — the fields the item already carried survive, and a response key with the same name overwrites the item’s value. Binary data on the input item is forwarded unchanged.

The number of output items follows the shape of the reply: an array reply fans out to one output item per entry, and any other reply produces exactly one output item.

OperationOutput
Case Get Many, Case Comment Get ManyOne output item per case or comment. A listing that matches nothing produces no output items at all, so that branch of the workflow simply stops.
Case Get, Case Get Status, Connector CreateOne output item carrying the returned object.
Case CreateOne output item carrying the created case.
Case Update, Case Tag Add, Case Tag RemoveThe Cases API replies with the updated case records; each one becomes an output item.
Case Comment Add, Case Comment UpdateWith Simplify on (the default), one output item carrying just the comment that was added or changed. With Simplify off, the raw reply is merged instead.
Case Delete, Case Comment RemoveOne output item carrying success: true — these calls confirm the change instead of returning a record.

Usage Examples

  • Create a new security case linked to a Jira connector
  • Get all open security cases filtered by tag
  • Add a comment to an existing case
  • Update case status to in-progress or closed
  • Add or remove tags from a case
  • Create a Jira or ServiceNow connector for case syncing

Example Configuration

Open a case that syncs to Jira:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "case",
    "operation": "create",
    "title": "Security Incident - Suspicious Activity",
    "connectorId": "jira-connector-123",
    "connectorType": ".jira",
    "issueType": "Bug",
    "priority": "High",
    "additionalFields": {
      "description": "Detected unusual network activity from an internal system",
      "owner": "securitySolution",
      "syncAlerts": true
    }
  }
}

Open a case that syncs to ServiceNow ITSM:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "case",
    "operation": "create",
    "title": "Data Breach Investigation",
    "connectorId": "servicenow-connector-456",
    "connectorType": ".servicenow",
    "urgency": 3,
    "severity": 2,
    "impact": 3,
    "category": "Security",
    "additionalFields": {
      "description": "Potential data breach requiring immediate investigation",
      "syncAlerts": true
    }
  }
}

List the 50 most recent open cases carrying particular tags:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "case",
    "operation": "getAll",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "status": "open",
      "tags": "security,critical"
    },
    "sortOptions": {
      "sortField": "createdAt",
      "sortOrder": "desc"
    }
  }
}

Close a case and stop alert syncing:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "case",
    "operation": "update",
    "caseId": "case-12345",
    "updateFields": {
      "status": "closed",
      "description": "Investigation completed - no security breach found",
      "syncAlerts": false
    }
  }
}

Add an investigation note to a case:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "caseComment",
    "operation": "add",
    "caseId": "case-12345",
    "comment": "Investigation revealed no actual breach. False positive from the monitoring system.",
    "simple": true
  }
}

Tag a case once it has been triaged:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "caseTag",
    "operation": "add",
    "caseId": "case-12345",
    "tag": "investigated"
  }
}

Create a Jira connector:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "connector",
    "operation": "create",
    "name": "Jira Security Connector",
    "connectorType": ".jira",
    "apiUrl": "https://company.atlassian.net",
    "email": "security@company.com",
    "apiToken": "your-jira-api-token",
    "projectKey": "SEC"
  }
}

Create a ServiceNow ITSM connector:

{
  "type": "elastic_security",
  "parameters": {
    "resource": "connector",
    "operation": "create",
    "name": "ServiceNow ITSM Connector",
    "connectorType": ".servicenow",
    "apiUrl": "https://company.service-now.com",
    "username": "elastic_user",
    "password": "your-servicenow-password"
  }
}

Error Handling

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

Tips

Manage Elastic Security cases, comments, tags, and connectors via the Kibana API.

  • Parameter values are sent literally. This node does not evaluate {{ ... }} expressions in its fields, so a case ID must be typed in rather than read from the incoming item.
  • Connector Type has to match the connector. On Case Create the node looks the connector up first and fails the item when the selected type differs from the connector’s real type, so a case is never opened against the wrong system.
  • Updates are read-modify-write. Case Update, Case Tag Add and Case Tag Remove each fetch the current record, apply the change and send it back with its version, so two nodes editing the same case at the same time can collide — sequence them rather than running them in parallel.
  • Tag operations are strict. Adding a tag the case already has, or removing one it does not have, fails that item instead of silently doing nothing.
  • Turn Simplify off when you need the whole case. On comment Add and Update it is the difference between getting the single comment back and getting the full case record.

Frequently asked questions

What credentials do I need, and where do I get them?

You need an Elastic Security API credential, which accepts either a username/password pair (Basic Auth) or an API Key. The base URL you provide should be your Kibana endpoint — for example, https://kibana.example.com — not the Elasticsearch data node. Create the credential once in BusyBot and reuse it across all Elastic Security nodes in your workspace.

Can I use a variable or expression to pass a case ID dynamically?

No. This node does not evaluate {{ ... }} template expressions in its fields — values are sent exactly as typed. If you need to act on a specific case, you must enter the case ID as a literal value in the node's configuration. To work around this for dynamic IDs, use a preceding workflow step that resolves the ID, then hard-code the result before it reaches this node.

Why did my Case Update fail even though I had the correct case ID?

Case Update, Tag Add, and Tag Remove all use a read-modify-write pattern: the node first fetches the current record, applies your change, then sends the update back with the record's current version number. If another process updated the same case between the fetch and the write, the version won't match and the operation fails. Avoid running two nodes that edit the same case in parallel — sequence them instead.

What happens if I try to add a tag that already exists, or remove one that isn't there?

Both operations are strict: adding a tag the case already has will fail that item, and removing a tag the case does not have will also fail it. Neither operation silently does nothing. If you're unsure of the current tag state, use a Case Get step first to inspect the existing tags before attempting a Tag Add or Tag Remove.

The comment Add operation returned only the comment, but I need the full case record. How do I get it?

By default, the comment Add and Update operations return only the affected comment. Turn the Simplify option off in the node's settings to receive the full case record in the response instead. The same toggle applies to comment Update.

How does the node handle connector type mismatches when creating a case?

When you create a case and specify a connector, the node looks up that connector first and checks whether its type matches what you've selected in the node's Connector Type field. If they differ, the node fails that item immediately rather than opening a case wired to the wrong external system. Make sure the Connector Type you select in BusyBot matches the actual type of the connector in Kibana.

Build with the Elastic Security node

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

Open BusyBot

Last updated . Spotted something wrong? Tell us.