Docs Cloud Redpanda Connect Cookbooks Work with Jira Issues Work with Jira Issues Page options Copy as Markdown Copied! View as plain text Ask AI about this topic Add MCP server to VS Code The Jira processor enables querying Jira issues using JQL (Jira Query Language) and returning structured data. It’s a processor, so you can use it in pipelines for input-style flows (pair with generate) or output-style flows (pair with drop). Use this cookbook to: Query Jira issues on a schedule or on-demand Filter issues using JQL patterns Create Jira issues using the HTTP processor Prerequisites The examples in this cookbook use the Secrets Store for Jira credentials. This keeps sensitive credentials secure and separate from your pipeline configuration. Generate a Jira API token. Add your Jira credentials to the Secrets Store: JIRA_BASE_URL: Your Jira instance URL (for example, https://your-domain.atlassian.net) JIRA_USERNAME: Your Jira account email address JIRA_API_TOKEN: The API token generated from your Atlassian account JIRA_AUTH_TOKEN (optional, for creating issues): Base64-encoded username:api_token string Use Jira as an input To use Jira as an input, combine the generate input with the Jira processor. This pattern triggers Jira queries at regular intervals or on-demand. Replace MYPROJECT in the examples with your actual Jira project key. Query Jira periodically This example queries Jira every 30 seconds for recent issues: input: generate: interval: 30s mapping: | root.jql = "project = MYPROJECT AND updated >= -1h ORDER BY updated DESC" root.maxResults = 50 root.fields = ["key", "summary", "status", "assignee", "priority"] pipeline: processors: - jira: base_url: "${secrets.JIRA_BASE_URL}" username: "${secrets.JIRA_USERNAME}" api_token: "${secrets.JIRA_API_TOKEN}" output: stdout: {} One-time query For a single query, use count instead of interval: input: generate: count: 1 mapping: | root.jql = "project = MYPROJECT AND status = Open" root.maxResults = 100 pipeline: processors: - jira: base_url: "${secrets.JIRA_BASE_URL}" username: "${secrets.JIRA_USERNAME}" api_token: "${secrets.JIRA_API_TOKEN}" output: stdout: {} Input message format The Jira processor expects input messages containing valid Jira queries in JSON format: { "jql": "project = MYPROJECT AND status = Open", "maxResults": 50, "fields": ["key", "summary", "status", "assignee"] } Required fields jql: The JQL (Jira Query Language) query string Optional fields maxResults: Maximum number of results to return (default: 50) fields: Array of field names to include in the response JQL query patterns Here are common JQL patterns for filtering issues: Recent issues by project project = <YOUR_PROJECT> AND created >= -7d ORDER BY created DESC Issues assigned to current user assignee = currentUser() AND status != Done Issues by status project = <YOUR_PROJECT> AND status IN (Open, 'In Progress', 'To Do') Issues by priority project = <YOUR_PROJECT> AND priority = High ORDER BY created DESC Output message format The Jira processor returns individual issue messages, rather than a response object with an issues array. Each message output by the Jira processor represents a single issue: { "id": "12345", "key": "DOC-123", "fields": { "summary": "Example issue", "status": { "name": "In Progress" }, "assignee": { "displayName": "John Doe" } } } Pagination handling The Jira processor automatically handles pagination internally. The processor: Makes the initial request with startAt=0. Checks if more results are available. Automatically fetches subsequent pages until all results are retrieved. Outputs each issue as an individual message. You don’t need to handle pagination manually. Create and update Jira issues The Jira processor is read-only and only supports querying. To create or update Jira issues, use the http processor with the Jira REST API. Create a Jira issue input: generate: count: 1 mapping: | root.fields = { "project": {"key": "MYPROJECT"}, "summary": "Issue created from Redpanda Connect", "description": { "type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Created via API"}]}] }, "issuetype": {"name": "Task"} } pipeline: processors: - http: url: "${secrets.JIRA_BASE_URL}/rest/api/3/issue" verb: POST headers: Content-Type: application/json Authorization: "Basic ${secrets.JIRA_AUTH_TOKEN}" output: stdout: {} See also Jira processor reference Jira REST API documentation JQL query guide Back to top × Simple online edits For simple changes, such as fixing a typo, you can edit the content directly on GitHub. Edit on GitHub Or, open an issue to let us know about something that you want us to change. Open an issue Contribution guide For extensive content updates, or if you prefer to work locally, read our contribution guide . Was this helpful? thumb_up thumb_down group Ask in the community mail Share your feedback group_add Make a contribution 🎉 Thanks for your feedback! Retrieval-Augmented Generation (RAG) Develop