Skip to content

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

How to build custom Flow Builder actions via Apps for unique logic?

SB
Written by StageBit Engineering Team
Updated May 2026 4 min readVerified by engineers

Quick Answer

You can extend Shopware Flow Builder with custom app actions that trigger external APIs, ERP workflows, loyalty systems, Slack notifications, warehouse automation, or any other business logic your store needs. The cleanest approach is to register a custom action through the app manifest, expose an action endpoint, and let Shopware execute the action during a flow event. The setup is not difficult—but payload structure, permissions, and async handling are where most implementations fail. This walkthrough covers the full setup from app registration to production-safe execution.

Before You Start

  • A working Shopware App — custom Flow Builder actions are registered through the app system, not plugins.
  • HTTPS-accessible backend — Shopware must be able to call your action endpoints from the cloud or server environment.
  • Understanding of Shopware events — your action only becomes useful when attached to the correct trigger event.
1

Define the action

Start by registering a custom flow action inside your app manifest. This tells Shopware the action exists, where the execution endpoint lives, and which flow triggers can use it. Keep the action name business-focused instead of technical. Store admins should understand it instantly when building flows later.

  • Create a flow-action definition in your manifest XML
  • Assign a unique technical identifier
  • Point the action to a secure HTTPS callback URL
<flow-action>
<meta>
    <label>Send Order To ERP</label>
</meta>

<url>https://your-app.com/api/flow/erp</url>

<requirements>
    <requirement>orderAware</requirement>
</requirements>

PRO TIP Keep action labels operational, not developer-focused. “Create Warehouse Ticket” is far clearer than “Run WMS Sync”.
2

Create the endpoint

Your endpoint receives the Flow Builder payload when the event fires. This is where the actual business logic happens. In most real stores, the endpoint forwards data into an ERP, CRM, shipping platform, or internal middleware service. Make the endpoint idempotent because Shopware retries failed actions automatically.

  • Validate Shopware request signatures
  • Extract entity data from the payload
  • Return proper HTTP success responses quickly
app.post(
    '/api/flow/erp', async(req, res) = > {
      const order = req.body.data.order;

      await sendOrderToERP(order);

      return res.status(200).json({success : true});
    });
IMPORTANT Never run long blocking processes directly inside the request cycle. Queue them instead or Flow Builder delays stack up fast.
3

Add action settings

Most custom actions need configuration fields. Think webhook URLs, API keys, warehouse IDs, Slack channels, or customer segment mappings. Expose these as configurable inputs so admins can reuse the same action across multiple flows without editing code every time.

  • Define configurable parameters in the action schema
  • Validate required values before execution
  • Use defaults where possible to reduce admin mistakes
COMMON MISTAKE Developers hardcode API endpoints during testing and forget multi-environment support later. Add sandbox and production options early.
4

Connect the flow

Settings → Flow Builder

Once the app is installed, your action becomes available inside Flow Builder. Create a flow, choose the trigger event, then attach the custom action. Test multiple scenarios instead of only one happy-path order. Failed payments, partial shipments, and canceled orders usually expose the weak spots.

  • Select the correct trigger event
  • Add rule conditions before execution
  • Run test orders against each branch
PRO TIP Split flows by business process instead of building one giant automation tree. They’re far easier to debug six months later.
5

Harden production handling

Production traffic exposes problems that never appear in staging. Add logging, retry protection, timeout handling, and monitoring before launch. If your ERP goes down for two hours during peak sales, your action should fail gracefully instead of silently dropping orders.

  • Store execution logs with payload references
  • Add retries for temporary API failures
  • Alert your team when execution failures spike
IMPORTANT Silent failures are the real danger here. If nobody notices failed actions for three days, operational cleanup becomes painful very quickly.

Shopware Flow Builder Checklist

0 of 8 complete

Mistakes Most Developers Make

! Blocking requests too long

What happens: ERP or API delays slow down flow execution and create retry storms.

Fix: Queue long-running jobs asynchronously and return success responses immediately.

! Missing payload validation

What happens: Unexpected entity structures break the action when different flow events trigger it.

Fix: Validate required payload fields before processing business logic.

! Building giant flow chains

What happens: Nobody can debug the automation later because one failed condition breaks multiple processes.

Fix: Separate flows by operational responsibility like fulfillment, CRM, and notifications.

Key Takeaway

The short version: Shopware Apps let you extend Flow Builder with custom actions that can execute almost any external business process. The real work is not the manifest registration—it’s building reliable execution logic, validating payloads, and handling failures safely under production traffic. Keep actions focused, queue heavy jobs, and test more than the happy path. Most broken implementations fail because they skip monitoring and retry handling. Start with Step 1—that one alone handles most of it.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Shopware experts

We've handled GDPR/CCPA compliance for dozens of EU & US Shopware stores.

Talk to Shopware Experts

Tell us more about your brand!

Rohit Kundale, Our VP of Sales and Marketing is ready to meet with your team.