Skip to main content

Integrate Seal Subscriptions with Omnisend

Written by Edgaras Vaninas
Updated today

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.

Did this answer your question?