Democratic Issue Estimation Through Slack

Get team input on effort estimates without opening Linear. Notis watches Slack reaction votes and updates Linear estimates automatically.

Trigger

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

Linear logo

Action

Update issue

Updates an existing linear issue using its `issue id`; requires at least one other attribute for modification, and all provided entity ids (for state, assignee, labels, etc.) must be valid.

Why this helps

Neurodivergent founders struggle with estimation meetings. Slack reactions provide a low-friction way to vote, but those votes never make it into Linear.

  • Gather team input on estimates without formal meetings
  • Use familiar Slack reactions as your estimation mechanism
  • Update Linear estimates automatically from voting results
  • Reduce friction in the estimation process

Setup

Build it in a few focused steps.

  • 1Connect Slack and Linear to Notis.
  • 2Ask Notis: 'When the team votes on a Slack message with numbered reactions, use the most common vote as the Linear estimate' or use the portal.
  • 3Provide the prompt: 'When a message gets multiple numbered emoji reactions (1 through 5), calculate the median vote and update the corresponding Linear issue estimate.'
  • 4Choose your Linear team.
  • 5Test by posting an issue to Slack and having team members react with numbers to vote on effort.

Questions about this workflow

How does Notis know which issue to update?

Specify in your prompt how the issue ID is communicated (mentioned in the message, in the channel description, etc.).

Does it use the average or median vote?

You decide in your prompt. Median often works better to avoid outliers.

Can I use this for other types of voting?

Yes. Create variants for priority voting, complexity, or any other estimation scale.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Slack to Linear. A trigger fires from one place; an action lands in another.

Slack logo

Slack triggers

Linear logo

Linear actions

New Channel Created Trigger

Triggered when a new channel is created in Slack.

TriggerInstant

Create linear attachment

Creates a new attachment and associates it with a specific, existing linear issue.

ActionInstant

Channel Message Received

Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

TriggerInstant

Create a comment

Creates a new comment on a specified linear issue.

ActionInstant

Direct Message Received

Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.

TriggerInstant

Create linear issue

Creates a new issue in a specified linear project and team, requiring a title and description, and allowing for optional properties like assignee, state, priority, cycle, and due date.

ActionInstant

Message Reaction Added

Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Get create issue default params

Fetches a linear team's default issue estimate and state, useful for pre-filling new issue forms.

ActionInstant

Message Reaction Removed

Triggered when a reaction is removed from a message in Slack. Supports optional filtering by channel and emoji name.

TriggerInstant

Create a label

Creates a new label in linear for a specified team, used to categorize and organize issues.

ActionInstant

Reaction Added Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.

TriggerInstant

Delete issue

Archives an existing linear issue by its id, which is linear's standard way of deleting issues; the operation is idempotent.

ActionInstant

Reaction Removed Trigger

DEPRECATED: use `SLACK_MESSAGE_REACTION_REMOVED` instead. Triggered when a reaction is removed from a message.

TriggerInstant

Get all teams

Retrieves all teams from the linear workspace without requiring any parameters.

ActionInstant

New Bot Message Received Trigger

DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` with `is_bot_message=true` instead. Triggered when a new bot message is posted to a Slack channel.

TriggerInstant

Download issue attachments

Downloads a specific attachment from a linear issue; the `file name` must include the correct file extension.

ActionInstant

Connect any two apps with Notis in the middle.

Not just Slack and Linear. Any combination from 985+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7 days free trial with 20$ free usage included.
No card. Works with personal or business Linear.