The moment it happens
Triage feedback into Jira with a Notion log
Every piece of feedback is logged in your Notion database with its type and severity, bugs become Jira issues, and critical ones are posted to Slack.
- Runs
- The moment it happens
- Apps
- Jira, Notion
- AI
- Yes, uses the built-in AI allowance
- Access
- Jira write; Notion insert
Send this to your assistant
Create a ClickRuntime automation: when feedback arrives at the trigger link, have AI pick a type and severity, create a Jira bug in FB if it's a bug, add a row to my Notion Feedback database with the Jira link, and post critical items to #product.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A product manager keeps a feedback database in Notion to spot themes, while engineers work from Jira. Feedback is pasted into Notion by hand, bugs are copied into Jira by hand, and the two drift apart.
Logging everything in Notion and sending bugs to Jira at the same moment keeps both complete and linked. The product manager reviews themes in Notion, and engineers get bugs without waiting.
What you get out of it
Every item is in Notion
The feedback database is complete. Themes and patterns are easy to review.
Bugs go straight to engineering
Bugs become Jira issues as they arrive. Nothing waits for a weekly review.
Linked records
Notion entries link to their Jira issue. Product can follow a complaint to its fix.
Critical items are flagged
Severe problems are posted to Slack immediately. The team reacts within minutes.
How it works
What happens, step by step
When feedback is submitted, it is sent to your automation's trigger link.
AI reads it and picks a type and a severity, with a short title.
If it is a bug, a Jira issue is created.
A row is added to your Notion Feedback database, linking the Jira issue if there is one.
Critical items are posted to your #product Slack channel.
Before it runs live
- Connect Jira
- Connect Notion and share the database you want it to use
- Paste your automation's link into the other app's webhook settings
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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Jira and Notion steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify, ai
JIRA, SITE = "https://api.atlassian.com/ex/jira/your-cloud-id", "https://acme.atlassian.net/browse/"
adf = lambda text: {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": text}]}]}
def jira(method, path, **kw):
resp = http.request(method, JIRA + path, headers={"Authorization": f"Bearer {credentials.connection('jira', 'work')}", "Accept": "application/json"}, **kw)
return resp.raise_for_status() or (resp.json() if resp.content else None)
def notion(method, path, **kw):
resp = http.request(method, f"https://api.notion.com/v1{path}", headers={
"Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"}, **kw)
return resp.raise_for_status() or resp.json()
DB = "your-notion-database-id"
SCHEMA = {"type": "object", "properties": {"type": {"type": "string", "enum": ["Bug", "Idea", "Praise", "Other"]},
"severity": {"type": "string", "enum": ["Critical", "High", "Normal", "Low"]}, "title": {"type": "string"}}}
@on_event
def handle(event):
fb = event.json or {}
t = ai.generate(fb.get("message", "")[:4000], json_schema=SCHEMA, max_output_tokens=80, system="Classify this customer feedback with a short title.").json
link = None
if t["type"] == "Bug":
key = jira("POST", "/rest/api/3/issue", json={"fields": {"project": {"key": "FB"}, "issuetype": {"name": "Bug"},
"summary": t["title"][:250], "description": adf(f"From {fb.get('email', '-')}\n\n{fb.get('message', '')}")}})["key"]
link = SITE + key
notion("POST", "/pages", json={"parent": {"database_id": DB}, "properties": {
"Name": {"title": [{"text": {"content": t["title"]}}]}, "Type": {"select": {"name": t["type"]}}, "Severity": {"select": {"name": t["severity"]}},
"Feedback": {"rich_text": [{"text": {"content": fb.get("message", "")[:2000]}}]}, "Jira": {"url": link}}})
if t["severity"] == "Critical":
notify.slack(f"Critical feedback: {t['title']}\n{link or ''}", channel="#product")
return {"jira": link, **t}FAQ
Common questions
Which Notion properties does it need?
Do feature ideas go to Jira?
Where can feedback come from?
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
Update Jira and log a Notion changelog from your commits
When code is pushed with a Jira key in the commit message, the ticket gets a comment and moves forward, and a changelog entry is added to Notion.
See how it worksLog security events as Jira tasks and Notion records
Each security or data-quality alert creates one Jira task and one entry in your Notion security log, and the team is told in Slack.
See how it worksGet a pre-meeting briefing from Jira and Notion
Before each project meeting, Slack gets a briefing with the open Jira issues and a summary of the latest Notion notes for that project.
See how it worksKeep exploring
Set up “Triage feedback into Jira with a Notion log” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.