Recued
Menu
← Back to recipes

Quote board

by recued-core v3 10 views

Use “Quote board” in Recued. Every quote request against one offer, with the two things you act on: which ones are still waiting for your price, and which ones you have priced and are waiting on the customer. It reads information without changing data in the connected service.

Complete workflow

Seller Quote Request 5 pinned recipes

Use Seller Quote Request in Recued for unspecified pricing, estimate, order, and reception. It includes 7 built-in actions and 4 ready-to-run workflows. Actions that change data use Recued's approval controls.

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

Quote board
This recipe

Use “Quote board” in Recued. Every quote request against one offer, with the two things you act on: which ones are still waiting for your price, and which ones you have priced and are waiting on the customer. It reads information without changing data in the connected service.

pack:seller-quote-requestsellerquoteboard
by recued-core pinned v3

Use “Open a quote request” in Recued. Exact-form template that turns one owner-accepted Reception intake response into an order awaiting your price, and records the request itself in the pack's own Records storage. Changes remain behind Recued's approval controls.

pack:seller-quote-requestform-response-templatesellerquote
by recued-core pinned v3

Use “Price and send a quote” in Recued. Pin your price onto a waiting quote request, then send the customer a payment link for exactly that figure.

pack:seller-quote-requestsellerquoteunspecified-pricing
by recued-core pinned v3

Use “Observe a quote payment” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:seller-quote-requestsellerquotepayment
by recued-core pinned v1
View pack details, dependencies, and permissions →

Working the quote board

Run it with your quote offer's id. Stage picks what you are working:

  • pricing — requests waiting on YOU. The Price it action is the next step.
  • awaiting_payment — priced and sent; the customer has the link and has not paid yet.
  • paid — the payment landed and the order is through.
  • all — everything against this offer, newest first.

Where each column comes from

Two sources, and the split is deliberate.

The seller order store answers Reference, Stage, Total, and Currency. It is the only authority on any of them. Nothing on this board second-guesses it, and the pack keeps no copy of a figure or a phase that could disagree with it.

The pack's request records answer For (what the customer asked for, in their words), To (who to address it to), and Quoted as (the line you named the job when you priced it). The board plucks the submission references off the page it is about to show and fetches exactly those records in one bounded local read — no per-row read, no provider call.

None of it can come from Stripe. The checkout session carries a subject as price_data.product_data.description, but a pricing-phase order has no session yet — the session is created after you price it — and pricing is exactly the queue those columns matter for.

Rows opened before this pack gained Records storage show blank text columns. There is no row to read for them. The reference columns still identify them, and pricing one works normally.

⚠ The board reads orders, not the intake forms, so a request only appears once Open a quote request has run for it. If an accepted response has no row here, that recipe has not fired for it yet. Requests on record in the card counts the pack's own rows for this offer, so a number well above the listed orders is the sign of exactly that gap.

A page is at most 100 rows. The request records for a page are fetched with an exact in over its submission references, and that predicate admits 100 values — so the ceiling is the join's, not a display preference. Narrow with Stage rather than raising the limit.

⚠ An order stuck in awaiting_payment after the link expired cannot be re-quoted — order.quote only accepts a draft or pricing order. Cancel it and take a fresh request.

How it works 25 steps

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

Process (25 steps)
offer_id trim
Trim whitespace from setting seller offer id
offer_guard guard
Stop if offer id is empty
row_limit clamp
Clamp setting limit between 1 and 100
order_list ?
orders_all default
Apply default
show_all compare
Check if setting stage equals all
orders_by_stage filter
Filter by condition
orders_selected ternary
Apply ternary
orders_shown slice
Take a subset of
page_refs pluck
Extract origin_ref from each item
has_page_refs compare
Check if page refs has data
requests ?
skip: step.has_page_refs equal false
request_rows default
Apply default
request_total ?
rows_with_subject enrich_by
Apply enrich_by
board_rows map
Extract from each item
orders_pricing filter
Filter by condition
pricing_count count
Count items in orders pricing
orders_awaiting filter
Filter by condition
awaiting_count count
Count items in orders awaiting
orders_paid filter
Filter by condition
paid_count count
Count items in orders paid
shown_count count
Count items in orders shown
board_table to_table
Format results as a data table
card to_summary
Format results as a summary card
Settings 3 configurable

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

limit setting = 50
stage setting = pricing
seller offer id setting = [object Object]

About

Tags

pack:seller-quote-requestsellerquoteboardread-onlyordermoneyrecordsv3

Details

25 steps 3 configurable settings recipe_id: list-quote-requests