Kibana Workflows
ElasticOfficialCreated by elastic
- Skill
- Tool integration
- Automation and integrations
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The kibana-workflows skill enables users to create, validate, and execute declarative automation workflows within Kibana. It supports the full lifecycle of workflow development, from initial drafting based on natural language requirements to testing, saving, and running workflows against an Elastic stack. The skill provides guidance on using the correct authoring path—either via Discovery-tools or raw schema—and ensures safe testing practices by recommending console-stubbed drafts for side-effecting operations.
What it does
- Translates natural language requests into valid Elastic Workflow YAML definitions.
- Validates workflow YAML against the target Kibana environment.
- Executes workflow tests and individual steps to verify logic.
- Manages the lifecycle of workflows including saving, enabling, and running.
- Inspects workflow execution status and logs for debugging.
- Resolves connector IDs and step definitions for accurate workflow configuration.
When to use it
- When you need to automate tasks within Kibana using triggers like manual, scheduled, or alert events.
- When you are building or debugging Elastic Workflow YAML files.
- When you need to integrate external systems like Slack or Jira into your Kibana automation.
- When you want to test a workflow logic safely before enabling it in production.
Advantages
- Provides a structured, safe testing loop to prevent unintended side effects.
- Automates the discovery of step definitions and connector configurations.
- Supports both modern Discovery-tools and legacy schema-based authoring paths.
- Ensures consistent YAML structure through validated templates and best practices.
Usage examples
- “Create a manual workflow named 'Manual Hello Workflow' that accepts a name input and logs 'Hello {{ inputs.name }}'.”
- The agent generates the YAML, tests it using the test API, and provides the steps to save and run the workflow.
- “How do I trigger a workflow when a security alert fires?”
- The agent explains the alert trigger configuration and provides a template for iterating over alert events.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/elastic/kibana-workflows/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip kibana-workflows.zip -d .agents/skills
Documentation by elastic
Author Elastic Workflows
Create and iterate on Elastic Workflow YAML definitions. Workflows are declarative automations that run inside Kibana: they query Elasticsearch, set data, branch, loop, call connectors, create cases, notify external systems, and invoke AI steps.
<!-- begin-partial: preamble -->
Environment Configuration
This skill executes Elasticsearch operations through the elastic CLI. If the
elastic CLI is not installed, tell the user what it is needed for. Do
not guess credentials, call the HTTP API directly, or attempt other workarounds.
This skill references operations in HTTP-shorthand form (e.g., GET /, GET /_cat/indices, GET /{index}/_mapping,
GET /{index}/_settings/index.mode, POST /_query). The Operations table at the end of this document
maps each shorthand to the equivalent elastic CLI command — always use the CLI rather than calling the HTTP API
directly.
<!-- end-partial: preamble -->
If the user asks only for a draft or explanation and explicitly forbids live access, skip connection verification and do not call the CLI or APIs. State that the draft was not validated against a target deployment.
If workflow APIs are unavailable, report the returned status and message. Common causes are an unsupported Kibana
version, insufficient license or feature privileges, or Workflows not being offered on the target project. The
workflows:ui:enabled setting controls the Kibana UI; it does not remove the public Workflows APIs.
Pick the authoring path
Default to the Discovery-tools path below — the platform.workflows.* tools are registered by default on Kibana
9.5+ and Serverless. Confirm with one probe: GET kbn:/api/agent_builder/tools returns
{ "results": [ { "id": ... } ] }; save it to a file and grep for "id": "platform.workflows.". Two fallbacks, both
loaded only when needed:
No
agent_builderendpoint (404) or noplatform.workflows.*ids (e.g. Kibana 9.4) → read references/schema-path.md and hand-author from the raw JSON Schema.An LLM connector is wired into Agent Builder and the user prefers Kibana's own generator → read references/generator-path.md.
State which path you picked and why in one sentence before proceeding. Measured path benchmarks live in references/path-performance.md.
Guidelines (all paths)
Treat tests as executions.
POST kbn:/api/workflows/testruns the workflow graph, andPOST kbn:/api/workflows/step/testruns the selected step. Test only when every executed action is read-only or the user authorized its effects. Otherwise test a copy whose writes, notifications, and external calls are replaced withconsole, then restore the real steps and save the workflow disabled.Cite endpoints in HTTP shorthand, never raw transport. This skill's body refers to operations like
POST kbn:/api/workflows/test. The Operations table is the single place where shorthand binds to a concrete CLI command.Prefer purpose-built actions over generic
http. For Slack/Jira/PagerDuty/etc., prefer the connector step type (e.g.slack2.sendMessage) over a rawhttpcall. Discover the exact action type viaget_step_definitions(or the strict schema on the fallback path).Reference step outputs as
steps.<name>.output, neversteps.<name>.with.*. Trigger event data isevent, nevertrigger.eventortriggers.event.Don't guess connector ids. Call
platform.workflows.get_connectors(Discovery-tools path) orGET kbn:/api/workflows/connectors(Schema path), or ask the user. Placeholders should be obviously fake.Handle failure deliberately. Add retry or fallback behavior where the user's requirements call for resilience. Do not add
continue: trueeverywhere: it can hide a failed action and allow the workflow to report false success.Surface gates, don't paper over them. If the API returns
403 ... not available, report the required license or privileges; do not silently retry or blame the UI setting.
Discovery-tools path
Use when platform.workflows.* tools are registered on the target Kibana. All calls go through
POST kbn:/api/agent_builder/tools/_execute with { "tool_id": "...", "tool_params": { ... } }. Response shape:
{ "results": [ { "type": "other", "data": { ... }, "tool_result_id": "..." } ] } — the payload you want is
.results[0].data. Send the request body from a file and write the response to a file (see Operations),
then jq against that file; do not inline python3 -c on multi-line JSON.
Keep context small; minimize round-trips. Do NOT front-load the whole step catalog — pull only the targeted details you need, keep large tool output in files (not the transcript), and author in as few turns as possible (measured rationale: references/path-performance.md).
Capture the user's intent before writing YAML. Identify, in order, the trigger (
manual/scheduled/alert), the inputs the workflow will receive at runtime, the data sources it must read, the actions it must take, and the desired output. If a required dependency is unknown (e.g. a Slack connector id), ask the user or use a clearly-marked placeholder.Look up only what you'll use. For the specific step types this workflow needs:
platform.workflows.get_step_definitionswith an exactstepType(e.g."http","elasticsearch.esql.query","slack2.sendMessage"), or withsearchto browse. The response includes input params, config params, anoutputSummarywhen you passincludeOutputSummary: true, and usage examples. PassincludeFullSchema: trueonly if the compact summary is insufficient.platform.workflows.get_trigger_definitionsfor the trigger event schema.platform.workflows.get_connectorsto resolve realconnector-idvalues for connector actions.platform.workflows.get_exampleswhen you need a working YAML shape for a pattern.
Write each response to a file and jq the field you need — don't let full tool output land in the transcript.
Draft the whole workflow in one pass. A workflow requires
name, at least one trigger, and a non-emptystepsarray. Use 2-space indentation. Reference outputs assteps.<name>.output.*. Build the complete YAML in a single edit rather than growing it across many turns.Validate once. Call
platform.workflows.validate_workflowwith{ "yaml": "..." }. On failure it returns errors + step definitions for referenced step types automatically, so you rarely need a secondget_step_definitionscall. Fix all reported issues in a single edit, then re-validate.Test, save, and run. See Test / save / run below. Use
platform.workflows.workflow_execute_stepto iterate on a single step (withconfirmation_bodyfor unsafe steps).
Schema path (last resort)
Only for Kibanas without the platform.workflows.* tools (see the probe above). Full recipe:
references/schema-path.md.
Test / save / run
Shared final phase for both paths.
Test only an execution-safe draft. Call
POST kbn:/api/workflows/testwith the YAML inline asworkflowYamland the run-timeinputs. For any workflow that writes / notifies / calls external services, replace those steps withconsolein the tested copy first, then restore them and save the workflow disabled.Poll the execution. The response carries a
workflowExecutionId. PollGET kbn:/api/workflows/executions/{executionId}untilstatusis one ofcompleted,failed,cancelled, ortimed_out; then fetchGET kbn:/api/workflows/executions/{executionId}/logsfor step-by-step output. Only treatstatus: completedas success.Save.
POST kbn:/api/workflows/workflowwith{ yaml, id? }. Save side-effecting workflows withenabled: falseuntil the user has authorized a real run. Subsequent edits usePUT kbn:/api/workflows/workflow/{id}and may updateyaml,enabled,name,tags, ordescription(partial updates supported).Run only when authorized. Enable the workflow, then call
POST kbn:/api/workflows/workflow/{id}/runwith the sameinputsshape used at test time. Inspect via the execution + logs endpoints.
Workflow YAML Quick Reference
version: "1"
name: Manual Hello Workflow
description: Logs a hello message from a manual workflow
enabled: true
tags: ["demo", "workflow"]
triggers:
- type: manual
inputs:
properties:
name:
type: string
description: Name to greet
default: "world"
steps:
- name: log_hello
type: console
with:
message: "Hello {{ inputs.name }}"An ordinary action step can use fields like these when its strict schema allows them:
- name: unique_step_name
type: step_type
with:
param: value
connector-id: connector-id-for-connector-actions # connector actions only
if: "steps.previous.output.ok: true"
timeout: "30s"
on-failure:
retry:
max-attempts: 3
delay: "5s"
fallback:
- name: handle_error
type: console
with:
message: "Step failed"Use {{ ... }} when rendering text. Use ${{ ... }} when an entire value must retain its native type, for example
documents: "${{ steps.search.output.hits.hits }}".
Common step types include:
| Step type | Use for |
|---|---|
console | Debug logging during tests |
elasticsearch.search | Query Elasticsearch with Query DSL |
elasticsearch.esql.query | Query Elasticsearch with ES|QL |
elasticsearch.bulk | Bulk indexing |
kibana.request | Call a Kibana API |
data.set | Set values under variables |
if | Branch on a KQL-style condition |
foreach | Loop over a collection |
wait | Pause execution |
http | Generic HTTP requests |
workflow.execute | Run another saved workflow |
This is not an exhaustive compatibility list. On the Discovery-tools path, platform.workflows.get_step_definitions
answers "does step X exist and what does it take". On the schema path, GET kbn:/api/workflows/schema?loose=false is
the source of truth, and GET kbn:/api/workflows/connectors lists configured connector instances.
data.set stores variables for the current execution; it does not persist durable data. Use an Elasticsearch or Kibana
write action when the user asks to retain data after the execution.
Examples
Manual hello (smallest possible draft): "Make a workflow that logs hello." → manual trigger + one console step
that prints Hello {{ inputs.name | default: "world" }}. Test with POST kbn:/api/workflows/test. See
Demo Test Loop.
Scheduled health check: "Every 5 minutes, ping https://api.example.com/health and log the response." → scheduled
trigger (every: 5m) + http step + console. Look up the exact with shape with get_step_definitions("http"). Add
bounded retry if requested.
Alert-triggered case + Slack notify: "When a Security alert fires, create a case and post to #soc-incidents." →
alert trigger + foreach over event.alerts + connector actions. Use get_step_definitions("cases.createCase") and
get_step_definitions(search: "slack") (current fixtures use cases.createCase and slack2.sendMessage), then
get_connectors for the real connector-ids. See Workflow Patterns.
For unfamiliar shapes on the schema path, read Workflow Patterns and Generation Tips before drafting.
Operations
The HTTP-shorthand references in the body above bind to the elastic CLI commands below. Multi-line YAML and JSON
payloads are easier to pass via --input-file <path> than as inline flags.
Workflows API (both paths).
| HTTP API (shorthand) | elastic CLI command |
|---|---|
GET / | elastic es info |
GET kbn:/api/workflows | elastic stack kb workflows get-workflows |
GET kbn:/api/workflows/workflow/{id} | elastic stack kb workflows get-workflows-workflow-id --id <id> |
POST kbn:/api/workflows/workflow | elastic stack kb workflows post-workflows-workflow --input-file <path> |
PUT kbn:/api/workflows/workflow/{id} | elastic stack kb workflows put-workflows-workflow-id --id <id> --input-file <path> |
DELETE kbn:/api/workflows/workflow/{id} | elastic stack kb workflows delete-workflows-workflow-id --id <id> |
DELETE kbn:/api/workflows/workflow/{id}?force=true | elastic stack kb workflows delete-workflows-workflow-id --id <id> --force true |
POST kbn:/api/workflows/test | elastic stack kb workflows post-workflows-test --input-file <path> |
POST kbn:/api/workflows/workflow/{id}/run | elastic stack kb workflows post-workflows-workflow-id-run --id <id> --inputs <json> |
POST kbn:/api/workflows/step/test | elastic stack kb workflows post-workflows-step-test --input-file <path> |
GET kbn:/api/workflows/executions/{executionId} | elastic stack kb workflows get-workflows-executions-executionid --execution-id <id> |
GET kbn:/api/workflows/executions/{executionId}/logs | elastic stack kb workflows get-workflows-executions-executionid-logs --execution-id <id> |
POST kbn:/api/workflows/executions/{executionId}/cancel | elastic stack kb workflows post-workflows-executions-executionid-cancel --execution-id <id> |
POST kbn:/api/workflows/executions/{executionId}/resume | elastic stack kb workflows post-workflows-executions-executionid-resume --execution-id <id> |
GET kbn:/api/workflows/workflow/{workflowId}/executions | elastic stack kb workflows get-workflows-workflow-workflowid-executions --workflow-id <id> |
GET kbn:/api/workflows/schema?loose=false | elastic stack kb workflows get-workflows-schema --loose false |
GET kbn:/api/workflows/connectors | elastic stack kb workflows get-workflows-connectors |
Agent Builder tools (Discovery-tools path).
Every tool below is invoked through the same execute endpoint. Pass --input-file a JSON file with
{ "tool_id": "...", "tool_params": { ... } }.
| HTTP API (shorthand) | elastic CLI command |
|---|---|
GET kbn:/api/agent_builder/tools | elastic stack kb agent-builder get-agent-builder-tools |
POST kbn:/api/agent_builder/tools/_execute | elastic stack kb agent-builder post-agent-builder-tools-execute --input-file <path> |
Workflow-relevant tool_ids:
tool_id | Purpose |
|---|---|
platform.workflows.validate_workflow | Validate a YAML string; failure response includes step definitions for referenced step types. |
platform.workflows.workflow_execute_step | Execute one step against the real environment (with user confirmation for unsafe steps). |
platform.workflows.get_step_definitions | Look up step type params, outputs, examples. stepType for exact match, search for keyword. |
platform.workflows.get_trigger_definitions | Look up a trigger's full event schema. |
platform.workflows.get_connectors | List connector instances configured on the target. |
platform.workflows.get_examples | Search the bundled example library for working YAML patterns. |
Notes.
For post-workflows-test, the input file is JSON of the form { "workflowYaml": "...", "inputs": {} } (or workflowId
in place of workflowYaml). For post-workflows-workflow, use { "yaml": "...", "id": "..." } — id is optional. For
put-workflows-workflow-id, include only the fields to update from name, enabled, tags, yaml, and
description. Deletion is soft by default. Use force=true only when permanent deletion and immediate ID reuse are
intended. The Kibana API version is 2023-10-31; the CLI sets it automatically.
When invoking read-only get- commands from a shell that leaves stdin open (some terminals and agent runtimes do this),
append </dev/null to avoid an EAGAIN: resource temporarily unavailable crash — e.g.
elastic stack kb workflows get-workflows-executions-executionid --execution-id "{id}" </dev/null.
Files
- ATTRIBUTION.mdAdded by AutoGineer957 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md18.6 KiB
- references/demo-test-loop.md2.9 KiB
- references/generation-tips.md5.0 KiB
- references/generator-path.md5.5 KiB
- references/path-performance.md1.9 KiB
- references/schema-path.md2.1 KiB
- references/workflow-patterns.md3.8 KiB
- references/workflow-yaml-reference.md11.2 KiB
references/workflow-yaml-reference.md
Workflow YAML Reference
Elastic Workflows are YAML documents executed by Kibana. They have metadata, triggers, optional constants and outputs,
and an ordered steps array. Manual inputs belong on the manual trigger.
Root Structure
version: "1"
name: Workflow Name
description: What this workflow does
enabled: true
tags: ["tag1", "tag2"]
consts:
index: "logs-*"
triggers:
- type: manual
inputs:
properties:
severity:
type: string
description: Alert severity to process
default: "critical"
steps:
- name: first_step
type: console
with:
message: "Workflow started"Triggers
Manual
Use manual triggers for demos, testing, and user-initiated runs.
triggers:
- type: manual
inputs:
properties:
severities:
type: array
items:
type: string
default: ["low", "high"]Manual input definitions use JSON Schema. Arrays need an items schema; objects should declare their properties.
Manual runs do not have alert event context. If a workflow can run manually and from alerts, guard alert-only branches.
Scheduled — interval
Use scheduled triggers for recurring checks or reports.
triggers:
- type: scheduled
with:
every: "1h" # units: s, m, h, d (minimum 1 minute)Scheduled — RRule
For calendar-aligned schedules (specific weekdays, month days, hours), use an RRule instead of every.
triggers:
- type: scheduled
with:
rrule:
freq: DAILY # DAILY | WEEKLY | MONTHLY
interval: 1
tzid: UTC
dtstart: "2026-01-01T09:00:00Z"
byhour: [9, 17]
byminute: [0]
byweekday: [MO, TU, WE, TH, FR]
bymonthday: [1, 15]Alert
Use alert triggers when a Kibana rule or Security detection should dispatch to the workflow.
triggers:
- type: alertAlert runtime data is available under event:
{{ event.alerts }}— array of alert documents{{ event.alerts[0]._id }}— alert ID{{ event.alerts[0]._index }}— alert index{{ event.alerts[0]["@timestamp"] }}— alert timestamp{{ event.rule.name }}— rule name{{ event.spaceId }}— Kibana space
For Security detection rule alerts, event.alerts[0] carries the alert document. Document fields depend on the rule and
solution; verify them against a representative alert. Common Security alert fields include:
event.alerts[0]._id # alert document _id
event.alerts[0].kibana.alert.rule.name # detection rule name on a Security alert
event.alerts[0].host.name # affected host
event.alerts[0].host.ip # host IP(s)
event.alerts[0].user.name # affected user
event.alerts[0].kibana.alert.severity # alert severity
event.alerts[0].elastic.agent.id # Elastic Agent ID
event.alerts[0].process.name # process that triggered the alertNever use triggers.event, trigger.event, or triggers.event.*.
Dual-trigger pattern (manual + alert)
When a workflow has both manual and alert triggers, alert event context is unavailable for manual runs. Keep alert
references out of the manual path; do not rely on a compound condition to make an unsafe event dereference harmless.
Split into two guarded branches: use condition: "event: *" for the alert path, and condition: "inputs.<field>: *"
for the manual path. Never mix event references into the manual path or vice versa.
triggers:
- type: manual
inputs:
properties:
target_hash:
type: string
- type: alert
steps:
- name: alert_path
type: if
condition: "event: *"
steps:
- name: process_alert
type: console
with:
message: "Alert: {{ event.alerts[0].kibana.alert.rule.name }}"
- name: manual_path
type: if
condition: "inputs.target_hash: *"
steps:
- name: process_manual
type: console
with:
message: "Manual run for {{ inputs.target_hash }}"Inputs And Constants
Use consts for fixed workflow configuration. Declare runtime inputs on a manual trigger.
consts:
target_index: "logs-*"
triggers:
- type: manual
inputs:
properties:
service_name:
type: string
description: Service to inspectReference them with Liquid:
with:
message: "Checking {{ inputs.service_name }} in {{ consts.target_index }}"data.set creates per-execution values under variables; it is not durable storage.
Step Fields
Every step has:
name: unique within the workflowtype: step type ID or connector typewith: input parameters when the selected step type defines them
Common optional fields, when the selected step's strict schema allows them:
connector-id: connector instance ID for connector stepsif: skip this step unless the expression is truthytimeout: step timeouton-failure: retry, fallback, and continuation behavior
Step config fields outside with depend on the step type:
ifstep:condition,steps,elseforeachstep:foreach,steps
Common Step Types
| Step type | Description |
|---|---|
console | Log a message for debugging or demo output |
elasticsearch.search | Execute Elasticsearch Query DSL |
elasticsearch.esql.query | Execute ES|QL |
elasticsearch.bulk | Bulk index documents |
data.set | Store values in workflow context |
if | Branch by KQL condition |
foreach | Iterate over a collection |
while | Repeat a body with do-while semantics |
switch | Select one of several branches |
parallel | Run branches concurrently |
wait | Pause execution |
workflow.execute | Run another saved workflow |
console, http, elasticsearch.*, kibana.*, connector actions, and extension actions are also available when
registered on the target. Treat GET kbn:/api/workflows/schema?loose=false as the source of truth rather than this
summary.
Connector Steps
Connector steps use the connector type as the step type and require a connector instance ID.
- name: send_slack
type: slack2.sendMessage
connector-id: my-slack-connector
with:
channel: C0123456789
text: "Workflow completed"The example action ID and fields are verified by current Kibana eval fixtures, but connector definitions evolve. Query
the strict schema for the exact action ID and with shape, and query the connectors endpoint for a real instance ID.
Use generic http only when no purpose-built action exists or the user requests a custom HTTP API call.
Liquid Templating
Use {{ ... }} to render text. Use ${{ ... }} when the whole scalar is an expression and its native type (array,
object, number, boolean, or string) must be preserved:
{{ inputs.input_name }}
{{ consts.constant_name }}
{{ steps.step_name.output.field }}
{{ foreach.item }}
{{ event }}
${{ steps.search.output.hits.hits }}Common filters:
| Filter | Example |
|---|---|
json | {{ object | json }} — convert to JSON string |
json:2 | {{ object | json:2 }} — pretty-printed JSON |
json_parse | {{ string | json_parse }} — parse JSON to object |
size | {{ array | size }} — array length |
first / last | {{ items | first }} |
map | {{ users | map: "name" }} |
where | {{ items | where: "status", "active" }} |
where_exp | {{ items | where_exp: "item", "item.price > 100" }} |
join | {{ tags | join: ", " }} |
split | {{ csv | split: "," }} |
default | {{ name | default: "Unknown" }} |
upcase / downcase | {{ text | upcase }} |
date | {{ "now" | date: "%Y-%m-%d" }} |
base64_encode / base64_decode | {{ text | base64_encode }} |
url_encode / url_decode | {{ query | url_encode }} |
plus / minus / times / divided_by | {{ count | plus: 1 }} |
sort | {{ items | sort: "name" }} |
entries | {{ object | entries }} — emit { key, value } pairs |
pick | {{ object | pick: "a", "b.c" }} — retain fields |
Only step outputs are addressable through steps.<name>.output. Step input parameters are not addressable through
steps.<name>.with.*. A data.set step also merges its key-value output into variables; later steps can use
{{ variables.key }} or ${{ variables.key }}.
Error Handling
Use on-failure for retries and fallback steps. Processing order is retry → fallback → continue.
Step-level
- name: call_service
type: http
with:
method: GET
url: "https://example.com/status"
on-failure:
retry:
max-attempts: 3
delay: "10s"
fallback:
- name: log_failure
type: console
with:
message: "HTTP call failed"Workflow-level default
Set a workflow-wide on-failure block under settings to apply the same defaults to every step. Step-level
on-failure overrides the workflow default.
settings:
on-failure:
retry:
max-attempts: 2
delay: "1s"Lifecycle
The fast loop, using the operations from SKILL.md:
Write YAML to a file.
If every step is read-only or authorized,
POST kbn:/api/workflows/testwith{ workflowYaml, inputs }. Otherwise test a console-stubbed copy because this endpoint executes the graph.Fix validation or runtime errors surfaced by the execution and logs endpoints.
Restore action steps and
POST kbn:/api/workflows/workflowwith{ yaml, id? }; keep it disabled if the restored side effects have not been executed and approved.Enable and
POST kbn:/api/workflows/workflow/{id}/runwith{ inputs }only when authorized.Poll
GET kbn:/api/workflows/executions/{executionId}and pullGET kbn:/api/workflows/executions/{executionId}/logsfor step output.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
The author says: Kibana 9.4 or later with matching Elasticsearch and an Enterprise license, or an Elastic Serverless project with Workflows available; requires the `elastic` CLI ≥ 0.2 with `stack kb workflows` support. When Agent Builder is enabled on the target Kibana, the `platform.core.generate_workflow` and `platform.workflows.*` tools are preferred over the raw schema.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- elastic
- Publisher
- Elastic (Official)
- Source
- elastic/agent-skills · skills/kibana/kibana-workflows · commit 09d879d
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Also distributed in
- elastic/agent-skills
AutoGineer is not affiliated with or endorsed by elastic.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download kibana-workflows.zip