Seal Subscriptions is a Shopify app that automates recurring billing and subscription management. Connect it to Omnisend to trigger email and SMS workflows when subscriptions are created, paused, resumed, or cancelled – or when billing succeeds or fails. You'll also sync subscription details like billing intervals, product names, and payment statuses to contact profiles for segmentation and personalization.
Before You Begin
You need an active Seal Subscriptions app installed on your Shopify store.
The integration is available on all Omnisend plans.
Seal Subscriptions sends real-time events to Omnisend via webhooks – workflows trigger instantly when subscription actions occur.
You'll need API access enabled in Seal Subscriptions (available in Settings → API).
Key Benefits
Send automated emails or SMS when subscriptions are created, paused, cancelled, or billed.
Sync subscription data (billing interval, product names, order IDs) to contact profiles.
Segment subscribers by billing frequency, plan type, or payment status.
Reduce churn with targeted messages when billing fails or subscriptions pause.
No manual data entry – events sync automatically via webhook.
Setup Process
[]
What Data Is Passed
Contact Fields:
Field Name | Type | Description |
Email Address | Standard | Customer email (primary identifier). |
Phone | Standard | Customer phone number (if provided). |
subscription_id | Custom Property | Unique ID of the customer's active subscription. |
subscription_status | Custom Property | Current status (ACTIVE, PAUSED, CANCELLED). |
next_billing_date | Custom Property | Date of next billing cycle. |
billing_interval | Custom Property | Billing frequency (e.g., "1 month"). |
Supported Custom Events:
Event Name | When It Fires | Use Case |
Seal Subscription Created | Customer starts a new subscription. | Welcome flows, onboarding, subscription tips. |
Seal Subscription Updated | Subscription details change (plan, interval, delivery). | Confirm updates, highlight changes. |
Seal Subscription Paused | Customer pauses their subscription. | Offer resume incentives, confirm action. |
Seal Subscription Resumed | Customer reactivates a paused subscription. | Welcome back, confirm next billing date. |
Seal Subscription Cancelled | Customer cancels subscription. | Win-back offers, feedback requests, exit surveys. |
Seal Subscription Billing Attempt Succeeded | Billing completes successfully. | Receipt confirmation, upsell, loyalty rewards. |
Seal Subscription Billing Attempt Failed | Payment fails. | Update payment method prompts, dunning flows. |
FAQ
When do events appear in Omnisend?
Events are sent in real time via webhook. They appear in Store Settings → API → Custom Event after the first event fires.
Can I use product names from line_items in segments?
No – nested arrays like line_items cannot be used for segmentation. However, you can use them for personalization in email or SMS content using [[event.line_items.0.productName]].
What's the difference between "Subscription Updated" and other events?
"Updated" fires alongside every subscription change (pause, resume, cancel, etc.). Use specific events (Paused, Resumed, Cancelled) for targeted workflows to avoid duplicate messaging.
Can I see billing attempt history in Omnisend?
Yes – the billing_attempts array (for successful billing) and failed_billing_attempt array (for failed billing) include attempt details like date, status, and order ID. Use them for personalization in messages.
What if a contact doesn't have an email?
Events won't sync to Omnisend. Seal Subscriptions requires an email address to pass subscription data.
Can I trigger workflows based on subscription value?
Not directly – totalSubscriptionValue can't be used as a workflow trigger condition. However, you can segment contacts by subscription value and send targeted campaigns.
How do I stop duplicate messages for "Subscription Updated"?
Use specific events (Paused, Resumed, Cancelled, Billing Failed) instead of "Updated." The "Updated" event fires for every change, so it's best used for internal tracking rather than customer-facing workflows.
If you didn't find the answer to your question, reach out to our Support Team through the in-app chat or at [email protected] - our team is available 24/7.
