What this surface does
This is the only verified route for Bonus Triggers.
Operators use it to inspect each existing trigger card, update the attached coupon codes, adjust expiration time, and save the full trigger configuration.
How the page is organized
- the page shows one card per saved trigger
- each card uses the trigger name as the card title
- the left side of the card manages coupon-code chips
- the right side stores expiration time and free-text comments
- the footer actions let the operator return to
Bonusesor submit all current changes
How to read the page
Coupon Codesis a multi-value chip field. Each chip is one code currently attached to the trigger.Expiration Time (minutes)needs special care: values above365are converted from minutes to days when coupons are assigned, while values from1through365are treated as days.- A positive expiry configured on the matched bonus takes precedence over the trigger value and is applied in minutes.
Commentsis operator-facing free text kept on the trigger record.- Saved coupon codes are stored as one comma-separated string and the page shows them as editable chips.
- User-side trigger logic can read these records and issue the stored coupon codes as internal coupon codes.
- If a trigger has no coupon codes, firing it does not issue a coupon.
Main actions
- add one coupon code to a trigger card
- remove one coupon-code chip from a trigger card
- submit the full trigger configuration
- return to the
Bonusesroute without saving
Known caveats
- The page currently edits only the saved trigger records it loads. There is no verified CRM action to add a new trigger card or delete a trigger card.
- Submit sends the whole
bonusTriggerspayload after converting coupon-code arrays back into comma-separated strings. - The current save path can fail before any row is written, while the page can still show a success notification.
- After Submit, reload the page and confirm that every changed value remains. Do not rely on the notification alone.