Centralize Attachments Across Slack and Linear

Files get shared in DMs but forgotten. Notis automatically attaches them to the corresponding Linear issue so documentation lives where decisions happen.

Trigger

Direct Message Received

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

Linear logo

Action

Create linear attachment

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

Why this helps

Attachments shared via DM never make it into Linear, forcing neurodivergent founders to search through Slack history when they need files later or to manually upload them.

  • Automatically move files from Slack to the right Linear issue
  • Keep documentation centralized without manual uploading
  • Reduce the cognitive load of tracking files across platforms
  • Build a complete record of issue history including attachments

Setup

Build it in a few focused steps.

  • 1Connect Slack and Linear to Notis.
  • 2Ask Notis: 'When someone sends me a file in a DM along with an issue ID, attach it to that Linear issue' or use the portal.
  • 3Provide the prompt: 'When I receive a DM with a file attachment and an issue ID, attach the file to that Linear issue.'
  • 4Test by sending Notis a DM with a file and an issue ID, then verify the attachment appears in Linear.

Questions about this workflow

What file types are supported?

Linear accepts most common file types (documents, images, spreadsheets, etc.). Notis will attach anything Linear supports.

What if the issue ID isn't mentioned?

You can configure Notis to ask you which issue to attach the file to, or to save files to a default inbox for manual sorting.

Does this preserve the original filename?

Yes. Notis keeps the filename intact so you can identify files later.

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.