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. |
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 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”. |
2.10. 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.10. 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.10. 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!