Skip to content
Notis

Know Your Project Scope Before You Commit

Every new project gets an instant scope breakdown. You see what you're taking on before you commit to a timeline.

Trigger

Project Created

Fires when a new Linear project is created. Covers projects in both public and private teams — polls with the connected user's token, so visibility matches what the connected user can see in Linear.

Action

Upload File

Upload a file to the sandbox environment. the files should be uploaded to the /home/user folder.

Why this helps

A new project lands and you have no sense of scope. Is it a 2-week sprint or a 6-month epic? Estimation is guessing in the dark, leading to bad commitments and broken promises.

  • Instant view of project scope prevents over-committing
  • Complexity breakdown by type (bugs vs features vs refactors) shows real effort
  • Early estimation means less timeline pressure and burnout
  • Transparent scope helps with staffing and planning

Setup

Build it in a few focused steps.

  • 1Connect Linear and Codeinterpreter to Notis (integrations page).
  • 2Create an automation named 'Project Complexity Analyzer.'
  • 3In plain language, write: 'When a new project is created, wait 30 seconds for issues to be linked. Then analyze the project: count issues by type (bug/feature/refactor/chore), by complexity if estimated, or by area (backend/frontend/infra/design). Generate a visual heatmap (color-coded grid or stacked bar chart) showing distribution. Save as an image to /home/user/projects/[project-name]-complexity.png. Upload the file and post a message like New project scope: X issues, distributed as [summary]. Estimated effort: [rough guess based on complexity].'
  • 4Choose 'Project Created' as the trigger.
  • 5Create a test project with 10-20 issues of varied types. Notis should analyze and generate a heatmap within a minute.

Questions about this workflow

How does Notis estimate effort from a complexity heatmap?

It uses issue count and type distribution as a proxy. For example, 'a project with 8 features and 3 bugs is roughly 2 weeks at your current velocity.' This is a rough signal, not a guarantee.

Can I customize the complexity categories?

Yes--tell Notis how you categorize work (by label, type, area, etc.) and it will adjust the heatmap accordingly.

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.

TriggerScheduled

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.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

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.

ActionInstant

Comment Received Trigger

Triggered when a comment is received.

TriggerInstant

Get File

Get a file from the sandbox and returns the file. the files should be read from /home/user folder.

ActionInstant

Issue Created Trigger

Triggered when a new issue is created.

TriggerInstant

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.

ActionInstant

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

TriggerInstant

Upload File

Upload a file to the sandbox environment. the files should be uploaded to the /home/user folder.

ActionInstant

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).

TriggerPolling

Private Team Issue Created

Fires when a new issue appears in a private Linear team (polled with the connected user's token).

TriggerPolling

Private Team Issue Properties Updated

Fires when properties on an issue change in a private Linear team (polled with the connected user's token).

TriggerPolling

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.