Open subscription access order (Paddle)
Use “Open subscription access order (Paddle)” in Recued. It carries out the named workflow using the connections and settings you choose.
How it works
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
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.