Skip to main content

Integration with Seal Subscriptions

Edgaras Vaninas avatar
Written by Edgaras Vaninas
Updated over 3 weeks ago

Seal Subscriptions is a Shopify app that enables recurring product billing, subscription plan management, and automated billing cycles. By connecting Seal Subscriptions to Omnisend, merchants can automatically trigger personalized communication based on real-time subscription activity.

This integration sends key events such as billing success or failure, subscription updates, and lifecycle changes to Omnisend, where they can trigger automations, personalize emails, or build dynamic segments.


Key Benefits

  • Trigger real-time automations based on subscription activity

  • Use rich event data for personalized email and SMS content

  • Build segments based on billing status, subscription frequency, or plan type

  • Proactively reduce churn or drive loyalty using timely, event-based messaging

  • No third-party middleware or manual syncing required

Setup Process

Step 1. Go to the Omnisend App Market and → Search for "Seal Subscriptions" → Click on "Connect Now".


Step 2. Turn on wanted scenarios and click "Continue".

Step 3. To fully grant access for the Seal Subscription app via API Token.

In Shopify Admin → Apps → Seal Subscriptions → Settings → API, enable the API (if not already enabled) and copy the API token.


Return to Omnisend, complete the authorization process on the Omnisend side.

What Data Is Passed

Each event from Seal Subscriptions includes top-level subscription details, product-level data, and (for billing events) billing attempt logs.

Common Fields Available Across Events

  • "subscription_id" – Unique ID of the subscription

  • "status" – Current subscription status (e.g., ACTIVE, PAUSED)

  • "orderId" – Associated Shopify order ID

  • "currency" – Store currency (e.g., EUR)

  • "billingInterval" – Frequency of billing (e.g., 1 day, 1 month)

  • "deliveryInterval" – Shipping frequency

  • "subscriptionType" – Type of plan (e.g., 1 = regular, 2 = prepaid)

  • "internalId" – Internal reference

  • "totalSubscriptionValue" – Total value of the subscription

These can be used as personalization variables in messages:

  • [[ event.subscription_id ]]

  • [[ event.billingInterval ]]

  • [[ event.status ]]

  • [[ event.currency ]]

Product-Level Data: "line_items" Array

Each event includes a "line_items" array with the subscribed product(s):

  • "productName"

  • "price", "finalPrice", "originalPrice"

  • "quantity"

  • "variantID", "productID"

  • "discountAmount", "totalDiscount"

  • "requiresShipping", "taxable"

  • "finalAmount", "originalAmount"

How to use data in dynamic content blocks within automations - read more here

Billing Attempt Logs

Two events include additional billing arrays:

  • Seal Subscription Billing Attempt Succeeded"billing_attempts" array

  • Seal Subscription Billing Attempt Failed"failed_billing_attempt" array

Each object may contain:

For successful attempts

  • "ba_id"

  • "ba_attempted_at"

  • "ba_order_id"

  • "ba_status"

  • "ba_completed_at"

  • "ba_triggered_manually"

For failed attempts:

  • "fba_id"

  • "fba_date"

  • "fba_status"

  • "fba_completed_at"

These fields allow you to trigger messages based on when billing succeeded or failed, and optionally display billing history.

Event Mapping Overview

Seal Event Type

Omnisend Trigger Name

Subscription created

Seal Subscription Created

Subscription updated

Seal Subscription Updated

Subscription paused

Seal Subscription Paused

Subscription resumed

Seal Subscription Resumed

Subscription cancelled

Seal Subscriptions - Subscription Cancelled

Billing attempt succeeded

Seal Subscription Billing Attempt Succeeded

Billing attempt failed

Seal Subscription Billing Attempt Failed

These events appear in Omnisend under the Custom Event category. You can use them to trigger automations and create segments.

Use in Automations

Each event can be used as a trigger in automation workflows. The fields passed with the event can be used to personalize message content.

High-Level Recommendations:

Seal Subscription Created

Use to:

  • Start onboarding or welcome flows

  • Introduce the benefits of the subscription

  • Ask for preferences or introduce how billing works

Seal Subscription Updated

Use to:

  • Notify customer about plan changes

  • Confirm updates to delivery or billing intervals

  • Highlight what’s new in their subscription

An updated event is generated alongside all other events. So if a contact has been paused, an update will happen, and hence, the event will be generated.

Seal Subscription Paused

Use to:

  • Confirm the pause action

  • Offer options to resume

  • Highlight what the customer is missing

Seal Subscription Resumed

Use to:

  • Welcome the customer back

  • Confirm their next billing or shipping date

  • Reinforce product value

Seal Subscriptions – Subscription Cancelled

Use to:

  • Confirm cancellation

  • Ask for feedback

  • Offer win-back or retention discounts

Seal Subscription Billing Attempt Succeeded

Use to:

  • Confirm successful billing

  • Send a receipt or confirmation

  • Trigger post-purchase engagement (e.g., referral, loyalty, or upsell)

Seal Subscription Billing Attempt Failed

Use to:

  • Alert the customer of payment failure

  • Provide a link to update billing details

  • Offer assistance or retry options

Each workflow can use personalization variables like:

  • [[ event.billingInterval ]]

  • [[ event.line_items.productName ]]

  • [[ event.orderId ]]

  • [[ event.billing_attempts.0.ba_attempted_at ]]

Use in Segmentation

You can use all events and top-level fields for creating dynamic segments.

Example segment use cases:

  • Contacts who triggered Seal Subscription Billing Attempt Failed in the last 7 days

  • Subscribers with "billingInterval" equal to 1 month

  • Contacts who created a subscription but didn’t resume after a pause

  • All active subscribers with "status" = ACTIVE

Available for segmentation:

  • Event trigger type

  • "billingInterval"

  • "subscriptionType"

  • "status"

  • "currency"

  • "subscription_id"

  • "orderId"

Nested arrays like "line_items" and "billing_attempts" cannot be directly used in segmentation, but can be displayed in messages.

Additional Notes

  • Events are pushed in real-time from Seal Subscriptions via webhook.

  • Personalization variables are available immediately in the message editor.

  • Triggers will appear in Omnisend once the event has fired at least once.

  • All events are treated as custom events in Omnisend’s automation and segmentation tools.

  • Arrays such as "line_items" and "billing_attempts" are safe to use for dynamic content only.


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?