Flow is a fantastic concept, allowing us to build nice integrations. But I find the current Action implementation limiting.
TL;DR
Suppose Action would have an output that allows the creation of more connected workflows. Action output avoids fracturing a single workflow into multiple disconnected smaller ones.
Problem
Our customers want to use our Flow action “Generate PDF” in their workflows. PDF action is a tiny step in a more extensive workflow, not a core part. Our Action generates a downloadable document. Technically we can return an action outcome (URL) immediately, and a merchant could continue the same workflow incorporating a PDF URL. But because there is no such thing as Action output - the merchant is forced to introduce another workflow to handle our app output via Trigger. The current situation is not great as it forces merchants to create a separate workflow for each app output. This situation does not help analyze the sequence of events associated with an initial trigger.
How other workflow engines do it
Let’s take a look at existing and active YAML-based workflow engines:
They support output or a result. Naturally, more sophisticated workflow engines that use code to define workflows also support outputs. Example: Temporal.io.
How would a workflow with outputs look
Here is a small example of a workflow that uses Action output.
| Component | Name | Input | Output |
|---|---|---|---|
| Trigger | Order Fulfilled | Order Object | Order, Store, All Line Items Shippable |
| Action | Generate Commercial Invoice | Order ID | PDF URL |
| Action | Send Email | PDF URL | None |
| Action | Send HTTP Request | Not important | None |
Note that steps that follow “Generate Commercial Invoice” use PDF URL as input. The workflow is one piece.
Question to Shopify Flow team
Do you plan to support Action outputs sometime in the future?
