Workflows you can carry between communities
Workflows export and import as portable files, the builder canvas gained zoom, a minimap and branch focus, and Store APIs answer with machine-readable codes.
01 ·Export a workflow, import it somewhere else
A workflow can be downloaded as a portable file and imported back, into the same community or a different one. Custom Workflows and Data Workflows each have their own export and import, reachable from the workflow header menu, from a row's menu in the list, and from an import button above the table. The file carries the workflow, its trigger and its steps. It leaves behind everything that describes one installation of it: record identifiers, the community, the status, the last run and its results. Export rewrites a step's reference to an earlier step into a position inside the document, and import mints it back as a fresh reference, both through the same traversal duplication uses. Import validates the trigger and step types against the runtime receiving them and declines a file built for the other one. Imported workflows land as drafts with idle triggers, and a failed import rolls its writes back. Export is built from what is saved, so exporting mid-edit cannot capture an unsaved step. The file leaves out a webhook trigger's key, and import mints a fresh one.
Brokers running more than one community rebuild the same automations in each of them, and an agency onboarding a new client starts from a blank canvas every time. A portable file makes a proven workflow something you can hand over, keep in version control, or use as the house template for the next rollout, with the identifiers and credentials that belong to one installation deliberately left behind.
02 ·A canvas that keeps up with a large workflow
The workflow builder canvas gained zoom controls with a fit-to-view button, a minimap you can toggle, hover and selected states on nodes, and tooltips for names that overflow a node. Node positions animate when a step is added or removed, and hold still for anyone who prefers reduced motion. Branch labels size to their own text within limits and keep the full name in a tooltip. The branch open in the settings panel is outlined on the canvas, and selecting a branch moves the camera to it, which is what a router wide enough to run past the viewport needs. The branch list carries an order badge showing which branch wins under first-match, a count of conditional branches, a marker on incomplete ones, and a filter box once there are more than eight. The control for deleting the last conditional branch is disabled up front, and it says why. A trigger can be swapped from its context menu. In the step selector, typing searches across every category at once, and the list takes arrow keys, Enter and Escape.
Once a workflow routes a trader down one of a dozen paths, an operator has to move around inside it, not just read it. Zoom, a minimap, branch focus and a filterable branch list are what make a large router workable in the admin panel, so a broker can hold tier logic and reward routing in one workflow and still find their way through it.
03 ·Machine-readable codes on Store and redemption responses
Store and redemption API responses carry a stable code alongside the status and message they already return, so an integration can branch on the outcome without matching English text. Store responses add the code inside their existing meta object; the redemption endpoints add it at the top level. Codes cover ordinary results, such as products retrieved or a redemption status list returned, and the failures worth handling separately: a validation failure, a missing or invalid API key, a permission the key does not carry, a resource that was not found, a conflict, an unavailable dependency, and an internal error. Coverage spans Store categories, products, purchase history, store configuration, voucher inventory, redemption detail and the redemption lifecycle endpoints. Every existing field stays where it was, so a caller written against the older shape keeps working.
A broker's developer wiring the rewards store into their own portal, and increasingly an AI agent doing the same job, both need to know what happened without parsing a sentence. A stable code per outcome is what lets that caller retry a dependency failure, surface a validation message and escalate a permission problem as three different things. Without one, an integration rests on wording, and a reworded message can break it.
The data selector shows every field of a step matched by name, and keeps a branch of the tree visible when anything nested inside it matches the search.
6 AugDuplicating a step inside a router branch places the copy in that branch, and duplicating a router or a whole branch copies its nested steps into the copy at any depth.
6 AugRenaming a workflow commits on Enter and reverts on Escape, and the workflows table shows a loading state on first fetch.
6 AugThe community settings navigation gained a collapse toggle that folds it to a narrow rail and remembers the choice, which leaves more width for the workflow canvas.
6 AugThe XP settings response returns stored category and reward identifiers on its own, with the older populated catalogue available on request for callers that still need it.
6 Aug