Skip to content
Recued
Menu
← Back to recipes

Review expected quotation draft

by recued-core v1

Owner-invoked review for a matched quotation email. It lists small needs_owner linkage rows, re-reads exactly one matched source message, and generates an ephemeral copyable draft from review-time past-deal context. It never persists the source body, context, or generated draft and never sends mail.

Complete workflow

Workflow pack for one-off expected inbound quotation emails. The entry recipe stores only bounded matching/routing state; the hidden event watcher moves a matched source pointer to owner-visible needs_owner state; an hourly timeout role moves expired watches out of active; and the review/close recipe lists needs_owner and timed_out rows before re-reading one source message for an ephemeral draft. Message bodies, deal context, and generated drafts are never persisted in data.shared, and no recipe sends email.

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 review for a matched quotation email. It lists small needs_owner linkage rows, re-reads exactly one matched source message, and generates an ephemeral copyable draft from review-time past-deal context. It never persists the source body, context, or generated draft and never sends mail.

emailmailquotationquote
by recued-core pinned v1

Register a one-time watcher for a future inbound quotation email from a known sender and bounded match terms. The durable row stores only matching/routing scalars and source identifiers; past-deal context is supplied later to the review recipe and is never persisted in data.shared.

emailmailexpected-emailquotation
by recued-core pinned v1
Expected quotation email watcher
Background automation

Hidden event watcher for watch-for-expected-quotation-email. It matches a sender, subject, and body purpose deterministically, then moves the small linkage row to owner-visible needs_owner state. It never stores the source body, past-deal context, or a generated draft; review-expected-quotation-draft re-reads the source and generates an ephemeral draft on demand.

emailmailexpected-emailquotation
by recued-core pinned v1

Low-frequency timeout role for recued-core/expected-quotation-email. 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.

watchertimeoutowner-reviewclosed-loop
by recued-core pinned v1
View pack details, dependencies, and permissions →
How it works 41 steps

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

Data fetch
watch_rows ?
timed_out_rows ?
Process (39 steps)
lifecycle_rows flatten
Flatten nested lists in
close_key trim
Trim whitespace from setting close key
close_is_needs_owner starts_with
Check if close key starts with data.shared.recipe.recued-core_expected-quotation-email.needs_owner.
close_is_timed_out starts_with
Check if close key starts with data.shared.recipe.recued-core_expected-quotation-email.timed_out.
close_namespace_allowed any
Check if any of the conditions are true
close_matches filter
Filter by condition
close_is_listed compare
Check if close matches has data
close_allowed all
Check if all conditions are true
close_owner_row ?
skip: step.close_allowed not_equal true
visible_lifecycle_rows filter
Filter by condition
draft_rows filter
Filter by condition
has_target compare
Check if setting watch key has data
targeted_rows filter
Filter by condition
selected_pool ternary
Apply ternary
candidate_rows slice
Take a subset of
has_candidate compare
Check if candidate rows has data
draft_count count
Count items in draft rows
mail_slug default
Apply default
record_id default
Apply default
matched_from default
Apply default
matched_subject default
Apply default
configured_goal trim
Trim whitespace from setting draft goal
has_configured_goal compare
Check if configured goal has data
draft_goal ternary
Apply ternary
past_deal_context truncate
Truncate setting past deal context text to a max length
has_past_context compare
Check if past deal context has data
can_draft any
Check if any of the conditions are true
skip_body_read any
Check if any of the conditions are true
body_read ?
skip: step.skip_body_read equal true
request_body default
Apply default
body_present compare
Check if request body has data
skip_draft any
Check if any of the conditions are true
protect pii-protect
Apply pii-protect
draft ?
skip: step.skip_draft equal true
restore_draft pii-restore
Apply pii-restore
skip: step.skip_draft equal true
draft_subject default
Apply default
draft_body default
Apply default
lifecycle_table to_table
Format results as a data table
card to_summary
Format results as a summary card
Settings 6 configurable

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

close key setting =
watch key setting =
draft goal setting =
reply tone setting = concise_professional
past deal context text setting =
allow draft without past context setting = false

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.

Data it touches

Warehousedata.shared

About

Tags

emailmailquotationquotedraftreviewcopyablecore-onlystate:expected-quotation-email-watcherpack:expected-quotation-emailai_surface

Details

41 steps 6 configurable settings recipe_id: review-expected-quotation-draft