Run a campaign
A campaign is several promotions with one purpose, one period and one number to judge them by. Run it as a container and the result is readable afterwards. Run it as loose rules and somebody spends July reconciling four codes in a spreadsheet.
How this will work
The campaign container
A campaign carries a name, a period and the target segments. The promotions and coupon batches that belong to it are attached to it instead of living loose in the promotion list. The planned fields:
| Field | What it decides |
|---|---|
| Name | Carries the audience and the period: spring-2026-valves, not campaign 3 |
| Period | The window in which the container is live. Every promotion inside has its own validity and must fit inside it |
| Target segments | Who the campaign is aimed at, from CRM › Segments |
| Promotions, coupon batches | What the campaign consists of |
| Budget | The discount you are willing to hand over, in money, so that "discount given" has something to be measured against |
| Notes | Two paragraphs after it ends. See After it |
What the container buys you: one place to end everything, one report that adds up redemptions and discount given across the whole action, and an attribution key on every order the campaign touched.
Pre-launch checklist
Work this list. Each row is a support case that happens otherwise.
| Check | Why |
|---|---|
| Price-list scope set on every promotion | Contract customers must not receive an open-market discount by accident. See Promotions vs. contract prices |
| Punchout channels excluded | A discount that appears only at checkout blocks the customer's invoice matching |
| Stacking decided and tested | Four defensible rules on one large cart are a quarter's margin |
| Maximum discount amount set | A percentage on a project order is not the order you designed for |
| Validity as a time, not only a date | "Until 30 April" ends at 23:59:59 local time, not at 00:00 |
| Stock checked for free goods and bundles | A gift you cannot ship is a back-order |
| Test cart walked through per segment | See Test a promotion before it goes live |
| The invoice checked, not only the cart | The invoice is where the money is |
| Sales informed | Your Innendienst will be asked about it on day one |
The last row is the one that gets skipped, and it causes the most common campaign failure in B2B: the customer asks the rep about the promotion, the rep has never heard of it, and the buyer concludes the offer is a mistake.
Segment targeting
Most B2B campaigns should be aimed at a segment. Three patterns that work:
| Pattern | Segment rule | Pair it with |
|---|---|---|
| By what they do not buy | No order in a category for twelve months | The assortment-expansion play in Promotion types that work in B2B |
| By activity | No order for 90 days on an account that used to order monthly | An assigned coupon, so the rep has something to offer by name |
| By channel behaviour | Orders arrive by phone or e-mail, never through the storefront | A first-online-order incentive. It is cheap, and it moves a permanent cost |
Segments are maintained on CRM › Segments and exist today. See Segments. Build the segment first and look at how many accounts it contains. A campaign aimed at eleven customers is a phone call for the rep, and a promotion adds nothing to it.
Launch
Activate the promotions, not the container, and activate them in priority order, highest first. If something is wrong, the promotion that acts on the undiscounted price is the one to catch before the others compound on top of it.
Then watch the first hour. Once the redemption counter ships, it answers within minutes whether the rule can be reached at all. Until then, place an order as a buyer inside the segment and read the order lines. Zero redemptions after an hour of normal traffic is a scope problem far more often than a demand problem.
Watching it
Daily for the first week, then weekly:
| Watch | The question it answers |
|---|---|
| Redemptions | Is it being used at all? |
| Discount given | What has it cost so far, against the budget you set? |
| Average order value of orders that redeemed, against those that did not | If the two are the same, the promotion is paying for orders that would have happened anyway |
| Which accounts are redeeming | If your five largest contract customers head that list, the scope is wrong. Stop and fix it |
The full method is in Knowing what a promotion cost you.
Ending cleanly
A campaign ends at its Valid until. Three things need a decision before that
moment arrives.
Open carts. A buyer who built a cart on Tuesday and checks out on Thursday, after the campaign ended, loses the discount at checkout. The cart must say so at that point instead of repricing without a word. The opposite is worse: a discount honoured after expiry applies to a cart that no longer qualifies, and nothing in your reporting explains it.
Quotes in flight. Quotes are planned as well, and the rule to settle now is this: a quote sent during the campaign holds its frozen prices; a quote still in draft when the campaign ends reprices. Send it, or tell the customer. See The quote lifecycle.
Coupons still circulating. Codes outlive campaigns. Set the coupon expiry to the campaign end or earlier, and expect redemption attempts for months. The message a buyer gets must say expired, with the date, and never invalid.
After it
Write down three numbers and the answer to one question: redemptions, discount given, incremental revenue, and whether you would run it again. Two paragraphs in the campaign's notes are worth more than a dashboard nobody opens.
What you can run today
A price list with a validity window is the campaign mechanism on your tenant now, and it covers a real share of B2B campaigns: better conditions on forty articles for six weeks, a volume ladder for a quarter, an online-only price for one channel.
| Campaign element | Today, with a price list | Planned Promotions app |
|---|---|---|
| Period | Valid from / Valid until on the list. It stops resolving by itself | Campaign period plus per-promotion validity |
| Audience | Applies to account, contact or channel; Logged-in buyers only | Segment targeting |
| Volume incentive | Quantity tiers (From quantity) on the entries | Cart-value and quantity conditions with a percentage or amount effect |
| Contract customers | Decided by price resolution: a list bound to their account is more specific than an open campaign list. Put both in a test cart | Price-list scope on the promotion |
| Coupon | None | Single-use, multi-use and assigned codes |
| Redemptions, discount given | Computed from the order lines, in an export or your ERP | Counter and report on the campaign |
The steps:
- Create the list under Order Management › Prices › Price lists. Code it for
what it is,
aktion-q2-2026-valves, and give it the same currency and the same net/gross basis as your standard list. - Set Valid from and Valid until as times, in the tenant's time zone.
- Add entries only for the articles on action. Where you want a volume incentive, enter the tier ladder on the entry.
- Bind the list to a channel if the action is online-only; leave Applies to empty for a public campaign.
- Put an article in a cart as an open-list buyer and as a contract customer, and confirm each sees the price you intended. The resolution order is in How pricing works.
- Tell the Innendienst, in writing, with the list of articles and the end date.
The full procedure, including entry-level validity for a few articles inside a permanent list, is in Time-limited prices.
Next
- Knowing what a promotion cost you — the three numbers, honestly computed.
- How promotions show on the storefront — what the buyer must be able to read while it runs.