Skip to content
Recued
Menu
← Back to recipes

Confluence inline comment reply closure watcher

by recued-core v1

Scheduled adopter for Confluence inline comment reply closure rows seeded by reply-confluence-inline-comment-with-closure. It lists only Recued-originated inline-comment reply watches, re-reads a bounded batch of Confluence page and that page's inline comments, and closes or flags the shared row when Confluence reports the watched root comment resolved, the comment is no longer returned, or the page reaches a configured terminal status. It can notify the owner on resolution, disappearance, or terminal page status, but it never creates, updates, resolves, deletes, or comments on Confluence content, updates pages, changes tasks, alters labels, changes permissions, creates properties, configures automations, or calls arbitrary Atlassian endpoints.

Complete workflow

Workflow pack for Recued-created replies to existing Confluence inline comments. It composes the Confluence capability pack with a closure ledger: add one owner-approved storage-format reply to an existing inline comment on a configured page, persist only the connection/cloud/page/comment/reply linkage in data.shared, and let a scheduled watcher re-read that page's inline comments until Confluence reports the root comment resolved, no longer returns the comment, or the page reaches a configured terminal status. This pack does not replace Confluence inline comments, resolved-state controls, native notifications, tasks, page/blog workflows, page properties, automations, labels, permissions, or space governance; it adds Recued-visible closure state for inline-comment replies Recued created.

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

Confluence inline comment reply closure watcher
This recipe Background automation

Scheduled adopter for Confluence inline comment reply closure rows seeded by reply-confluence-inline-comment-with-closure. It lists only Recued-originated inline-comment reply watches, re-reads a bounded batch of Confluence page and that page's inline comments, and closes or flags the shared row when Confluence reports the watched root comment resolved, the comment is no longer returned, or the page reaches a configured terminal status. It can notify the owner on resolution, disappearance, or terminal page status, but it never creates, updates, resolves, deletes, or comments on Confluence content, updates pages, changes tasks, alters labels, changes permissions, creates properties, configures automations, or calls arbitrary Atlassian endpoints.

confluencecommentsinline-commentsknowledge-base
by recued-core pinned v1

Workflow origin for the Confluence inline comment reply closure loop. It reads one Confluence page and its open inline comments for context, creates exactly one owner-provided storage-format reply on an existing inline comment through recued-core.confluence.inline_comment.create, and when the reply succeeds it seeds durable data.shared closure state for confluence-inline-comment-reply-closure-watcher. It uses deterministic owner-provided storage content rather than AI and does not create top-level inline comments, create footer comments, edit or resolve comments, update pages, delete pages, update tasks, alter labels, change permissions, create properties, configure automations, or call arbitrary Atlassian endpoints.

confluencecommentsinline-commentsknowledge-base
by recued-core pinned v1

Low-frequency timeout role for recued-core/confluence-inline-comment-reply-closure. It moves a bounded batch of expired rows from active to timed_out, deletes the active copy only after the durable timeout write succeeds, and notifies the owner once per batch.

confluencewatchertimeoutowner-review
by recued-core pinned v1
View pack details, dependencies, and permissions →
How it works 185 steps

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

Data fetch
shared_comment_watches ?
Process (184 steps)
now date_add
Add 0 days to
watch_rows filter
Filter by condition
watch_rows_for_connection filter
Filter by condition
watch_rows_with_cloud filter
Filter by condition
watch_rows_with_page filter
Filter by condition
watch_rows_with_comment filter
Filter by condition
watch_rows_with_reply filter
Filter by condition
never_checked_watch_rows filter
Filter by condition
checked_watch_rows filter
Filter by condition
checked_watch_rows_oldest_first sort
Sort by value.last_checked_at
fair_watch_rows flatten
Flatten nested lists in
candidate_rows slice
Take a subset of
batch_count count
Count items in candidate rows
candidate_count count
Count items in watch rows with reply
has_candidate compare
Check if candidate rows has data
has_connection compare
Check if setting atlassian has data
skip_page_read any
Check if any of the conditions are true
batch_context_envelopes merge
Combine objects together
batch_contexts map
Extract from each item
page ?
skip: step.skip_page_read equal true
page_live_batch_context pick
Keep only specific fields from
page_batch_context_envelopes merge
Combine objects together
page_batch_contexts map
Extract from each item
page_status default
Apply default
page_status_live_batch_context pick
Keep only specific fields from
page_status_batch_context_envelopes merge
Combine objects together
page_status_batch_contexts map
Extract from each item
has_page_status compare
Check if item page status has data
has_page_status_live_batch_context pick
Keep only specific fields from
has_page_status_batch_context_envelopes merge
Combine objects together
has_page_status_batch_contexts map
Extract from each item
page_status_norm lowercase
Convert item page status to lowercase
page_status_norm_live_batch_context pick
Keep only specific fields from
page_status_norm_batch_context_envelopes merge
Combine objects together
page_status_norm_batch_contexts map
Extract from each item
page_terminal compare
Check if item page status norm is one of setting page terminal statuses
page_terminal_live_batch_context pick
Keep only specific fields from
page_terminal_batch_context_envelopes merge
Combine objects together
page_terminal_batch_contexts map
Extract from each item
skip_comment_list any
Check if any of the conditions are true
skip_comment_list_live_batch_context pick
Keep only specific fields from
skip_comment_list_batch_context_envelopes merge
Combine objects together
skip_comment_list_batch_contexts map
Extract from each item
comments_raw ?
skip: item.skip_comment_list equal true
comments_raw_live_batch_context pick
Keep only specific fields from
comments_raw_batch_context_envelopes merge
Combine objects together
comments_raw_batch_contexts map
Extract from each item
comments default
Apply default
comments_live_batch_context pick
Keep only specific fields from
comments_batch_context_envelopes merge
Combine objects together
comments_batch_contexts map
Extract from each item
matched_comment filter
Filter by condition
matched_comment_live_batch_context pick
Keep only specific fields from
matched_comment_batch_context_envelopes merge
Combine objects together
matched_comment_batch_contexts map
Extract from each item
live_comment slice
Take a subset of
live_comment_live_batch_context pick
Keep only specific fields from
live_comment_batch_context_envelopes merge
Combine objects together
live_comment_batch_contexts map
Extract from each item
has_live_comment compare
Check if item live comment has data
has_live_comment_live_batch_context pick
Keep only specific fields from
has_live_comment_batch_context_envelopes merge
Combine objects together
has_live_comment_batch_contexts map
Extract from each item
comment_missing compare
Check if item has live comment does not equal true
comment_missing_live_batch_context pick
Keep only specific fields from
comment_missing_batch_context_envelopes merge
Combine objects together
comment_missing_batch_contexts map
Extract from each item
live_comment_status default
Apply default
live_comment_status_live_batch_context pick
Keep only specific fields from
live_comment_status_batch_context_envelopes merge
Combine objects together
live_comment_status_batch_contexts map
Extract from each item
live_comment_status_norm lowercase
Convert item live comment status to lowercase
live_comment_status_norm_live_batch_context pick
Keep only specific fields from
live_comment_status_norm_batch_context_envelopes merge
Combine objects together
live_comment_status_norm_batch_contexts map
Extract from each item
comment_resolved compare
Check if item live comment status norm is one of setting resolved statuses
comment_resolved_live_batch_context pick
Keep only specific fields from
comment_resolved_batch_context_envelopes merge
Combine objects together
comment_resolved_batch_contexts map
Extract from each item
closure_detected any
Check if any of the conditions are true
closure_detected_live_batch_context pick
Keep only specific fields from
closure_detected_batch_context_envelopes merge
Combine objects together
closure_detected_batch_contexts map
Extract from each item
non_terminal_closed_status ternary
Apply ternary
non_terminal_closed_status_live_batch_context pick
Keep only specific fields from
non_terminal_closed_status_batch_context_envelopes merge
Combine objects together
non_terminal_closed_status_batch_contexts map
Extract from each item
closed_status ternary
Apply ternary
closed_status_live_batch_context pick
Keep only specific fields from
closed_status_batch_context_envelopes merge
Combine objects together
closed_status_batch_contexts map
Extract from each item
closed_reason_missing_or_resolved ternary
Apply ternary
closed_reason_missing_or_resolved_live_batch_context pick
Keep only specific fields from
closed_reason_missing_or_resolved_batch_context_envelopes merge
Combine objects together
closed_reason_missing_or_resolved_batch_contexts map
Extract from each item
closed_reason ternary
Apply ternary
closed_reason_live_batch_context pick
Keep only specific fields from
closed_reason_batch_context_envelopes merge
Combine objects together
closed_reason_batch_contexts map
Extract from each item
non_terminal_owner_action ternary
Apply ternary
non_terminal_owner_action_live_batch_context pick
Keep only specific fields from
non_terminal_owner_action_batch_context_envelopes merge
Combine objects together
non_terminal_owner_action_batch_contexts map
Extract from each item
owner_action ternary
Apply ternary
owner_action_live_batch_context pick
Keep only specific fields from
owner_action_batch_context_envelopes merge
Combine objects together
owner_action_batch_contexts map
Extract from each item
page_version_number default
Apply default
page_version_number_live_batch_context pick
Keep only specific fields from
page_version_number_batch_context_envelopes merge
Combine objects together
page_version_number_batch_contexts map
Extract from each item
skip_close any
Check if any of the conditions are true
skip_close_live_batch_context pick
Keep only specific fields from
skip_close_batch_context_envelopes merge
Combine objects together
skip_close_batch_contexts map
Extract from each item
closed_watch_key replace
Replace text in item watch key
closed_watch_key_live_batch_context pick
Keep only specific fields from
closed_watch_key_batch_context_envelopes merge
Combine objects together
closed_watch_key_batch_contexts map
Extract from each item
close_watch ?
skip: item.skip_close equal true
close_watch_live_batch_context pick
Keep only specific fields from
close_watch_batch_context_envelopes merge
Combine objects together
close_watch_batch_contexts map
Extract from each item
delete_closed_active_watch ?
skip: item.close_watch.ok not_equal true
delete_closed_active_watch_live_batch_context pick
Keep only specific fields from
delete_closed_active_watch_batch_context_envelopes merge
Combine objects together
delete_closed_active_watch_batch_contexts map
Extract from each item
notify_resolved_enabled compare
Check if setting notify when resolved equals true
notify_resolved_enabled_live_batch_context pick
Keep only specific fields from
notify_resolved_enabled_batch_context_envelopes merge
Combine objects together
notify_resolved_enabled_batch_contexts map
Extract from each item
notify_missing_enabled compare
Check if setting notify when missing equals true
notify_missing_enabled_live_batch_context pick
Keep only specific fields from
notify_missing_enabled_batch_context_envelopes merge
Combine objects together
notify_missing_enabled_batch_contexts map
Extract from each item
notify_page_terminal_enabled compare
Check if setting notify when page terminal equals true
notify_page_terminal_enabled_live_batch_context pick
Keep only specific fields from
notify_page_terminal_enabled_batch_context_envelopes merge
Combine objects together
notify_page_terminal_enabled_batch_contexts map
Extract from each item
should_notify_resolved all
Check if all conditions are true
should_notify_resolved_live_batch_context pick
Keep only specific fields from
should_notify_resolved_batch_context_envelopes merge
Combine objects together
should_notify_resolved_batch_contexts map
Extract from each item
should_notify_missing all
Check if all conditions are true
should_notify_missing_live_batch_context pick
Keep only specific fields from
should_notify_missing_batch_context_envelopes merge
Combine objects together
should_notify_missing_batch_contexts map
Extract from each item
should_notify_page_terminal all
Check if all conditions are true
should_notify_page_terminal_live_batch_context pick
Keep only specific fields from
should_notify_page_terminal_batch_context_envelopes merge
Combine objects together
should_notify_page_terminal_batch_contexts map
Extract from each item
status_should_notify any
Check if any of the conditions are true
status_should_notify_live_batch_context pick
Keep only specific fields from
status_should_notify_batch_context_envelopes merge
Combine objects together
status_should_notify_batch_contexts map
Extract from each item
should_notify all
Check if all conditions are true
should_notify_live_batch_context pick
Keep only specific fields from
should_notify_batch_context_envelopes merge
Combine objects together
should_notify_batch_contexts map
Extract from each item
non_terminal_notification_title ternary
Apply ternary
non_terminal_notification_title_live_batch_context pick
Keep only specific fields from
non_terminal_notification_title_batch_context_envelopes merge
Combine objects together
non_terminal_notification_title_batch_contexts map
Extract from each item
notification_title ternary
Apply ternary
notification_title_live_batch_context pick
Keep only specific fields from
notification_title_batch_context_envelopes merge
Combine objects together
notification_title_batch_contexts map
Extract from each item
notify_owner ?
skip: item.should_notify not_equal true
notify_owner_live_batch_context pick
Keep only specific fields from
notify_owner_batch_context_envelopes merge
Combine objects together
notify_owner_batch_contexts map
Extract from each item
refreshed_watch_value merge
Combine objects together
skip: item.delete_closed_active_watch.ok equal true
refreshed_watch_value_live_batch_context pick
Keep only specific fields from
refreshed_watch_value_batch_context_envelopes merge
Combine objects together
refreshed_watch_value_batch_contexts map
Extract from each item
refresh_active_watch ?
skip: item.delete_closed_active_watch.ok equal true
refresh_active_watch_live_batch_context pick
Keep only specific fields from
refresh_active_watch_batch_context_envelopes merge
Combine objects together
refresh_active_watch_batch_contexts map
Extract from each item
closed_batch_rows filter
Filter by condition
refreshed_batch_rows filter
Filter by condition
closed_batch_count count
Count items in closed batch rows
refreshed_batch_count count
Count items in refreshed batch rows
summary to_summary
Format results as a summary card
Settings 8 configurable

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

channels setting = in_app
atlassian setting =
batch limit setting = 5
resolved statuses setting = resolved
notify when missing setting = true
notify when resolved setting = true
page terminal statuses setting = archived,deleted,trashed
notify when page terminal setting = true

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

Send notificationsRead your Atlassian connection
Declared by the recipe — Recued grants these at install, where you review them before approving.

Data it touches

Warehousedata.shared

About

Tags

confluence confluencecommentsinline-commentsknowledge-basecollaborationclosurenotificationclosed-loopstate:confluence-inline-comment-reply-closure-watcherpack:confluence-inline-comment-reply-closure

Details

185 steps 8 configurable settings recipe_id: confluence-inline-comment-reply-closure-watcher