New to Kestra?
Use blueprints to kickstart your first workflows.
Webhook-driven Jira triage that embeds your ops playbook, retrieves relevant guidance with RAG, asks Gemini for triage steps, and comments on the issue.
Close the loop between a new Jira ticket and a first actionable response. This Kestra blueprint listens for Jira issue webhooks, extracts the relevant fields with jq, grounds Google Gemini in your operations playbook through RAG, and posts the AI-proposed triage steps straight back onto the issue as a comment. Engineers open the ticket and find risk assessment, work notes, and a proposed resolution already waiting, written from your own runbooks rather than generic model knowledge.
jira_issue trigger (io.kestra.plugin.core.trigger.Webhook) receives the issue-created payload from a Jira automation rule, secured by JIRA_WEBHOOK_KEY.log_issue task (io.kestra.plugin.core.debug.Return) uses a jq expression to project the payload down to id, key, summary, description, reporter, and priority.ingest_kb task (io.kestra.plugin.ai.rag.IngestDocument) splits the inline playbook stub by paragraph (1024 char segments, 512 overlap) and embeds it with gemini-embedding-001 into io.kestra.plugin.ai.embeddings.KestraKVStore.invoke_ai task (io.kestra.plugin.ai.rag.ChatCompletion) retrieves matching playbook segments and asks gemini-3.5-flash-lite for a concise summary, work notes, and a proposed resolution with mandatory Risk, Steps, and Verification sections.update_comment task (io.kestra.plugin.core.http.Request) POSTs the answer to the Jira REST API v3 comment endpoint as an Atlassian Document Format body, authenticated with basic auth built from JIRA_EMAIL and JIRA_API_TOKEN.jq.Jira automation rules can call a webhook, but they cannot run a RAG pipeline, manage embeddings, or keep an auditable record of model inputs and outputs. Kestra turns the whole loop into declarative YAML: the io.kestra.plugin.ai plugin makes document ingestion and retrieval-augmented chat first-class tasks, pluginDefaults keeps the Gemini API key in one place, secrets stay out of the flow definition, and every execution links the incoming payload, retrieved context, and posted comment. Swap the model, the vector store, or the ticketing system without rewriting glue code.
jira_base_url variable to your Atlassian domain.GEMINI_API_KEY: Google Gemini API key for embeddings and chat.JIRA_EMAIL: email of the Jira service account used for basic auth.JIRA_API_TOKEN: Jira API token paired with the email.JIRA_WEBHOOK_KEY: shared secret guarding the Webhook trigger.jira_base_url.ingest_kb with your real knowledge base.io.kestra.plugin.core.flow.If: page on-call for P1, comment only for P3.io.kestra.plugin.jira.issues.CreateComment in place of the raw HTTP call.KestraKVStore for pgvector or Elasticsearch for larger playbooks.