Seal Subscriptions is a Shopify app that automates recurring billing and subscription management. Connect it to Omnisend to trigger automated workflows when subscriptions are created, paused, resumed, cancelled, or when billing succeeds or fails. You can also sync subscription data to contact profiles for segmentation and personalization.
Before You Begin
Before you begin, make sure you have:
An active Seal Subscriptions app is installed on your Shopify store.
API access enabled in Seal Subscriptions (Settings → API).
An Omnisend account (available on all plans).
Seal Subscriptions sends real-time events to Omnisend via webhooks. Workflows trigger instantly when subscription actions occur.
Benefits
Use this integration to:
Trigger automated workflows when subscriptions are created, paused, cancelled, resumed, or billed.
Sync subscription data like billing intervals, product names, and payment statuses to contact profiles.
Segment contacts by billing frequency, plan type, or subscription status.
Reduce churn by sending targeted messages when billing fails or a subscription pauses.
Setup Process
Step 1. Get Your API Credentials from Seal Subscriptions
In Shopify, open the Seal Subscriptions app.
Go to Settings → API.
Make sure Enable API is checked.
Copy your API Token and API Secret. You'll need both in the next step.
Step 2. Connect Seal Subscriptions in Omnisend
In Omnisend, go to App Market → search for Seal Subscriptions → click Connect.
Paste your API Token and API Secret into the fields.
Click Connect.
Once you connect, Omnisend automatically registers the required webhooks in your Seal Subscriptions account. To verify, go to Settings → API → Configured Webhooks in Seal Subscriptions.
Step 3. Enable Events in Omnisend
After connecting, you'll see a list of available events.
Enable the events you want to use (see full event list below).
Click Update settings.
After an event fires for the first time, it appears in Omnisend under Store Settings → API → Custom Events.
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"). |
You can use these custom properties to segment contacts and personalize email or SMS content. Learn more about segmentation with custom properties.
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 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
Can I use product names from line_items in segments?
No. Nested arrays like line_items can't be used for segmentation. You can use them for personalization in messages with merge tags like [[event.line_items.0.productName]]. Learn how to personalize with custom event data.
Can I see billing attempt history in Omnisend?
Yes. The billing_attempts array (for successful billing) and failed_billing_attempt the array (for failed billing) include details like date, status, and order ID. You can use them to personalize 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. The totalSubscriptionValue field can't be used as a workflow trigger condition. However, you can segment contacts by subscription value and send targeted campaigns. [Learn more about segmentation] - segmentation hyperlink??
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.

