<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Kayabyte]]></title><description><![CDATA[Kayabyte]]></description><link>https://kayabyte.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 04 Nov 2026 04:12:22 GMT</lastBuildDate><atom:link href="https://kayabyte.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Wix has no wholesale mode: ten wholesale apps compared, and where mine falls short]]></title><description><![CDATA[Ten Wix wholesale apps compared by price, free plan, applications and limits, plus the members-only workaround. Mine too, with its limits.]]></description><link>https://kayabyte.hashnode.dev/wix-has-no-wholesale-mode-ten-wholesale-apps-compared-and-where-mine-falls-short</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/wix-has-no-wholesale-mode-ten-wholesale-apps-compared-and-where-mine-falls-short</guid><category><![CDATA[wix]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Tue, 03 Nov 2026 19:40:26 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on</em> <a href="https://dev.to/kayabyte/wix-has-no-wholesale-mode-ten-wholesale-apps-compared-and-where-mine-falls-short-5eoc"><em>DEV</em></a><em>.</em></p>
<p>Wix Stores has one price per product. If a bakery, a candle maker or a wine shop wants trade customers to pay less than the public, there is no wholesale switch to flip. Wix's own workaround is a members-only store page with duplicated products at wholesale prices, and its article (<a href="https://support.wix.com/en/article/wix-stores-creating-restricted-store-pages">Creating restricted store pages</a>) also names one app, SparkLayer.</p>
<p><em>Full disclosure: I make one of the apps below, Wholesale Prices &amp; B2B Groups. I describe it last, with its limits. Everything else comes from each app's Wix App Market page, read on 3 November 2026. Where a page didn't say something, I say "not stated" and don't guess.</em></p>
<h2>What the free workaround costs you</h2>
<p>The members-only page works for a small catalog: duplicate each product at its wholesale price, put the copies in a "Wholesale" category on a page set to site members, and approve new members manually. The cost is upkeep. Every price change, photo and description has to be made twice, and the page itself doesn't enforce a minimum order. If you have thirty products and two trade customers, that may be fine. At three hundred products it isn't.</p>
<h2>The questions that sort the apps</h2>
<p>A search for "wholesale" in the App Market returns dozens of results, but most are dropshipping, catalog or quote tools. Ten of them are close fits for giving approved buyers their own prices on a Wix Stores shop. Before you read the list, decide:</p>
<ol>
<li><strong>How does a buyer become a trade customer?</strong> An application form you approve, a label or group you fill yourself, or a group you fill by email.</li>
<li><strong>Do you need case packs and minimum order quantities, or only a percentage off?</strong></li>
<li><strong>Do you need quotes and a buyer portal, or just a price in the cart?</strong></li>
<li><strong>How many trade buyers will you have?</strong> The free plans cap this differently.</li>
</ol>
<h2>What the listings say</h2>
<table>
<thead>
<tr>
<th>App</th>
<th>Reviews</th>
<th>Price (as listed)</th>
<th>Free plan</th>
<th>Notes</th>
</tr>
</thead>
<tbody><tr>
<td>SparkLayer B2B &amp; Wholesale</td>
<td>5 (3.4)</td>
<td>$49 to $299 a month by B2B order volume</td>
<td>Not stated</td>
<td>Price lists, B2B payments, sales agents, API on the top plan, 14-day trial</td>
</tr>
<tr>
<td>B2B Wholesale Forms</td>
<td>4 (5.0)</td>
<td>From $7.50 a month</td>
<td>Not stated</td>
<td>Order, inquiry and account-application forms</td>
</tr>
<tr>
<td>B2B Wholesale Pricing</td>
<td>1 (5.0)</td>
<td>$15.99 and $23.99 a month</td>
<td>Not stated</td>
<td>Applications and discounts; MOQs and case packs on the higher plan</td>
</tr>
<tr>
<td>ElevenTrade Wholesale &amp; B2B</td>
<td>1 (5.0)</td>
<td>Free; $19.99 a month</td>
<td>1 pricing group, unlimited customers</td>
<td>Volume breaks and trade applications on the paid plan</td>
</tr>
<tr>
<td>Wholesale &amp; B2B by Optexia</td>
<td>none</td>
<td>Free; paid plan shown as "$7 - 90"</td>
<td>1 rule, up to 10 customers</td>
<td>Quantity tiers, minimum order, auto-approve on the paid plan</td>
</tr>
<tr>
<td>Wholesale Prices</td>
<td>none</td>
<td>Free; $7.99 a month</td>
<td>Up to 5 approved buyers</td>
<td>Application form, approve or decline</td>
</tr>
<tr>
<td>Wholesale Pro: B2B Pricing</td>
<td>none</td>
<td>$7.99 a month</td>
<td>Not stated</td>
<td>Application form, store, category or product discounts, minimums; 14-day trial</td>
</tr>
<tr>
<td>TradePortal: B2B Wholesale</td>
<td>none</td>
<td>Free; $12 and $25 a month</td>
<td>Yes, limits not stated</td>
<td>Tiered pricing, MOQ, case packs, quotes</td>
</tr>
<tr>
<td>B2B Wholesale Discounts</td>
<td>none</td>
<td>"$4 - 49" a month</td>
<td>Not stated</td>
<td>Customer groups, discounts saved as Wix automatic discounts</td>
</tr>
<tr>
<td>B2B Login To See Price</td>
<td>none</td>
<td>"$4 - 49" a month</td>
<td>Not stated</td>
<td>Hides prices and Add to Cart from guests only</td>
</tr>
</tbody></table>
<p>Most of these are new, with zero or one review. That isn't a reason to skip them, but test each on your own store with a real trade login before you hand it to a customer.</p>
<h2>How I'd pick</h2>
<ul>
<li><strong>A few trade accounts, want to try for free:</strong> one of the free plans above.</li>
<li><strong>Buyers should apply and be approved from your site:</strong> the apps that list an application form.</li>
<li><strong>Case packs, MOQs and quotes:</strong> TradePortal and B2B Wholesale Pricing list them; neither page explains how prices show in checkout, so test an order.</li>
<li><strong>A real B2B operation with a sales team:</strong> SparkLayer, priced for that.</li>
<li><strong>Only hide prices until login:</strong> B2B Login To See Price.</li>
</ul>
<h2>Where mine fits, and where it doesn't</h2>
<p>Full disclosure, I built <a href="https://go.kayabyte.dev/wholesale?s=hn-wholesale-compared">Wholesale Prices &amp; B2B Groups</a>. You mark trade customers with a contact label such as "Wholesale". When they are logged in as site members, they get the group price in the cart and at checkout. A group has pricing lines: a percentage off the whole store, a collection or chosen products, or a fixed price per product, with an optional minimum order subtotal.</p>
<p>What it doesn't do:</p>
<ul>
<li><strong>No application form.</strong> You add the contact label yourself.</li>
<li><strong>One discount per product.</strong> Wix applies one automatic discount per product, so a trade customer gets the best price on that product, not a stack. A coupon code they type comes off on top.</li>
<li><strong>No quantity tiers, case packs or quotes.</strong></li>
<li><strong>Collections are capped at 500 products per group</strong>, and the price line on the product page works on sites built in the Wix Editor, not in product grids.</li>
<li><strong>Free is one group with one store-wide percentage.</strong> Pro is $9.99 a month, or $7.99 billed yearly, with a 14-day trial.</li>
</ul>
<p>If you need applications, packs or quotes, one of the apps above fits better.</p>
<p>The full side-by-side guide, with a checklist and FAQ: <a href="https://kayabyte.dev/guides/wix-wholesale-apps-compared">Wix wholesale and B2B apps compared</a>.</p>
]]></content:encoded></item><item><title><![CDATA[How to sync Booking.com and Airbnb calendars with your Wix hotel website (and where iCal stops)]]></title><description><![CDATA[Originally published on DEV. You take room bookings on Booking.com or Airbnb and also on your own Wix site. A guest books the last double room on your site…]]></description><link>https://kayabyte.hashnode.dev/how-to-sync-booking-com-and-airbnb-calendars-with-your-wix-hotel-website-and-where-ical-stops</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-sync-booking-com-and-airbnb-calendars-with-your-wix-hotel-website-and-where-ical-stops</guid><category><![CDATA[wix]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Tue, 03 Nov 2026 04:21:50 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on</em> <a href="https://dev.to/kayabyte/how-to-sync-bookingcom-and-airbnb-calendars-with-your-wix-hotel-website-and-where-ical-stops-2ma2"><em>DEV</em></a><em>.</em></p>
<p>You take room bookings on <a href="http://Booking.com">Booking.com</a> or Airbnb and also on your own Wix site. A guest books the last double room on your site at 10:00, and at 11:00 someone books it on <a href="http://Booking.com">Booking.com</a>. That is the double-booking problem, and the usual free fix is iCal calendar sync. It works, but it is slower and more limited than most people expect. Here is how it works and where it stops.</p>
<p><em>Full disclosure: I built a Wix app for this (it is at the end). The first part works without it.</em></p>
<h2>How iCal sync works</h2>
<p>An iCal link is a web address that returns a calendar file (often ending in .ics) listing the booked or blocked nights of one room. No prices, no guest names. Sync needs two links per room, one per direction:</p>
<ul>
<li><strong>Export:</strong> each site gives you a link with its own bookings.</li>
<li><strong>Import:</strong> you paste the other site's link into each site, and that site blocks those nights.</li>
</ul>
<h2>The steps, with the sites' own help pages</h2>
<ul>
<li><a href="http://Booking.com"><strong>Booking.com</strong></a> <strong>export:</strong> extranet &gt; Rates &amp; Availability &gt; Sync calendars &gt; Add calendar connection on the room &gt; Skip to export &gt; name it &gt; Copy link. Each room has its own link. (<a href="https://partner.booking.com/en-us/help/rates-availability/extranet-calendar/syncing-your-bookingcom-calendar-third-party-calendars">Booking.com help</a>)</li>
<li><strong>Airbnb export:</strong> Calendar &gt; Availability &gt; Connect calendars &gt; Connect to another website &gt; copy the link. (<a href="https://www.airbnb.com/help/article/99">Airbnb help</a>)</li>
<li><strong>Import into your site:</strong> paste each link into whatever runs the booking calendar on your site, one link per room. If a link starts with webcal://, change it to https://.</li>
<li><strong>Give your site's link back:</strong> in <a href="http://Booking.com">Booking.com</a>, Add calendar connection on the room and paste your site's link. In Airbnb, paste a link ending in .ics under Connect to another website.</li>
</ul>
<h2>Where it stops</h2>
<p><strong>It is not instant.</strong> <a href="http://Booking.com">Booking.com</a> says it imports every two hours, Airbnb about every three hours, and both say plainly that calendars are not synced in real time and can lead to double bookings. The slowest reader sets your risk: a booking on your site at 10:00 may not close those nights on Airbnb until around 13:00. Buttons like Import now (<a href="http://Booking.com">Booking.com</a>) and Refresh (Airbnb) shorten the wait, but you have to press them.</p>
<p><a href="http://Booking.com"><strong>Booking.com</strong></a> <strong>does not offer it to everyone.</strong> Its help page lists requirements, including a maximum of 20 room types and one unit per room type. Five identical rooms sold as one room type do not qualify, and <a href="http://Booking.com">Booking.com</a> points those properties to a connectivity provider (a channel manager). Check your extranet for the Sync calendars option before you plan around iCal.</p>
<p><strong>Wix's own hotel product works differently.</strong> Wix Hotels by HotelRunner has a one-way Airbnb iCal connection (Wix to Airbnb; Airbnb reservations are entered by hand) and a channel connection for <a href="http://Booking.com">Booking.com</a>. Wix's help pages describe both. Wix Bookings is built for services and classes, not room stays.</p>
<h2>Keeping the double-booking window small</h2>
<ul>
<li>After a direct booking, press Refresh in Airbnb and Import now in <a href="http://Booking.com">Booking.com</a>.</li>
<li>When you are nearly full, block the last dates by hand on each site.</li>
<li>Do not chain calendars through Google Calendar; each hop adds a wait.</li>
<li>Decide in advance what you do about a rare overlap.</li>
</ul>
<h2>What I built</h2>
<p>Full disclosure, I built <a href="https://go.kayabyte.dev/hotel?s=hn-hotel-sync">Hotel &amp; B&amp;B Booking System</a>, a Wix app for small hotels, B&amp;Bs and guesthouses. Each room has its own calendar link with your confirmed direct bookings and blocked nights. You can import <a href="http://Booking.com">Booking.com</a>, Airbnb, VRBO and Google Calendar links per room, and the app reads them about every 15 minutes. Imported nights are not sent back out, so calendars do not echo each other.</p>
<p>The limits remain. <a href="http://Booking.com">Booking.com</a> and Airbnb read your link on their own schedule, so an overlap is still possible in that window, and if an imported event covers nights of a confirmed direct booking, the app marks that booking in the Bookings and Today tabs and emails you once. It does not move or cancel either booking, so you decide which one stands. iCal carries dates only, not prices. This is not a channel manager and it does not push rates to <a href="http://Booking.com">Booking.com</a>. If you have many rooms or want rates pushed, a channel manager is probably the right tool.</p>
<p>The full guide with the table of update times and an FAQ: <a href="https://kayabyte.dev/guides/sync-booking-com-calendar-with-wix">How to sync your Booking.com and Airbnb calendar with your Wix website</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Wix Stores shipping by postcode, weight or number of items (what works today)]]></title><description><![CDATA[Originally published on DEV. Wix Stores can price shipping by weight, by order price or by number of items out of the box, with up to 30 ranges in each…]]></description><link>https://kayabyte.hashnode.dev/wix-stores-shipping-by-postcode-weight-or-number-of-items-what-works-today</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/wix-stores-shipping-by-postcode-weight-or-number-of-items-what-works-today</guid><category><![CDATA[wix]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Tue, 03 Nov 2026 02:20:29 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/wix-stores-shipping-by-postcode-weight-or-number-of-items-what-works-today-52p7">DEV</a>.</em></p>
<p>Wix Stores can price shipping by weight, by order price or by number of items out of the box, with up to 30 ranges in each table. It can't price shipping by postcode for normal shipping regions, which only go down to country and state level. Postcodes are only available for local delivery, and you can't combine weight and price in one rate.</p>
<p>Here is what each built-in option does and how to set it up.</p>
<h2>Where are the shipping settings?</h2>
<p>In your site's dashboard, go to <strong>Settings</strong> and open <strong>Shipping, delivery &amp; fulfillment</strong>. New stores start with two regions, "Domestic" and "International". Each region has one or more rates, and a region with no active rate can't buy from you (<a href="https://support.wix.com/en/article/wix-stores-about-shipping-delivery-and-pickup">Wix overview</a>).</p>
<p>To add a region, click <strong>+ Create Region</strong>, click <strong>Continue</strong> and select <strong>Shipping</strong>. To add a rate to an existing region, use <strong>Add Rate</strong>.</p>
<p>A region can be "a country, a group of countries, or states/provinces within a country" (<a href="https://support.wix.com/en/article/wix-stores-creating-shipping-and-delivery-regions">Creating shipping and delivery regions</a>). Wix's developer documentation adds that some countries, including Norway, Austria, Switzerland and Poland, can't be split into sub-regions at all.</p>
<h2>How do I charge shipping by weight?</h2>
<ol>
<li>Make sure every product has a <strong>Shipping weight</strong>. A product without a weight counts as 0. Products with variants can have a weight per variant under <strong>Edit Variants</strong>.</li>
<li>In your region, add a rate and choose <strong>Rate by weight</strong>.</li>
<li>Add your weight ranges with <strong>Add Range</strong> and a price for each. You can create up to 30 ranges.</li>
<li>To ship free above an order amount, tick <strong>Offer free shipping when customers purchase a certain amount</strong> in the same rule.</li>
</ol>
<p>Wix's guide: <a href="https://support.wix.com/en/article/wix-stores-setting-up-a-rate-by-weight-shipping-rule">Setting up a rate by weight shipping rule</a>.</p>
<h2>How do I charge by order price or by number of items?</h2>
<p>The steps are the same, with <strong>Rate by price</strong> or <strong>Rate by quantity</strong>. Both allow up to 30 ranges.</p>
<ul>
<li>For price, Wix suggests entering 0 in the last range to offer free shipping above an amount (<a href="https://support.wix.com/en/article/wix-stores-setting-up-a-rate-by-order-price-shipping-rule">guide</a>). The article doesn't say whether the price is measured before or after discounts.</li>
<li>For quantity, the ranges count the total items in the cart (<a href="https://support.wix.com/en/article/wix-stores-setting-up-a-rate-by-quantity-shipping-rule">guide</a>). So "first item 5, each extra item 2" has to be written out as ranges: 1 item 5, 2 items 7, 3 items 9, and so on. With 30 ranges, that's fine for most shops.</li>
</ul>
<h2>Can I charge shipping by postcode or ZIP code on Wix?</h2>
<p>Only with local delivery. When you set up a <a href="https://support.wix.com/en/article/wix-stores-setting-up-a-local-delivery-option">local delivery option</a>, you choose how to define the area: <strong>Radius</strong>, <strong>Zip / postal codes</strong>, <strong>Draw on a map</strong> or <strong>Cities</strong>. You can add up to 50 local delivery areas per region, and each can have its own rate: free, flat, by weight, by price or by quantity.</p>
<p>Postal codes accept partial codes with an asterisk, such as "M5B*" or "M*" for a wider area (<a href="https://support.wix.com/en/article/wix-stores-defining-your-local-delivery-area-with-postal-codes">Wix guide</a>). Wix notes that postal codes work differently in each country.</p>
<p>So for a bakery or a florist delivering in its own city, local delivery with postcodes is the right tool and costs nothing extra. For a shop that ships by carrier across a whole country and wants different prices for, say, the islands or the far north, Wix's shipping regions don't go below state level. Local delivery is built for deliveries in your own area, and Wix doesn't describe using it for carrier shipping, so if you try it that way, check how it looks at checkout first.</p>
<h2>Different shipping for heavy or bulky products</h2>
<p>Wix replaced the old "rate by product" setting with <a href="https://support.wix.com/en/article/wix-stores-creating-delivery-profiles">delivery profiles</a>. In <strong>Shipping, delivery &amp; fulfillment</strong>, click <strong>More Actions</strong> and <strong>Create delivery profiles</strong>, then <strong>+ Create New Profile</strong>, add the products with <strong>Add Items</strong>, and create regions and rates for that profile. Wix's examples are heavy and light, oversize and regular, fragile and non-fragile.</p>
<p>You pick products one by one, not by category. When a cart mixes profiles, Wix either combines rates with matching names or charges the more expensive one, depending on your settings.</p>
<h2>Where the built-in options stop</h2>
<ul>
<li><strong>Weight and price together.</strong> For example, by weight, but free over 100. Wix says "it is not possible to combine shipping rules based on weight with shipping rules based on price" (<a href="https://support.wix.com/en/article/wix-stores-request-combining-weight-based-and-price-based-shipping-rules">feature request</a>).</li>
<li><strong>Postcode zones for normal shipping</strong>, like a higher price for postcodes starting with 9.</li>
<li><strong>Per kilo pricing above a base weight</strong>, such as 6 for the first 2 kg and 1 for each kilo after that, beyond 30 ranges.</li>
<li><strong>Hiding a rate for some products</strong>, such as no express shipping when the cart contains furniture, without moving those products into their own profile.</li>
<li><strong>A bulky item extra by category</strong>, added on top of the normal rate.</li>
</ul>
<p>Live carrier rates are a separate topic: Wix has built-in USPS rates for US merchants, and carrier apps such as Shippo, ShipStation and Easyship for others (<a href="https://support.wix.com/en/article/wix-stores-offering-real-time-shipping-rates-via-third-party-apps">Wix guide</a>).</p>
<h2>An app for your own rate rules</h2>
<p>Full disclosure: I make <a href="https://go.kayabyte.dev/shipping/page?s=hn-shippostcode">Shipping Rate Rules</a>. You build shipping options priced by a table of cart weight, cart value or item count, with extras such as a price per kg or lb above an included weight, "first item plus each additional", a share of the cart value, an extra per item from chosen categories, free shipping above a cart value, and a lowest and highest price. Each option can be limited to countries, states or regions, and postcodes (a prefix like "NW1" or a range like "0150-0199"), and hidden when the cart holds products from chosen categories. You can test a cart in the dashboard before saving.</p>
<p>What it doesn't do: no live carrier rates, no pricing by distance and no pricing by package size. It uses your product weights, so products without a weight count as 0. You add the app to each region in your shipping settings (<strong>Manage Your Apps</strong>) with a backup rate, which Wix shows if none of your options fits a cart or the app doesn't answer in time. If the region also keeps its own Wix rates, shoppers see both. The free plan runs one shipping option at a time.</p>
<p>It's on the <a href="https://go.kayabyte.dev/shipping?s=hn-shippostcode">Wix App Market</a>.</p>
<h2>FAQ</h2>
<p><strong>Can I set different shipping rules for one product?</strong>
Yes, with a delivery profile. Put the product in its own profile and give that profile its own regions and rates.</p>
<p><strong>Can I stop orders from postcodes I don't deliver to?</strong>
With local delivery, only the areas you define are offered. For normal shipping, Wix regions go down to state or province level, not postcodes.</p>
<p><strong>How many weight ranges can I add?</strong>
Up to 30 per rate. Older forum threads mention a limit of 10, but Wix's current guide says 30.</p>
<p>Last checked: 15 October 2026</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/wix-uk-postcode-shipping-rates">UK postcode shipping on Wix: London zones, Highlands and exact districts</a></li>
<li><a href="https://kayabyte.dev/guides/wix-add-handling-fee-at-checkout">Add a handling, packaging or service fee at Wix checkout</a></li>
<li><a href="https://kayabyte.dev/guides/wix-minimum-order-options-compared">Minimum order and quantity limits on Wix: every option compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-shipping-per-kg-per-lb">Per-kg or per-lb shipping on Wix Stores</a></li>
<li><a href="https://kayabyte.dev/guides/wix-shipping-rate-apps-compared">Wix shipping rate apps compared</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://kayabyte.dev/guides/wix-shipping-by-postcode-weight-items">kayabyte.dev</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Extras, tourist tax and arrival emails for a vacation rental on Wix]]></title><description><![CDATA[Originally published on DEV. Full disclosure: I built the app described in the last section. The first sections are about the problem and the by-hand…]]></description><link>https://kayabyte.hashnode.dev/extras-tourist-tax-and-arrival-emails-for-a-vacation-rental-on-wix</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/extras-tourist-tax-and-arrival-emails-for-a-vacation-rental-on-wix</guid><category><![CDATA[wix]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Tue, 03 Nov 2026 02:19:14 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/extras-tourist-tax-and-arrival-emails-for-a-vacation-rental-on-wix-2la7">DEV</a>.</em></p>
<p><em>Full disclosure: I built the app described in the last section. The first sections are about the problem and the by-hand options, which need no app.</em></p>
<p>If you take bookings for a cabin, a flat or a few rooms on your own website, the nightly price is only part of what you charge. Guests also pay for breakfast, early check-in or a pet, and in many places they owe a city or tourist tax. After the booking comes more work: sending the address and the door code, and telling the cleaner who leaves and who arrives.</p>
<h2>What hosts usually need on top of the nightly price</h2>
<ul>
<li><strong>Extras:</strong> early check-in, late check-out, breakfast, a pet fee, an extra bed. Some are optional, some should always be added.</li>
<li><strong>A tourist or occupancy tax</strong> as its own line, so the guest sees what is the room and what is the tax.</li>
<li><strong>A message before arrival</strong> with the address, key box or lock information, wifi and parking.</li>
<li><strong>One search across several cabins or rooms,</strong> so a guest picks dates and sees what is free.</li>
<li><strong>A calendar for the cleaner</strong> that lists every check-out and what comes next.</li>
</ul>
<h2>Doing it by hand</h2>
<p>It works, and for one or two bookings a month it is fine.</p>
<ul>
<li><strong>Extras and tax:</strong> put them in the confirmation or in an invoice, or fold a fixed "cleaning and service" amount into the nightly rate. The downside is that the guest does not see the full price before paying, and you do the arithmetic every time.</li>
<li><strong>Arrival message:</strong> keep a template in your mail app and send it a few days before each check-in. The risk is forgetting one, or sending it for the wrong booking.</li>
<li><strong>Cleaner:</strong> share a Google Calendar and add each check-out yourself, or forward your Airbnb and Booking.com calendar links. Imported calendars usually show "reserved" blocks, not who arrives next.</li>
</ul>
<p>If you are not sure how your tourist tax has to be charged or reported, ask your municipality. That is a legal matter and no booking tool decides it for you.</p>
<h2>What to look for in a booking tool</h2>
<ul>
<li>Are extras <strong>optional or required</strong>, and charged <strong>per stay, per night, per guest or per guest per night</strong>?</li>
<li>Does the guest see each extra and the tax <strong>as separate lines</strong>, and does the checkout total match?</li>
<li>Can the tax be <strong>per person per night, per person per stay, per stay or a percentage</strong>, with children left out if your rules say so?</li>
<li>With a <strong>deposit</strong>, do extras and tax follow it, or does the total stop adding up?</li>
<li>Is the arrival message <strong>sent by the tool, once per booking</strong>, with a preview?</li>
<li>Does the cleaner calendar leave out <strong>guest names and contact details</strong>?</li>
</ul>
<h2>Where my app fits</h2>
<p>Full disclosure, I built <a href="https://go.kayabyte.dev/stay?s=hn-stay-hostpack">Stay Direct</a>, a booking app for vacation rentals and cabins on Wix sites. Its Host Pack has:</p>
<ul>
<li><strong>Extras (all plans).</strong> Counted once per stay, per night, per guest or per guest per night, optionally always added. Each extra is its own line in the widget price and at checkout. Counted once per booking, not per room.</li>
<li><strong>Tourist or occupancy tax (all plans).</strong> A fixed amount per person per night, per person per stay or per stay, or a percentage of the stay price. For per-person taxes guests can say how many children are in the party so they are left out, and you can cap the taxed nights. It is a separate line. You still pay the tax to your municipality yourself; the app only collects and shows it.</li>
<li><strong>Pre-arrival email (Pro and Business).</strong> Written once per property, sent to each guest with a confirmed booking 0 to 14 days before check-in (your choice), once per booking. Replies go to your site's business email. Preview and test send included.</li>
<li><strong>Search across properties (Pro and Business).</strong> Guests pick dates and guests, see which of your properties are free with the total price, and book from the results.</li>
<li><strong>Cleaner calendar (Pro and Business).</strong> A calendar link with one entry on every check-out day saying when the next guests arrive. No guest names or contact details.</li>
</ul>
<p>No commission on bookings; guests pay through your own Wix checkout.</p>
<p><strong>Where it is not the right fit:</strong> no quantity per extra (one tick is one charge), the search widget handles single-room bookings, the arrival email is plain text with an English footer, and it is not a channel manager (calendars connect by iCal links, which carry dates only).</p>
<p>The longer version of this article, with an FAQ, is on <a href="https://kayabyte.dev/guides/wix-booking-extras-tourist-tax-arrival-email">kayabyte.dev</a>.</p>
]]></content:encoded></item><item><title><![CDATA[How to take hotel and B&B bookings on your Wix website without paying commission]]></title><description><![CDATA[Originally published on DEV. Disclosure: I make Hotel & B&B Booking System, an app for Wix sites that I describe near the end. Everything about Wix below…]]></description><link>https://kayabyte.hashnode.dev/how-to-take-hotel-and-b-b-bookings-on-your-wix-website-without-paying-commission</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-take-hotel-and-b-b-bookings-on-your-wix-website-without-paying-commission</guid><category><![CDATA[wix]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Tue, 03 Nov 2026 00:17:12 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on</em> <a href="https://dev.to/kayabyte/how-to-take-hotel-and-bb-bookings-on-your-wix-website-without-paying-commission-5a07"><em>DEV</em></a><em>.</em></p>
<p><strong>Disclosure: I make Hotel &amp; B&amp;B Booking System, an app for Wix sites that I describe near the end.</strong> Everything about Wix below comes from Wix's own help pages, linked in each section. Checked on 2 November 2026.</p>
<p>If you run a hotel, B&amp;B or guesthouse and want guests to book rooms on your own Wix site, there are three routes: Wix's own hotel app, a booking app from the App Market, or a manual workaround. They suit different places, so start with what you actually need.</p>
<h2>What does a small hotel or B&amp;B need from a booking system?</h2>
<p>Before comparing tools, write down your list. For most small places it looks like this:</p>
<ul>
<li><strong>Room types with several identical rooms.</strong> Four "Double rooms" are one thing to sell, but four rooms to keep track of.</li>
<li><strong>Availability across those rooms,</strong> so the fifth guest is told the type is full and nobody is given the same room twice.</li>
<li><strong>Rates:</strong> room only, bed and breakfast, a cheaper non-refundable rate, seasons, weekend prices, long-stay discounts and a minimum stay.</li>
<li><strong>A deposit or full payment</strong> at booking, through a checkout you already use.</li>
<li><strong>Sync with</strong> <a href="http://Booking.com"><strong>Booking.com</strong></a> <strong>and Airbnb,</strong> so a night sold there is closed on your site and the other way round.</li>
<li><strong>A front-desk view:</strong> who arrives today, who leaves, which rooms are taken.</li>
</ul>
<h2>Can Wix Bookings take hotel room bookings?</h2>
<p>Wix Bookings is built for scheduling services. Wix describes it as a system that lets clients book and pay for services such as workshops, courses or private sessions, online or in person (<a href="https://support.wix.com/en/article/wix-bookings-about-wix-bookings">Wix guide</a>). Its unit is a time slot, a class or a course, not a nightly stay in one of several rooms. People do bend it to fit (a service per room, for example), but you end up managing availability by hand. For overnight stays there are better-fitting options.</p>
<h2>What is Wix Hotels by HotelRunner?</h2>
<p>It is Wix's own app for hotels, B&amp;Bs and rentals. Wix describes it as a way to manage availability and reservations with calendars, offer packages, and showcase rooms on booking sites such as <a href="http://Booking.com">Booking.com</a>, Airbnb and Expedia (<a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-an-overview">Wix overview</a>).</p>
<p>What speaks for it:</p>
<ul>
<li><strong>A channel manager.</strong> Your rates and availability are sent to <a href="http://Booking.com">Booking.com</a>, Airbnb, Expedia and others. Wix says the channel manager comes included when you upgrade your site and that no additional fees apply, and that the number of channel connections varies by plan.</li>
<li><strong>Rate plans, seasonal rates and per-date restrictions</strong> such as minimum stay and closed to arrival, with bulk updates (<a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-an-overview">overview</a>).</li>
<li><strong>Nine languages</strong> in the app itself.</li>
</ul>
<p>What to check before you commit:</p>
<ul>
<li><a href="http://Booking.com"><strong>Booking.com</strong></a> <strong>takes over your calendar.</strong> Wix says that after connecting, your whole inventory is transferred to <a href="http://Booking.com">Booking.com</a> and replaces the existing calendar there, and that all updates must then be made in the Wix dashboard because your <a href="http://Booking.com">Booking.com</a> calendar is locked. You can connect one Hotel ID per channel to each account (<a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-connecting-bookingcom-to-your-site">Wix guide</a>).</li>
<li><strong>The Airbnb iCal connection is one way.</strong> Availability goes to Airbnb, but Wix says rates and reservations do not come back, and you update Airbnb reservations in Wix by hand. It needs a Premium plan (<a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-connecting-airbnb-ical-to-your-site">Wix guide</a>).</li>
<li><strong>The number of channels depends on your plan,</strong> and Wix's help pages do not list the numbers.</li>
<li><strong>Owners report limits</strong> on the Wix forum, such as minimum stays and long-stay discounts. I went through them, with sources, in <a href="https://kayabyte.dev/guides/wix-hotels-hotelrunner-limits">Wix Hotels by HotelRunner limits</a>. I could not find a public price list for the app, so check the cost for your plan yourself.</li>
</ul>
<p>If you need rates pushed to <a href="http://Booking.com">Booking.com</a> and Expedia, this is the route to look at first.</p>
<h2>Can I do it by hand with forms and calendars?</h2>
<p>For a very small place, yes. A common setup is a page with your rooms and prices, an enquiry form, and a shared calendar you keep up to date. You confirm each stay by email and send a payment link.</p>
<p>It works for a few rooms and a few bookings a week. It breaks down when:</p>
<ul>
<li>Guests expect to see availability and pay at once.</li>
<li>You take bookings on <a href="http://Booking.com">Booking.com</a> or Airbnb as well, because every booking has to be entered in several places.</li>
<li>You have identical rooms, because the count per room type is easy to get wrong.</li>
<li>Deposits and balances need chasing.</li>
</ul>
<h2>What can a booking app do instead?</h2>
<p>An app from the Wix App Market puts a booking calendar on your site, works out the price and takes payment through your checkout. Apps differ a lot, so use this checklist when you compare them:</p>
<ul>
<li><strong>Several identical rooms per room type,</strong> with a room-by-room view.</li>
<li><strong>Rates and rules:</strong> rate options, seasons, weekend prices, long-stay discounts, minimum stay, allowed check-in days.</li>
<li><strong>Deposits</strong> and which payment methods are available.</li>
<li><strong>Calendar sync:</strong> how many calendars, in which directions, and how often. Ask whether it is a direct connection to the booking sites or iCal links.</li>
<li><strong>Commission:</strong> none, or a percentage of each booking.</li>
<li><strong>Extras and tourist tax</strong> as separate lines in the price.</li>
<li><strong>What it does when two bookings overlap,</strong> and whether you are told.</li>
<li><strong>Languages</strong> for guests, and whether it needs a paid Wix plan to take payments.</li>
</ul>
<h2>Where Hotel &amp; B&amp;B Booking System fits (mine)</h2>
<p>Full disclosure: I built <a href="https://go.kayabyte.dev/hotel?s=hn-hotel">Hotel &amp; B&amp;B Booking System</a>. You set up room types such as "Double room" with four identical rooms. Guests pick dates and party size, see the price for their stay and book one or more rooms through your site's checkout. It has Bed &amp; breakfast and Room only rates, a non-refundable rate as a percentage adjustment, seasons, weekend prices, long-stay discounts, minimum stays, deposits, extras and a tourist tax line. The dashboard opens on a Today view (arrivals, departures, staying tonight) and a room-by-room grid of the next 14 nights. Each room has its own calendar link for iCal sync with <a href="http://Booking.com">Booking.com</a>, Airbnb, VRBO and Google Calendar, in both directions: we read your other calendars about every 15 minutes, and they read ours on their own schedule.</p>
<p>Plans: Free (1 room type, 5 online bookings a month, 1 synced calendar), Pro at $8.99 a month ($6.99 billed yearly) and Business at $17.99 a month ($13.99 billed yearly), with a 14-day trial. There is no commission. Online payments need a Wix Premium plan.</p>
<p><strong>Where it is not the right fit:</strong></p>
<ul>
<li>It is not a channel manager. It does not use <a href="http://Booking.com">Booking.com</a>'s or Expedia's APIs and does not push your rates there. Sync is by iCal links and carries dates only.</li>
<li>iCal is not instant, so an overlap is possible in the minutes before the next read. See <a href="https://kayabyte.dev/guides/sync-booking-com-calendar-with-wix">how to sync your Booking.com and Airbnb calendar with your Wix website</a>.</li>
<li>It cannot hold or pre-authorise a card.</li>
<li>The dashboard is in English; the guest widget is in 9 languages.</li>
<li>There is no check-in or check-out status for the front desk.</li>
</ul>
<p><a href="https://go.kayabyte.dev/hotel?s=hn-hotel">See Hotel &amp; B&amp;B Booking System on the Wix App Market</a></p>
<h2>FAQ</h2>
<p><strong>Can Wix take hotel bookings without an app?</strong> Wix Hotels by HotelRunner is Wix's own hotel app. Wix Bookings is built for services, classes and courses rather than nightly stays.</p>
<p><strong>What do I need to take payments online?</strong> A Wix Premium plan that accepts payments and a connected payment provider. Wix says you must upgrade your site to accept bookings and online payments.</p>
<p><strong>Do I need a channel manager?</strong> If you want your rates and availability pushed to <a href="http://Booking.com">Booking.com</a> or Expedia automatically, yes. If you mostly take direct bookings and keep other sites in step with calendar links, an iCal-based app can be enough.</p>
<p><strong>Can guests book more than one room?</strong> It depends on the tool. Check this on the demo or in the listing before you choose.</p>
<p><strong>What is the cheapest way to start?</strong> Try the free plans and trials with a real test booking. Whatever you pick, make a booking for two rooms, one for a weekend and one that crosses a season, and see if the price is what you expect.</p>
<p>Last checked: 2 November 2026. Spotted something out of date? Write to <a href="mailto:support@kayabyte.dev">support@kayabyte.dev</a> and I'll fix it.</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/sync-booking-com-calendar-with-wix">How to sync your Booking.com and Airbnb calendar with your Wix website</a></li>
<li><a href="https://kayabyte.dev/guides/wix-hotels-hotelrunner-limits">Wix Hotels by HotelRunner limits: minimum stays, last-minute bookings and more</a></li>
<li><a href="https://kayabyte.dev/guides/wix-direct-booking-options-compared">Direct booking on a Wix site: every option compared (2026)</a></li>
<li><a href="https://kayabyte.dev/guides/sync-airbnb-calendar-with-wix-site">Sync Airbnb with your Wix site without double bookings</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to add a handling, packaging or service fee to Wix Stores checkout]]></title><description><![CDATA[Originally published on DEV. Wix has two built-in ways to charge an extra fee in a Wix Stores checkout: a handling fee attached to your shipping rates, and…]]></description><link>https://kayabyte.hashnode.dev/how-to-add-a-handling-packaging-or-service-fee-to-wix-stores-checkout</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-add-a-handling-packaging-or-service-fee-to-wix-stores-checkout</guid><category><![CDATA[wix]]></category><category><![CDATA[ecommerce]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Mon, 02 Nov 2026 17:53:32 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/how-to-add-a-handling-packaging-or-service-fee-to-wix-stores-checkout-2cab">DEV</a>.</em></p>
<p>Wix has two built-in ways to charge an extra fee in a Wix Stores checkout: a handling fee attached to your shipping rates, and a newer <strong>Additional fees</strong> section in your checkout settings that adds a fixed fee or a percentage of the subtotal to every order. For a simple fee on every order, that's all you need.</p>
<p>Here is how both work, and where they stop.</p>
<h2>Option 1: a handling fee on your shipping rates</h2>
<p>This is the older setting, and Wix documents it in <a href="https://support.wix.com/en/article/wix-stores-adding-handling-fees">Adding handling fees</a>:</p>
<ol>
<li>In your site's dashboard, go to <strong>Shipping, delivery &amp; fulfillment</strong>.</li>
<li>Click the <strong>More Actions</strong> icon next to the region you want and select <strong>Add handling fees</strong>.</li>
<li>Select the shipping rules the fee applies to.</li>
<li>Enter the handling fee and click <strong>Save</strong>.</li>
</ol>
<p>Customers see the fee as its own line next to the delivery rate and in the order summary.</p>
<p>Because it hangs on shipping rules, it only appears when a shipping rule is used. A digital-only order, for example, has no shipping rule to carry it. Wix's own tip, if you don't need a separate line, is to simply add the amount to your shipping price.</p>
<p>If you use delivery profiles (separate shipping for some products) and a cart mixes profiles, Wix says <a href="https://support.wix.com/en/article/wix-stores-creating-delivery-profiles">the highest handling fee is applied once</a>.</p>
<h2>Option 2: Additional fees in your checkout settings</h2>
<p>This is the newer way, and it doesn't depend on shipping. Wix moved it here from the old Wix Functions tool, which no longer lets you create new functions (<a href="https://support.wix.com/en/article/wix-functions-no-longer-supported">Wix's note on the change</a>):</p>
<ol>
<li>In your site's dashboard, go to <strong>Settings &gt; Checkout</strong>.</li>
<li>Scroll down to <strong>Additional fees</strong> and click <strong>Charge Additional Fees</strong>.</li>
<li>Pick a template: <strong>Fixed fee</strong> (a fixed amount per order) or <strong>Subtotal percentage fee</strong> (a percentage of the order subtotal, before discounts and taxes), then click <strong>Use Template</strong>.</li>
<li>Enter a <strong>Fee name</strong> (customers see it in the cart and at checkout) and a <strong>Fee amount</strong> (before tax), and click <strong>Activate</strong>.</li>
</ol>
<p>Wix's <a href="https://support.wix.com/en/article/adding-additional-fees-at-checkout">help article</a> gives the example of "a $2 customization fee".</p>
<p>The section's own description says fees can be "based on order, customer, or shipping details". When I opened it on a test site in October 2026, though, both templates only asked for a name and an amount, with no conditions to set. Wix may add more over time, so look at what your dashboard offers before you go further.</p>
<h2>What about a small-order fee?</h2>
<p>If what you really want is to stop tiny orders, Wix has a built-in <a href="https://support.wix.com/en/article/wix-stores-setting-a-minimum-order-amount">minimum order amount</a>: in <strong>Settings</strong>, open <strong>Store products &amp; Inventory</strong> and turn on <strong>Set a minimum subtotal</strong>. It blocks checkout below the amount instead of charging a fee. Note that it doesn't apply to pickup orders or digital products.</p>
<p>If you'd rather accept small orders and charge a little extra, say $3 on orders under $25, that's a fee with a condition. The native Additional fees templates had no condition like "only below an amount" when I checked, so that one needs something else.</p>
<h2>Can I charge a fee for cash on delivery or credit card payments?</h2>
<p>Not with Wix's own settings. Shop owners have asked for a fee on manual payments in the <a href="https://forum.wixstudio.com/t/adding-additional-fees-on-manual-cash-on-delivery-payment-method/69012">Wix Studio forum</a> without a native answer. Fee apps now get the payment method type the shopper picked (<a href="https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/additional-fees/additional-fees-service-plugin/calculate-additional-fees">Wix developer docs</a>), but only once the shopper has chosen one, so the fee can appear late in checkout. A few App Market fee apps offer payment-method fees; Handling &amp; Checkout Fees doesn't yet. Check the rules where you sell first: in the EU and the UK, surcharges on consumer card payments are banned. The simple options are still a small fee on every order, or building the cost into your prices.</p>
<h2>What about gift wrapping?</h2>
<p>I couldn't find a built-in gift wrap option in Wix's help. Wix's <a href="https://support.wix.com/en/article/about-product-options-6886849">article on product options</a> says "You cannot collect extra payment for gift wrapping with a modifier" (the new product catalog may handle modifiers differently, so check your product page). The free workaround is a product option, such as "Gift wrap: yes / no", where the "yes" variant has a higher price. That works per product, not as one fee per order.</p>
<h2>Where the built-in options stop</h2>
<p>Going by what Wix documents, these are the cases where you'll likely need something else:</p>
<ul>
<li><strong>A fee only for some products or categories</strong>, such as packaging on fragile or chilled items, charged once per order.</li>
<li><strong>A small-order fee</strong> that only applies below a subtotal.</li>
<li><strong>A fee for some postcodes or countries</strong>, like islands or remote areas, without changing your shipping rates.</li>
<li><strong>A fee for one delivery option or for pickup</strong>, such as a fee for same-day delivery.</li>
<li><strong>Several fees at once</strong>, each with its own line, and a choice of whether tax applies.</li>
</ul>
<h2>An app for conditional fees</h2>
<p>Full disclosure: I make <a href="https://go.kayabyte.dev/handling/page?s=hn-handling">Handling &amp; Checkout Fees</a>. Each fee is a fixed amount or a percentage of the matching items' subtotal (with an optional minimum and maximum), for the whole order, chosen products, or chosen categories. You can limit a fee to a subtotal range, ship-to countries, postcodes or postcode ranges, and shipping, pickup or a named delivery option. Every fee shows as its own named line in the cart and at checkout, and tax is off unless you turn it on for that fee.</p>
<p>What it doesn't do: no payment-method fees, for the reason above. It only counts Wix Stores products, not bookings. It doesn't change product prices, shipping rates or discounts. A postcode or delivery fee only appears at checkout once the shopper has entered those details. If the app can't calculate a fee in time, no fee is added and checkout carries on. The free plan runs one fee at a time.</p>
<p>It's on the <a href="https://go.kayabyte.dev/handling?s=hn-handling">Wix App Market</a>.</p>
<h2>FAQ</h2>
<p><strong>How do I add a 5% service fee to my Wix checkout?</strong>
Try <strong>Settings &gt; Checkout &gt; Additional fees</strong> and the <strong>Subtotal percentage fee</strong> template first. It doesn't depend on shipping rules, so it should also apply to orders of digital products. Check with a test order.</p>
<p><strong>Can I add a surcharge per item on top of flat rate shipping?</strong>
Not as a per-item add-on. The closest built-in option is the <strong>Rate by quantity</strong> shipping rule, where you set prices for item-count ranges (up to 30 ranges, per <a href="https://support.wix.com/en/article/wix-stores-setting-up-a-rate-by-quantity-shipping-rule">Wix's guide</a>).</p>
<p><strong>Can customers pay the card processing fee instead of me?</strong>
Not with Wix's own settings. Fee apps can now see the payment method type once the shopper picks one, and a few offer card or cash on delivery fees. Card surcharges are banned for consumer cards in the EU and the UK, so check your local rules. A fee on every order, or slightly higher prices, work everywhere.</p>
<p>Last checked: 26 October 2026</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/wix-shipping-by-postcode-weight-items">Wix Stores shipping by postcode, weight or number of items</a></li>
<li><a href="https://kayabyte.dev/guides/wix-minimum-order-options-compared">Minimum order and quantity limits on Wix: every option compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-booking-fees-surcharges-deposits-compared">Wix booking fees, surcharges and deposits compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-shipping-per-kg-per-lb">Per-kg or per-lb shipping on Wix Stores</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://kayabyte.dev/guides/wix-add-handling-fee-at-checkout">kayabyte.dev</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Onboarding in Confluence: make new hires watch the right spaces automatically]]></title><description><![CDATA[A new hire should see what their team writes from day one: the team space, the handbook, the incident log. In Confluence Cloud, watching is a personal…]]></description><link>https://kayabyte.hashnode.dev/onboarding-in-confluence-make-new-hires-watch-the-right-spaces-automatically</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/onboarding-in-confluence-make-new-hires-watch-the-right-spaces-automatically</guid><category><![CDATA[Confluence]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 23:11:27 GMT</pubDate><content:encoded><![CDATA[<p>A new hire should see what their team writes from day one: the team space, the handbook, the incident log. In Confluence Cloud, watching is a personal setting, so nothing happens when someone joins the team. Here is what you can do with Confluence alone, and where it stops.</p>
<h2>What new hires get by default</h2>
<ul>
<li>Autowatch is on by default, but it only covers pages a person creates, edits or comments on. A new hire watches nothing in the team space until they have worked on a page there.</li>
<li>Watching a space covers all its pages and blog posts, and the person has to switch it on (or an admin does it for them, see Option 3).</li>
<li>Watching does not give access. If the space is restricted, the new hire has to be able to see it first.</li>
</ul>
<h2>Option 1: a step in the onboarding checklist</h2>
<p>Put a short "Follow these spaces" section on the onboarding page, with a link to each space and one line: open the space, select Watch. It costs nothing and works for a handful of spaces and one or two hires a month. It breaks when the list of spaces changes, when people skip the step, or when a new hire joins a team that follows eight spaces. Nobody checks that it was done.</p>
<h2>Option 2: @mention on the key pages</h2>
<p>For the few pages everyone must read, mention the new hire in a comment or add them to an announcement page. That is not a continuous feed from the space, and it is a manual job for each person.</p>
<h2>Option 3: an admin adds the watch</h2>
<p>The REST API can add a watch for someone else, one account at a time. It needs the Confluence Administrator permission, or Space Administrator on that space, plus the header X-Atlassian-Token: no-check:</p>
<pre><code class="language-bash">curl -s -o /dev/null -w "%{http_code}\n" -u "you@example.com:your-api-token" -X POST \
  -H "X-Atlassian-Token: no-check" \
  "https://your-site.atlassian.net/wiki/rest/api/user/watch/space/TEAM?accountId=NEW_HIRE_ACCOUNT_ID"
</code></pre>
<p>A 204 means the watch was added. Run by hand, it is one more onboarding task. Run on a schedule, it needs somewhere to run, and it cannot tell watches it added from watches people chose: someone who unwatched on purpose is added again, leavers keep watching, and a cleanup step does not know which watches it may remove. I wrote the whole script and its limits in <a href="https://kayabyte.hashnode.dev/how-to-make-a-confluence-group-watch-a-space-and-keep-it-updated-when-people-join">How to make a Confluence group watch a space</a>. If you prefer a ready-made one, there is a free MIT script here: <a href="https://github.com/kayabyte-2/atlassian-admin-scripts#confluence-group-watch">github.com/kayabyte-2/atlassian-admin-scripts</a>.</p>
<h2>Option 4: let group membership drive the watches</h2>
<p>If you already keep a group per team (say engineering), the cleaner design is that adding someone to the group makes them watch. Full disclosure: we build Group Watchers, so weigh this accordingly. <a href="https://go.kayabyte.dev/atl/group-watchers?s=ot-hashnode-onboarding-watch">Group Watchers</a> works like this:</p>
<ul>
<li>A rule maps one or more groups to a space or a single page. A space can have several rules.</li>
<li>Joiners: add the new hire to the group and the app adds their watch. It checks membership every hour, and right away when you change a rule or select Sync now.</li>
<li>Access: members who cannot see the space are skipped and counted in the rule status, then checked again every 6 hours, so a hire who gets space permission a day later still ends up watching.</li>
<li>Leavers: when someone leaves every group in a rule, the app removes the watch it added. You can switch that off, and watches people had before are never removed.</li>
<li>If a new hire unwatches, the app does not add them back.</li>
<li>It runs on Atlassian's Forge platform and makes no calls outside Atlassian.</li>
</ul>
<p>Two limits: only Atlassian user accounts can watch, so portal-only customers and app accounts are skipped. And if an identity provider fills your groups, the new hire appears when your provisioning puts them there, so check how quick that is.</p>
<h2>One more thing: will they get email?</h2>
<p>A new watcher may see little in their inbox. Edits and new pages go into the daily digest by default, while comments are emailed straight away. Each person changes this under their profile picture, Settings, Email. Add one line about it to the onboarding page.</p>
<h2>Which one to pick</h2>
<ul>
<li>A few spaces and rare hires: the checklist.</li>
<li>Key pages only: @mention.</li>
<li>Many spaces, frequent hires, groups you already maintain: group-driven watching, with a script you run or an app.</li>
</ul>
<p><em>Confluence and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[Client budget alerts in Jira before the hours run out]]></title><description><![CDATA[A client has 120 hours. You find out at 118. By then the only conversation left is the awkward one. What you want is a warning at 80 or 90 percent, early…]]></description><link>https://kayabyte.hashnode.dev/client-budget-alerts-in-jira-before-the-hours-run-out</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/client-budget-alerts-in-jira-before-the-hours-run-out</guid><category><![CDATA[JIRA]]></category><category><![CDATA[project management]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 21:16:35 GMT</pubDate><content:encoded><![CDATA[<p>A client has 120 hours. You find out at 118. By then the only conversation left is the awkward one. What you want is a warning at 80 or 90 percent, early enough to talk about scope, a change request or a pause.</p>
<p>Jira tracks the hours, but it has no concept of a budget, so there is nothing to alert on out of the box. Here is what you can build with the built-in tools, and where each option stops.</p>
<h2>Step 0: decide what the budget is</h2>
<p>Before any tool, write down three things per client: the number (hours or money), what it covers (a project, an epic, a version), and the period (one-off, or resets every month). Every option below breaks if this is vague.</p>
<h2>Native option 1: time tracking fields and a filter</h2>
<p>Each work item has Original estimate, Remaining estimate and Time spent. A filter such as <code>project = ACME</code> shown as a list with the Time Spent column, plus a subscription, gives you a regular email with the work items.</p>
<p>Limits: the filter lists work items, it does not total the hours. It knows nothing about a budget, so it cannot tell you that you passed 80 percent. A subscription sends on a schedule whether or not anything is wrong.</p>
<h2>Native option 2: Automation with a scheduled rule</h2>
<p>This is the closest native approach.</p>
<ol>
<li>Create a rule with a Scheduled trigger (daily is plenty).</li>
<li>Add a Lookup work items action with JQL for the client's scope, for example <code>project = ACME AND worklogDate &gt;= startOfMonth()</code>.</li>
<li>Add a Send email or message action that goes out when the hours cross a threshold you typed into the rule.</li>
</ol>
<p>The sum is where it gets rough. Smart values can read time spent per work item, and in a scheduled rule you can add them up across the lookup results, but check the output on a real run before you trust it: time spent on a work item covers all dates, not just the current month, so a monthly budget needs care. The threshold lives inside the rule, so every client is a copy of the rule to edit.</p>
<p>Limits:</p>
<ul>
<li>Hours only. Money needs rates, and dated rates are awkward to keep inside a rule.</li>
<li>One rule per client or budget, with the number hard-coded.</li>
<li>Rule runs count towards your plan's Automation usage, and a lookup over a large project is slow.</li>
<li>It tells you the threshold was crossed. It does not tell you when the budget will run out at the current pace.</li>
</ul>
<h2>Native option 3: a spreadsheet</h2>
<p>Export the worklogs (author, date, time), sum per client, compare with the budget in a column, and colour the cell when it passes 80 percent. This is honest and works, as long as someone refreshes it. In practice the export gets a week old, and the alert is a person remembering to open the sheet.</p>
<h2>What a good warning needs</h2>
<ul>
<li>A budget with a number and a period, not a threshold buried in a rule.</li>
<li>Spend that is always current, with rates when the budget is money.</li>
<li>A pace, so "80 percent used" can be read as "11 days left" or "fine until the end of the month".</li>
<li>A status you can scan across all clients in one place.</li>
</ul>
<h2>Burnrate</h2>
<p>Full disclosure: we build Burnrate. <a href="https://go.kayabyte.dev/atl/burnrate?s=ot-hashnode-budget-alerts">Burnrate for Jira</a> reads the worklogs your team already logs, prices them with a dated rate card and compares them with budgets that you create per project, epic, fix version or JQL query, in money, hours or both, one-off, monthly or quarterly.</p>
<p>What it gives you for this problem:</p>
<ul>
<li>A warning level per budget (80 percent by default). When usage reaches it, or the forecast says the budget will be exceeded, the budget shows as At risk. Past the limit it shows Over budget; otherwise On track.</li>
<li>A forecast next to the status: pace over the last 28 days, a projected total for the period and, when it falls inside the period, the day the budget runs out. How that is calculated is in <a href="https://dev.to/kayabyte/burn-rate-and-run-out-date-for-a-jira-project-59op">the burn rate article</a>.</li>
<li>All budgets in one list, so you see which clients are at risk without opening a sheet.</li>
</ul>
<p>What it does not do: it does not email or message you when a budget turns At risk, and there is no dashboard gadget yet. You see the status when you open Burnrate. If you want a push, a team routine that opens the budget list every Monday does the job, and a native Automation rule on hours can sit next to it as a backstop.</p>
<p>For two or three clients with hour budgets, an Automation rule per client is fine. When there are many budgets, some in money, some resetting monthly, a status that is always current is the part worth handing over.</p>
<p><em>Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[CC a whole team on every Jira Service Management ticket]]></title><description><![CDATA[A common ask from support leads: "Whenever a customer opens a ticket, our account team should be copied." In email that is a CC. In Jira Service Management…]]></description><link>https://kayabyte.hashnode.dev/cc-a-whole-team-on-every-jira-service-management-ticket</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/cc-a-whole-team-on-every-jira-service-management-ticket</guid><category><![CDATA[JIRA]]></category><category><![CDATA[Jira Service Management]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 21:14:39 GMT</pubDate><content:encoded><![CDATA[<p>A common ask from support leads: "Whenever a customer opens a ticket, our account team should be copied." In email that is a CC. In Jira Service Management there is no CC field for a group, and the pieces that look like one behave differently. Here is what each does, and where the gaps are.</p>
<h2>Request participants</h2>
<p>Participants are people added to one request. They can view it, comment and get the same notifications as the reporter. Agents add them under People, then Request participants. Customers can do it with Share in the portal. Each person added gets an email saying so, and a participant can turn their notifications off.</p>
<p>The catch: a participant is one person. There is no field for a Jira group (JSDCLOUD-1268 on jira.atlassian.com asks for it), so a team of 8 is 8 entries on every request.</p>
<h2>CC on email requests</h2>
<p>If customers CC addresses on an email to the project's email channel, those people can be added as participants. That is real CC behaviour, but it is per email, it only covers addresses somebody typed, and it knows nothing about your groups. It does nothing for requests raised in the portal.</p>
<h2>Organizations and customer notification settings</h2>
<p>An organization is a named group of customers. A request shared with one is visible to its members in the portal. They get a single "Organization added" email, and later updates only if they turn notifications on for that request. So organizations answer "who can see this", not "who follows this", and they hold customers, not your internal team.</p>
<p>The project's customer notification settings decide which emails customers get for a request. They control what is sent to people who are already on it. They do not add anyone.</p>
<h2>Automation</h2>
<p>A rule on Work item created can set Request participants, so a fixed list of people can be added to every new request of a type. Depending on your Automation version this is under Edit work item or a dedicated participants action, so check what your site offers.</p>
<p>The limit is the one you would expect: the people are typed into the rule. When someone joins or leaves the team you edit the rule, and requests that are already open do not change. Each run also counts towards your plan's Automation usage.</p>
<h2>When a native setup is enough</h2>
<p>If the team is small and rarely changes, one Automation rule per request type is fine. If you only need a handful of requests followed, adding participants by hand is fine too. Neither stops being fiddly when the team changes every month.</p>
<h2>The app route</h2>
<p>Full disclosure: we build Group Participants, so weigh this accordingly. <a href="https://go.kayabyte.dev/atl/group-participants?s=ot-hashnode-jsm-cc-team">Group Participants for Jira Service Management</a> uses Jira groups instead of typed lists. From what it does today:</p>
<ul>
<li>Rules per service project and request type (or every type if you leave it empty), each pointing at one or more Jira groups.</li>
<li>On a new request it adds the active members of those groups as participants, usually within a few seconds. The reporter and people already on the request are skipped.</li>
<li>An hourly check adds people who joined the group to matching open requests (not in a Done status category).</li>
<li>Removing people who left is off by default, because someone may also have been added by hand. You can switch it on.</li>
<li>"Sync open requests now" brings existing open requests in line, up to 1,000 per rule per run.</li>
<li>On any request, Actions then Add group as participants does the same for one request, using the agent's own permissions.</li>
<li>Limits: only active Atlassian accounts are added, and Jira Service Management decides who can be a participant, so people without customer access to the project are rejected. Portal-only customers cannot be in Jira groups, so they are not covered. It works with Jira groups, not organizations.</li>
<li>It runs on Atlassian (Forge) and makes no calls outside it.</li>
</ul>
<h2>Which one to use</h2>
<ul>
<li>A team should follow every request of a type, and the team changes: participants from a group.</li>
<li>Customers from one company should see each other's requests: an organization.</li>
<li>Customers who email in and CC a colleague: the email channel already handles that.</li>
</ul>
<p>The longer version, with a FAQ, is in <a href="https://kayabyte.dev/atlassian/guides/jsm-cc-team-on-every-request">this guide</a>.</p>
<p><em>Jira Service Management, Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[Stop one person from taking ten tickets at once in Jira]]></title><description><![CDATA[Nobody decides to have ten tickets in progress. It happens one at a time: a quick fix here, a review request there, a "can you just take this while you…]]></description><link>https://kayabyte.hashnode.dev/stop-one-person-from-taking-ten-tickets-at-once-in-jira</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/stop-one-person-from-taking-ten-tickets-at-once-in-jira</guid><category><![CDATA[JIRA]]></category><category><![CDATA[agile]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 20:23:19 GMT</pubDate><content:encoded><![CDATA[<p>Nobody decides to have ten tickets in progress. It happens one at a time: a quick fix here, a review request there, a "can you just take this while you wait". By Friday one person is holding ten things, and the board looks fine.</p>
<p>This is about why it happens, what Jira can show you, and where the built-in tools stop.</p>
<h2>Why it happens</h2>
<ul>
<li>Starting is free. Moving a card to In Progress costs a click, and finishing costs days.</li>
<li>Blocked work stays "in progress". Waiting on a reply, a deploy or a review, people start something else, and the first item never leaves the column.</li>
<li>The helpful people collect the most. Whoever says yes fastest ends up with the pile.</li>
<li>Nobody sees it. A board shows cards, not how many one person holds.</li>
</ul>
<h2>Column limits count the column, not the person</h2>
<p>Jira's column constraints set a minimum and maximum number of work items per column and colour the header when it is exceeded. They count every work item in the column, whoever holds it, and people can still move work in. A column limit of 6 is respected with a split of 4, 1 and 1. Someone working across three boards can be under every column limit and still hold ten items.</p>
<h2>Spot it with JQL</h2>
<p>This finds work that is in progress and assigned:</p>
<pre><code>statusCategory = "In Progress" AND assignee is not EMPTY ORDER BY assignee
</code></pre>
<p>Save it as a filter and add a Two dimensional filter statistics gadget with Assignee on one axis. Each row is one person's count across every project the filter covers. To check one person, use <code>assignee = currentUser() AND statusCategory = "In Progress"</code>.</p>
<p>Assignee swimlanes on the board give a similar view for one board.</p>
<p>It shows the problem and stops nothing. It works when the team looks at it every day.</p>
<h2>Automation, after the fact</h2>
<p>A rule can trigger on a work item transitioning to your In Progress statuses, look up work items with <code>assignee = {{issue.assignee.accountId}} AND statusCategory = "In Progress"</code>, compare <code>{{lookupIssues.size}}</code> with your limit, and comment or notify a lead.</p>
<p>The catch is timing. The rule runs after the move, so the work has already started, notifications go out, and two moves at the same moment can both slip under the count. It is a nudge. Each run also counts towards your Automation usage.</p>
<h2>Workflow conditions and validators</h2>
<p>To stop the move itself, the check has to run on the transition. Jira's built-in conditions and validators can look at the work item being moved: its fields, the user's permissions, sub-task status. They cannot count how many other work items the assignee already has in progress. That needs a scripted validator or an app.</p>
<p>Before you pick either, decide four things: across all projects or per project, what counts as starting work (To Do into In Progress yes, In Progress into In Review no), who is exempt (on-call, support), and what happens if the check cannot run. A limit that blocks people when Jira is slow does more harm than good, so let the move go ahead.</p>
<h2>Or agree it as a team first</h2>
<p>Pick a number, say 3, and decide what happens at the limit. In Kanban the answer is usually to help finish something instead of starting something. That alone fixes a lot. We wrote the longer version, including the flow theory, in a guide on Kanban WIP limits per person: <a href="https://kayabyte.dev/atlassian/guides/kanban-wip-limit-per-person-jira">https://kayabyte.dev/atlassian/guides/kanban-wip-limit-per-person-jira</a></p>
<h2>An app that puts the check on the transition</h2>
<p>Full disclosure: we build Personal WIP Limits, so weigh this with that in mind. <a href="https://go.kayabyte.dev/atl/wip-limits?s=ot-hashnode-ten-tickets">Personal WIP Limits for Jira</a> adds a workflow rule, "Personal WIP limit", that you put on the transitions that start work, in company-managed and team-managed workflows.</p>
<ul>
<li>When the assignee is at their limit, Jira shows a message and the work item stays where it is.</li>
<li>One limit for everyone, counted across all projects or per project. Projects can have their own limit or be switched off, and groups can be exempt.</li>
<li>Moves between In Progress statuses and unassigned work are never blocked. If the app cannot check, the move goes ahead.</li>
<li>An admin overview shows work in progress per person against the limit.</li>
<li>It stores only its settings and makes no calls outside Atlassian.</li>
</ul>
<p>Limits are a guardrail, not a guarantee, and everyone gets the same limit in this version.</p>
<p>If you only want visibility, the dashboard is enough. If you want the move itself to stop, the check has to sit on the transition.</p>
<p>I covered the column, filter and Automation options step by step in an earlier post: <a href="https://dev.to/kayabyte/how-to-set-a-wip-limit-per-person-in-jira-and-what-the-built-in-options-miss-52k5">https://dev.to/kayabyte/how-to-set-a-wip-limit-per-person-in-jira-and-what-the-built-in-options-miss-52k5</a></p>
<p><em>Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[Burn rate and run-out date for a Jira project]]></title><description><![CDATA[A budget is a number that goes down. The useful question is not how much is left, but when it will be gone. That is what burn rate and run-out date answer…]]></description><link>https://kayabyte.hashnode.dev/burn-rate-and-run-out-date-for-a-jira-project</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/burn-rate-and-run-out-date-for-a-jira-project</guid><category><![CDATA[JIRA]]></category><category><![CDATA[project management]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 20:21:11 GMT</pubDate><content:encoded><![CDATA[<p>A budget is a number that goes down. The useful question is not how much is left, but when it will be gone. That is what burn rate and run-out date answer, and Jira has the raw material for both without giving you either.</p>
<h2>The definitions</h2>
<ul>
<li>Burn rate: money (or hours) spent per day or per week. In Jira terms, logged time multiplied by the hourly rate of whoever logged it.</li>
<li>Run-out date: today plus remaining budget divided by burn rate. If 12,000 is left and the team burns 400 a day, the money lasts 30 days.</li>
<li>Remaining estimates: the burn rate says how fast you are spending, not how much work is left. Pricing the Remaining estimate of open work items tells you what finishing will cost, which you can hold against what is left.</li>
</ul>
<p>The burn rate should come from recent weeks, not from the whole project. A project that crawled for two months and then got a full team has a very different pace today than its average.</p>
<p>For the cost side (rates, dated rate changes, budgets per epic or version), see <a href="https://kayabyte.hashnode.dev/how-to-see-project-cost-and-budget-in-jira-from-worklogs">How to see project cost and budget in Jira from worklogs</a>. This article is about the forecast on top.</p>
<h2>Native and manual ways</h2>
<h3>Time tracking report</h3>
<p>Jira's time tracking report shows original estimate, remaining estimate and time spent per work item for a project or version. Good for a quick look at hours. It has no rates, no dates for the pace, and no budget to compare with.</p>
<h3>Export plus spreadsheet</h3>
<ol>
<li>Pull the individual worklogs (author, date, time spent) through the REST API, or export work items with their time fields.</li>
<li>Price each worklog with a rates table.</li>
<li>Sum the cost of the last 28 days and divide by 28. That is your daily burn rate.</li>
<li>Run-out date: <code>=TODAY() + remaining / burn_per_day</code>.</li>
<li>For the estimate view: sum the Remaining estimate of open work items, multiply by an average hourly rate, add to spent.</li>
</ol>
<p>This works, and it is the right way to learn what the numbers mean. Each step is easy; the trouble is keeping it alive.</p>
<h3>Dashboard gadgets</h3>
<p>A Filter results gadget can list time spent and remaining estimate per work item, but the built-in gadgets count work items rather than total hours, so totals still mean an export. Either way it is hours, not money, and the gadgets do not know your budget or your pace.</p>
<h2>Where it stops working</h2>
<ul>
<li>The sheet is stale as soon as someone logs time or moves work between epics.</li>
<li>A 28-day window needs a daily recompute. Nobody does that by hand.</li>
<li>The first week of a month or project gives a pace that swings wildly. You need a rule for when to trust it.</li>
<li>A run-out date after the budget period ends is not interesting. A formula happily prints it anyway.</li>
<li>Rates are sensitive, and the people who should see a run-out date are rarely the people who should see what each colleague costs.</li>
</ul>
<h2>Burnrate</h2>
<p>Full disclosure: we build Burnrate. <a href="https://go.kayabyte.dev/atl/burnrate?s=ot-hashnode-burn-rate-runout">Burnrate for Jira</a> reads the worklogs your team already logs, prices them with a dated rate card and compares them with a budget. This is how its forecast works, taken from how we built it:</p>
<ul>
<li>Pace is the average daily spend over the last 28 days, or over the days since the period started if that is shorter.</li>
<li>Run-out date is the money (or hours) left divided by that pace. If the budget has both an amount and hours, the earlier of the two wins.</li>
<li>It only shows a date that falls inside the budget's period. If the pace would not use the budget up in time, you see the projected total at the end of the period instead.</li>
<li>It waits until there are enough days to forecast from: 7 days of pace, or half the period for budgets shorter than two weeks.</li>
<li>Estimate at completion is spent so far plus the Remaining estimates of open work, priced at the scope's average cost per hour. It is a separate figure from the run-out date, so you can see both views, and for one-off budgets a budget is marked at risk if either points over it.</li>
<li>A budget is flagged At risk when usage passes your warning threshold or the forecast goes over the budget.</li>
</ul>
<p>It does not email you about it, and it has no dashboard gadget yet. You see the forecast in the budget list and on each budget.</p>
<p>For one project and a monthly look, the spreadsheet above is enough. When several budgets run at once and you want the run-out date to be current when you open the page, that is the part worth handing over.</p>
<p><em>Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[Jira Service Management: keeping request participants in sync with a group (joiners and leavers)]]></title><description><![CDATA[Adding a team to a request once is the easy part. The part that bites is next quarter: somebody joins finance, somebody leaves, and the requests already…]]></description><link>https://kayabyte.hashnode.dev/jira-service-management-keeping-request-participants-in-sync-with-a-group-joiners-and-leavers</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/jira-service-management-keeping-request-participants-in-sync-with-a-group-joiners-and-leavers</guid><category><![CDATA[JIRA]]></category><category><![CDATA[Jira Service Management]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 20:10:45 GMT</pubDate><content:encoded><![CDATA[<p>Adding a team to a request once is the easy part. The part that bites is next quarter: somebody joins finance, somebody leaves, and the requests already open still show last quarter's team. This is about keeping request participants in step with a group over time, and what Jira Service Management gives you for it. (If you only need the one-off "add a team to new requests" setup, I covered that in <a href="https://kayabyte.hashnode.dev/adding-a-whole-team-as-request-participants-in-jira-service-management">this article</a>.)</p>
<h2>Participants and organizations are different things</h2>
<ul>
<li>Request participants are people on one request. They get its notifications and can comment in the portal. There is no field for a group, so a team of 12 is 12 entries.</li>
<li>Organizations are lists of customers kept in Jira Service Management. Sharing a request with one makes it visible to the members. They get one "Organization added" email, and later updates only if they turn notifications on for that request.</li>
<li>Neither is a Jira group. An organization is a second list that has to be maintained next to the group you already have.</li>
</ul>
<p>So for "this team follows these requests, and the team changes", participants are the right field and organizations are not a substitute.</p>
<h2>What happens when group membership changes</h2>
<p>Nothing, natively. Jira groups and request participants are not linked. Add someone to a group and no existing request gains a participant. Remove someone and they stay on every request they were already on. Whatever you build has to do the syncing itself.</p>
<h2>Option 1: Automation</h2>
<p>A rule on Work item created, with a request type condition, can set the Request participants field. Depending on your Automation version you will find this under Edit work item, or as a dedicated action for request participants. Check what your site offers, since I have not confirmed the exact action name on every plan.</p>
<p>Limits for the joiners and leavers problem:</p>
<ul>
<li>A rule has no built-in "members of this group" list. The people are typed into the rule, so every team change means editing it.</li>
<li>It runs on creation. Requests that are already open are not touched when you edit the rule.</li>
<li>You can add a second rule on a schedule that searches open requests and edits each one. That works, but you have to write the add part, the remove part, and the people list yourself.</li>
<li>Smart values give you the reporter and the fields on the request. I would not rely on them to expand a group into accounts. Test that on a throwaway request before building on it.</li>
<li>Every run counts towards your plan's Automation usage.</li>
</ul>
<h2>Option 2: the REST API</h2>
<p>This is the flexible route, and the pieces are small:</p>
<ol>
<li>Read the group: <code>GET /rest/api/3/group/member?groupId=...&amp;includeInactiveUsers=false</code>, paged.</li>
<li>Find open requests: JQL such as <code>project = SD AND statusCategory != Done AND "Request Type" in ("Invoice question")</code>.</li>
<li>Read current participants: <code>GET /rest/servicedeskapi/request/{issueIdOrKey}/participant</code>.</li>
<li>Add the missing ones: <code>POST /rest/servicedeskapi/request/{issueIdOrKey}/participant</code> with a body of <code>{"accountIds": [...]}</code>.</li>
<li>Remove leavers: <code>DELETE</code> on the same path with the same body shape.</li>
</ol>
<p>Things that will trip you up:</p>
<ul>
<li>One person who cannot be a participant (no customer access to that service project, for example) can make the whole POST fail with a 400. Retry the batch one account at a time.</li>
<li>Rate limits happen on long runs. Honour Retry-After and make the job safe to run again.</li>
<li>To find joiners and leavers you must keep the last-seen member list somewhere and compare it with the current one. Without that you cannot tell a leaver from someone who was added by hand.</li>
<li>Decide about leavers on purpose. A person removed from the group might also have been added to a request manually, and a blanket cleanup would drop them.</li>
<li>Someone may be covered by two rules for the same request type. Removing them because they left one group would be wrong.</li>
</ul>
<p>It is a perfectly good small script, and it needs somewhere to run and be maintained.</p>
<h2>Option 3: an app that does the sync</h2>
<p>Full disclosure: we build Group Participants, so weigh this accordingly. <a href="https://go.kayabyte.dev/atl/group-participants?s=ot-hashnode-jsm-participants-sync">Group Participants for Jira Service Management</a> is the script above, packaged as a Forge app. From what it does today:</p>
<ul>
<li>Rules per service project and request type, each pointing at one or more Jira groups. New matching requests get the groups' active members as participants.</li>
<li>An hourly sync looks at open requests (not in a Done status category) that match a rule and adds people who joined the group since the last run.</li>
<li>Removing people who left is opt-in, because they may have been added by hand. Someone who left one rule's groups but is still covered by another rule for that request type stays on.</li>
<li>A "Sync open requests now" button runs it on demand, and a manual run re-adds every current member.</li>
<li>If a lookup fails or is rate limited, the rule keeps its old snapshot, so the next run tries the same joiners and leavers again. It does not treat a failed group lookup as an empty group.</li>
<li>People JSM will not accept as participants are counted as "could not be added", and one such person does not fail the whole batch.</li>
<li>A rule covers up to 1,000 open requests per run.</li>
<li>An agent can also add any group to a single request from the work item's actions menu.</li>
<li>It works with Jira groups, not organizations, and it does not cover portal-only customers, because JSM does not allow them in groups.</li>
<li>It stores only its settings and member snapshots, makes no calls outside Atlassian, and runs as its own Forge app, so it does not use your Automation runs.</li>
</ul>
<p>If your team rarely changes, an Automation rule is enough. If it changes every month and open requests matter, either write the scheduled script with the checks above or use an app. The thing to avoid is a hand-edited list that nobody owns.</p>
<p>For the difference between organizations and participants in more depth, see <a href="https://kayabyte.dev/atlassian/guides/jsm-organizations-vs-request-participants">this guide</a>.</p>
<p><em>Jira Service Management, Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to notify a whole team when a new page is added to a Confluence space]]></title><description><![CDATA[A team lead publishes a new page in the team's Confluence space and then wonders whether anyone saw it. Confluence Cloud has several ways to tell people…]]></description><link>https://kayabyte.hashnode.dev/how-to-notify-a-whole-team-when-a-new-page-is-added-to-a-confluence-space</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-notify-a-whole-team-when-a-new-page-is-added-to-a-confluence-space</guid><category><![CDATA[Confluence]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 19:13:27 GMT</pubDate><content:encoded><![CDATA[<p>A team lead publishes a new page in the team's Confluence space and then wonders whether anyone saw it. Confluence Cloud has several ways to tell people, but none of them is a single switch that says "notify this team about every new page". Here are the native options with their limits, and one app at the end.</p>
<h2>Option 1: everyone watches the space</h2>
<p>Watching a space covers all its pages and blog posts, so a watcher is told about new pages. Each person selects Watch on the space for themselves. Watching is per user account, so a group of 30 people is 30 separate watches.</p>
<p>The catch is how the notification arrives. Open your profile picture, then Settings, then Email:</p>
<ul>
<li>Daily Digest collects recent activity into one email a day. On a new account it includes new pages and live docs.</li>
<li>Content I'm watching decides what is emailed in real time. On a new account only Comments, New blog posts and New whiteboards are on. New pages and live docs is off.</li>
</ul>
<p>So by default a watcher hears about a new page the next day, in the digest. For real-time emails each person has to switch on New pages and live docs under Content I'm watching. It is a personal setting, so you can't set it for the team.</p>
<h2>Option 2: @mention the team or the people in the page</h2>
<p>Mentioning someone in a page notifies that person, and it works well for one announcement. The limits: it is manual, it depends on the author remembering, and the mentioned person must be able to see the page. It also does nothing for the next page.</p>
<h2>Option 3: Automation for Confluence</h2>
<p>Automation for Confluence can run a rule when a page is created in a space. As far as I could verify, the actions include sending an email and posting to Slack or Microsoft Teams, which covers "tell the team about new pages". Check two things in your own site before you rely on it: which recipients the email action accepts (a list of people, or a group), and that the Slack or Teams integration is connected for your site. I did not find an action that makes a group watch a space, so rules are for announcing, not for watching.</p>
<p>The upside is that the message goes out in real time and lands where the team already looks (a channel). The downside is that someone owns the rule and the recipient list, and people who join the team later are only included if the list follows the group.</p>
<h2>Option 4: an admin adds the watches with the REST API</h2>
<p>An admin can add a watch for another person with the REST API, one account at a time: <code>POST /wiki/rest/api/user/watch/space/{spaceKey}?accountId={accountId}</code>, with the header <code>X-Atlassian-Token: no-check</code>, as a Confluence Administrator or a Space Administrator of the space. A script can loop over a group's members. It is a snapshot, though: joiners are missed, leavers keep watching. I wrote the whole script and its limits in <a href="https://kayabyte.hashnode.dev/how-to-make-a-confluence-group-watch-a-space-and-keep-it-updated-when-people-join">How to make a Confluence group watch a space</a>, so I won't repeat it here.</p>
<h2>Option 5: an app that keeps the group watching</h2>
<p>Full disclosure: we build Group Watchers, so weigh this accordingly. <a href="https://go.kayabyte.dev/atl/group-watchers?s=ot-hashnode-team-new-page-notify">Group Watchers: Auto-Watch Spaces &amp; Pages for Confluence</a> maps one or more groups to a space or a single page and keeps the members watching:</p>
<ul>
<li>It runs right after you change a rule and then every hour.</li>
<li>Joiners start watching. For leavers it removes only the watches it added, and you can switch removal off.</li>
<li>People who unwatch are not added back, and watches people already had are never touched.</li>
<li>It runs on Atlassian's Forge platform and sends no data outside Atlassian.</li>
</ul>
<p>What it does not do: it doesn't send its own notifications and doesn't change anyone's email settings. A watcher gets Confluence's normal notifications, based on their own settings. So the digest point from Option 1 still applies, and new pages arrive in real time only for people who switched on New pages and live docs.</p>
<h2>Which one to pick</h2>
<ul>
<li>One announcement: @mention, or post in the team channel.</li>
<li>Real-time heads-up for every new page, in chat or email: an Automation rule on page created.</li>
<li>Team members should get Confluence's own notifications, and the team changes often: keep the group watching, with a script you maintain or an app.</li>
</ul>
<p>These also combine well: watching for the personal feed, and an Automation rule for the channel.</p>
<p><em>Confluence and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to see project cost and budget in Jira from worklogs]]></title><description><![CDATA[Your team already logs time in Jira. Finance asks what the project has cost so far and whether the budget will last. Jira holds the hours but not the…]]></description><link>https://kayabyte.hashnode.dev/how-to-see-project-cost-and-budget-in-jira-from-worklogs</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-see-project-cost-and-budget-in-jira-from-worklogs</guid><category><![CDATA[JIRA]]></category><category><![CDATA[atlassian]]></category><category><![CDATA[project management]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 18:24:50 GMT</pubDate><content:encoded><![CDATA[<p>Your team already logs time in Jira. Finance asks what the project has cost so far and whether the budget will last. Jira holds the hours but not the money. Here is how to get from one to the other with the built-in tools, and where that stops.</p>
<h2>What Jira gives you</h2>
<ul>
<li>Worklogs: who logged how much time, on which work item, on which day.</li>
<li>Time tracking fields: Original estimate, Remaining estimate and Time spent on each work item.</li>
<li>JQL to find the work items in a project, epic or version, and CSV export with their time fields.</li>
</ul>
<p>Everything is in hours. Jira has no hourly rates and no budget with an amount and a period.</p>
<h2>Option 1: export and a spreadsheet</h2>
<p>Exporting work items gives you Time spent per work item, but not per person or per day. For a real cost you need the individual worklogs: author, date and time spent.</p>
<ol>
<li>Pull the worklogs with the REST API: <code>/rest/api/3/issue/{key}/worklog</code> per work item, or <code>/rest/api/3/worklog/updated</code> plus <code>/rest/api/3/worklog/list</code> for everything changed since a date.</li>
<li>Keep a rates table with one row per person or role, an hourly rate and a start date. When a rate changes, add a row instead of editing the old one.</li>
<li>Price each worklog with the rate that applied on its own date: hours times rate. If you only keep the current rate, every rate change silently re-prices past work.</li>
<li>Group the cost by project, epic or fix version. For epics and versions, include the time on child work items and sub-tasks.</li>
<li>Compare with the budget: spent so far, remaining, share used.</li>
</ol>
<h2>Where the spreadsheet breaks</h2>
<ul>
<li>It goes stale. Worklogs are added, edited and deleted every day, and work moves between epics and versions. A monthly export is out of date within days.</li>
<li>Forecasting is manual. "Will the money last?" needs a pace, a run-out date and the remaining estimates of open work priced at your average rate.</li>
<li>Cost and billing differ. What an hour costs you and what you bill the client are different rates, so you need two tables.</li>
<li>Rates are sensitive. Most people who should see whether a budget is on track should not see what each person costs, so the sheet ends up shared with very few people.</li>
</ul>
<h2>Option 2: Automation</h2>
<p>A scheduled rule can look up the work items in an epic or project and message someone when their time spent passes a threshold you typed in. That is a rough check of hours against an hour budget. For money you still need a rates table somewhere, and dated rates are awkward to keep inside a rule. Rule runs also count towards your plan's Automation usage.</p>
<h2>Rules that keep the numbers trustworthy</h2>
<ul>
<li>Never change a past rate. Add a new one with a start date.</li>
<li>Decide once what a budget covers (a project, an epic and its children, a version or a JQL query) and whether it is one-off or resets every month or quarter.</li>
<li>Keep non-billable work out with a label, and apply it to the work under it too.</li>
</ul>
<h2>Option 3: an app that reads the worklogs</h2>
<p>Full disclosure: we build Burnrate, so weigh this one with that in mind. <a href="https://go.kayabyte.dev/atl/burnrate?s=ot-hashnode-project-cost-from-worklogs">Burnrate for Jira</a> reads the worklogs your team already logs and keeps the numbers current.</p>
<ul>
<li>A rate card with dated cost and billing rates for a default rate, roles and people. A new rate never changes the cost of past work.</li>
<li>Budgets in money or hours for projects, epics, fix versions or any JQL query, one-off, monthly or quarterly.</li>
<li>Pace, run-out date, projected spend and an estimate at completion from remaining estimates.</li>
<li>A Cost panel on every work item and epic, and reports by project, epic, person or month with CSV export.</li>
<li>Two Jira permissions decide who manages rates and who only sees budgets.</li>
</ul>
<p>For one small project and a monthly report, the spreadsheet is fine. When several budgets run at once and rates change, keeping it current by hand is the part that stops working.</p>
<p>More detail in the guide: <a href="https://kayabyte.dev/atlassian/guides/jira-project-cost-from-worklogs">https://kayabyte.dev/atlassian/guides/jira-project-cost-from-worklogs</a></p>
<p><em>Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to set a WIP limit per person in Jira (and what the built-in options miss)]]></title><description><![CDATA["Nobody should have more than three things in progress." It sounds simple, and Jira makes it surprisingly hard. The limits Jira gives you are on columns…]]></description><link>https://kayabyte.hashnode.dev/how-to-set-a-wip-limit-per-person-in-jira-and-what-the-built-in-options-miss</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-set-a-wip-limit-per-person-in-jira-and-what-the-built-in-options-miss</guid><category><![CDATA[JIRA]]></category><category><![CDATA[atlassian]]></category><category><![CDATA[agile]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 18:23:41 GMT</pubDate><content:encoded><![CDATA[<p>"Nobody should have more than three things in progress." It sounds simple, and Jira makes it surprisingly hard. The limits Jira gives you are on columns, not on people. Here is what you can do with the built-in tools, step by step, and where each one stops.</p>
<h2>Column limits count the column, not the person</h2>
<p>On a board, under Columns, you can set a minimum and maximum number of work items per column. Jira colours the column when it goes over.</p>
<ul>
<li>The limit counts every work item in the column, whoever it is assigned to. One person can hold most of a column and the limit still looks fine.</li>
<li>It is a warning. People can still move work into a full column.</li>
<li>It counts one board. Someone who works across three teams' boards can be under every column limit and still have ten things in progress.</li>
</ul>
<p>Column limits help a team see a bottleneck. They do not give anyone a personal limit.</p>
<h2>Option 1: a filter and a dashboard</h2>
<p>You can at least see who is overloaded.</p>
<ol>
<li>Save a filter with this JQL:</li>
</ol>
<pre><code>statusCategory = "In Progress" AND assignee is not EMPTY ORDER BY assignee
</code></pre>
<ol start="2">
<li>Add a Filter results or Two dimensional filter statistics gadget to a dashboard, using that filter, with Assignee on one axis.</li>
</ol>
<p>Each person's count is the number of work items they have in progress. This shows the problem. Nobody is stopped, and somebody has to look at the dashboard.</p>
<h2>Option 2: Jira Automation</h2>
<p>Automation can warn when someone goes over.</p>
<ol>
<li>Trigger: Work item transitioned, to your In Progress statuses.</li>
<li>Action: Lookup work items with JQL like <code>assignee = {{issue.assignee.accountId}} AND statusCategory = "In Progress"</code>.</li>
<li>Condition: <code>{{lookupIssues.size}}</code> greater than your limit.</li>
<li>Action: comment, notify the team lead, or transition the work item back.</li>
</ol>
<p>The gap: the rule runs after the move. The work has already started, people get notifications about a move that is then undone, and the count can be off when two moves happen at the same moment. It is a nudge, not a limit. Each run also counts towards your plan's Automation usage.</p>
<h2>Option 3: stop the move itself</h2>
<p>To block a work item from starting when its assignee is at their limit, the check has to run on the transition, before the move happens. Jira's built-in validators cannot count how many work items someone already has in progress, so this takes a scripted validator or an app.</p>
<p>Whichever route you take, decide these first:</p>
<ul>
<li>Across all projects, or per project? One limit for everything a person does, or one per project for people who split their time on purpose.</li>
<li>What counts as starting work? To Do into In Progress should count. In Progress into In Review should not.</li>
<li>Who is exempt? On-call and support rotations often need to pick up urgent work regardless.</li>
<li>What happens if the check fails? A limit that blocks people when Jira is slow does more harm than good. Let the move go ahead.</li>
</ul>
<h2>Option 4: an app that adds the workflow rule</h2>
<p>Full disclosure: we build Personal WIP Limits, so weigh this one with that in mind. <a href="https://go.kayabyte.dev/atl/wip-limits?s=ot-hashnode-wip-limit-per-person">Personal WIP Limits for Jira</a> adds a workflow rule you put on the transitions that start work, in company-managed and team-managed workflows.</p>
<ul>
<li>When the assignee is at their limit, Jira shows a message such as "Alex has reached the limit of 3 work items in progress" and the work item stays where it is.</li>
<li>Count across all projects or per project, give projects their own limit or switch them off, and exempt groups.</li>
<li>Moves between In Progress statuses and unassigned work are never blocked. If the app cannot check, the move goes ahead.</li>
<li>It stores only its settings and makes no calls outside Atlassian.</li>
</ul>
<p>If you only want visibility, the dashboard from Option 1 is enough. If you want a limit that actually stops the move, the check has to sit on the transition, and that is the part worth an app or a script.</p>
<p>More detail, including the flow-theory side, in the guide: <a href="https://kayabyte.dev/atlassian/guides/jira-wip-limit-per-person">https://kayabyte.dev/atlassian/guides/jira-wip-limit-per-person</a></p>
<p><em>Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[Adding a whole team as request participants in Jira Service Management]]></title><description><![CDATA[A request comes in and a whole team needs to follow it: finance on every invoice question, facilities on every move request. In Jira Service Management…]]></description><link>https://kayabyte.hashnode.dev/adding-a-whole-team-as-request-participants-in-jira-service-management</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/adding-a-whole-team-as-request-participants-in-jira-service-management</guid><category><![CDATA[JIRA]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[atlassian]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 18:09:29 GMT</pubDate><content:encoded><![CDATA[<p>A request comes in and a whole team needs to follow it: finance on every invoice question, facilities on every move request. In Jira Service Management that is more awkward than it should be, because request participants are individual people. There is no field for a group. Here is what you can do with the built-in options, and where each one stops.</p>
<h2>How request participants work</h2>
<ul>
<li>Request participants is a field on service requests. Everyone in it gets the request's customer notifications and can see and comment on it in the portal.</li>
<li>It holds people, not groups. Adding a group means adding each member by hand.</li>
<li>Only people who may raise requests in that service project can be participants. On sites where customers need explicit access, group members without it are rejected.</li>
</ul>
<p>Atlassian's request for group participants, <a href="https://jira.atlassian.com/browse/JSDCLOUD-1268">JSDCLOUD-1268</a>, has collected hundreds of votes over the years and has not been built.</p>
<h2>Option 1: organizations</h2>
<ol>
<li>In the service project, go to Customers and create an organization, or use an existing one.</li>
<li>Add the people to it.</li>
<li>Customers in the organization can share requests with it, and agents can share a request with an organization.</li>
</ol>
<p>The catch: sharing with an organization makes the request visible to its members, but it does not make them participants. Members get one "Organization added" email, and later updates only if they turn notifications on for that request. Organizations are also separate from Jira groups, so somebody has to keep both lists in step.</p>
<h2>Option 2: Jira Automation</h2>
<p>A rule can set the Request participants field when a request is created.</p>
<ol>
<li>Trigger: Work item created, with a condition on the request type.</li>
<li>Action: Edit work item, and set Request participants to the people who should follow it.</li>
</ol>
<p>That works for a fixed list of people. Automation has no simple built-in way to turn a Jira group into its current members, so the list lives inside the rule and someone updates it when people join or leave. Requests that are already open do not change when the list does. And every rule run counts towards your site's monthly Automation usage, which is limited by plan.</p>
<p>If you are comfortable with the REST API, there is a more flexible route: the service desk API can add participants to a request with one call listing several account IDs, and you can read a group's members with the group/member endpoint. Wire that into a scheduled rule or a script and you get something close to group behaviour. It is also more moving parts to maintain, and it won't remove leavers unless you write that part too.</p>
<h2>Option 3: ask the requester</h2>
<p>Requesters can add participants from the portal. Fine for one-off requests, unreliable for "this team must always be on it".</p>
<h2>Decide these before you automate anything</h2>
<ul>
<li>Which requests? Usually a few request types per project, not everything.</li>
<li>New requests only, or open ones too? When someone joins the team, should they be added to requests that are already open?</li>
<li>What about leavers? Come off open requests, or stay until it is closed?</li>
</ul>
<h2>Option 4: an app that works from Jira groups</h2>
<p>Full disclosure: we build Group Participants, so take this one with that in mind. <a href="https://go.kayabyte.dev/atl/group-participants?s=ot-hashnode-jsm-team-participants">Group Participants for Jira Service Management</a> works with the Jira groups you already have:</p>
<ul>
<li>Rules per service project and request type: new requests get everyone in the chosen groups as participants.</li>
<li>An agent action adds any group to a request from the work item's actions menu.</li>
<li>An hourly sync adds people who join a group to matching open requests. Removing people who leave is optional, and someone still covered by another rule stays on.</li>
<li>It stores only its settings and member snapshots, and makes no calls outside Atlassian.</li>
<li>It runs as its own Forge app, so it does not use your Automation rule runs.</li>
</ul>
<p>Other Marketplace apps do the same thing, some of them cheaper. I compared a few here: <a href="https://kayabyte.dev/atlassian/guides/jsm-group-request-participants-apps-compared">https://kayabyte.dev/atlassian/guides/jsm-group-request-participants-apps-compared</a></p>
<p>For a fixed team and a couple of request types, an Automation rule is probably all you need. Once the team changes regularly, keeping a hand-written list current is the part that starts to hurt.</p>
<p><em>Jira Service Management, Jira and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to make a Confluence group watch a space (and keep it updated when people join)]]></title><description><![CDATA[A common ask from team leads: "everyone on the team should get updates from our Confluence space." In Confluence Cloud that turns out to be harder than it…]]></description><link>https://kayabyte.hashnode.dev/how-to-make-a-confluence-group-watch-a-space-and-keep-it-updated-when-people-join</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-make-a-confluence-group-watch-a-space-and-keep-it-updated-when-people-join</guid><category><![CDATA[Confluence]]></category><category><![CDATA[atlassian]]></category><category><![CDATA[Productivity]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 18:07:07 GMT</pubDate><content:encoded><![CDATA[<p>A common ask from team leads: "everyone on the team should get updates from our Confluence space." In Confluence Cloud that turns out to be harder than it sounds, because watching is something each person does for themselves. Here is what actually works, and where each option stops.</p>
<h2>What the built-in behaviour is</h2>
<ul>
<li>Each person selects Watch on a page or a space. Watching a space covers all its pages and blog posts.</li>
<li>Only user accounts can watch. There is no way to add a group as a watcher, so a group of 40 people is 40 separate watches.</li>
<li>People see what they watch under Notifications, Watching, and can unwatch whenever they like.</li>
</ul>
<p>So the native options are: ask everyone to click Watch (works for five people, not for fifty), or have an admin set the watches for them.</p>
<h2>Option 1: an admin sets the watches with the REST API</h2>
<p>Confluence's REST API can create a watch for another person, one at a time:</p>
<ul>
<li>Space: <code>POST /wiki/rest/api/user/watch/space/{spaceKey}?accountId={accountId}</code></li>
<li>Page: <code>POST /wiki/rest/api/user/watch/content/{pageId}?accountId={accountId}</code></li>
</ul>
<p>You need the header <code>X-Atlassian-Token: no-check</code>, and the caller must be a Confluence Administrator, or a Space Administrator of that space. Anyone else can only add a watch for themselves. A watch never grants access, so members who can't see the space are skipped.</p>
<p>Here is a one-time script that adds every member of one group to one space. It needs an API token for your own account, <code>curl</code> and <code>jq</code>:</p>
<pre><code class="language-bash">SITE="https://your-site.atlassian.net"
AUTH="you@example.com:your-api-token"
SPACE="TEAM"          # the space key
GROUP="developers"    # the group name

# 1. Look up the group's ID
GROUP_ID=$(curl -s -u "$AUTH" "$SITE/wiki/rest/api/group/picker?query=$GROUP" \
  | jq -r --arg n "$GROUP" '.results[] | select(.name == $n) | .id')

# 2. Read the members, 200 at a time, and add a watch for each
start=0
while :; do
  page=$(curl -s -u "$AUTH" "$SITE/wiki/rest/api/group/$GROUP_ID/membersByGroupId?start=$start&amp;limit=200")
  for id in $(echo "$page" | jq -r '.results[] | select((.accountType // "atlassian") == "atlassian") | .accountId'); do
    curl -s -o /dev/null -w "%{http_code} $id\n" -u "$AUTH" -X POST \
      -H "X-Atlassian-Token: no-check" \
      "$SITE/wiki/rest/api/user/watch/space/$SPACE?accountId=$id"
  done
  [ "$(echo "$page" | jq -r '._links.next // empty')" = "" ] &amp;&amp; break
  start=$((start + $(echo "$page" | jq '.results | length')))
done
</code></pre>
<p>A 204 means the watch was added. For one page, use the page endpoint with the page ID from the URL.</p>
<h2>Where the script stops</h2>
<p>It is a snapshot. Fine for a one-time rollout, but groups change:</p>
<ul>
<li>Joiners are not added until you run it again.</li>
<li>Leavers keep watching, and keep getting emails about a space that is not theirs any more.</li>
<li>People who unwatched on purpose get added back on the next run, and usually respond by filtering the emails.</li>
<li>Watches people set up themselves look identical to the ones you added, so a cleanup script can't tell which ones it may remove.</li>
</ul>
<p>You can put the script on a schedule, but then you also need a record of which watches you added, who opted out and who already watched before. That record is the real work.</p>
<h2>Option 2: Automation for Confluence</h2>
<p>I looked for a way to do this with Automation for Confluence rules and did not find a built-in "add watcher" action for a group's members, so I would not count on it. You can have a rule send a notification or post when a page is created in a space, which covers "tell the team about new pages" but not "make the team watchers". If you know of a way I missed, I'd like to hear it.</p>
<h2>If watchers say they get no email</h2>
<p>Before changing anything, check the email defaults. New pages and page edits in watched content go into the daily digest by default, while comments are emailed straight away. Each person can change it under their profile picture, Settings, Email. Updates also show under Notifications, Watching in Confluence itself.</p>
<h2>Option 3: an app that keeps the watches in sync</h2>
<p>Full disclosure: we build Group Watchers, so weigh this accordingly. <a href="https://go.kayabyte.dev/atl/group-watchers?s=ot-hashnode-group-watch-space">Group Watchers: Auto-Watch Spaces &amp; Pages for Confluence</a> maps one or more groups to a space or a single page and keeps the watches in line with the groups:</p>
<ul>
<li>It runs right after you change a rule and then every hour.</li>
<li>Joiners start watching. For leavers it removes only the watches it added, and you can switch removal off.</li>
<li>People who unwatch are not added back, and watches people already had are never touched.</li>
<li>It runs on Atlassian's Forge platform and sends no data outside Atlassian.</li>
</ul>
<p>There are other Marketplace apps for this too, one of them free. I put a comparison on our site: <a href="https://kayabyte.dev/atlassian/guides/confluence-group-watch-apps-compared">https://kayabyte.dev/atlassian/guides/confluence-group-watch-apps-compared</a></p>
<p>If your group is small and stable, the script above is enough. The app earns its place when people move around often and you don't want to own the bookkeeping.</p>
<p><em>Confluence and Atlassian are trademarks of Atlassian. Kayabyte is independent and not affiliated with or endorsed by Atlassian.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to set up wholesale prices for B2B customers in your Wix store]]></title><description><![CDATA[Wix Stores has one price per product. The built-in wholesale workaround, where it stops, and an app that gives labelled customers group prices.]]></description><link>https://kayabyte.hashnode.dev/how-to-set-up-wholesale-prices-for-b2b-customers-in-your-wix-store</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-set-up-wholesale-prices-for-b2b-customers-in-your-wix-store</guid><category><![CDATA[wix]]></category><category><![CDATA[ecommerce]]></category><category><![CDATA[b2b]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 07:09:14 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/how-to-set-up-wholesale-prices-for-b2b-customers-in-your-wix-store-1e3o">DEV</a>.</em></p>
<p>Wix Stores has one price per product and no wholesale mode. Wix's own suggestion for trade prices is a members-only page with duplicated products at wholesale prices. That works for a small range, and it gets heavy as the range grows. Below is the built-in setup first, what it can't do, and then an app that applies a group price to the products you already have.</p>
<h2>What does Wix offer for wholesale prices?</h2>
<p>Wix describes the workaround in <a href="https://support.wix.com/en/article/wix-stores-creating-restricted-store-pages">Creating restricted store pages</a>:</p>
<ol>
<li>Duplicate each product you want to sell wholesale, and give the copy its wholesale price.</li>
<li>Put the copies in a new category, for example "Wholesale", and create a store page that shows only that category.</li>
<li>In the editor, open <strong>Pages &amp; Menu</strong>, open the page's settings, and under <strong>Permissions</strong> choose <strong>Site members</strong>.</li>
<li>In your dashboard, go to <strong>Signup &amp; Login Security</strong> and choose <strong>Only people I manually approve</strong>, so you decide who becomes a wholesale member.</li>
<li>Hide the wholesale page and its products from search engines.</li>
</ol>
<p>Things to know before you build on it:</p>
<ul>
<li>The wholesale products are separate copies. Prices, photos, descriptions and stock have to be kept in step in two places.</li>
<li>Retail and wholesale shoppers browse different pages, so a trade customer who forgets to use the wholesale page pays the retail price.</li>
<li>Wix points larger B2B shops to a dedicated wholesale app.</li>
</ul>
<h2>Can I use a discount or coupon instead?</h2>
<p>Wix Stores has coupons and automatic discounts under <strong>Marketing</strong>. They give a percentage or amount off, with conditions such as a minimum order or chosen products.</p>
<p>Coupons can't be limited to certain customers. Wix's <a href="https://support.wix.com/en/article/wix-stores-limiting-coupon-usage">limiting coupon usage</a> options cover the products, an end date, the total number of uses and one use per customer, so a plain coupon code can be shared or guessed. Automatic discounts can be limited: Wix's <a href="https://support.wix.com/en/article/wix-pos-register-enabling-automatic-discounts">automatic discounts help</a> describes an eligibility setting where you choose a specific contact with a label. So a label-based percentage discount is possible without an app. It is one discount per rule, and it has no groups with different prices, no fixed price per product and no minimum order tied to a group, which is where the section below starts.</p>
<h2>Where the built-in options stop</h2>
<ul>
<li><strong>Several trade groups managed in one place,</strong> on the same products retail customers buy, with no duplicates.</li>
<li><strong>Different groups with different discounts</strong>, such as 20% for resellers and 30% for distributors.</li>
<li><strong>A discount for one collection</strong>, such as 40% off the whole accessories range for trade.</li>
<li><strong>A fixed trade price for one product</strong>, such as 8.50 each, whatever the retail price.</li>
<li><strong>A minimum order before trade prices apply</strong>, such as a cart of at least 300.</li>
</ul>
<h2>Mark your wholesale customers with a contact label</h2>
<p>Whatever you use, you first need a way to tell Wix who is wholesale. Contact labels are the simplest. Wix explains them in <a href="https://support.wix.com/en/article/creating-contact-labels">Creating and using contact labels</a>:</p>
<ol>
<li>In your dashboard, go to <strong>Contacts</strong>.</li>
<li>Click the <strong>More Actions</strong> icon, then <strong>Labels</strong>, then <strong>+ Add Label</strong>. Name it, for example, "Wholesale", and click <strong>Done</strong>.</li>
<li>To label a customer, open the contact, click <strong>Labels</strong>, then <strong>+ Add Label</strong>, choose "Wholesale" and click <strong>Add</strong>.</li>
</ol>
<p>A customer has to be a site member to be recognised before checkout, so ask trade customers to sign up and log in, and approve them yourself.</p>
<h2>An app that applies group prices</h2>
<p>Full disclosure: I built <a href="https://kayabyte.dev/wix/wholesale/">Wholesale Prices &amp; B2B Groups</a>. You create a group, give it one or more contact labels and choose its pricing: a percentage off the whole store, off chosen collections or products, or a fixed price per product, with an optional minimum order subtotal. A logged-in member whose contact has the label then pays the group price in the cart and at checkout, and sees it next to the regular price on the product page. Everyone else sees your normal prices, and you keep one set of products.</p>
<p>What to know before you rely on it:</p>
<ul>
<li><strong>The buyer must be logged in as a site member</strong> whose contact has the label. A trade customer who isn't logged in pays the retail price.</li>
<li><strong>The price line shows on the product page only,</strong> not in product grids or category pages. The cart and checkout always show the discount.</li>
<li><strong>Only one automatic discount applies per order,</strong> and the best price wins. Overlapping groups or a store-wide automatic sale don't add up.</li>
<li><strong>If the app can't check a customer in time,</strong> the customer pays the normal price and the sale goes ahead, so a slow check never blocks an order.</li>
<li><strong>Coupon codes</strong> a customer types in come off on top of the group price. We checked this in a live cart: the group discount and the coupon both showed, and the coupon was taken off the already reduced price. Only automatic discounts compete with the group price.</li>
<li><strong>The free plan</strong> has 1 group with one store-wide percentage. Collection and product prices, fixed prices, unlimited groups, a minimum order and a "log in to see your price" line for guests are on the paid plan.</li>
<li>The product page price line needs a site built in the Wix Editor.</li>
</ul>
<p>It's on the <a href="https://go.kayabyte.dev/wholesale?s=hn-wholesale">Wix App Market</a>.</p>
<h2>FAQ</h2>
<p><strong>Can I show wholesale prices only to approved customers?</strong>
With the built-in setup, put wholesale products on a members-only page and approve members yourself. With the app, the group price shows only to logged-in members whose contact has the label; guests see the normal price.</p>
<p><strong>Do I need duplicate products for wholesale?</strong>
Not with the app. Group prices apply to the products you already sell. With the built-in setup, yes.</p>
<p><strong>Does the group price show in product lists?</strong>
No. The app shows the price line on the product page, and the cart and checkout show the discount. There is no slot for it in product grids.</p>
<p><strong>Can a customer be in two groups?</strong>
Yes, but only one automatic discount applies per order, and the best price wins. A coupon code the customer types in comes off on top.</p>
<p><strong>Do I need a paid plan?</strong>
One group with a single store-wide percentage works on the free plan. Pricing per collection or product, fixed prices, more groups and a minimum order need the paid plan, which has a 14-day free trial.</p>
<p>Wix pages last checked: 17 October 2026. App details: 31 October 2026.</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/wix-wholesale-minimum-order">Wix wholesale minimum order: different rules for wholesale and retail</a></li>
<li><a href="https://kayabyte.dev/guides/wix-minimum-order-options-compared">Minimum order and quantity limits on Wix: every option compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-stores-minimum-order-quantity">Wix Stores minimum order quantity, per product or category</a></li>
<li><a href="https://kayabyte.dev/guides/wix-pickup-time-slots-checkout">How to let customers choose a pickup time in Wix Stores</a> (for wholesale bakeries, florists and food shops that collect orders by time slot)</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to let customers choose a pickup time in Wix Stores]]></title><description><![CDATA[Wix Stores pickup has no time choice. What the built-in options do, where they stop, and an app for pickup time slots with a limit per slot.]]></description><link>https://kayabyte.hashnode.dev/how-to-let-customers-choose-a-pickup-time-in-wix-stores</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-let-customers-choose-a-pickup-time-in-wix-stores</guid><category><![CDATA[wix]]></category><category><![CDATA[ecommerce]]></category><category><![CDATA[smallbusiness]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Sun, 01 Nov 2026 07:07:38 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/how-to-let-customers-choose-a-pickup-time-in-wix-stores-59e8">DEV</a>.</em></p>
<p>A bakery, a florist or a farm shop needs to know when the customer is coming, and how many orders it can have ready for each hour. Wix Stores has a store pickup option, but as far as I could find it has no setting for the customer to choose a pickup time. Wix does let customers choose a delivery time slot for local delivery. Below is what the built-in options do, where they stop for pickup, and an app that adds a time picker with a limit per slot.</p>
<h2>Does Wix Stores let customers choose a pickup time?</h2>
<p>The pickup option is described in Wix's <a href="https://support.wix.com/en/article/wix-stores-about-shipping-delivery-and-pickup">About shipping, delivery and pickup</a> article: it lets local customers pick up orders in person from one or more of your physical locations, and you start by selecting <strong>Pickup</strong> in your shipping settings. The article describes no time or date choice for pickup. Wix's feature request page has a request for a pickup time that had 157 votes when I looked on 12 October 2026, so merchants are asking for it. Check the current Wix help pages before you rely on this, because Wix changes its checkout often.</p>
<p>What you can do without an app:</p>
<ul>
<li>Add your opening hours and instructions to the pickup option, so customers know when they can come.</li>
<li>Ask for the time after the order, by phone, email or a message. It works at a few orders a day and gets slow beyond that, and nothing stops two customers booking the same hour.</li>
</ul>
<h2>Can customers choose a delivery time slot?</h2>
<p>Yes, for local delivery. Wix's <a href="https://support.wix.com/en/article/wix-stores-setting-up-a-local-delivery-option">local delivery help article</a> describes a <strong>Delivery time slots</strong> option: you pick the days you deliver, set when your delivery hours start and end, and add up to 8 time slots a day. Customers then choose their preferred slot from a calendar at checkout. You can offer same-day delivery, next-day delivery or delivery in two or more days, and set a cut-off time for same-day and next-day orders. To see which orders go where, add the <strong>Delivery time</strong> and <strong>Delivery method</strong> columns to the <strong>Orders</strong> tab.</p>
<p>That covers delivery. The help article describes days, hours and cut-offs. It does not describe a limit on how many orders one slot can take, and it does not apply to the pickup option, so a pickup-only business gets no time choice from it.</p>
<h2>Setting up slots with a capacity for pickup</h2>
<p>If you need pickup times and a cap per slot, the choices are a time picker app or a booking app. Booking apps are built for appointments, not for baskets in a store checkout. A slot app sits in the checkout delivery step and fills the gap.</p>
<p>What to look for in any of them:</p>
<ul>
<li>Does the picker appear for the <strong>pickup</strong> option, and does it show slots as full?</li>
<li>Is the chosen time visible on the order, so you can prepare it?</li>
<li>Can you set opening hours per weekday, a lead time (earliest slot) and a cut-off?</li>
<li>What happens to the seat when an order is canceled?</li>
<li>What does the customer see if the app is slow? A broken picker must not block sales.</li>
</ul>
<h2>An app for pickup and delivery time slots</h2>
<p>Full disclosure: I built <a href="https://kayabyte.dev/wix/pickup-slots/">Pickup &amp; Delivery Time Slots</a>. You set opening hours for each weekday, a slot length from 5 to 480 minutes and how many orders each slot takes. In the checkout, under the delivery options, customers choose a day and a slot. A full slot is shown as Full and cannot be picked. The chosen time appears in the checkout summary and on the order page as "Pickup time" or "Delivery time", and the app's dashboard page lists upcoming orders by slot with how full each one is.</p>
<p>What to know before you rely on it:</p>
<ul>
<li><strong>Your store needs a pickup option</strong> in the shipping settings. The picker appears when the customer chooses it.</li>
<li><strong>The time is required at Place order,</strong> not at Continue. The Continue button cannot be blocked, so the customer sees the picker, and Place order stays disabled with a message until a time is chosen.</li>
<li><strong>The time is also in the buyer note.</strong> The buyer's order confirmation email and Print order show it as a note line ("Pickup time: ..."), and the order page, the app's list and the prep list show it too.</li>
<li><strong>If the app's service is slow or down,</strong> the customer can continue without a time and the order is listed under "Orders placed without a time", so a sale is never lost. The same applies when every slot offered is full.</li>
<li><strong>Canceled and fully refunded orders free their seat.</strong></li>
<li><strong>The free plan</strong> is pickup only, one schedule and the first 3 slots of each day, with a limit per slot counted in orders. Delivery slots, unlimited slots, blackout dates, lead time, a cut-off after which tomorrow's slots close, limits by item count and the printable prep list are on the paid plan, which has a 14-day free trial.</li>
<li>It was tested on the one-page Wix Stores checkout. Try it on a test site and place a test order first.</li>
<li>The dashboard is in English; the picker shows in eight languages.</li>
</ul>
<p>It's on the <a href="https://go.kayabyte.dev/pickup?s=hn-pickup">Wix App Market</a>.</p>
<h2>FAQ</h2>
<p><strong>Can customers choose a pickup time in Wix Stores without an app?</strong>
As far as I could find, no. The pickup option has no time choice. Local delivery has delivery time slots with a calendar, but it does not cover pickup.</p>
<p><strong>Does Wix limit how many orders fit in one delivery time slot?</strong>
Wix's local delivery help article describes days, hours and cut-off times, and does not mention a limit per slot. Check the current article, and test with two orders for the same slot.</p>
<p><strong>How do I show the pickup time on the order?</strong>
With an app, the chosen time is saved on the order. In the Wix dashboard open the order and look for "Pickup time". The same line is added to the buyer note, so the confirmation email and Print order show it as well.</p>
<p><strong>Can I stop customers choosing today's slots too late?</strong>
For Wix's own delivery time slots, you can set a cut-off for same-day and next-day orders. With the app on its paid plan, you set a lead time (the earliest slot is a set number of hours away) and a cut-off after which tomorrow's slots close.</p>
<p><strong>Does it work for delivery too?</strong>
On the paid plan you tick which delivery options also ask for a time. The free plan is pickup only.</p>
<p><strong>What if the customer does not pick a time?</strong>
Place order is disabled until they do. If the app's service cannot answer in a few seconds, they can continue without a time and the order is flagged on the dashboard.</p>
<p>Wix pages last checked: 31 October 2026. App details: 31 October 2026.</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/wix-minimum-order-options-compared">Minimum order and quantity limits on Wix: every option compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-shipping-rate-apps-compared">Wix shipping rate apps compared</a></li>
<li><a href="https://kayabyte.dev/guides/wix-add-handling-fee-at-checkout">Add a handling, packaging or service fee at Wix checkout</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to run an online auction on a Wix website (2026)]]></title><description><![CDATA[Wix has no built-in auction. Run one by hand with forms and Pay Links, or add an auction app. What each can do, and what to check first.]]></description><link>https://kayabyte.hashnode.dev/how-to-run-an-online-auction-on-a-wix-website-2026</link><guid isPermaLink="true">https://kayabyte.hashnode.dev/how-to-run-an-online-auction-on-a-wix-website-2026</guid><category><![CDATA[wix]]></category><category><![CDATA[ecommerce]]></category><category><![CDATA[nonprofit]]></category><dc:creator><![CDATA[Kayabyte]]></dc:creator><pubDate>Fri, 30 Oct 2026 12:14:47 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on <a href="https://dev.to/kayabyte/how-to-run-an-online-auction-on-a-wix-website-2026-2fl6">DEV</a>.</em></p>
<p>Wix has no built-in auction feature. Wix Stores sells products at a fixed price, and the request to sell products by auction has been open on Wix's help center, with the status "collecting votes". To run an auction on a Wix site you either do it by hand with the tools Wix already has, or add an auction app. This guide starts with the built-in ways, what each can and can't do, and then the app I make.</p>
<h2>What Wix does on its own</h2>
<p>Wix's own help page for the request says Wix Stores doesn't support selling products by auction, and points to a third-party app as the workaround (<a href="https://support.wix.com/en/article/wix-stores-request-selling-products-by-auction">Wix request page</a>). What you can build from Wix's normal parts is a manual auction. Someone, you, has to do the work that an auction system does automatically.</p>
<h3>Option 1: a Wix form for bids, and you run the auction</h3>
<p>Add a form to the page for each item, with fields for name, email and bid amount. Wix Forms emails the site owner for every submission by default, and you can change who gets the notification (<a href="https://support.wix.com/en/article/wix-forms-choosing-who-gets-notified-about-form-submissions">Wix guide</a>). All submissions are also kept in a table where you can view, edit and export them as a CSV file (<a href="https://support.wix.com/en/article/wix-forms-viewing-and-managing-a-submissions-table">Wix guide</a>).</p>
<p>How it works in practice: you close the form on the end date, read the highest bid, and email the winner.</p>
<p>What it can't do:</p>
<ul>
<li><strong>Bidders can't see the current price.</strong> Submissions go to you, not onto the page, so it works as a sealed-bid sale, not a live auction. Showing the top bid means editing the page by hand.</li>
<li><strong>Nothing checks the bid.</strong> A bid below the current top, or a typo, still arrives. You sort it out afterwards.</li>
<li><strong>No end time.</strong> You have to remove or hide the form yourself when the auction closes.</li>
<li><strong>Fake bids.</strong> Anyone can type any email address.</li>
</ul>
<p><strong>Fits best:</strong> a one-off sealed-bid sale of a few items, where you are happy to do the admin.</p>
<h3>Option 2: a product page plus manual updates</h3>
<p>You can list the item in Wix Stores and change the price by hand as bids come in, or hide it when the auction is over. Wix lets you hide a product from the store with the <strong>Show in online store</strong> toggle, and mark it out of stock (<a href="https://support.wix.com/en/article/wix-stores-managing-product-visibility">Wix guide</a>). Wix can't hide a product automatically when it sells out (<a href="https://support.wix.com/en/article/wix-stores-request-automatically-hiding-out-of-stock-items">Wix request</a>).</p>
<p>What it can't do: it is a fixed-price sale, so the first person to check out wins at the price shown, not the highest bidder. Use it only for the winner's payment, for example by creating a product at the winning price after you've picked the winner.</p>
<h3>Option 3: Pay Links for the winner's payment</h3>
<p>Once you know who won, a Wix Pay Link is a quick way to collect. You create a custom amount link in your dashboard, and can set an expiry date and a payment limit. Each payment creates an order (<a href="https://support.wix.com/en/article/wix-pay-links-creating-and-managing-pay-links">Wix guide</a>). Your site needs to be published and upgraded, with a payment method set up.</p>
<p>This solves payment only. It doesn't run the bidding.</p>
<h3>Option 4: embed an outside auction system</h3>
<p><strong>Add Elements &gt; Embed Code &gt; Embed HTML</strong> (or <strong>Embed a site</strong>) puts code or a page from another service on your site. Wix says embeds show only over HTTPS, that some sites don't allow embedding, that the embed is an iframe that doesn't resize responsively, and that Wix doesn't support external code (<a href="https://support.wix.com/en/article/adding-html-code">Wix guide</a>). The auction itself, the bidders and the payment then live on the other service, not in your Wix checkout.</p>
<p><strong>Fits best:</strong> you already use an auction platform and just want it shown on your site.</p>
<h2>When a manual auction stops working</h2>
<p>Manual setups work for a few items. They get hard when you need:</p>
<ul>
<li>the price and a countdown visible to every bidder, updating live</li>
<li>a rule for the smallest allowed bid</li>
<li>protection against last-second bidding</li>
<li>bids that can't be made under someone else's email</li>
<li>one place to see every bid and who won</li>
<li>an automatic email to the winner with a way to pay</li>
</ul>
<p>That is the point to look at an auction app. The <a href="https://kayabyte.dev/guides/wix-auction-apps-compared">comparison of Wix auction apps</a> lists the ones on the App Market.</p>
<h2>What to check in any auction app</h2>
<ol>
<li><strong>Do bidders have to create an account?</strong> Some apps ask visitors to sign up as site members, which puts people off bidding.</li>
<li><strong>Does the countdown run to the second?</strong> And does it update without a page reload?</li>
<li><strong>Is there anti-sniping?</strong> Look for an end time that moves when a bid arrives at the last moment.</li>
<li><strong>How does the winner pay?</strong> In your own Wix checkout, or somewhere else? With your shipping rates and taxes?</li>
<li><strong>What happens when the winner doesn't pay?</strong> Wix has no way to hold a card in advance, so every app needs a plan for this.</li>
<li><strong>Can you remove a bid or block a bidder?</strong></li>
<li><strong>What does it cost, and are there fees on sales?</strong></li>
</ol>
<h2>Our app: Live Auctions &amp; Bidding</h2>
<p>I make <a href="https://go.kayabyte.dev/auctions/page?s=hn-auctions">Live Auctions &amp; Bidding</a>, a Wix app built around that checklist (disclosed: it's mine).</p>
<ul>
<li>Guests bid with a name and email. A one-time email check on the first bid stops fake bids, and there is no sign-up.</li>
<li>Price and countdown update live, to the second.</li>
<li>Soft close: a late bid moves the end by a few minutes. Sealed bids for silent auctions.</li>
<li>When time runs out, the highest bidder gets an email with a link to pay at your own Wix checkout, with your shipping rates, taxes and payment methods.</li>
<li>A dashboard shows every bid, lets you remove a bid or block a bidder, and shows who won and whether they paid. Bidders are saved as contacts with an "Auction bidder" label.</li>
<li>Pro adds a hidden reserve price, Buy now, max bids (the app bids up to a bidder's limit), scheduled starts and offers to the next bidder when a winner doesn't pay.</li>
<li>The bidder page and emails come in 11 languages. There is no commission on sales.</li>
</ul>
<p>The Free plan runs one auction at a time with unlimited bids. Pro is $11.99 a month, or $9.99 a month billed yearly, with a 14-day free trial. It has no reviews yet. <a href="https://go.kayabyte.dev/auctions?s=hn-auctions">See it on the Wix App Market</a>.</p>
<h2>Before your first auction</h2>
<ul>
<li><strong>Connect a payment method</strong> and run a test checkout, so the winner can pay.</li>
<li><strong>Write your rules</strong> where bidders see them: the end time, the payment deadline, shipping or pickup, and what happens if a winner doesn't pay.</li>
<li><strong>Place a test bid</strong> from a second email address, and read the emails bidders will get.</li>
<li><strong>Decide on the reserve</strong> and starting bid before you publish. Changing them after bids arrive upsets bidders.</li>
</ul>
<h2>FAQ</h2>
<p><strong>Does Wix have a built-in auction feature?</strong>
No. Wix's help center lists selling products by auction as a request that is collecting votes, and points to a third-party app.</p>
<p><strong>Can I run an auction with Wix Stores alone?</strong>
Not as a real auction. Wix Stores sells at a set price, so the first customer to check out gets the item. You can use Stores or Pay Links to collect payment from a winner you pick yourself.</p>
<p><strong>Do I need a paid Wix plan?</strong>
To take payments, yes. Wix says your site needs to be upgraded and have a payment method for online payments, including pay links.</p>
<p><strong>How do I stop people bidding in the last second?</strong>
Use an app with a soft close, so a late bid extends the end time. A manual setup can't do this.</p>
<p><strong>Can bidders bid without signing up?</strong>
It depends on the app. Ours takes a name and email and checks the email once.</p>
<p>Last checked: 30 October 2026. Spotted something out of date? Write to <a href="mailto:support@kayabyte.dev">support@kayabyte.dev</a> and I'll fix it.</p>
<h2>Related guides</h2>
<ul>
<li><a href="https://kayabyte.dev/guides/wix-auction-apps-compared">Wix auction apps compared (2026)</a></li>
<li><a href="https://go.kayabyte.dev/auctions/silent?s=hn-auctions">Run a silent auction fundraiser on Wix</a></li>
</ul>
]]></content:encoded></item></channel></rss>