Recued
Menu
← Back to recipes

Open subscription access order (Paddle)

by recued-core v2 39 views

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

How it works 157 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 (156 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
■ paddle_price_id trim
Trim whitespace from setting paddle price id
■ paddle_price_id_prefix starts_with
Check if paddle price id starts with pri_
■ paddle_price_id_truncated truncate
Truncate paddle price id to a max length
■ paddle_price_id_bounded compare
Check if paddle price id is one of paddle price id truncated
■ paddle_connection_name default
Apply default
■ paddle_connection_name_truncated truncate
Truncate paddle connection name to a max length
■ paddle_connection_name_present compare
Check if paddle connection name has data
■ paddle_connection_name_bounded compare
Check if paddle connection name equals paddle 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
◆ transaction_create recued-core.seller-paddle.transaction.create
Create transaction on seller paddle
skip: step.checkout_create_allowed 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_prefix starts_with
Check if provider session id starts with txn_
■ provider_session_id_valid all
Check if all conditions are true
■ provider_status_payable compare
Check if transaction create result data status is one of draft,ready
■ provider_client_reference_matches compare
Check if transaction create result data custom data recued order handle equals order open correlation client reference id
■ provider_metadata_matches compare
Check if transaction create result data custom data recued workflow key equals order open correlation subscription metadata order key
■ provider_item_count count
Count items in transaction create result data items
■ provider_single_item compare
Check if provider item count equals 1
■ provider_price_matches compare
Check if transaction create result data items 0 price id equals paddle price id
■ provider_product_matches_tier compare
Check if transaction create result data items 0 price product id equals entitlement key
■ provider_unit_amount_number to_number
Convert transaction create result data items 0 price unit price amount to a number
■ provider_amount_matches compare
Check if provider unit amount number equals order open order amount minor
■ provider_currency_lower lowercase
Convert transaction create result data items 0 price unit price currency code to lowercase
■ provider_currency_matches compare
Check if provider currency lower equals order currency lower
■ 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.checkout_create_allowed 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, transaction 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_transaction_read recued-core.seller-paddle.transaction.read
Read transaction on seller paddle
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_prefix starts_with
Check if checkout link provider session id starts with txn_
■ checkout_link_provider_session_id_exact compare
Check if checkout link provider session id is one of effective session id
■ checkout_link_provider_status_payable compare
Check if checkout link transaction read result data status is one of draft,ready
■ checkout_link_provider_client_reference_exact compare
Check if checkout link transaction read result data custom data 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 10 configurable

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

door id setting = main
sender mail setting =
entitlement key setting =
paddle price id setting =
seller offer id setting =
checkout cancel url setting = [object Object]
checkout success url setting = [object Object]
checkout expiry hours setting = 24
checkout link email body setting = Your [[product_name]] subscription request is ready for payment. Complete payment securely with Paddle: [[checkout_url]] Paddle 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 (9 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 Create transaction on seller paddle recued-core.seller-paddle.transaction.create
Selling Attach payment seller order core.seller.order.attach-payment
Pack operation Read transaction on seller paddle recued-core.seller-paddle.transaction.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

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

Data it touches

SurfacesForm responsesSellingMail
Warehousedata.iddata.statusdata.custom_datadata.itemsdata.checkoutdata.form

About

Tags

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

Details

157 steps 10 configurable settings recipe_id: open-subscription-access-order-paddle