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!