Turn Process Data Into Speed
Every issue automatically tracks how long it took to close. Built-in metrics let you optimize your process without extra work.
Trigger
Issue Updated Trigger
Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.
Action
Execute Code
Execute python code in a sandbox and return any result, stdout, stderr, and error. use /home/user folder to write/read files. try to not use plt.show() as the code is executed remotely. use files for image/chart output instead.
Why this helps
You have no visibility into how long issues actually take to resolve. Without data, you can't spot bottlenecks or predict future timelines. You're always guessing.
- Historical data reveals which types of issues are fast versus slow
- Spot process bottlenecks before they become crises
- Predict timelines for future work based on real data
- No manual tracking--data accumulates automatically
Setup
Build it in a few focused steps.
- 1Connect Linear to Notis (integrations page).
- 2Create an automation named 'Resolution Time Tracker.'
- 3Write in plain language: 'When an issue status changes, record the transition: from state (e.g., Backlog) to new state (e.g., In Progress), and note the timestamp. When an issue reaches Done, calculate total time from creation to done, and time in each major state (Backlog, In Progress, In Review, Done). Log all transitions as a JSON file at /home/user/resolution_metrics.json.'
- 4Choose 'Issue Updated' as the trigger.
- 5After a week of runs, download the metrics file and spot patterns.
Questions about this workflow
How far back does the tracking go?
It starts from when you create the automation. If you want historical data, you can ask Notis to backfill by pulling all historical transitions from Linear first.
Can I see which types of issues are slowest?
Yes--you can ask Notis to tag issues by label or project, then compare average resolution time by type. For example, 'infrastructure issues take 3x longer than bugs.'
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Linear to Codeinterpreter. A trigger fires from one place; an action lands in another.
Linear triggers
Codeinterpreter actions
Recurring trigger
Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.
Create Sandbox
Create a sandbox to execute python code in a jupyter notebook cell. this is useful for agents to communicate, execute code, see output, read files, write files, etc. it's like you own personal computer, but in the cloud. use /home/user folder to write/read files.
Webhook trigger
Notis starts this workflow when an external tool or custom backend sends an HTTP request.
Execute Code
Execute python code in a sandbox and return any result, stdout, stderr, and error. use /home/user folder to write/read files. try to not use plt.show() as the code is executed remotely. use files for image/chart output instead.
Comment Received Trigger
Triggered when a comment is received.
Get File
Get a file from the sandbox and returns the file. the files should be read from /home/user folder.
Issue Created Trigger
Triggered when a new issue is created.
Run Terminal Command
Run a command in the terminal and returns the stdout, stderr, and error code. use /home/user folder to write/read files.
Issue Updated Trigger
Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.
Upload File
Upload a file to the sandbox environment. the files should be uploaded to the /home/user folder.
Private Team Comment Created
Fires when a new comment is posted on an issue in a private Linear team (polled with the connected user's token).
Private Team Issue Created
Fires when a new issue appears in a private Linear team (polled with the connected user's token).
Private Team Issue Properties Updated
Fires when properties on an issue change in a private Linear team (polled with the connected user's token).
Connect any two apps with Notis in the middle.
Linear and Codeinterpreter, or any other combination from 1,000+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Codeinterpreter.