Recued
Menu
← Back to recipes

Open subscription access order (Lemon Squeezy)

by recued-core v2 41 views

Use “Open subscription access order (Lemon Squeezy)” in Recued. It carries out the named workflow using the connections and settings you choose.

How it works 166 steps

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

Data fetch
▼ form_response core.data.form-response.get
Get data form response
▼
Process (165 steps)
■ submission_id default
Apply default
■ submission_present compare
Check if submission id has data
■ visitor_email default
Apply default
■ has_visitor_email compare
Check if visitor email has data
■ visitor_email_has_at compare
Check if visitor email contains @
■ visitor_email_truncated truncate
Truncate visitor email to a max length
■ visitor_email_bounded compare
Check if visitor email is one of visitor email truncated
■ entitlement_key trim
Trim whitespace from setting entitlement key
■ entitlement_key_present compare
Check if entitlement key has data
■ door_id trim
Trim whitespace from setting door id
■ door_id_present compare
Check if door id has data
■ offer_id trim
Trim whitespace from setting seller offer id
■ offer_id_lowercase lowercase
Convert offer id to lowercase
■ offer_id_truncated truncate
Truncate offer id to a max length
■ offer_id_present compare
Check if offer id has data
■ offer_id_bounded compare
Check if offer id equals offer id truncated
■ offer_id_is_lowercase compare
Check if offer id equals offer id lowercase
■ lemonsqueezy_store_id trim
Trim whitespace from setting lemonsqueezy store id
■ lemonsqueezy_store_id_present compare
Check if lemonsqueezy store id has data
■ lemonsqueezy_store_id_truncated truncate
Truncate lemonsqueezy store id to a max length
■ lemonsqueezy_store_id_bounded compare
Check if lemonsqueezy store id is one of lemonsqueezy store id truncated
■ lemonsqueezy_variant_id trim
Trim whitespace from setting lemonsqueezy variant id
■ lemonsqueezy_variant_id_present compare
Check if lemonsqueezy variant id has data
■ lemonsqueezy_variant_id_truncated truncate
Truncate lemonsqueezy variant id to a max length
■ lemonsqueezy_variant_id_bounded compare
Check if lemonsqueezy variant id is one of lemonsqueezy variant id truncated
■ lemonsqueezy_connection_name default
Apply default
■ lemonsqueezy_connection_name_truncated truncate
Truncate lemonsqueezy connection name to a max length
■ lemonsqueezy_connection_name_present compare
Check if lemonsqueezy connection name has data
■ lemonsqueezy_connection_name_bounded compare
Check if lemonsqueezy connection name equals lemonsqueezy connection name truncated
■ checkout_success_url_https starts_with
Check if setting checkout success url starts with https://
■ checkout_success_url_truncated truncate
Truncate setting checkout success url to a max length
■ checkout_success_url_bounded compare
Check if setting checkout success url equals checkout success url truncated
■ checkout_cancel_url_https starts_with
Check if setting checkout cancel url starts with https://
■ checkout_cancel_url_truncated truncate
Truncate setting checkout cancel url to a max length
■ checkout_cancel_url_bounded compare
Check if setting checkout cancel url equals checkout cancel url truncated
■ checkout_expiry_hours_number to_number
Convert setting checkout expiry hours to a number
■ checkout_expiry_minimum compare
Check if checkout expiry hours number is at least 0.5
■ checkout_expiry_maximum compare
Check if checkout expiry hours number is at most 24
■ checkout_expiry_seconds_number math
Calculate checkout expiry hours number times 3600
■ checkout_expiry_seconds_floor math
Calculate checkout expiry seconds number floor
■ checkout_expiry_whole_seconds compare
Check if checkout expiry seconds number equals checkout expiry seconds floor
■ checkout_expiry_valid all
Check if all conditions are true
■ checkout_expiry_window_ms math
Calculate checkout expiry seconds floor times 1000
■ checkout_link_mail_subject_template trim
Trim whitespace from setting checkout link email subject
■ checkout_link_mail_subject_template_present compare
Check if checkout link mail subject template has data
■ checkout_link_mail_subject_template_truncated truncate
Truncate checkout link mail subject template to a max length
■ checkout_link_mail_subject_template_bounded compare
Check if checkout link mail subject template is one of checkout link mail subject template truncated
■ checkout_link_mail_subject_template_has_lf compare
Check if checkout link mail subject template contains
■ checkout_link_mail_subject_template_has_cr compare
Check if checkout link mail subject template contains
■ checkout_link_mail_subject_template_without_product replace
Replace text in checkout link mail subject template
■ checkout_link_mail_subject_template_has_unknown_open compare
Check if checkout link mail subject template without product contains [[
■ checkout_link_mail_subject_template_has_unknown_close compare
Check if checkout link mail subject template without product contains ]]
■ checkout_link_mail_body_template trim
Trim whitespace from setting checkout link email body
■ checkout_link_mail_body_template_present compare
Check if checkout link mail body template has data
■ checkout_link_mail_body_has_url_placeholder compare
Check if checkout link mail body template contains [[checkout_url]]
■ checkout_link_mail_body_template_truncated truncate
Truncate checkout link mail body template to a max length
■ checkout_link_mail_body_template_bounded compare
Check if checkout link mail body template is one of checkout link mail body template truncated
■ checkout_link_mail_body_template_without_product replace
Replace text in checkout link mail body template
■ checkout_link_mail_body_template_without_url replace
Replace text in checkout link mail body template without product
■ checkout_link_mail_body_template_has_unknown_open compare
Check if checkout link mail body template without url contains [[
■ checkout_link_mail_body_template_has_unknown_close compare
Check if checkout link mail body template without url contains ]]
■ checkout_link_mail_templates_preflight_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
◆ tier_read core.seller.tier.get
Get seller tier
■ tier_found compare
Check if tier read tier exists
■ tier_active all
Check if all conditions are true
◆ offer_read core.seller.offer.get
Get seller offer
■ offer_found compare
Check if offer read offer exists
■ offer_active all
Check if all conditions are true
■ offer_recurring compare
Check if offer read offer pricing kind is one of recurring
■ offer_priced compare
Check if offer read offer amount minor exists
■ order_open_allowed all
Check if all conditions are true
◆ order_open core.seller.order.open
Open seller order
skip: step.order_open_allowed equal false
■ order_opened compare
Check if order open order exists
■ order_recurring compare
Check if order open order pricing kind is one of recurring
■ order_currency_lower lowercase
Convert order open order currency to lowercase
■ order_has_no_session compare
Check if order open order provider session id is missing
■ now_iso date_add
Add 0 seconds to
■ now_ms date_parse
Parse now iso as a date
■ checkout_expires_at_ms_raw math
Calculate now ms plus checkout expiry window ms
■ checkout_expires_at_seconds_raw math
Calculate checkout expires at ms raw divided by 1000
■ checkout_expires_at_seconds math
Calculate checkout expires at seconds raw floor
■ checkout_expires_at_ms math
Calculate checkout expires at seconds times 1000
■ checkout_create_allowed all
Check if all conditions are true
◆ variant_read recued-core.seller-lemonsqueezy.variant.read
Read variant on seller lemonsqueezy
skip: step.checkout_create_allowed equal false
■ variant_id_exact compare
Check if variant read result data id is one of lemonsqueezy variant id
■ variant_product_id template
Generate text from a template
■ variant_product_matches_tier compare
Check if variant product id equals entitlement key
■ variant_is_subscription compare
Check if variant read result data attributes is subscription is one of true
■ variant_amount_matches compare
Check if variant read result data attributes price equals order open order amount minor
■ variant_published compare
Check if variant read result data attributes status is one of published
■ variant_proof_valid all
Check if all conditions are true
⚠ variant_proof_guard guard
Stop if variant proof valid equals
skip: step.checkout_create_allowed equal false
■ checkout_expires_at_iso date_add
Add checkout expiry seconds floor seconds to
◆ checkout_create recued-core.seller-lemonsqueezy.checkout.create
Create checkout on seller lemonsqueezy
skip: step.variant_proof_valid equal false
■ provider_session_id default
Apply default
■ provider_session_id_truncated truncate
Truncate provider session id to a max length
■ provider_session_id_bounded compare
Check if provider session id is one of provider session id truncated
■ provider_session_id_present compare
Check if provider session id has data
■ provider_session_id_valid all
Check if all conditions are true
■ provider_type_exact compare
Check if checkout create result data type is one of checkouts
■ provider_client_reference_matches compare
Check if checkout create result data attributes checkout data custom recued order handle equals order open correlation client reference id
■ provider_metadata_matches compare
Check if checkout create result data attributes checkout data custom recued workflow key equals order open correlation subscription metadata order key
■ provider_variant_id template
Generate text from a template
■ provider_variant_matches compare
Check if provider variant id equals lemonsqueezy variant id
■ provider_store_id template
Generate text from a template
■ provider_store_matches compare
Check if provider store id equals lemonsqueezy store id
■ provider_checkout_url default
Apply default
■ provider_checkout_url_https starts_with
Check if provider checkout url starts with https://
■ provider_result_matches_request all
Check if all conditions are true
⚠ provider_result_guard guard
Stop if provider result matches request equals
skip: step.variant_proof_valid equal false
■ attach_payment_allowed all
Check if all conditions are true
◆ attach_payment core.seller.order.attach-payment
Attach payment seller order
skip: step.attach_payment_allowed equal false
■ effective_session_id coalesce
Use the first available value from: order open order provider session id, checkout create result data id
■ effective_session_present compare
Check if effective session id has data
■ checkout_link_read_allowed all
Check if all conditions are true
◆ checkout_link_checkout_read recued-core.seller-lemonsqueezy.checkout.read
Read checkout on seller lemonsqueezy
skip: step.checkout_link_read_allowed equal false
■ checkout_link_provider_session_id default
Apply default
■ checkout_link_provider_session_id_truncated truncate
Truncate checkout link provider session id to a max length
■ checkout_link_provider_session_id_bounded compare
Check if checkout link provider session id is one of checkout link provider session id truncated
■ checkout_link_provider_session_id_exact compare
Check if checkout link provider session id is one of effective session id
■ checkout_link_provider_type_exact compare
Check if checkout link checkout read result data type is one of checkouts
■ checkout_link_provider_client_reference_exact compare
Check if checkout link checkout read result data attributes checkout data custom recued order handle is one of order open correlation client reference id
■ checkout_link_provider_url default
Apply default
■ checkout_link_provider_url_trimmed trim
Trim whitespace from checkout link provider url
■ checkout_link_provider_url_trimmed_exact compare
Check if checkout link provider url is one of checkout link provider url trimmed
■ checkout_link_provider_url_https starts_with
Check if checkout link provider url starts with https://
■ checkout_link_provider_url_not_prefix_only compare
Check if checkout link provider url does not equal https://
■ checkout_link_provider_url_truncated truncate
Truncate checkout link provider url to a max length
■ checkout_link_provider_url_bounded compare
Check if checkout link provider url is one of checkout link provider url truncated
■ checkout_link_source_truth_valid all
Check if all conditions are true
⚠ checkout_link_source_truth_guard guard
Stop if checkout link source truth valid equals
skip: step.checkout_link_read_allowed equal false
■ checkout_link_sender_mail_name default
Apply default
■ checkout_link_sender_mail_truncated truncate
Truncate checkout link sender mail name to a max length
■ checkout_link_sender_mail_present compare
Check if checkout link sender mail name has data
■ checkout_link_sender_mail_bounded compare
Check if checkout link sender mail name is one of checkout link sender mail truncated
■ checkout_link_sender_mail_valid all
Check if all conditions are true
⚠ checkout_link_sender_mail_guard guard
Stop if checkout link sender mail valid equals
skip: step.checkout_link_read_allowed equal false
■ offer_product_name default
Apply default
■ checkout_link_mail_subject replace
Replace text in checkout link mail subject template
■ checkout_link_mail_subject_present compare
Check if checkout link mail subject has data
■ checkout_link_mail_subject_truncated truncate
Truncate checkout link mail subject to a max length
■ checkout_link_mail_subject_bounded compare
Check if checkout link mail subject is one of checkout link mail subject truncated
■ checkout_link_mail_subject_trimmed trim
Trim whitespace from checkout link mail subject
■ checkout_link_mail_subject_trimmed_exact compare
Check if checkout link mail subject is one of checkout link mail subject trimmed
■ checkout_link_mail_subject_has_open_placeholder compare
Check if checkout link mail subject contains [[
■ checkout_link_mail_subject_has_close_placeholder compare
Check if checkout link mail subject contains ]]
■ checkout_link_mail_subject_has_lf compare
Check if checkout link mail subject contains
■ checkout_link_mail_subject_has_cr compare
Check if checkout link mail subject contains
■ checkout_link_mail_subject_valid all
Check if all conditions are true
■ checkout_link_mail_body_with_product replace
Replace text in checkout link mail body template
■ checkout_link_mail_body replace
Replace text in checkout link mail body with product
■ checkout_link_mail_body_present compare
Check if checkout link mail body has data
■ checkout_link_mail_body_truncated truncate
Truncate checkout link mail body to a max length
■ checkout_link_mail_body_bounded compare
Check if checkout link mail body is one of checkout link mail body truncated
■ checkout_link_mail_body_has_open_placeholder compare
Check if checkout link mail body contains [[
■ checkout_link_mail_body_has_close_placeholder compare
Check if checkout link mail body contains ]]
■ checkout_link_mail_copy_valid all
Check if all conditions are true
⚠ checkout_link_mail_copy_guard guard
Stop if checkout link mail copy valid equals
skip: step.checkout_link_read_allowed equal false
■ checkout_link_reconciliation_id template
Generate text from a template
◆ checkout_link_mail_send core.mail.send
Send mail
skip: step.checkout_link_read_allowed equal false
◆ checkout_link_mail_reconcile core.mail.sent.reconcile
Reconcile mail sent
skip: step.checkout_link_read_allowed equal false
■ current_state coalesce
Use the first available value from: attach payment order, order open order
■ coordinator_notice template
Generate text from a template
▼
Output
summary coordinator_notice
text current_state
Settings 11 configurable

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

door id setting = main
sender mail setting =
entitlement key setting =
seller offer id setting =
checkout cancel url setting = [object Object]
checkout success url setting = [object Object]
checkout expiry hours setting = 24
lemonsqueezy store id setting =
lemonsqueezy variant id setting =
checkout link email body setting = Your [[product_name]] subscription request is ready for payment. Complete payment securely with Lemon Squeezy: [[checkout_url]] Lemon Squeezy controls this hosted checkout. If you did not request this subscription, you can ignore this email.
checkout link email subject setting = Complete payment to start your subscription

Uses (10 operations)

Form responses Get data form response core.data.form-response.get
Selling Get seller tier core.seller.tier.get
Selling Get seller offer core.seller.offer.get
Selling Open seller order core.seller.order.open
Pack operation Read variant on seller lemonsqueezy recued-core.seller-lemonsqueezy.variant.read
Pack operation Create checkout on seller lemonsqueezy recued-core.seller-lemonsqueezy.checkout.create
Selling Attach payment seller order core.seller.order.attach-payment
Pack operation Read checkout on seller lemonsqueezy recued-core.seller-lemonsqueezy.checkout.read
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 Form responses core.data.form-response.get read-only
Read Selling core.seller.tier.get read-only
Read Selling core.seller.offer.get read-only
Write Selling core.seller.order.open external change
Write Selling core.seller.order.attach-payment external change
Write Mail core.mail.send external change
Write Mail core.mail.sent.reconcile external change

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

Data it touches

SurfacesForm responsesSellingMail
Warehousedata.iddata.attributesdata.typedata.form

About

Tags

recipe-role:origindurable-coordinatorcheckout-createcheckout-link-mailcore.seller.ordersellersubscriptionprovider:lemonsqueezyd-196

Details

166 steps 11 configurable settings recipe_id: open-subscription-access-order-lemonsqueezy