Recued
Menu
← Back to recipes

Issue a time-boxed pass for a paid order

by recued-core v3 45 views

Use “Issue a time-boxed pass for a paid order” in Recued. It carries out the named workflow using the connections and settings you choose.

Complete workflow

Seller One-Time Pass 4 pinned recipes

Use Seller One-Time Pass in Recued for customer access and provider source truth: the pass order, its own payment observer, and the pass issue with its claim link. It includes 1 related pack 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.

Issue a time-boxed pass for a paid order
This recipe Background automation

Use “Issue a time-boxed pass for a paid order” in Recued. It carries out the named workflow using the connections and settings you choose.

recipe-role:fulfilmentprovider-source-truthcustomer-accesspass
by recued-core pinned v3
Open one-time pass order
Background automation

Use “Open one-time pass order” in Recued. It carries out the named workflow using the connections and settings you choose.

recipe-role:origindurable-coordinatorcheckout-createcheckout-link-mail
by recued-core pinned v3
Observe seller pass payment event
Background automation

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

pack:seller-one-time-passrecipe-role:webhookpayment-observerprovider-source-truth
by recued-core pinned v3
Close a resolved access order
Background automation

Use “Close a resolved access order” in Recued. Owner-attended close for one access order stranded in needsowner - the state a fulfilment leaves behind when the customer access was issued but the claim-link email could not be delivered. Moves needsowner to complete and clears the order error code.

recipe-role:recoveryowner-attendedcustomer-accessorder-lifecycle
by recued-core pinned v2
View pack details, dependencies, and permissions →
How it works 101 steps

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

Process (101 steps)
■ order_handle trim
Trim whitespace from setting order handle
■ order_handle_prefix starts_with
Check if order handle starts with oh_
■ door_id trim
Trim whitespace from setting door id
■ door_id_present compare
Check if door id has data
■ claim_link_mail_subject_template trim
Trim whitespace from setting claim link email subject
■ claim_link_mail_subject_template_present compare
Check if claim link mail subject template has data
■ claim_link_mail_subject_template_truncated truncate
Truncate claim link mail subject template to a max length
■ claim_link_mail_subject_template_bounded compare
Check if claim link mail subject template is one of claim link mail subject template truncated
■ claim_link_mail_subject_template_has_lf compare
Check if claim link mail subject template contains
■ claim_link_mail_subject_template_has_cr compare
Check if claim link mail subject template contains
■ claim_link_mail_subject_template_without_product replace
Replace text in claim link mail subject template
■ claim_link_mail_subject_template_has_unknown_open compare
Check if claim link mail subject template without product contains [[
■ claim_link_mail_subject_template_has_unknown_close compare
Check if claim link mail subject template without product contains ]]
■ claim_link_mail_body_template trim
Trim whitespace from setting claim link email body
■ claim_link_mail_body_template_present compare
Check if claim link mail body template has data
■ claim_link_mail_body_has_url_placeholder compare
Check if claim link mail body template contains [[claim_url]]
■ claim_link_mail_body_template_truncated truncate
Truncate claim link mail body template to a max length
■ claim_link_mail_body_template_bounded compare
Check if claim link mail body template is one of claim link mail body template truncated
■ claim_link_mail_body_template_without_product replace
Replace text in claim link mail body template
■ claim_link_mail_body_template_without_url replace
Replace text in claim link mail body template without product
■ claim_link_mail_body_template_has_unknown_open compare
Check if claim link mail body template without url contains [[
■ claim_link_mail_body_template_has_unknown_close compare
Check if claim link mail body template without url contains ]]
■ claim_link_mail_templates_preflight_valid all
Check if all conditions are true
■ claim_link_sender_mail_name default
Apply default
■ claim_link_sender_mail_truncated truncate
Truncate claim link sender mail name to a max length
■ claim_link_sender_mail_present compare
Check if claim link sender mail name has data
■ claim_link_sender_mail_bounded compare
Check if claim link sender mail name is one of claim link sender mail truncated
■ claim_link_sender_mail_valid all
Check if all conditions are true
■ input_valid all
Check if all conditions are true
⚠ input_guard guard
Stop if input valid equals
◆ order_read core.seller.order.get
Get seller order
■ order_present compare
Check if order read order exists
⚠ order_missing_guard guard
Stop if order present equals
■ already_complete compare
Check if order read order phase is one of complete
■ phase_eligible compare
Check if order read order phase is one of paid,fulfilling
■ phase_blocked all
Check if all conditions are true
⚠ phase_guard guard
Stop if phase blocked equals
■ pricing_fixed compare
Check if order read order pricing kind is one of fixed
■ pricing_blocked all
Check if all conditions are true
⚠ pricing_guard guard
Stop if pricing blocked equals
■ entitlement_key default
Apply default
■ order_names_tier compare
Check if entitlement key has data
■ tier_missing_blocked all
Check if all conditions are true
⚠ tier_missing_guard guard
Stop if tier missing blocked equals
■ session_recorded compare
Check if order read order provider session id exists
■ session_missing_blocked all
Check if all conditions are true
⚠ session_missing_guard guard
Stop if session missing blocked equals
◆ session_read recued-core.seller-stripe.checkout.session.read
Read checkout session on seller stripe
skip: step.already_complete equal true
■ session_object_exact compare
Check if session read result object is one of checkout.session
■ session_id_exact compare
Check if session read result id is one of order read order provider session id
■ session_paid compare
Check if session read result payment status is one of paid
■ session_status_complete compare
Check if session read result status is one of
■ session_mode_payment compare
Check if session read result mode is one of payment
■ session_customer_email default
Apply default
■ session_customer_email_present compare
Check if session customer email has data
■ session_proof_exact all
Check if all conditions are true
■ session_proof_blocked all
Check if all conditions are true
⚠ session_proof_guard guard
Stop if session proof blocked equals
■ needs_fulfilling_transition all
Check if all conditions are true
◆ to_fulfilling core.seller.order.transition
Transition seller order
skip: step.needs_fulfilling_transition equal false
■ revision_before_issue coalesce
Use the first available value from: to fulfilling order revision, order read order revision
◆ issue_access core.seller.customer-access.issue
Issue seller customer access
skip: step.already_complete equal true
■ issued_customer_present compare
Check if issue access customer customer id exists
■ issue_blocked all
Check if all conditions are true
⚠ issue_guard guard
Stop if issue blocked equals
■ claim_url default
Apply default
◆ link_customer core.seller.order.link-customer
Link customer seller order
skip: step.already_complete equal true
■ pass_product_name default
Apply default
■ claim_url_present compare
Check if claim url has data
■ claim_mail_allowed all
Check if all conditions are true
◆ to_delivery_pending core.seller.order.transition
Transition seller order
skip: step.claim_mail_allowed equal false
■ claim_link_mail_subject replace
Replace text in claim link mail subject template
■ claim_link_mail_subject_present compare
Check if claim link mail subject has data
■ claim_link_mail_subject_truncated truncate
Truncate claim link mail subject to a max length
■ claim_link_mail_subject_bounded compare
Check if claim link mail subject is one of claim link mail subject truncated
■ claim_link_mail_subject_trimmed trim
Trim whitespace from claim link mail subject
■ claim_link_mail_subject_trimmed_exact compare
Check if claim link mail subject is one of claim link mail subject trimmed
■ claim_link_mail_subject_has_open_placeholder compare
Check if claim link mail subject contains [[
■ claim_link_mail_subject_has_close_placeholder compare
Check if claim link mail subject contains ]]
■ claim_link_mail_subject_has_lf compare
Check if claim link mail subject contains
■ claim_link_mail_subject_has_cr compare
Check if claim link mail subject contains
■ claim_link_mail_subject_valid all
Check if all conditions are true
■ claim_link_mail_body_with_product replace
Replace text in claim link mail body template
■ claim_link_mail_body replace
Replace text in claim link mail body with product
■ claim_link_mail_body_present compare
Check if claim link mail body has data
■ claim_link_mail_body_truncated truncate
Truncate claim link mail body to a max length
■ claim_link_mail_body_bounded compare
Check if claim link mail body is one of claim link mail body truncated
■ claim_link_mail_body_has_open_placeholder compare
Check if claim link mail body contains [[
■ claim_link_mail_body_has_close_placeholder compare
Check if claim link mail body contains ]]
■ claim_link_mail_copy_valid all
Check if all conditions are true
⚠ claim_link_mail_copy_guard guard
Stop if claim link mail copy valid equals
skip: step.claim_mail_allowed equal false
■ claim_link_reconciliation_id template
Generate text from a template
◆ claim_link_mail_send core.mail.send
Send mail
skip: step.claim_mail_allowed equal false
◆ claim_link_mail_reconcile core.mail.sent.reconcile
Reconcile mail sent
skip: step.claim_mail_allowed equal false
■ claim_mail_settled compare
Check if claim link mail reconcile settled equals true
■ claim_settle_blocked all
Check if all conditions are true
⚠ claim_settle_guard guard
Stop if claim settle blocked equals
■ revision_before_complete coalesce
Use the first available value from: to delivery pending order revision, link customer order revision
◆ to_complete core.seller.order.transition
Transition seller order
skip: step.claim_mail_settled equal false
■ issue_outcome ternary
Apply ternary
■ fulfilment_notice template
Generate text from a template
▼
Output
text fulfilment_notice
text claim_url
Settings 5 configurable

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

door id setting = main
sender mail setting =
order handle setting =
claim link email body setting = Your [[product_name]] access is ready. Open this single-use link to claim it: [[claim_url]] The link can be used once and expires. If you did not buy this pass, you can ignore this email.
claim link email subject setting = Your [[product_name]] access is ready

Uses (7 operations)

Selling Get seller order core.seller.order.get
Pack operation Read checkout session on seller stripe recued-core.seller-stripe.checkout.session.read
Selling Transition seller order core.seller.order.transition
Selling Issue seller customer access core.seller.customer-access.issue
Selling Link customer seller order core.seller.order.link-customer
Mail Send mail core.mail.send
Mail Reconcile mail sent core.mail.sent.reconcile

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.get read-only
Write Selling core.seller.order.transition external change
Write Selling core.seller.customer-access.issue external change
Write Selling core.seller.order.link-customer external change
Write Mail core.mail.send external change
Write Mail core.mail.sent.reconcile external change

1 more isn't listed here. You'll see it at install.

Data it touches

SurfacesSellingMail

About

Tags

recipe-role:fulfilmentprovider-source-truthcustomer-accesspassone-timed-196

Details

101 steps 5 configurable settings recipe_id: issue-pass-for-paid-order