Submarine and Shopify Flow

Notifications made easy with Shopify Flow.

1. Overview

Although Submarine natively supports webhook subscriptions and transactional emails, the strong preference for merchant integration to Submarine notifications is via Shopify Flow. Submarine offers a comprehensive Flow integration, which gives merchants the flexibility to connect Submarine to their existing systems and use Flow to build custom workflow logic — out of the box.
For example, a merchant already managing customer email templates in Klaviyo can connect the “Charge failed” trigger from Submarine to the “Event” action in Klaviyo, and deliver an email notification to the customer alerting them of the failure and prompting them to update their payment details. This helps keep customer data and custom email template management in the one place, rather than siloing it inside Submarine.
Triggers such as notifications are configurable based on merchant needs — you can see the list of available configurations and their default values in
⚙️
Configuring Submarine
.

2. Flow triggers

Shopify Flow triggers exposed by Submarine.

2.1. Charge failed

An attempt to charge a customer via Submarine failed.
Properties
Name
Type
Description
Amount
Number
The amount the charge was for, in cents.
Amount description
String
A human-readable description of the charge amount, e.g. “$58.25”.
Charge description
String
An optional description for the charge.
Charge ID
String
The Submarine ID of the failed charge.
Charge status
String
The charge status, e.g. “pending”, “succeeded”, “failed”.
Currency
String
The charge’s currency, e.g. “AUD”.
Customer
Customer
The customer on whose behalf the charge was made.
Failure code
String
A machine-readable description of the failure.
Failure message
String
A human-readable description of the failure.
Payment method ID
String
The Submarine ID of the associated payment method.
Payment method description
String
A human-readable description of the payment method, e.g. “Mastercard ending in 4242”.
Payment method type
String
The type of payment method used for the charge, e.g. “card”.

2.2. Charge succeeded

An attempt to charge a customer via Submarine was successful.
Properties
Name
Type
Description
Amount
Number
The amount the charge was for, in cents.
Amount description
String
A human-readable description of the charge amount, e.g. “$58.25”.
Charge description
String
An optional description for the charge.
Charge ID
String
The Submarine ID of the successful charge.
Charge status
String
The charge status, e.g. “pending”, “succeeded”, “failed”.
Currency
String
The charge’s currency, e.g. “AUD”.
Customer
Customer
The customer on whose behalf the charge was made.
Payment method ID
String
The Submarine ID of the associated payment method.
Payment method description
String
A human-readable description of the payment method, e.g. “Mastercard ending in 4242”.
Payment method type
String
The type of payment method used for the charge, e.g. “card”.

2.3. Refund succeeded

An attempt to refund a customer via Submarine was successful.
Properties
Name
Type
Description
Amount
Number
The amount the refund was for, in cents.
Amount description
String
A human-readable description of the refund amount, e.g. “$58.25”.
Currency
String
The refund’s currency, e.g. “AUD”.
Customer
Customer
The customer on whose behalf the refund was made.
Payment method ID
String
The Submarine ID of the associated payment method.
Payment method description
String
A human-readable description of the payment method, e.g. “Mastercard ending in 4242”.
Payment method type
String
The type of payment method used for the refund, e.g. “card”.
Refund description
String
An optional description for the refund.
Refund ID
String
The Submarine ID of the successful refund.
Refund status
String
The refund status, e.g. “pending”, “succeeded”, “failed”.

2.4. Campaign order created

A campaign order was successfully created on Submarine.
Properties
Name
Type
Description
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign order ID
String
The Submarine ID of the campaign order.
Campaign type
String
The type of campaign, e.g. “crowdfund” or “presale”.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Customer
Customer
The Shopify customer associated to the campaign order.
Due at
String
The time the campaign order is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfilment status
String
The fulfilment status, e.g. “pending”, ”on_hold”, ”allocated”, ”submitted”, ”open”, ”fulfilled”, ”failed”, ”returned”.
Order
Order
The Shopify order from which the campaign order originates.
Payment status
String
The payment status, e.g. “ending”, ”submitted”, ”paid”, ”failed”, ”refunded”, ”partially_refunded”.
Product
Product
The Shopify product associated to the campaign order.
SKU
String
The Shopify SKU associated to the campaign order (if the campaign is defined on a variant).
Status
String
The campaign order status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.5. Campaign order fulfilled

A campaign order was successfully fulfilled on Submarine.
Properties
Name
Type
Description
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign order ID
String
The Submarine ID of the campaign order.
Campaign type
String
The type of campaign, e.g. “crowdfund” or “presale”.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Customer
Customer
The Shopify customer associated to the campaign order.
Due at
String
The time the campaign order is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfilment open
String
The time the campaign order fulfilment was opened, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfilment status
String
The fulfilment status, e.g. “pending”, ”on_hold”, ”allocated”, ”submitted”, ”open”, ”fulfilled”, ”failed”, ”returned”.
Order
Order
The Shopify order from which the campaign order originates.
Payment status
String
The payment status, e.g. “ending”, ”submitted”, ”paid”, ”failed”, ”refunded”, ”partially_refunded”.
Product
Product
The Shopify product associated to the campaign order.
SKU
String
The Shopify SKU associated to the campaign order (if the campaign is defined on a variant).
Status
String
The campaign order status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.6. Campaign order cancelled

A campaign order was successfully cancelled on Submarine.
Properties
Name
Type
Description
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign order ID
String
The Submarine ID of the campaign order.
Campaign type
String
The type of campaign, e.g. “crowdfund” or “presale”.
Cancelled at
String
The time the campaign order was cancelled, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Customer
Customer
The customer associated to the campaign order.
Due at
String
The time the campaign order is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfilment status
String
The fulfilment status, e.g. “pending”, ”on_hold”, ”allocated”, ”submitted”, ”open”, ”fulfilled”, ”failed”, ”returned”.
Order
Order
The order from which the campaign order originates.
Payment status
String
The payment status, e.g. “ending”, ”submitted”, ”paid”, ”failed”, ”refunded”, ”partially_refunded”.
Product
Product
The Shopify product associated to the campaign order.
SKU
String
The Shopify SKU associated to the campaign order (if the campaign is defined on a variant).
Status
String
The campaign order status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.7. Presale campaign launched

A presale campaign was successfully launched on Submarine.
Properties
Name
Type
Description
Allocation status
String
The allocation status, e.g. “pending”, “allocation_queued”, “allocating”, “allocated”, “partially_allocated”.
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign ID
String
The Submarine ID of the presale campaign.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Due at
String
The time the campaign is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
End at
String
The time the campaign order is due to end, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfil at
String
The time the campaign order is due to fulfil, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Launched at
String
The time the campaign launched, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Limit
Number
The presale campaign’s limit.
Status
String
The campaign status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.8. Presale campaign ended

A presale campaign was successfully ended on Submarine.
Properties
Name
Type
Description
Allocation status
String
The allocation status, e.g. “pending”, “allocation_queued”, “allocating”, “allocated”, “partially_allocated”.
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign ID
String
The Submarine ID of the presale campaign.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Due at
String
The time the campaign is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
End at
String
The time the campaign order is due to end, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Ended at
String
The time the campaign ended, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfil at
String
The time the campaign order is due to fulfil, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Limit
Number
The presale campaign’s limit.
Status
String
The campaign status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.9. Presale campaign completed

A presale campaign was successfully completed on Submarine.
Properties
Name
Type
Description
Allocation status
String
The allocation status, e.g. “pending”, “allocation_queued”, “allocating”, “allocated”, “partially_allocated”.
Campaign description
String
The description of the underlying Shopify purchase option, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign name
String
The name of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign ID
String
The Submarine ID of the presale campaign.
Completed at
String
The time the campaign completed, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Due at
String
The time the campaign is due, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
End at
String
The time the campaign order is due to end, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Fulfil at
String
The time the campaign order is due to fulfil, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Limit
Number
The presale campaign’s limit.
Status
String
The campaign status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

3. Flow actions

Submarine currently does not expose any Shopify Flow actions.
Something you’d like added? Reach out!