When to Use Flow, Functions, or a Custom App

Three Paths to Extending Shopify

Shopify offers multiple ways to add custom functionality. Choosing the right approach prevents over-engineering simple requirements or under-building complex ones.

Shopify Flow handles automation. Shopify Functions extend native checkout behavior. Custom apps provide unlimited flexibility. Understanding when to use each saves time and money.

Shopify Flow: No-Code Automation

Flow automates workflows without writing code.

What Flow does well

  • React to events: order created, customer tagged, inventory low
  • Perform actions: add tags, send notifications, update metafields
  • Apply conditions: if order value exceeds X, if customer in segment Y
  • Chain workflows: trigger actions that trigger other actions

Common Flow use cases

  • Tag high-value customers automatically
  • Notify team when inventory drops below threshold
  • Cancel orders from flagged addresses
  • Add gift with purchase based on cart contents
  • Segment customers based on purchase behavior

Flow limitations

  • Cannot run custom code
  • Limited to available triggers and actions
  • Cannot integrate with external systems directly (without HTTP request action)
  • Complex logic becomes hard to manage in visual builder

When to choose Flow

Use Flow when:

  • Requirements match available triggers and actions
  • No external system integration needed
  • Logic is straightforward conditional branching
  • You want non-technical team members to manage workflows

Shopify Functions: Checkout Customization

Functions customize checkout behavior that was previously impossible to change.

What Functions can do

  • Discount Functions: custom discount logic beyond native capabilities
  • Shipping Functions: custom shipping rate calculations
  • Payment Functions: control payment method availability
  • Validation Functions: custom checkout validation rules

How Functions work

Functions run on Shopify's infrastructure using WebAssembly. You write code (Rust or JavaScript) that Shopify executes at specific extension points. Functions receive input, perform calculations, return output. They cannot make external API calls.

Common Function use cases

  • Tiered discounts based on cart value
  • Member-only pricing with validation
  • Shipping restrictions by product type
  • Payment method filtering by order value
  • Custom bundle pricing logic

Function limitations

  • Cannot call external APIs
  • Limited execution time
  • Specific extension points only
  • Requires development skills

When to choose Functions

Use Functions when:

  • You need to modify checkout behavior
  • Logic depends only on available input data
  • No external data or API calls required
  • You need performance that external calls cannot provide

Functions require Shopify Plus for some extension points.

Custom Apps: Full Flexibility

Custom apps have no functional limitations but require development investment.

What custom apps can do

  • Integrate with any external system
  • Store and process custom data
  • Provide admin interfaces
  • Extend storefront with custom sections
  • Implement complex business logic

Common custom app use cases

  • ERP and CRM integrations
  • Custom product configurators
  • Advanced reporting and analytics
  • Proprietary business logic
  • Multi-system orchestration

Custom app trade-offs

  • Requires development resources
  • Needs hosting and maintenance
  • Must handle security and compliance
  • Ongoing cost for infrastructure and updates

When to choose custom apps

Use custom apps when:

  • Flow and Functions cannot meet requirements
  • External integrations are required
  • You need custom admin interfaces
  • Data storage beyond Shopify's capabilities is needed
  • Business logic is proprietary and complex

See custom Shopify apps for our approach.

Combining Approaches

These tools work together.

Flow triggering apps

Flow's HTTP request action can call external APIs. Your app receives these calls and performs complex operations that Flow cannot handle directly.

Apps providing Flow actions

Apps can contribute custom actions to Flow. Merchants then use your actions in their workflows alongside native actions.

Apps extending Functions

Apps can deploy and manage Functions. The app provides configuration UI, the Function executes the customized logic.

Decision Framework

Ask these questions:

Does it need external data or APIs?

Yes → Custom app. Neither Flow nor Functions can call external systems reliably.

Is it checkout behavior?

Yes → Functions if input data is sufficient. Custom app if external data needed.

Is it automation based on Shopify events?

Yes → Flow if actions are available. Custom app if complex processing needed.

Does it need custom UI in admin?

Yes → Custom app. Flow and Functions do not provide UI.

Can non-developers manage it?

Need → Flow provides visual management. Apps and Functions require developer involvement for changes.

Working with LiftKit Digital

LiftKit Digital helps you choose the right approach for your requirements. We implement Flow automations, build Functions, and develop custom apps based on what your business actually needs.

To discuss your requirements, get in touch.