Submarine and Shopify Flow

Notifications made easy with Shopify Flow.

1. Overview

Submarine offers a comprehensive Shopify 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.
If you are planning to hook your Submarine flow triggers up to Klaviyo then we have a walk through guide on how to do that linked below.
Klaviyo x SubmarineKlaviyo x 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.
Order
Order
The order against which charge was made.
Order name
String
The name of the shopify order against which charge was made, e.g: “#1010”
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.
Order
Order
The order against which charge was made.
Order name
String
The name of the shopify order against which charge was made, e.g: “#1010”
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.
Order
Order
The order against which refund was made.
Order name
String
The name of the shopify order against which refund was made, e.g: “#1010”
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 upcoming charge

A campaign order is due to be charged in 2 days (default) time
Properties
Name
Type
Description
Campaign descriptions
String
The descriptions of the underlying Shopify purchase options, e.g. “You will be charged the remaining balance when the product is released on February 8, 2023.”.
Campaign names
String
The names of the underlying Shopify purchase option, e.g. “Pre-order: released on February 8, 2023”.
Campaign order IDs
String
The Submarine ID of the campaign order.
Campaign type
String
The type of campaign, e.g. “crowdfund” or “presale”.
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”.
Order
Order
The Shopify order from which the campaign order originates.
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).
Amount
Number
The amount remaining to be charged, in cents.
Amount description
String
A human-readable description of the total remaining amount, e.g. “$58.25”.
Amount currency
String
The remaining amount’s currency, e.g. “AUD”.

2.6. 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.7. 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.8. 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.9. 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.10. 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”.

2.11. Crowdfunding campaign launched

A crowdfunding 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 crowdfunding campaign.
Campaign end total units
Number
The number of orders when the campaign ended.
Campaign end total value
Number
The value of orders when the campaign ended (in cents).
Campaign end total value description
String
A human-readable description of the campaign end total value amount, e.g. “$58.25”.
Campaign running total units
Number
The current number of orders for the active campaign.
Campaign running total value description
String
A human-readable description of the campaign running total value amount, e.g. “$58.25”.
Campaign running total value
Number
The current value of orders for the active campaign (in cents).
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Currency
String
The campaign’s goal currency, e.g. “AUD”.
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”.
Goal progress
Number
The percentage towards goal completion.
Goal status
String
The status of the goal: one of “pending”, “succeeded” or “failed”.
Goal total units
Number
The goal, in terms of total number of orders, to be reached for the campaign to be successful. This is zero if the goal type is “total_value”.
Goal total value
Number
The goal, in terms of total value of orders (in cents), to be reached for the campaign to be successful. This is zero if the goal type is “total_units”.
Goal total value description
String
A human-readable description of the goal total value amount, e.g. “$58.25”.
Goal type
String
The type of goal set by the merchant: one of “total_units” or “total_value”.
Launched at
String
The time the campaign launched, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Limit
Number
The crowdfund campaign’s limit.
Status
String
The campaign status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.12. Crowdfunding campaign ended

A crowdfunding 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 crowdfunding campaign.
Campaign end total units
Number
The number of orders when the campaign ended.
Campaign end total value
Number
The value of orders when the campaign ended (in cents).
Campaign end total value description
String
A human-readable description of the campaign end total value amount, e.g. “$58.25”.
Campaign running total units
Number
The current number of orders for the active campaign.
Campaign running total value description
String
A human-readable description of the campaign running total value amount, e.g. “$58.25”.
Campaign running total value
Number
The current value of orders for the active campaign (in cents).
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Currency
String
The campaign’s goal currency, e.g. “AUD”.
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”.
Goal progress
Number
The percentage towards goal completion.
Goal status
String
The status of the goal: one of “pending”, “succeeded” or “failed”.
Goal total units
Number
The goal, in terms of total number of orders, to be reached for the campaign to be successful. This is zero if the goal type is “total_value”.
Goal total value
Number
The goal, in terms of total value of orders (in cents), to be reached for the campaign to be successful. This is zero if the goal type is “total_units”.
Goal total value description
String
A human-readable description of the goal total value amount, e.g. “$58.25”.
Goal type
String
The type of goal set by the merchant: one of “total_units” or “total_value”.
Limit
Number
The crowdfund campaign’s limit.
Status
String
The campaign status, e.g. “pending”, “allocated”, ”paid”, ”completed”, ”cancelled”.

2.13. Crowdfunding campaign completed

A crowdfunding 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 crowdfunding campaign.
Campaign end total units
Number
The number of orders when the campaign ended.
Campaign end total value
Number
The value of orders when the campaign ended (in cents).
Campaign end total value description
String
A human-readable description of the campaign end total value amount, e.g. “$58.25”.
Campaign running total units
Number
The current number of orders for the active campaign.
Campaign running total value description
String
A human-readable description of the campaign running total value amount, e.g. “$58.25”.
Campaign running total value
Number
The current value of orders for the active campaign (in cents).
Created at
String
The time the campaign order was created, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Completed at
String
The time the campaign completed, in ISO8601 format, e.g. “2023-02-06T16:31:18Z”.
Currency
String
The campaign’s goal currency, e.g. “AUD”.
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”.
Goal progress
Number
The percentage towards goal completion.
Goal status
String
The status of the goal: one of “pending”, “succeeded” or “failed”.
Goal total units
Number
The goal, in terms of total number of orders, to be reached for the campaign to be successful. This is zero if the goal type is “total_value”.
Goal total value
Number
The goal, in terms of total value of orders (in cents), to be reached for the campaign to be successful. This is zero if the goal type is “total_units”.
Goal total value description
String
A human-readable description of the goal total value amount, e.g. “$58.25”.
Goal type
String
The type of goal set by the merchant: one of “total_units” or “total_value”.
Limit
Number
The crowdfund 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!