Every 10 minutes
Open Jira issues for approved monday.com requests
When a change request is approved on your monday.com board, a Jira issue is opened and its key is written back to the item.
- Runs
- Every 10 minutes
- Apps
- Jira, monday.com
- AI
- Not needed
- Access
- monday.com read+write; Jira create issues
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes, find items on my Change Requests board in monday.com with status Approved and no Jira key, create a Jira issue in project ENG for each, and write the issue key back to the item.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Business teams collect and approve change requests in monday.com, but engineering works from Jira. Someone has to copy each approved request into a ticket, and requests wait days in between, with the requester never sure whether work has started.
Opening the Jira issue as soon as a request is approved removes the hand-off delay. The Jira key on the monday.com item shows the requester that it is in engineering's queue.
What you get out of it
No copy and paste
Approved requests become Jira issues with their title and details, without anyone re-typing them.
Faster start
Engineering sees requests within minutes of approval rather than at the next sync meeting.
Status visible to requesters
The Jira key on the item tells business teams the request is in progress and where to look.
One issue per request
Items that already have a key are skipped, so each request is only opened once.
How it works
What happens, step by step
Every 10 minutes ClickRuntime checks your monday.com board for items marked Approved that have no Jira key yet.
A Jira issue is created for each, with the request's title, details and a link back to monday.com.
The new issue key is written into the item's Jira column, so it is never opened twice.
Before it runs live
- Connect Jira
- Connect monday.com
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Jira and monday.com steps into one automation
Under the hood
The code that runs this automation
import json
from clickruntime import on_trigger, report_fetched, credentials, http
BOARD = 1234567890
ITEMS = """query ($board: [ID!]) { boards(ids: $board) { items_page(limit: 200) { items {
id name url column_values { id text } } } } }"""
def monday(query, **variables):
resp = http.post("https://api.monday.com/v2", json={"query": query, "variables": variables},
headers={"Authorization": credentials.secret("MONDAY_API_TOKEN"), "API-Version": "2024-10"})
resp.raise_for_status()
return resp.json()["data"]
JIRA_URL = "https://api.atlassian.com/ex/jira/your-cloud-id/rest/api/3"
def jira(method, path, **kw):
resp = http.request(method, JIRA_URL + path, headers={"Authorization": "Bearer " + credentials.connection("jira", "work")}, **kw)
resp.raise_for_status()
return resp.json() if resp.content else None
@on_trigger
def run(event):
items = monday(ITEMS, board=[BOARD])["boards"][0]["items_page"]["items"]
todo = [(i, {c["id"]: c["text"] for c in i["column_values"]}) for i in items]
todo = [(i, c) for i, c in todo if c.get("status") == "Approved" and not c.get("jira_key")]
report_fetched(len(todo))
if not todo:
return {"created": 0}
for item, c in todo:
text = f"{c.get('long_text') or ''}\n\nRequested in monday.com: {item['url']}"
issue = jira("POST", "/issue", json={"fields": {"project": {"key": "ENG"}, "issuetype": {"name": "Task"}, "summary": item["name"][:250],
"description": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": text}]}]}}})
monday("mutation ($b: ID!, $i: ID!, $v: String!) { change_simple_column_value(board_id: $b, item_id: $i, column_id: \"jira_key\", value: $v) { id } }",
b=BOARD, i=item["id"], v=issue["key"])
return {"created": len(todo)}FAQ
Common questions
What goes into the Jira issue?
Can it set the issue type or priority?
What if the request is approved again after changes?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Sync monday.com items to Jira without duplicates
New and updated monday.com items show up as Jira issues, and changes update the same issue instead of creating a new one.
See how it worksCompare Jira progress with monday.com goals weekly
Every Monday you get a report showing which epics are behind, comparing finished Jira work with the targets on your monday.com board.
See how it worksSee new job listings as they're posted
Jobs that match your keywords show up in a Slack channel, each one only once.
See how it worksKeep exploring
Set up “Open Jira issues for approved monday.com requests” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.