Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.supercycle.com/llms.txt

Use this file to discover all available pages before exploring further.

Automations let you connect Supercycle with other apps or workflows in Shopify Flow. You can trigger Supercycle actions automatically when specific events happen, such as a return being created or a payment failing. This enables you to build powerful workflows that respond to cycle lifecycle events without manual intervention. Examples include:
  • Pause subscriptions when customers start a return
  • Create charges for late fees, damage fees, or conversion to purchase
  • Send notifications when returns are approved or received
  • Update inventory based on return status changes
  • Re-allocate items when a cycle has an item conflict
  • Manage payment collection for failed subscription payments

Available triggers

Supercycle includes several triggers you can use to start an automation. Every trigger payload also includes a customer reference (the Shopify customer) you can use in conditions and downstream actions.
Runs when a return is created inside Supercycle.
PropertyDescription
customer.idShopify customer ID
returnOrder.formattedIdDisplay ID (e.g. #1001)
returnOrder.sequentialIdSequential numeric ID
returnOrder.receivalStatusStatus: pending, received, or overdue
returnOrder.createdAtISO 8601 date the return was created
returnOrder.requestedAtISO 8601 date the return was requested
returnOrder.tagsTags on the return order
returnOrder.rentalsArray of cycles in the return (see Cycle properties below)
Runs when a return is updated inside Supercycle.Payload is identical to Return created.
Runs when a cycle is created inside Supercycle.
PropertyDescription
customer.idShopify customer ID
rental.idCycle global ID (e.g. gid://supercycle/Rental/12345)
rental.formattedIdDisplay ID (e.g. #1001)
rental.sequentialIdSequential numeric ID
rental.statusStatus: scheduled, unfulfilled, fulfilled, unreceived, received, or cancelled
rental.fulfillmentStatusFulfillment status: pending, scheduled, in_progress, overdue, or complete
rental.receivalStatusReceival status: pending, scheduled, in_progress, overdue, or complete
rental.packingStatusPacking status: pending, printed, or packed
rental.methodTypeMethod type: calendar, subscription, membership, or resale
rental.conflictLevelItem allocation conflict: none, item, or variant
rental.lineItemIdShopify line item ID
rental.orderIdShopify order ID
rental.shopifyOrderNameShopify order name (e.g. #1001)
rental.subscriptionIdSupercycle subscription ID (if exists)
rental.returnOrderIdReturn order ID (if exists)
rental.itemIdAllocated item ID
rental.fulfillAtISO 8601 dispatch date
rental.fulfilledAtISO 8601 date the cycle was fulfilled
rental.receiveAtISO 8601 planned return date
rental.receivedAtISO 8601 date the cycle was received
rental.rentalStartISO 8601 cycle period start
rental.rentalEndISO 8601 cycle period end
rental.minimumRentalEndISO 8601 end of minimum cycle term
rental.restockByISO 8601 date the item should be restocked by
rental.restockedAtISO 8601 date the item was restocked
rental.cancelledAtISO 8601 cancellation date
rental.createdAtISO 8601 creation date
rental.updatedAtISO 8601 last updated date
rental.tagsTags on the cycle
rental.customFieldsArray of { key, value } custom fields
rental.itemAllocated item details (see Item properties below)
Runs when a cycle is updated inside Supercycle.Payload is identical to Cycle created.
Runs when a cycle is canceled inside Supercycle.Payload is identical to Cycle created.
Runs when a membership is created inside Supercycle.
PropertyDescription
customer.idShopify customer ID
membership.idMembership global ID
membership.customerIdShopify customer GID
membership.statusStatus: active, paused, cancelled, or expired
membership.planTitlePlan or product title
membership.priceCentsMembership price in cents
membership.creditAllowanceTotal credits allowed
membership.creditsUsedCredits currently used
membership.remainingCreditsCredits remaining
membership.orderAllowanceMaximum orders allowed (null if unlimited)
membership.ordersUsedOrders used in current period
membership.remainingOrdersOrders remaining (null if unlimited)
membership.returnAllowanceMaximum returns allowed (null if unlimited)
membership.returnsUsedReturns used in current period
membership.remainingReturnsReturns remaining (null if unlimited)
membership.renewalDateISO 8601 next renewal date
membership.minimumTermStartISO 8601 minimum term start date
membership.minimumTermEndISO 8601 minimum term end date
membership.cancelAtISO 8601 scheduled cancellation date
Runs when a membership is updated inside Supercycle.Payload is identical to Membership created.
Runs when a membership is canceled inside Supercycle.Payload is identical to Membership created.
Runs when a contract’s status changes inside Supercycle (for example, when a customer signs an unsigned contract).
PropertyDescription
customer.idShopify customer ID
contract.idContract global ID (e.g. gid://supercycle/Contract/12345)
contract.statusCurrent status: unsigned or signed
contract.templateNameName of the contract template
contract.signedAtISO 8601 date the contract was signed
contract.createdAtISO 8601 creation date
contract.updatedAtISO 8601 last updated date
Runs when an identity verification’s status changes inside Supercycle, including when a verification is first uploaded.
PropertyDescription
customer.idShopify customer ID
identityVerification.idIdentity verification global ID (e.g. gid://supercycle/IdentityVerification/12345)
identityVerification.statusCurrent status: pending, submitted, in_review, completed, on_hold, or expired
identityVerification.resultVerification result: approved, rejected, or inconclusive
identityVerification.createdAtISO 8601 creation date
identityVerification.updatedAtISO 8601 last updated date
Runs when a single charge payment attempt fails. Use this to react to individual payment failures (for example, on a damage charge).
PropertyDescription
customer.idShopify customer ID
charge.idCharge global ID (e.g. gid://supercycle/Charge/12345)
charge.formattedIdDisplay ID (e.g. #1001)
payment.errorCodeError code from the failed payment attempt
payment.errorMessageCustomer-friendly error message
payment.subtotalAmount due, in cents
payment.paidAmount paid, in cents
Runs when a payment collection process completes without successfully capturing payment. Use this for dunning-style automations that react to repeated failures over time.
PropertyDescription
customer.idShopify customer ID
paymentCollector.idPayment collector global ID
paymentCollector.statusCurrent status of the payment collector
paymentCollector.summarySummary text
paymentCollector.chargeableIdObject being charged (e.g. gid://supercycle/Rental/12345)
paymentCollector.subscriptionContractIdShopify subscription contract ID
paymentCollector.failedPaymentCountNumber of failed payment attempts
paymentCollector.lastFailedPaymentLast failed payment (errorCode, errorMessage, subtotal, paid)
paymentCollector.paymentsArray of all payment attempts

Shared sub-objects

Several triggers expose nested objects you can drill into:
Available on rental.item (Cycle triggers) and on each entry in returnOrder.rentals[].item.
PropertyDescription
item.idItem global ID
item.productTitleProduct title
item.variantTitleVariant title
item.serialSerial number
item.sequentialIdSequential numeric ID
item.statusProcessing status: processed or unprocessed
item.visibilityVisibility: available, unavailable, sold, or retired
item.pickLocationPhysical warehouse location
item.conditionIdCondition ID
item.shopifyVariantIdShopify variant GID
item.shopifyProductIdShopify product GID
item.imageUrlImage URL
item.tagsTags on the item
item.createdAtISO 8601 creation date
Available as customer on every trigger.
PropertyDescription
customer.identityVerifiedWhether the customer has verified their identity
customer.numberOfOutstandingChargesCount of unpaid charges
customer.outstandingBalanceTotal outstanding balance, in cents
customer.totalSpentLifetime spend, in cents
customer.deposit.balanceCurrent deposit account balance
customer.membershipCustomer’s membership (see Membership properties)

Available actions

Supercycle provides the following actions for use in Shopify Flow workflows.
Create a charge for a chargeable object in Supercycle, such as a cycle or membership.
PropertyDescription
customerShopify customer reference (required)
chargeableIdThe ID of the object to charge (e.g. gid://supercycle/Rental/1234567890)
descriptionThe message included in the charge
amountCentsThe charge amount in cents (e.g. 1234 for $12.34)
Returns a Charge object you can reference in subsequent steps.
Update a subscription’s status, recurring price, or billing start date.
PropertyDescription
subscriptionIdThe ID of the subscription (e.g. gid://supercycle/Subscription/1234567890)
statusThe status to set: active, paused, cancelled, or expired
recurringPriceCentsNew recurring price in cents (e.g. 1500 for $15.00)
billingStartDateNew billing schedule start date. Supports Liquid date variables.
Only subscriptionId is required — provide any combination of the other fields to update.
Update the status of a membership.
PropertyDescription
membershipIdThe ID of the membership (e.g. gid://supercycle/MembershipRental::Membership/1234567890)
statusThe status to set: active, paused, cancelled, or expired
Get data about a cycle in Supercycle. Use this to retrieve cycle information for use in conditional logic.
PropertyDescription
rentalIdThe ID of the cycle (e.g. gid://supercycle/Rental/1234567890)
Returns a Rental object with all cycle properties (see the Cycle created trigger for the full list).For example, to check if a cycle has a subscription before taking action:
1

Add Get cycle data action

Add the Get cycle data action:
  • Cycle ID: {{rental.id}}
2

Use returned data

Access the returned data in subsequent steps:
  • {{getRental.subscriptionId}} — Subscription ID if it exists
  • {{getRental.orderId}} — Associated order ID
  • {{getRental.fulfilledAt}} — Fulfillment date
  • {{getRental.receivedAt}} — Received date
3

Add conditional logic

Use the data in conditions:
getRental.subscriptionId is not empty
Update properties of a cycle.
PropertyDescription
rentalIdThe ID of the cycle (e.g. gid://supercycle/Rental/1234567890)
itemIdThe item ID to assign to the cycle
fulfilledAtISO 8601 datetime when the cycle was fulfilled (e.g. 2024-01-15T10:30:00Z)
receivedAtISO 8601 datetime when the cycle was received
rentalStartISO 8601 date when the cycle period starts
rentalEndISO 8601 date when the cycle period ends
packingStatusThe packing status: pending, printed, or packed
Only rentalId is required — provide any combination of the other fields to update.
Add tags to a cycle.
PropertyDescription
rentalIdThe ID of the cycle (e.g. gid://supercycle/Rental/1234567890)
tagsComma-separated list of tag titles to add (e.g. damaged, follow-up, vip)
Re-allocate an available item to a cycle. Useful when the currently allocated item has a conflict (rental.conflictLevel of item or variant) and you want Supercycle to pick a fresh available item automatically.
PropertyDescription
rentalIdThe ID of the cycle (e.g. gid://supercycle/Rental/1234567890)
Returns the updated Rental. Pair this with the Cycle updated trigger and a condition on rental.conflictLevel to automatically resolve item conflicts as soon as they appear.

Create a workflow

Learn how to build your first workflow

Shopify Flow documentation

Explore Shopify Flow capabilities