Recued
Menu
← Back to recipes

Generate paid document

by recued-core v11 38 views

Use “Generate paid document” in Recued. It carries out the named workflow using the connections and settings you choose.

Complete workflow

Paid Document Fulfillment 11 pinned recipes

Use Paid Document Fulfillment in Recued for transactional offer, paid workflow, form response, and payment. It includes 10 ready-to-run workflows and 4 related packs in one install.

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

Use “Generate paid document” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:paid-document-fulfillmentrecipe-role:fulfillmentowner-attendedexact-artifact-generation
by recued-core pinned v11

Use “Start paid document fulfillment” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:paid-document-fulfillmentform-response-templaterecipe-role:origindurable-coordinator
by recued-core pinned v22

Use “Reconcile document payments against Stripe” in Recued. Owner-attended payment sweep - the manual safety net under the webhook observer.

pack:paid-document-fulfillmentrecipe-role:reconcilerpayment-observerprovider-source-truth
by recued-core pinned v13

Use “Reconcile a paid document refund” in Recued. Owner-attended refund close for one order.

pack:paid-document-fulfillmentrecipe-role:reconcilerprovider-source-truthd-200
by recued-core pinned v5

Use “Inspect a paid document dispute” in Recued. Owner-attended read-only inspection binding one Stripe Dispute to one order.

pack:paid-document-fulfillmentrecipe-role:inspectorprovider-source-truthd-200
by recued-core pinned v5

Use “Review paid document artifacts” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:paid-document-fulfillmentrecipe-role:reviewowner-attendedchat-exposed
by recued-core pinned v12
Show all 11 recipes

Use “Approve and deliver paid document” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:paid-document-fulfillmentrecipe-role:deliveryowner-attendedexact-artifact-delivery
by recued-core pinned v11

Use “Reconcile paid document delivery” in Recued. Owner-attended mail-claim reconciliation for one order's two sends: the checkout-link mail (start) and the delivery mail (approve-deliver).

pack:paid-document-fulfillmentrecipe-role:reconcilermaild-200
by recued-core pinned v5

Use “Reject or cancel paid document” in Recued. It carries out the named workflow using the connections and settings you choose.

pack:paid-document-fulfillmentrecipe-role:actionowner-attendedmanual-user-only
by recued-core pinned v5

Use “Close and archive a paid document fulfillment” in Recued. Owner-attended close for one order that never took money: draft, pricing, awaiting payment (verified unpaid at Stripe by a fresh read of its own session), or expired moves to cancelled. A session the provider reports paid refuses loudly - run the payment sweep instead.

pack:paid-document-fulfillmentrecipe-role:reconcilerlifecycled-200
by recued-core pinned v6
View pack details, dependencies, and permissions →

This recipe forwards only full_name and project_summary from the accepted answer to static rendering and optional AI drafting. Templates may also use visitor.email, system.accepted_date, and ai.draft. Missing answer fields remain absent, so a template that uses one still fails strict rendering. To use another answer field, add its named read and projection to the response_named_values steps and declare it in metadata.requires_form_fields before saving the recipe. Unrelated visitor answers are not sent to the renderer or AI.

How it works 118 steps

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

Process (118 steps)
■ submission_id trim
Trim whitespace from setting submission id
■ submission_id_present compare
Check if submission id has data
⚠ submission_id_guard guard
Stop if submission id present equals
■ requested_generation_mode default
Apply default
■ requested_generation_mode_valid compare
Check if requested generation mode is one of static,ai
⚠ requested_generation_mode_guard guard
Stop if requested generation mode valid equals
■ effective_generation_mode default
Apply default
■ reviewed_artifact_sha256 trim
Trim whitespace from setting reviewed artifact sha256
◆ order_lookup core.seller.order.list
List seller order
■ order_count count
Count items in order lookup orders
■ order_found compare
Check if order count is at least 1
⚠ order_found_guard guard
Stop if order found equals
■ defaults defaults
Apply defaults
■ order_paid compare
Check if order paid at is greater than 0
⚠ order_paid_guard guard
Stop if order paid equals
■ is_first_generation compare
Check if order phase equals paid
■ is_regeneration compare
Check if order phase equals needs_owner
■ regeneration_hash_exact compare
Check if order artifact hash equals reviewed artifact sha256
■ generation_state_ok any
Check if any of the conditions are true
■ generation_required compare
Check if order phase is one of paid,needs_owner
■ generation_admitted all
Check if all conditions are true
■ generation_ok_or_skip any
Check if any of the conditions are true
⚠ generation_guard guard
Stop if generation ok or skip equals
◆ order_transition core.seller.order.transition
Transition seller order
skip: step.generation_required equal false
■ fulfilling_revision default
Apply default
◆ template_file core.storage.data-file-read
Data file read storage
skip: step.generation_required equal false
■ template_file_hash default
Apply default
■ template_file_hash_present compare
Check if template file hash has data
■ template_file_present_or_skip any
Check if any of the conditions are true
⚠ template_file_guard guard
Stop if template file present or skip equals
■ reference_present compare
Check if setting reference file ref has data
■ reference_probe_required all
Check if all conditions are true
◆ reference_file core.storage.data-file-read
Data file read storage
skip: step.reference_probe_required equal false
■ reference_file_hash default
Apply default
◆ form_response core.data.form-response.get
Get data form response
skip: step.generation_required equal false
■ response_collection_exact compare
Check if form response record collection is one of form_response
skip: step.generation_required equal false
■ response_submission_exact compare
Check if form response record submission id equals submission id
skip: step.generation_required equal false
■ response_origin_actor_exact compare
Check if form response record origin actor is one of anonymous
skip: step.generation_required equal false
■ response_origin_surface_exact compare
Check if form response record origin surface is one of system
skip: step.generation_required equal false
■ response_identity_exact all
Check if all conditions are true
skip: step.generation_required equal false
■ response_identity_or_skip any
Check if any of the conditions are true
⚠ response_identity_guard guard
Stop if response identity or skip equals
■ response_full_name_present compare
Check if form response record values full name exists
skip: step.generation_required equal false
■ response_full_name_value ternary
Apply ternary
skip: step.generation_required equal false
■ response_project_summary_present compare
Check if form response record values project summary exists
skip: step.generation_required equal false
■ response_project_summary_value ternary
Apply ternary
skip: step.generation_required equal false
■ response_named_values merge
Combine objects together
skip: step.generation_required equal false
■ response_values prefix_keys
Apply prefix_keys
skip: step.generation_required equal false
■ accepted_at_iso date_add
Add 0 seconds to
skip: step.generation_required equal false
■ accepted_date truncate
Truncate accepted at iso to a max length
skip: step.generation_required equal false
■ template_values merge
Combine objects together
skip: step.generation_required equal false
■ static_template_values merge
Combine objects together
skip: step.generation_required equal false
■ ai_mode compare
Check if effective generation mode equals ai
skip: step.generation_required equal false
■ ai_reference_present compare
Check if setting reference file ref has data
◆ ai_reference_markdown recued-core.docling.document.to_markdown
To markdown document on docling
skip: step.ai_reference_present equal false
■ ai_reference_markdown_ref_present compare
Check if ai reference markdown file ref has data
skip: step.ai_reference_present equal false
■ ai_reference_markdown_temp_backing compare
Check if ai reference markdown file ref backing is one of temp
skip: step.ai_reference_present equal false
■ ai_reference_markdown_mime_exact compare
Check if ai reference markdown file ref mime type is one of text/markdown
skip: step.ai_reference_present equal false
■ ai_reference_markdown_valid all
Check if all conditions are true
skip: step.ai_reference_present equal false
⚠ ai_reference_markdown_guard guard
Stop if ai reference markdown valid equals
skip: step.ai_reference_present equal false
✦ ai_reference_context core.ai.summarize
AI generates a concise summary
skip: step.ai_reference_present equal false
■ ai_reference_summary_raw default
Apply default
skip: step.ai_mode equal false
■ ai_reference_summary_bounded truncate
Truncate ai reference summary raw to a max length
skip: step.ai_mode equal false
■ ai_reference_summary trim
Trim whitespace from ai reference summary bounded
skip: step.ai_mode equal false
■ ai_reference_summary_present compare
Check if ai reference summary has data
skip: step.ai_reference_present equal false
⚠ ai_reference_summary_guard guard
Stop if ai reference summary present equals
skip: step.ai_reference_present equal false
■ ai_response_values_csv to_csv
Serialize rows as a CSV string
skip: step.ai_mode equal false
■ ai_response_values_bounded truncate
Truncate ai response values csv to a max length
skip: step.ai_mode equal false
✦ ai_template_context core.ai.summarize
AI generates a concise summary
skip: step.ai_mode equal false
■ ai_template_summary_raw default
Apply default
skip: step.ai_mode equal false
■ ai_template_summary_bounded truncate
Truncate ai template summary raw to a max length
skip: step.ai_mode equal false
■ ai_template_summary trim
Trim whitespace from ai template summary bounded
skip: step.ai_mode equal false
■ ai_template_summary_present compare
Check if ai template summary has data
skip: step.ai_mode equal false
⚠ ai_template_summary_guard guard
Stop if ai template summary present equals
skip: step.ai_mode equal false
■ ai_generation_context merge
Combine objects together
skip: step.ai_mode equal false
✦ ai_draft_result core.ai.generate
AI generates content from a template
skip: step.ai_mode equal false
■ ai_draft trim
Trim whitespace from ai draft result content
skip: step.ai_mode equal false
■ ai_draft_characters split
Split ai draft into parts
skip: step.ai_mode equal false
■ ai_draft_character_count count
Count items in ai draft characters
skip: step.ai_mode equal false
■ ai_draft_present compare
Check if ai draft has data
skip: step.ai_mode equal false
■ ai_draft_bounded compare
Check if ai draft character count is at most 16384
skip: step.ai_mode equal false
■ ai_draft_valid all
Check if all conditions are true
skip: step.ai_mode equal false
⚠ ai_draft_guard guard
Stop if ai draft valid equals
skip: step.ai_mode equal false
■ ai_template_values merge
Combine objects together
skip: step.ai_mode equal false
■ selected_template_values ternary
Apply ternary
skip: step.generation_required equal false
◆ rendered_markdown core.storage.file.render-markdown-template
Render markdown template storage file
skip: step.generation_required equal false
■ rendered_template_hash_exact compare
Check if rendered markdown template sha256 is one of template file hash
skip: step.generation_required equal false
■ rendered_content_hash_present compare
Check if rendered markdown content sha256 has data
skip: step.generation_required equal false
■ rendered_temp_backing_exact compare
Check if rendered markdown file ref backing is one of temp
skip: step.generation_required equal false
■ rendered_temp_mime_exact compare
Check if rendered markdown file ref mime type is one of text/markdown
skip: step.generation_required equal false
■ rendered_missing_key_count count
Count items in rendered markdown missing keys
skip: step.generation_required equal false
■ rendered_missing_keys_empty compare
Check if rendered missing key count is one of 0
skip: step.generation_required equal false
■ rendered_used_keys_csv join
Join items with ","
skip: step.generation_required equal false
■ rendered_used_keys_fenced concat
Combine text or lists together
skip: step.generation_required equal false
■ ai_draft_placeholder_used compare
Check if rendered used keys fenced contains ,ai.draft,
skip: step.generation_required equal false
■ ai_draft_placeholder_valid any
Check if any of the conditions are true
skip: step.generation_required equal false
■ rendered_markdown_admitted all
Check if all conditions are true
skip: step.generation_required equal false
⚠ rendered_markdown_guard guard
Stop if rendered markdown admitted equals
skip: step.generation_required equal false
◆ pdf_artifact recued-core.pandoc-pack.document.markdown_to_pdf
Markdown to pdf document on pandoc pack
skip: step.generation_required equal false
■ pdf_file_ref_present compare
Check if pdf artifact file ref has data
skip: step.generation_required equal false
■ pdf_hash_present compare
Check if pdf artifact content sha256 has data
skip: step.generation_required equal false
■ pdf_mime_exact compare
Check if pdf artifact mime type is one of application/pdf
skip: step.generation_required equal false
■ pdf_filename_exact compare
Check if pdf artifact filename is one of document.pdf
skip: step.generation_required equal false
■ pdf_size_number to_number
Convert pdf artifact size bytes to a number
skip: step.generation_required equal false
■ pdf_size_type_exact compare
Check if pdf artifact size bytes is one of pdf size number
skip: step.generation_required equal false
■ pdf_size_positive compare
Check if pdf size number is greater than 0
skip: step.generation_required equal false
■ pdf_artifact_valid all
Check if all conditions are true
skip: step.generation_required equal false
⚠ pdf_artifact_guard guard
Stop if pdf artifact valid equals
skip: step.generation_required equal false
◆ attach_artifact core.seller.order.attach-artifact
Attach artifact seller order
skip: step.generation_required equal false
■ attached_artifact_hash default
Apply default
■ attached_phase_exact compare
Check if attach artifact order phase equals fulfilling
skip: step.generation_required equal false
■ attached_hash_exact compare
Check if attached artifact hash equals pdf artifact content sha256
skip: step.generation_required equal false
■ attached_ready all
Check if all conditions are true
■ attached_ready_or_skip any
Check if any of the conditions are true
⚠ attached_guard guard
Stop if attached ready or skip equals
■ effective_artifact_ref coalesce
Use the first available value from: attach artifact order artifact ref, order artifact ref
■ effective_artifact_hash coalesce
Use the first available value from: attached artifact hash, order artifact hash
■ generation_notice template
Generate text from a template
▼
Output
summary generation_notice
Settings 5 configurable

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

submission id setting = [object Object]
generation mode setting = static
template file ref setting =
reference file ref setting =
reviewed artifact sha256 setting =

Uses (10 operations)

Selling List seller order core.seller.order.list
Selling Transition seller order core.seller.order.transition
Files Data file read storage core.storage.data-file-read
Form responses Get data form response core.data.form-response.get
Pack operation To markdown document on docling recued-core.docling.document.to_markdown
AI models AI generates a concise summary core.ai.summarize
AI models AI generates content from a template core.ai.generate
Files Render markdown template storage file core.storage.file.render-markdown-template
Pack operation Markdown to pdf document on pandoc pack recued-core.pandoc-pack.document.markdown_to_pdf
Selling Attach artifact seller order core.seller.order.attach-artifact

Trust & control

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

What it's allowed to do

Read Selling core.seller.order.list read-only
Write Selling core.seller.order.transition external change
Read Files core.storage.data-file-read read-only
Read Form responses core.data.form-response.get read-only
Read AI models core.ai.summarize read-only
Read AI models core.ai.generate read-only
Write Files core.storage.file.render-markdown-template external change
Write Selling core.seller.order.attach-artifact external change

2 more aren't listed here. You'll see them at install.

Data it touches

SurfacesSellingFilesForm responsesAI models
Warehousedata.form

About

Tags

pack:paid-document-fulfillmentrecipe-role:fulfillmentowner-attendedexact-artifact-generationd-207core-seller-order

Details

118 steps 5 configurable settings recipe_id: generate-paid-document