How to build custom Flow Builder actions via Apps for unique logic?
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.
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>
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});
});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
Connect the flow
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
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
Shopware Flow Builder Checklist
0 of 8 completeMistakes 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.
Related Answers
Still need help?
Talk to our Shopware experts
We've handled GDPR/CCPA compliance for dozens of EU & US Shopware stores.