If you’re a Shopify merchant, Loop Subscriptions can help you improve your customer repeat rate and achieve higher customer LTV by converting customers into subscribers. By integrating Loop Subscriptions with Attentive, you can set up transactional journeys to send SMS messages to your subscribers, and you can send one-click password-less links to allow subscribers to modify their subscriptions.
With this integration, you can:
- Set up transactional journeys based on subscription events like Subscription Started, Upcoming Order, Order Skipped, Payment Failed, Subscription Paused, Subscription Resumed, Subscription Cancelled, and Subscription Reactivated.
- Target subscribers by creating segments based on active subscriptions, products subscribed, cancelled subscriptions, and completed orders.
Prerequisites
Ensure that you meet the following requirements in order to set up this integration:
- Have an account on Shopify
- Have an account on Loop Subscriptions
Now, complete the following procedure to set up the integration for Loop Subscriptions and Attentive.
Set up the integration
- Go to https://app.loopwork.co/, and log in to your store.
- Open the integrations panel from the sidebar.
- Find the Attentive integration card and click Connect.
A new page opens, showing the integration details. - Go to the Set up instructions tab.
- Click Connect.
You’re redirected to the Attentive OAuth flow. - Authorize the app permissions.
You’re automatically redirected back to the Loop integrations page, and Attentive is now connected successfully!
Use custom events in Journeys
After the integration is connected, you can create a custom journey in Attentive using the custom events from Loop Subscriptions. The following table lists the available custom events for the journey:
Custom event | Description |
Loop Subscription Started | When a new subscription is created via online store or customer portal or Loop admin |
Loop Subscription Paused | When a subscription is paused via customer portal or Loop admin |
Loop Subscription Resumed | When a subscription is resumed via customer portal or Loop admin |
Loop Subscription Reactivated | When a subscription is reactivated via customer portal or Loop admin |
Loop Subscription Cancelled | When a subscription is canceled via customer portal or Loop admin |
Loop Subscription Expired | When a subscription is auto-expired as per the max billing cycles defined in the plan |
Loop Upcoming Order | This metric is triggered x days before the upcoming order for a particular subscription. You can configure the number of days setting in the Loop Subscription app. |
Loop Order Skipped | When a subscription order is skipped in Loop admin or by customer portal |
Loop Billing Attempt Failed and will be Retried | When a subscription billing attempt fails and will be retried |
Loop Billing Attempt Failed and Last Retry Left | When a subscription billing attempt fails and only one retry is left |
Loop Billing Attempt Failed | When a subscription billing attempt fails with no retry left |
All events are sent with a payload containing the following data:
Subscription-related data:
Field | Description | Type |
customer_first_name | First name of the customer | String |
customer_last_name | Last name of the customer | String |
subscription_shopify_id | Shopify ID of the subscription | Bigint |
is_prepaid | Whether the subscription is a prepaid order or a pay-per-delivery order | Boolean |
completed_orders_to_date | Successful orders created for the subscription | Integer |
line_items | Comma-separated subscribed product names and quantity | String |
total_line_item_discounted_price | Sum of the discounted prices of all the products in the subscription | Float |
currency_code | Currency code added on the subscription | String |
shipping_price | Shipping charges added on the subscription |
Float |
shipping_price_currency_code | Shipping charge currency code added on the subscription |
String |
next_billing_date | Next order date of the subscription |
String |
billing_interval_count | Billing interval count of the subscription |
Integer |
delivery_interval_count | Delivery interval count of the subscription |
Integer |
interval_type | Interval type (day, week, month, year) |
String |
subscription_status | Subscription status (active, paused, canceled) |
String |
subscription_created_at | Subscription created datetime |
String |
subscription_updated_at | Subscription updated datetime |
String |
shipping_address | Shipping address added on the subscription |
String |
loop_customer_portal_link | Password-less login link of the customer portal valid for 24 hours from the generated time |
String |
Order-related events like “Loop order skipped” are sent with a payload having these extra fields:
Order-related data:
Field | Description | Type |
skipped_order_billing_date | When was the skipped order scheduled to be charged | String |
order_skipped_at | When was the order skipped | String |
Payment-related events like “Loop payment failed and will be retried,” “Loop payment failed and last retry left,” and “Loop payment failed” are sent with a payload having these extra fields:
Payment-related data:
Field | Description | Type |
billing_attempt_id | Shopify ID of the billing attempt | Bigint |
billing_attempt_error_code | Error code sent by Shopify for the billing attempt | String |
billing_attempt_error_message | Error messages sent by Shopify for the billing attempt | String |
billing_retries_left | Billing retries left | Integer |
billing_retry_delay_days | Billing retry interval (in days) | Integer |
billing_attempt_created_at | Billing created datetime | String |
Use custom attributes to create segments for targeted messaging
After the integration is connected, you can create a dynamic segment in Attentive using the custom attributes from Loop Subscriptions. The following table lists the available custom attributes available for segmentation:
Custom Attribute | Description |
loop_active_subscriber | Boolean to determine if the customer has active loop subscription or not |
loop_active_subscription_count | Number of active subscriptions of the customer |
loop_paused_subscription_count | Number of paused subscriptions of the customer |
loop_cancelled_subscription_count | Number of canceled subscriptions of the customer |
loop_expired_subscription_count | Number of expired subscriptions of the customer |
loop_next_billing_date | Next order date for the customer |
Questions?
We’re here to help! Contact support@loopwork.co to ask about the Attentive + Loop Subscriptions integration.