Skip to content
Recued
Menu
← Back to recipes

Create approved Linear issue from Sentry

by recued-core v1

Owner-invoked action half of the Sentry to Linear exception handoff loop. It reads one awaiting_owner_approval proposal written by sentry-linear-issue-proposal, then either creates exactly one Linear issue from deterministic Sentry context or dismisses the proposal as no Linear work needed. Running this recipe is the owner's approval or decline. It re-reads the Sentry issue before creating Linear work and takes no outward-facing action when there is no pending proposal, the live Sentry issue is no longer unresolved, or the required Linear destination is missing. Native Sentry to Linear issue tracking should own the normal create/link/sync path.

Complete workflow

Workflow pack that closes the loop between exception-scoped Sentry issues and owner-approved Linear follow-up work. It depends on the Sentry and Linear capability packs, detects one unhandled matching Sentry issue at a time, writes a data.shared proposal, notifies the owner, provides a manual action recipe that either creates the Linear issue and links it back to the Sentry issue or dismisses the proposal, and watches created Linear issues until they reach a terminal state. It does not replace Sentry alerts, Sentry ownership rules, Sentry's native issue-tracker integrations, Sentry alert ticket creation, or Linear triage automation; use it only when the normal native path is unavailable, intentionally bypassed, or missing Recued-visible closure state.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Owner-invoked action half of the Sentry to Linear exception handoff loop. It reads one awaiting_owner_approval proposal written by sentry-linear-issue-proposal, then either creates exactly one Linear issue from deterministic Sentry context or dismisses the proposal as no Linear work needed. Running this recipe is the owner's approval or decline. It re-reads the Sentry issue before creating Linear work and takes no outward-facing action when there is no pending proposal, the live Sentry issue is no longer unresolved, or the required Linear destination is missing. Native Sentry to Linear issue tracking should own the normal create/link/sync path.

sentrylinearissueexception
by recued-core pinned v1

Scheduled detection half of the Sentry to Linear exception handoff loop. It reads recent matching unresolved Sentry issues, writes one data.shared proposal for the first unhandled issue, and notifies the owner to review whether the issue should become exception Linear work. It never creates Linear issues, updates Sentry issue status, changes Sentry alerts or ownership rules, mutates Linear projects, or calls arbitrary APIs. Sentry alerts, Sentry issue ownership, native Sentry issue-tracker integrations, and Sentry alert ticket creation own their normal paths; this recipe only creates a Recued-visible exception proposal that an owner can approve or dismiss with create-approved-linear-issue-from-sentry.

sentrylinearissueexception
by recued-core pinned v1

Scheduled feedback half of the Sentry to Linear exception handoff loop. It reads Linear issues created by create-approved-linear-issue-from-sentry, closes the Recued data.shared handoff when the Linear issue reaches a terminal state, and optionally notifies the owner to review the corresponding Sentry issue. It does not update Sentry issue status, update Linear issues, reopen work, create comments, change alerts, or call arbitrary APIs. Native Sentry and Linear synchronization owns normal issue resolution; this watcher only records Recued-visible exception closure.

sentrylinearissueexception
by recued-core pinned v1
View pack details, dependencies, and permissions →
How it works 79 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Data fetch
proposals ?
Process (78 steps)
proposals_family filter
Filter by condition
requested_issue_id trim
Trim whitespace from setting proposal issue id
title_override_text trim
Trim whitespace from setting linear title override
description_override_text trim
Trim whitespace from setting linear description override
team_override_text trim
Trim whitespace from setting linear team id override
project_override_text trim
Trim whitespace from setting linear project id override
state_override_text trim
Trim whitespace from setting linear state id override
assignee_override_text trim
Trim whitespace from setting linear assignee id override
pending_proposals filter
Filter by condition
has_target_issue compare
Check if requested issue id has data
targeted_proposals filter
Filter by condition
selected_pool ternary
Apply ternary
candidate_proposals slice
Take a subset of
pending_count count
Count items in pending proposals
has_candidate compare
Check if candidate proposals has data
proposal_key default
Apply default
sentry_connection default
Apply default
linear_connection default
Apply default
sentry_org default
Apply default
sentry_project default
Apply default
sentry_issue_id default
Apply default
sentry_issue_short_id default
Apply default
proposal_issue_title default
Apply default
proposal_issue_permalink default
Apply default
proposal_issue_status default
Apply default
proposal_issue_count default
Apply default
proposal_user_count default
Apply default
proposal_exception_reason default
Apply default
proposal_linear_title default
Apply default
proposal_linear_description default
Apply default
proposal_linear_team_id default
Apply default
proposal_linear_project_id default
Apply default
proposal_linear_state_id default
Apply default
proposal_linear_assignee_id default
Apply default
proposal_linear_priority default
Apply default
action_is_create compare
Check if setting action equals create_linear_issue
action_is_dismiss compare
Check if setting action equals dismiss_no_linear_work_needed
has_team_override compare
Check if team override text has data
linear_team_id ternary
Apply ternary
has_project_override compare
Check if project override text has data
linear_project_id ternary
Apply ternary
has_state_override compare
Check if state override text has data
linear_state_id ternary
Apply ternary
has_assignee_override compare
Check if assignee override text has data
linear_assignee_id ternary
Apply ternary
has_sentry_connection compare
Check if sentry connection has data
has_linear_connection compare
Check if linear connection has data
has_org compare
Check if sentry org has data
has_issue_id compare
Check if sentry issue id has data
has_linear_team compare
Check if linear team id has data
ready_for_live_sentry_read all
Check if all conditions are true
live_sentry_issue ?
skip: step.ready_for_live_sentry_read not_equal true
live_issue_status default
Apply default
issue_unresolved compare
Check if live issue status equals unresolved
live_or_proposal_title default
Apply default
resolved_issue_title default
Apply default
live_or_proposal_permalink default
Apply default
has_title_override compare
Check if title override text has data
default_linear_title default
Apply default
linear_title ternary
Apply ternary
default_linear_description template
Generate text from a template
has_description_override compare
Check if description override text has data
proposal_or_default_description default
Apply default
linear_description ternary
Apply ternary
has_linear_title compare
Check if linear title has data
has_linear_description compare
Check if linear description has data
ready_to_create all
Check if all conditions are true
ready_to_dismiss all
Check if all conditions are true
now date_add
Add 0 minutes to
mark_proposal_dismissed ?
skip: step.ready_to_dismiss not_equal true
linear_issue ?
skip: step.ready_to_create not_equal true
created_linear_issue_id default
Apply default
created_linear_issue_identifier default
Apply default
created_linear_issue_url default
Apply default
has_created_linear_issue compare
Check if created linear issue id has data
mark_proposal_created ?
skip: step.has_created_linear_issue not_equal true
link_sentry_issue_to_linear_issue ?
skip: step.has_created_linear_issue not_equal true
summary to_summary
Format results as a summary card
Settings 10 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

action setting = create_linear_issue
linear setting =
sentry setting =
proposal issue id setting =
linear title override setting =
linear team id override setting =
linear state id override setting =
linear project id override setting =
linear assignee id override setting =
linear description override setting =

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

Where it runs

Device + server Runs on your device (browser) or your server.

Permissions it requires

Read your Sentry connectionRead your Linear connection
Declared by the recipe — Recued grants these at install, where you review them before approving.

Data it touches

Warehousedata.issuecreatedata.sentrydata.lineardata.shared

About

Tags

sentrylinear sentrylinearissueexceptionapprovalincident-responsework-trackingclosed-looppack:sentry-linear-work-handoff

Details

79 steps 10 configurable settings recipe_id: create-approved-linear-issue-from-sentry