<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kayabyte</title>
    <description>The latest articles on DEV Community by Kayabyte (@kayabyte).</description>
    <link>https://dev.to/kayabyte</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4189978%2F73e94e71-0316-4cd6-be04-aba1861ba697.png</url>
      <title>DEV Community: Kayabyte</title>
      <link>https://dev.to/kayabyte</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kayabyte"/>
    <language>en</language>
    <item>
      <title>How to make Jira fields read-only after approval (what Jira can and cannot do)</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 20:07:19 +0000</pubDate>
      <link>https://dev.to/kayabyte/how-to-make-jira-fields-read-only-after-approval-what-jira-can-and-cannot-do-3gm4</link>
      <guid>https://dev.to/kayabyte/how-to-make-jira-fields-read-only-after-approval-what-jira-can-and-cannot-do-3gm4</guid>
      <description>&lt;p&gt;Full disclosure: I make Record Lock, one of the options below. AI-assisted (grammar help), facts checked.&lt;/p&gt;

&lt;p&gt;Jira Cloud can make a whole work item read-only in a status with the &lt;code&gt;jira.issue.editable&lt;/code&gt; workflow property, but it has no setting that makes chosen fields read-only after approval. Screens work per operation and work type, not per status, and UI modifications only cover some views.&lt;/p&gt;

&lt;p&gt;A change is approved by the CAB, a requirement is signed off, a ticket is resolved. From then on, some fields should stay exactly as they were: the description of what was approved, the due date that was agreed, the fix version that shipped. Here is what Jira Cloud can do on its own, what each option misses, and how to keep an audit trail of changes that happen anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: the jira.issue.editable status property
&lt;/h2&gt;

&lt;p&gt;In a company-managed workflow you can add a property to a status. With &lt;code&gt;jira.issue.editable&lt;/code&gt; set to &lt;code&gt;false&lt;/code&gt;, work items in that status can't be edited.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to Settings &amp;gt; Work items &amp;gt; Workflows and edit the workflow.&lt;/li&gt;
&lt;li&gt;Select the status, for example Approved or Done, and open its properties.&lt;/li&gt;
&lt;li&gt;Add the key &lt;code&gt;jira.issue.editable&lt;/code&gt; with the value &lt;code&gt;false&lt;/code&gt;, and publish the workflow.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What it misses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It locks the whole work item, not chosen fields. Every field is read-only in that status, and logging work counts as an edit too. Bulk edit no longer offers custom fields for those work items.&lt;/li&gt;
&lt;li&gt;Your own automation stops too. Automation rules can't edit the fields of a work item in that status; the rule fails. Status properties that grant permissions don't override it either (JRACLOUD-63580), so you can't let one team keep editing.&lt;/li&gt;
&lt;li&gt;Company-managed projects only. Team-managed projects have no way to restrict editing by status (JRACLOUD-87543).&lt;/li&gt;
&lt;li&gt;Jira admins and apps can override it: the REST API's edit call has an &lt;code&gt;overrideEditableFlag&lt;/code&gt; option for people with the Administer Jira permission and for apps.&lt;/li&gt;
&lt;li&gt;It is tied to the status. Move the work item back to an earlier status and it is editable again, with nothing that records what the approved values were.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 2: field configurations and screens
&lt;/h2&gt;

&lt;p&gt;A field configuration decides whether a field is shown, hidden or required, its description and its renderer. There is no read-only setting.&lt;/p&gt;

&lt;p&gt;Screens decide which fields appear when you create, edit or view a work item, per work type. Leaving a field off the edit screen keeps it out of the edit form, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screens are chosen per operation and work type, not per status. A field left off the edit screen can't be edited before approval either.&lt;/li&gt;
&lt;li&gt;Transition screens help at the moment of approval (collect the approver, the agreed date), not afterwards.&lt;/li&gt;
&lt;li&gt;The REST API's edit call lets Jira admins and apps edit fields that aren't on the screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 3: UI modifications (behaviour-style apps)
&lt;/h2&gt;

&lt;p&gt;Apps can change how fields behave in the Jira UI, including making them read-only, through Jira's UI modifications. They apply in the views the module supports: global create, the work item view and the transition dialog, plus some Jira Service Management views.&lt;/p&gt;

&lt;p&gt;What it misses: bulk edit, Jira Automation, CSV imports, other apps and REST API calls don't go through those views, so a field that looks read-only on screen can still change.&lt;/p&gt;

&lt;h2&gt;
  
  
  The audit trail angle
&lt;/h2&gt;

&lt;p&gt;Often the question isn't only "can it be changed" but "can we show what was approved, and everything that happened since". The History tab on a work item lists every field change with who made it and when. That is a good start, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It shows changes, not the approved state. To show an auditor what the record looked like at approval, someone has to work backwards through the history.&lt;/li&gt;
&lt;li&gt;It doesn't say whether a change was allowed, or by whom it should have been approved.&lt;/li&gt;
&lt;li&gt;Exporting history for many work items over a date range needs the REST API or a script.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build your own process, decide these first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a record counts as approved: entering a status, getting a resolution, or some time after it was created.&lt;/li&gt;
&lt;li&gt;Which fields must stay as approved, and which may keep changing (comments, time tracking, links).&lt;/li&gt;
&lt;li&gt;Who may still change them, for example a change manager group, and whether those changes become the new approved values.&lt;/li&gt;
&lt;li&gt;What happens to other changes: log them only, or put the approved value back.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 4: Record Lock for Jira
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://go.kayabyte.dev/atl/record-lock?s=dv-record-lock" rel="noopener noreferrer"&gt;Record Lock for Jira&lt;/a&gt; is the app I make for this. It locks the fields you choose, not the whole work item, and keeps an audit trail of every attempt to change them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lock rules per project and work type, triggered when work enters a status, gets a resolution or is created (with an optional grace period). Works in company-managed and team-managed projects.&lt;/li&gt;
&lt;li&gt;Every later change to a locked field is checked, whether it comes from the work item view, bulk edit, Jira Automation, an import, another app or the REST API. In Audit only mode it is logged; in Enforce mode the approved value is put back within seconds, without notifications, and logged.&lt;/li&gt;
&lt;li&gt;Exempt groups or project roles can still make changes, which are logged and become the new approved values. Jira Automation edits can be allowed per rule.&lt;/li&gt;
&lt;li&gt;Each lock stores the approved values with a SHA-256 hash. You can verify a work item at any time, unlock with a logged reason, and export the audit log and snapshots as CSV for a date range.&lt;/li&gt;
&lt;li&gt;Find locked work items with &lt;code&gt;recordLocked = yes&lt;/code&gt; in JQL.&lt;/li&gt;
&lt;li&gt;It runs on Atlassian Forge and makes no calls outside Atlassian. Free for up to 10 users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The limit: the screen still lets people type into a locked field. The change is put back and logged rather than blocked in the form. If you need the field to be greyed out, Record Lock is not that.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does &lt;code&gt;jira.issue.editable = false&lt;/code&gt; also stop logging work?&lt;/strong&gt; Yes. Logging work counts as an edit, and bulk edit no longer offers custom fields for those work items.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can Jira Automation edit a work item in a status with &lt;code&gt;jira.issue.editable = false&lt;/code&gt;?&lt;/strong&gt; No. Automation rules can't edit its fields; the rule fails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this work in team-managed projects?&lt;/strong&gt; The status property does not. Team-managed projects have no way to restrict editing by status.&lt;/p&gt;

&lt;p&gt;Jira and Atlassian are trademarks of Atlassian. I'm an independent developer and not affiliated with Atlassian.&lt;/p&gt;

&lt;p&gt;Original guide: &lt;a href="https://kayabyte.dev/atlassian/guides/jira-field-read-only-after-approval" rel="noopener noreferrer"&gt;https://kayabyte.dev/atlassian/guides/jira-field-read-only-after-approval&lt;/a&gt;&lt;/p&gt;

</description>
      <category>jira</category>
      <category>atlassian</category>
      <category>productivity</category>
    </item>
    <item>
      <title>HubSpot API: how to get attachments from notes and emails (hs_attachment_ids)</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 19:57:50 +0000</pubDate>
      <link>https://dev.to/kayabyte/hubspot-api-how-to-get-attachments-from-notes-and-emails-hsattachmentids-1612</link>
      <guid>https://dev.to/kayabyte/hubspot-api-how-to-get-attachments-from-notes-and-emails-hsattachmentids-1612</guid>
      <description>&lt;p&gt;Attachments in HubSpot are not a property of the contact. They hang off engagements (notes, emails, calls, meetings, tasks) that are associated with the record. This is the chain of calls, the scopes, and why Files API calls return 404 or 429. Endpoint paths and findings below are what we used and saw while building an exporter on 11-12 November 2026 (API date version 2026-09); check HubSpot's reference for your version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The chain
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Find the records.&lt;/strong&gt; Read contacts, companies, deals or tickets with the CRM objects API (&lt;code&gt;/crm/objects/2026-09/{objectType}&lt;/code&gt;, search or batch read), or the members of a list (&lt;code&gt;/crm/lists/2026-09/{listId}/memberships&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find their engagements.&lt;/strong&gt; Use the associations batch read (&lt;code&gt;POST /crm/associations/2026-09/{fromType}/{toType}/batch/read&lt;/code&gt;) from the record type to notes, emails, calls, meetings and tasks. Page through results when a record has many.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the attachment IDs.&lt;/strong&gt; Batch-read the engagements with the properties &lt;code&gt;hs_attachment_ids&lt;/code&gt; and &lt;code&gt;hs_timestamp&lt;/code&gt;. &lt;code&gt;hs_attachment_ids&lt;/code&gt; is a semicolon-separated string of file IDs, or empty. We saw the property on all five engagement types.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the file.&lt;/strong&gt; &lt;code&gt;GET /files/2026-09/files/{fileId}&lt;/code&gt; returns the name, extension, size and access level. HubSpot's &lt;code&gt;type&lt;/code&gt; field is a category such as DOCUMENT or IMG, not a MIME type, so derive the MIME type from the extension. The Files search call (&lt;code&gt;GET /files/2026-09/files/search?ids=...&lt;/code&gt;) returns metadata for up to 100 files at once, and files that do not come back are not visible to your token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download it.&lt;/strong&gt; Public files can be fetched from their URL. Private files return 404 there; request a signed URL with &lt;code&gt;GET /files/2026-09/files/{fileId}/signed-url&lt;/code&gt; and download from that.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Scopes
&lt;/h2&gt;

&lt;p&gt;In our build the working set for read-only access was: &lt;code&gt;files.read&lt;/code&gt;, &lt;code&gt;files.ui_hidden.read&lt;/code&gt;, &lt;code&gt;crm.objects.contacts.read&lt;/code&gt; (also enough for notes, calls, meetings and tasks in our tests), &lt;code&gt;crm.objects.companies.read&lt;/code&gt;, &lt;code&gt;crm.objects.deals.read&lt;/code&gt;, &lt;code&gt;crm.objects.tickets.read&lt;/code&gt;, &lt;code&gt;crm.lists.read&lt;/code&gt; and &lt;code&gt;sales-email-read&lt;/code&gt; for emails. The older scope names &lt;code&gt;files&lt;/code&gt; and &lt;code&gt;tickets&lt;/code&gt; are now &lt;code&gt;files.read&lt;/code&gt; and &lt;code&gt;crm.objects.tickets.read&lt;/code&gt;: an upload with the old names failed. Files marked hidden (an attachment added through the UI is HIDDEN_PRIVATE) are covered by &lt;code&gt;files.ui_hidden.read&lt;/code&gt;. In our test a note attachment was readable with &lt;code&gt;files.read&lt;/code&gt; alone, but we ask for the hidden-files scope anyway so no hidden file type is missed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you get 404
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The file was deleted (HubSpot may mark it archived).&lt;/li&gt;
&lt;li&gt;The file is private and you used its normal URL instead of a signed URL.&lt;/li&gt;
&lt;li&gt;The file is hidden and your token may lack &lt;code&gt;files.ui_hidden.read&lt;/code&gt;. In our test a note attachment (access level HIDDEN_PRIVATE) was readable with &lt;code&gt;files.read&lt;/code&gt; alone, so this was not the cause there; we did not test other hidden file types such as email attachments, which is why we request the scope anyway.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat a 404 as "missing" only after you have checked the scopes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sensitive files
&lt;/h2&gt;

&lt;p&gt;Files with a sensitive access level cannot be fetched with a signed URL ("Cannot access sensitive file"). HubSpot's download endpoint for them needs a separate permission that staff describe as for privately distributed apps. Whether a Marketplace app can request it is something we did not confirm, so our app does not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rate limits
&lt;/h2&gt;

&lt;p&gt;HubSpot's documentation gives Marketplace OAuth apps 110 requests per 10 seconds per installing account (CRM search has its own limit). Read the &lt;code&gt;X-HubSpot-RateLimit&lt;/code&gt; headers and wait for &lt;code&gt;Retry-After&lt;/code&gt; on a 429. A large export is many calls: metadata for each file and one signed URL per private file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other traps we met
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HubSpot renames same-named uploads, so two files can have names that look unrelated.&lt;/li&gt;
&lt;li&gt;Names can contain characters that are illegal on Windows or macOS paths; clean them before writing to disk.&lt;/li&gt;
&lt;li&gt;The Files API import-from-URL refused to create hidden files in our test account, so test data for hidden attachments has to be made in the HubSpot UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to use an app instead
&lt;/h2&gt;

&lt;p&gt;If you need this once or twice, a script is fine. If you need a manifest, restart after a failure and many thousands of files, you are building an exporter. Full disclosure: we built &lt;a href="https://kayabyte.dev/hubspot/attachment-exporter/?src=devto" rel="noopener noreferrer"&gt;Attachment Exporter: Bulk File Download&lt;/a&gt;, which does this chain, streams files into zips and writes the manifest. Free to 250 files, then packs from USD 49; it installs from our site, not the HubSpot Marketplace.&lt;/p&gt;

&lt;p&gt;Original with FAQ: &lt;a href="https://kayabyte.dev/hubspot/guides/hubspot-api-attachments-hs-attachment-ids" rel="noopener noreferrer"&gt;https://kayabyte.dev/hubspot/guides/hubspot-api-attachments-hs-attachment-ids&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted: written with AI help for grammar and layout, facts checked by a person. HubSpot is a registered trademark of HubSpot, Inc.; Kayabyte is an independent developer and not affiliated with HubSpot.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hubspot</category>
      <category>api</category>
      <category>crm</category>
    </item>
    <item>
      <title>How to copy Wix Bookings services to another Wix site</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 19:24:03 +0000</pubDate>
      <link>https://dev.to/kayabyte/how-to-copy-wix-bookings-services-to-another-wix-site-4m48</link>
      <guid>https://dev.to/kayabyte/how-to-copy-wix-bookings-services-to-another-wix-site-4m48</guid>
      <description>&lt;p&gt;By Kayabyte&lt;/p&gt;

&lt;p&gt;Full disclosure: we make Copy Bookings to Another Site, the app in option 3.&lt;/p&gt;

&lt;p&gt;You can't move a Wix Bookings setup from one site to another with a button. Wix lists it as a feature request and says: "Currently, you cannot transfer your Wix Bookings App from one site to another." So what are the options?&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: duplicate the whole site
&lt;/h2&gt;

&lt;p&gt;In the dashboard, use the Site Actions menu and choose Duplicate Site. Wix's article lists what a duplicate does not carry over: store orders and invoices, contacts and members, settings for third-party apps, email campaigns and some other items. It doesn't say what happens to your Bookings services, so open the duplicate and check them before relying on it.&lt;/p&gt;

&lt;p&gt;You get the whole site, design included. If you only want the Bookings setup on a site that already has its own design, it is the wrong tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: rebuild by hand
&lt;/h2&gt;

&lt;p&gt;Install Wix Bookings on the new site and create each category, service, policy and staff member again, then set working hours and the sessions of each class or course. For a handful of services this is an afternoon. For an agency that sets up the same salon or studio on many client sites, or a business with one site per location, it is the same afternoon every time, and details drift between sites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: copy the setup with an app
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://go.kayabyte.dev/bookingscopy?s=dv-copybook" rel="noopener noreferrer"&gt;Copy Bookings to Another Site&lt;/a&gt; reads the setup on one of your sites and creates it on another. It copies services of all three types (appointments, classes, courses) with price, duration, capacity, description and images, categories, booking policies, staff and their custom working hours, and upcoming sessions. Optionally the default business hours too.&lt;/p&gt;

&lt;p&gt;How it works: install the app and Wix Bookings on both sites. On the old site click Show code. On the new site enter the code, read the check (what will be created, what already exists, what can't be copied) and click Copy now. A report lists what was copied and what was skipped.&lt;/p&gt;

&lt;p&gt;What it does not do: it never copies bookings, customers or members, and not pricing plans, custom booking forms, add-ons, price options, rooms and equipment or business locations. Services that depend on those are listed in the check with the reason. If the two sites use different currencies, paid services are not copied. It only adds to the new site and matches existing items by name (staff by email), so you can run it again after changing the old site.&lt;/p&gt;

&lt;p&gt;Free: the check plus 3 services per site. Paid: $29 one-time for 30 services or $79 one-time for any number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Same site design with a new name: duplicate the site and check Bookings in the copy.&lt;/li&gt;
&lt;li&gt;One or two services: rebuild by hand.&lt;/li&gt;
&lt;li&gt;Many sites, or many services, staff and hours: use an app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full guide with the FAQ is on &lt;a href="https://kayabyte.dev/guides/copy-wix-bookings-services-to-another-site?s=dv-copybook" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wix</category>
      <category>webdev</category>
      <category>smallbusiness</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Several rental properties on one Wix site: separate calendars and Airbnb links</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 08:05:23 +0000</pubDate>
      <link>https://dev.to/kayabyte/several-rental-properties-on-one-wix-site-separate-calendars-and-airbnb-links-4f5i</link>
      <guid>https://dev.to/kayabyte/several-rental-properties-on-one-wix-site-separate-calendars-and-airbnb-links-4f5i</guid>
      <description>&lt;p&gt;By Kayabyte&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I make Stay Direct, a booking app for Wix sites that I describe at the end.&lt;/strong&gt; What I say about Wix comes from Wix’s own help pages, linked below. Checked on 11 November 2026.&lt;/p&gt;

&lt;p&gt;If you rent out two, three or five cabins or apartments, you want one Wix site where each property has its own calendar, its own price and its own Airbnb link. This page covers what Wix Hotels by HotelRunner allows, the usual workarounds, and what to look for in a booking app.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Wix Hotels allows
&lt;/h2&gt;

&lt;p&gt;For the current version of Wix Hotels by HotelRunner, Wix says “it is not possible to set up your hotel at multiple locations” (&lt;a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-request-setting-up-multiple-locations-for-your-hotel" rel="noopener noreferrer"&gt;Wix feature request&lt;/a&gt;). Channels follow the same rule: “You can connect only one Hotel ID from each channel to each Wix Hotels by HotelRunner account” (&lt;a href="https://support.wix.com/en/article/wix-hotels-by-hotelrunner-connecting-bookingcom-to-your-site" rel="noopener noreferrer"&gt;Wix guide&lt;/a&gt;). An owner with several Airbnb listings asked about this on the Wix forum in February 2026 and the thread has no answer (&lt;a href="https://forum.wixstudio.com/t/wix-hotels-multiple-properties/76656" rel="noopener noreferrer"&gt;forum&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Three ways to handle several properties
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One Wix site per property.&lt;/strong&gt; Each site has its own booking setup and channels. It works for two properties and gets tiring at five, because prices, rules and photos are kept in several places.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A property management system embedded on your site.&lt;/strong&gt; This is the usual route for managers with many listings, and it can push rates to booking sites. It costs more and is built for larger operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A booking calendar app that supports several properties on one site.&lt;/strong&gt; Each property has its own calendar, price and rules. Other sites are linked by iCal, which shares dates only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to check in any app before you choose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Does each property have its &lt;strong&gt;own iCal import and export link&lt;/strong&gt;, so Airbnb listing A never blocks property B?&lt;/li&gt;
&lt;li&gt;Can you set &lt;strong&gt;prices, seasons and minimum stays per property&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;Do guests see &lt;strong&gt;one search across all properties&lt;/strong&gt; with the total price for their dates?&lt;/li&gt;
&lt;li&gt;How does it take payment? Wix apps normally use your site’s checkout, which needs a Premium plan that accepts payments.&lt;/li&gt;
&lt;li&gt;How often are imported calendars read, and how often do Airbnb and Booking.com read yours? iCal is never instant. See &lt;a href="https://kayabyte.dev/guides/sync-airbnb-calendar-with-wix-site?s=dv-stay-multi" rel="noopener noreferrer"&gt;Sync Airbnb with your Wix site without double bookings&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Stay Direct handles it (mine)
&lt;/h2&gt;

&lt;p&gt;Full disclosure: I built &lt;a href="https://go.kayabyte.dev/stay?s=dv-stay-multi" rel="noopener noreferrer"&gt;Stay Direct&lt;/a&gt;. Each property has its own nightly price, weekend price, seasons, minimum stay, cleaning fee, deposit, calendar and calendar links. It reads each property’s imported iCal links about every 15 minutes and gives you an export link with your direct bookings. The Free plan covers 1 property, 5 online bookings a month and 1 synced calendar. Pro covers up to 5 properties, unlimited online bookings, every calendar, a search across your properties, a pre-arrival email and a calendar link for your cleaner. Business covers up to 200 properties. Pro is $9.99 a month, or $8.29 a month billed yearly, with a 14-day free trial billed by Wix.&lt;/p&gt;

&lt;p&gt;What it does not do: it is not a channel manager and does not push rates to Airbnb or Booking.com, and a booking made on another site can overlap until the next import. It is built for small places, not a 30-room hotel.&lt;/p&gt;

&lt;p&gt;It is on the &lt;a href="https://go.kayabyte.dev/stay?s=dv-stay-multi" rel="noopener noreferrer"&gt;Wix App Market&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can Wix Hotels by HotelRunner run several properties on one site?&lt;/strong&gt; No. Wix says multiple locations aren’t possible, and each channel connects to one hotel ID per account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can each property have its own Airbnb calendar link?&lt;/strong&gt; With iCal, yes: you import one link per property and give each site your own export link. Check that the tool keeps them separate per property.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need a channel manager for three or four cabins?&lt;/strong&gt; Not necessarily. A channel manager pushes rates and content to booking sites. If you only need to avoid double bookings and take direct bookings, calendar links are often enough, with the delay that comes with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many properties does the Stay Direct Pro plan cover?&lt;/strong&gt; Up to 5. Business covers up to 200.&lt;/p&gt;

&lt;p&gt;Last checked: the Wix pages above and the Stay Direct page on 11 November 2026. Spotted something out of date? Write to &lt;a href="mailto:support@kayabyte.dev"&gt;support@kayabyte.dev&lt;/a&gt; and I’ll fix it.&lt;/p&gt;

&lt;p&gt;The full guide is on &lt;a href="https://kayabyte.dev/guides/wix-several-rental-properties-one-site?s=dv-stay-multi" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wix</category>
      <category>webdev</category>
      <category>travel</category>
      <category>smallbusiness</category>
    </item>
    <item>
      <title>Wix and Xero integration apps compared (2026)</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 06:28:40 +0000</pubDate>
      <link>https://dev.to/kayabyte/wix-and-xero-integration-apps-compared-2026-10ak</link>
      <guid>https://dev.to/kayabyte/wix-and-xero-integration-apps-compared-2026-10ak</guid>
      <description>&lt;p&gt;Wix has no built-in Xero connection, so stores use an app from the Wix App Market to get orders into their books. Searching the App Market for "xero" on 6 November 2026 returned seven apps that connect Wix to Xero. They differ in what they send (orders, payments, fees, inventory), how they record it, and what they cost. This page lists what each one says it does, so you can shortlist two or three and try them with Xero's Demo Company before connecting your real books.&lt;/p&gt;

&lt;h2&gt;
  
  
  The apps at a glance
&lt;/h2&gt;

&lt;p&gt;Ratings and trials are as shown in the Wix App Market on 6 November 2026. Check each listing for current prices.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;What its listing says it does&lt;/th&gt;
&lt;th&gt;Trial or free plan&lt;/th&gt;
&lt;th&gt;Rating (reviews)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Xero Bridge by Parex&lt;/td&gt;
&lt;td&gt;Integrate your data with Xero&lt;/td&gt;
&lt;td&gt;7-day free trial&lt;/td&gt;
&lt;td&gt;4.2 (33)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xero Sync by Amaka&lt;/td&gt;
&lt;td&gt;Automatically sync sales and fees to Xero&lt;/td&gt;
&lt;td&gt;Free plan&lt;/td&gt;
&lt;td&gt;1.0 (1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synder&lt;/td&gt;
&lt;td&gt;Auto-post sales to QuickBooks, Xero or NetSuite&lt;/td&gt;
&lt;td&gt;15-day free trial&lt;/td&gt;
&lt;td&gt;5.0 (3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dext Commerce&lt;/td&gt;
&lt;td&gt;Sync sales and fees with Xero and QuickBooks&lt;/td&gt;
&lt;td&gt;14-day free trial&lt;/td&gt;
&lt;td&gt;no reviews yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xero (CarryTheOne)&lt;/td&gt;
&lt;td&gt;Import orders, refunds, customers, items, fees&lt;/td&gt;
&lt;td&gt;30-day free trial&lt;/td&gt;
&lt;td&gt;no reviews yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Payout&lt;/td&gt;
&lt;td&gt;Sync to Xero, FreshBooks and QuickBooks&lt;/td&gt;
&lt;td&gt;30-day free trial&lt;/td&gt;
&lt;td&gt;2.1 (6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QuickSync for Xero&lt;/td&gt;
&lt;td&gt;Xero connector for tracked inventory and items&lt;/td&gt;
&lt;td&gt;Free plan&lt;/td&gt;
&lt;td&gt;no reviews yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accounting Sync for Stores (ours)&lt;/td&gt;
&lt;td&gt;Paid orders to Xero invoices, payments and refunds&lt;/td&gt;
&lt;td&gt;14-day trial&lt;/td&gt;
&lt;td&gt;new&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Two different ways to record sales
&lt;/h2&gt;

&lt;p&gt;Before comparing features, decide how you want sales to appear in Xero:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One invoice per order.&lt;/strong&gt; Each paid order becomes a sales invoice with its lines, tax and the payment applied, and refunds become credit notes. You can open any order in Xero, and customer history is kept. This suits stores that want order-level detail or that reconcile individual payments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily or payout summaries.&lt;/strong&gt; Sales are grouped into one entry per day or per payout, often with processor fees split out. Fewer documents in Xero, and payouts match your bank feed. This suits busy stores that only need totals.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some apps do one, some the other, some both. Ask before you buy, because switching later means reworking past periods.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check in any of them
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Payments.&lt;/strong&gt; Is the invoice marked paid in Xero, or left as awaiting payment for you to record?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refunds and cancellations.&lt;/strong&gt; Does a refund become a credit note with a refund payment? What happens when an order is cancelled?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tax.&lt;/strong&gt; Can you match each tax your store charges to a Xero tax rate? Do tax-inclusive prices stay tax-inclusive?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discounts, shipping and extra fees.&lt;/strong&gt; Are they separate lines with the right account and tax?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicates.&lt;/strong&gt; If the app retries after an error, could the same order reach Xero twice?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Errors you can see.&lt;/strong&gt; Is there a log that shows each order and why one failed, with a way to retry?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fees and payouts.&lt;/strong&gt; Wix does not share payment processor fees or payout batches with every app. If fees matter to you, check where an app gets them from.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Earlier orders.&lt;/strong&gt; Can past orders be imported, and how far back?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where Accounting Sync for Stores fits
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.wix.com/app-market/a5917913-6b23-4bfa-a8cb-6aa0898b50fe" rel="noopener noreferrer"&gt;Accounting Sync for Stores&lt;/a&gt; is our app, so read this part with that in mind. It records one invoice per paid order with the payment applied, credit notes with refund payments for refunds, and voids for cancelled unpaid invoices. Each store tax is matched to a Xero tax rate, and tax-inclusive and tax-exclusive prices are both supported. A Sync log shows every order with a link to its invoice in Xero, and anything that needs you comes with an explanation and a Retry button. It does not sync processor fees, payouts or inventory. Plans start at $6 a month with a 14-day trial.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to test before you commit
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In Xero, open the Demo Company (from your organisation menu) so tests never touch your real books.&lt;/li&gt;
&lt;li&gt;Install the app you are testing and connect it to the Demo Company.&lt;/li&gt;
&lt;li&gt;Create a test order in Wix (Sales &amp;gt; Orders &amp;gt; Add New Order), mark it as paid, then refund part of it.&lt;/li&gt;
&lt;li&gt;In Xero, check the invoice total, tax, payment and credit note against the Wix order.&lt;/li&gt;
&lt;li&gt;Only then connect your real organisation, and pick the date your Xero books should start from.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;More: &lt;a href="https://kayabyte.dev/guides/connect-wix-stores-to-xero" rel="noopener noreferrer"&gt;How to connect Wix Stores to Xero&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full disclosure: Accounting Sync for Stores is an app we (Kayabyte) built. This comparison first appeared on &lt;a href="https://kayabyte.dev/guides/wix-xero-apps-compared" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wix</category>
      <category>xero</category>
      <category>accounting</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>Google all-day events and buffer time not blocking Wix Bookings: why, and the fix</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Thu, 12 Nov 2026 06:28:06 +0000</pubDate>
      <link>https://dev.to/kayabyte/google-all-day-events-and-buffer-time-not-blocking-wix-bookings-why-and-the-fix-8mo</link>
      <guid>https://dev.to/kayabyte/google-all-day-events-and-buffer-time-not-blocking-wix-bookings-why-and-the-fix-8mo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Wix Bookings' built-in calendar sync does not block time for Google all-day events, and it does not add your service's buffer time to busy slots from your personal calendar. So a holiday entered as an all-day event, or a dentist appointment that needs travel time around it, can still be booked. Either block those times by hand in Wix, or link the calendar with an app that blocks all-day events and adds buffers, such as Calendar Sync for Bookings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why all-day events don't block
&lt;/h2&gt;

&lt;p&gt;Wix lists both limits in its help article &lt;a href="https://support.wix.com/en/article/wix-bookings-about-syncing-personal-calendars-with-wix-bookings" rel="noopener noreferrer"&gt;"Syncing personal calendars with Wix Bookings"&lt;/a&gt;: Google all-day events do not block time, and buffer time is not added to busy slots.&lt;/p&gt;

&lt;p&gt;Google Calendar also marks all-day events as &lt;strong&gt;Free&lt;/strong&gt; by default (the "Show as" setting), because birthdays and reminders are all-day events too. Calendar tools that only look at busy time skip them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 1: block the days by hand
&lt;/h2&gt;

&lt;p&gt;In the Wix dashboard, &lt;strong&gt;Booking Calendar &amp;gt; Add &amp;gt; Blocked staff time&lt;/strong&gt; blocks a period for one staff member. It works for holidays planned weeks ahead. It does not update when the calendar changes, and you have to remember to do it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix 2: let all-day events and buffers block automatically
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.wix.com/app-market/kayabyte-calendar-sync-for-bookings" rel="noopener noreferrer"&gt;Calendar Sync for Bookings&lt;/a&gt; (our app) reads the staff member's calendar through its private iCal address (Google: Settings &amp;gt; Settings for my calendars &amp;gt; Integrate calendar &amp;gt; Secret address in iCal format) and turns busy time into blocks on their Wix schedule:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;All-day events&lt;/strong&gt; block the whole day by default, even when Google marks them as free. Per calendar you can switch to "only when marked busy" or "never", so birthdays need not block anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buffer time&lt;/strong&gt; (paid plan): extra minutes before and after every busy event, 0 to 120, so travel or preparation time is kept free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignore words&lt;/strong&gt; (paid plan): skip events whose title contains words such as "birthday" or "reminder".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why is this time blocked?&lt;/strong&gt; in the dashboard lists every block with the events behind it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The free plan covers 1 staff member with 1 calendar, checked every hour; Pro ($9 per month) covers up to 10 staff members with 5 calendars each, checked every 10 minutes, 180 days ahead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which days count
&lt;/h2&gt;

&lt;p&gt;All-day events are read in your site's time zone (Wix dashboard &amp;gt; Settings &amp;gt; Language &amp;amp; region), so a holiday blocks your local day from midnight to midnight, also across daylight-saving changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can I make Google all-day events busy instead?&lt;/strong&gt;&lt;br&gt;
Yes: open the event, set &lt;strong&gt;Show as: Busy&lt;/strong&gt;. Wix's built-in sync still ignores all-day events, so this helps only with tools that read busy all-day events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does buffer time in the Wix service settings help?&lt;/strong&gt;&lt;br&gt;
The service buffer keeps time free between bookings in Wix. It is not added around busy events that come from your personal calendar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will clients see why a time is not available?&lt;/strong&gt;&lt;br&gt;
No. They only see that the time is not offered. Blocks are called "Busy (Calendar Sync)" and event titles never appear on your site.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Cc83J8J6uzw" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full disclosure: Calendar Sync for Bookings is an app we (Kayabyte) built. This guide first appeared on &lt;a href="https://kayabyte.dev/guides/wix-bookings-all-day-events-buffer-time" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wix</category>
      <category>googlecalendar</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Wix Bookings and Outlook: sync Microsoft 365, Exchange or Outlook.com calendars</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Wed, 11 Nov 2026 17:46:15 +0000</pubDate>
      <link>https://dev.to/kayabyte/wix-bookings-and-outlook-sync-microsoft-365-exchange-or-outlookcom-calendars-3m8j</link>
      <guid>https://dev.to/kayabyte/wix-bookings-and-outlook-sync-microsoft-365-exchange-or-outlookcom-calendars-3m8j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Wix Bookings' built-in sync can connect one Microsoft (Outlook or Office 365) calendar per staff member, a Microsoft calendar can be synced to one site only, and Microsoft Exchange is not supported. If a staff member's busy time lives in an Exchange or company Microsoft 365 calendar, in more than one Outlook calendar, or in Outlook plus a Google or iCloud calendar, publish each Outlook calendar as an ICS link and let an app such as Calendar Sync for Bookings turn the busy times into blocks on that person's Wix schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Wix's own sync does with Outlook
&lt;/h2&gt;

&lt;p&gt;Wix's help article &lt;a href="https://support.wix.com/en/article/wix-bookings-about-syncing-personal-calendars-with-wix-bookings" rel="noopener noreferrer"&gt;"Syncing personal calendars with Wix Bookings"&lt;/a&gt; lists Google, Microsoft and Apple calendars, with these limits that matter for Outlook users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One external calendar per staff member.&lt;/li&gt;
&lt;li&gt;Microsoft Exchange is not supported.&lt;/li&gt;
&lt;li&gt;A Microsoft calendar can be synced to one site only.&lt;/li&gt;
&lt;li&gt;It needs a Business Premium plan and cannot be set up in the Wix mobile app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a solo owner with one Outlook.com calendar this is often enough. It stops working when the business runs on Microsoft 365 or Exchange, when people keep a work and a personal calendar, or when one person works for two sites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: publish the Outlook calendar as an ICS link
&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;Outlook on the web&lt;/strong&gt; (outlook.office.com or outlook.live.com):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Settings&lt;/strong&gt; (gear) &amp;gt; &lt;strong&gt;Calendar&lt;/strong&gt; &amp;gt; &lt;strong&gt;Shared calendars&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Publish a calendar&lt;/strong&gt;, choose the calendar and the level of detail. &lt;strong&gt;Can view when I'm busy&lt;/strong&gt; is enough for blocking bookings and shares no event titles.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Publish&lt;/strong&gt; and copy the &lt;strong&gt;ICS&lt;/strong&gt; link (not the HTML link).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If &lt;strong&gt;Publish a calendar&lt;/strong&gt; is missing or greyed out, your Microsoft 365 administrator has turned off calendar publishing for the organisation. They can allow it for your account in the Exchange admin center (sharing policy), or you can publish a separate calendar that you keep for personal appointments.&lt;/p&gt;

&lt;p&gt;The ICS link always shows the calendar's current events. Anyone who has it can see the busy times (or details, if you chose that), so keep it private; you can unpublish and publish again to get a new link.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: link it to the staff member
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.wix.com/app-market/kayabyte-calendar-sync-for-bookings" rel="noopener noreferrer"&gt;Calendar Sync for Bookings&lt;/a&gt; (our app) reads the ICS link and creates "Busy (Calendar Sync)" blocks on the staff member's Wix schedule, so those times are no longer offered on your booking page:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install it from the Wix App Market and open &lt;strong&gt;Apps &amp;gt; Calendar Sync&lt;/strong&gt; in your dashboard.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Link a calendar&lt;/strong&gt; on the staff member's card and paste the ICS link.&lt;/li&gt;
&lt;li&gt;Within a minute the busy times show in &lt;strong&gt;Booking Calendar&lt;/strong&gt; as blocks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It works with Exchange Online, Microsoft 365 and Outlook.com links, handles Outlook's Windows time zone names and repeating meetings, and lets each staff member link several calendars (Outlook, Google, iCloud) on the paid plan. It checks every hour on the free plan (1 staff member, 1 calendar) and every 10 minutes on Pro ($9 per month, up to 10 staff members with 5 calendars each).&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Wix bookings into Outlook
&lt;/h2&gt;

&lt;p&gt;The other direction works with a subscribed calendar. Calendar Sync for Bookings gives each staff member a private booking feed address; in Outlook on the web choose &lt;strong&gt;Add calendar &amp;gt; Subscribe from web&lt;/strong&gt; and paste it. Outlook refreshes subscribed calendars every few hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does Wix Bookings sync with Exchange?&lt;/strong&gt;&lt;br&gt;
Not with its built-in sync. Publish the Exchange calendar from Outlook on the web as an ICS link and link that to the staff member with an app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does a new Outlook meeting not block my booking page right away?&lt;/strong&gt;&lt;br&gt;
Published ICS links are read on a schedule (every 10 minutes on Pro). Microsoft also caches published calendars for a short time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I hide meeting titles?&lt;/strong&gt;&lt;br&gt;
Yes. Publish with "Can view when I'm busy". The app never shows titles on your site in any case.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Cc83J8J6uzw" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full disclosure: Calendar Sync for Bookings is an app we (Kayabyte) built. This guide first appeared on &lt;a href="https://kayabyte.dev/guides/wix-bookings-outlook-calendar-sync" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wix</category>
      <category>outlook</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Wix forum replacement: what to use now that the Wix Forum app is gone</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Wed, 11 Nov 2026 08:40:40 +0000</pubDate>
      <link>https://dev.to/kayabyte/wix-forum-replacement-what-to-use-now-that-the-wix-forum-app-is-gone-da4</link>
      <guid>https://dev.to/kayabyte/wix-forum-replacement-what-to-use-now-that-the-wix-forum-app-is-gone-da4</guid>
      <description>&lt;p&gt;Wix closed its Forum app and points site owners to Wix Groups, which is built by Wix and is the first thing to try. If you need a topic list, search that covers replies and threads Google can find, a forum app or an outside forum is the better fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened to the Wix Forum app?
&lt;/h2&gt;

&lt;p&gt;Wix's own pages give these dates.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;15 April 2025:&lt;/strong&gt; the Forum app was no longer available in the App Market (&lt;a href="https://support.wix.com/en/article/adding-wix-forum" rel="noopener noreferrer"&gt;Adding Wix Forum&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;15 October 2025:&lt;/strong&gt; posting in Wix Forum was switched off (&lt;a href="https://support.wix.com/en/article/wix-forum-move-your-forum-to-wix-groups" rel="noopener noreferrer"&gt;Wix Forum: Moving your forum to Wix Groups&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 March 2026:&lt;/strong&gt; Wix Forum was discontinued. Wix says forums and all their data are deleted after this date (&lt;a href="https://dev.wix.com/docs/api-reference/business-solutions/forum/introduction" rel="noopener noreferrer"&gt;Wix developer docs&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wix set the October and March dates after site owners complained about the first schedule (&lt;a href="https://forum.wixstudio.com/t/forum-to-groups/70363" rel="noopener noreferrer"&gt;Wix Studio forum thread&lt;/a&gt;). The Forum APIs were deprecated on 15 October 2025, so there is no live Forum app to add back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Wix Groups a good Wix forum replacement?
&lt;/h2&gt;

&lt;p&gt;Wix Groups is made by Wix. It lets you create groups around a shared interest, public or private. Members see new content in a feed, post and comment, and you can ask people questions when they ask to join (&lt;a href="https://support.wix.com/en/article/about-groups-3489207" rel="noopener noreferrer"&gt;Wix Groups: An Overview&lt;/a&gt;, &lt;a href="https://support.wix.com/en/article/creating-a-new-group" rel="noopener noreferrer"&gt;Creating a New Group&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;For a small club, a class or a neighbourhood group that wants a social feed, this is a good fit. I could not find a Wix page that states the cost of Groups, so check your own dashboard and plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does Wix Groups lack compared to a forum?
&lt;/h2&gt;

&lt;p&gt;These points come from site owners in the &lt;a href="https://forum.wixstudio.com/t/forum-to-groups/70363" rel="noopener noreferrer"&gt;Wix Studio forum thread&lt;/a&gt;, not from our own tests. Check each one on your site.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No unique address for each post.&lt;/li&gt;
&lt;li&gt;Search covers posts but not comments.&lt;/li&gt;
&lt;li&gt;No locking, closing comments, moving threads or pinning several posts.&lt;/li&gt;
&lt;li&gt;Email only when a post is created, not when someone replies.&lt;/li&gt;
&lt;li&gt;The group page fills the screen and hides your site's header and menu.&lt;/li&gt;
&lt;li&gt;No approval of posts before they show.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your forum was a place for support questions, or for answers that new visitors should find on Google, these gaps matter more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Wix forum alternative fits my site?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You run&lt;/th&gt;
&lt;th&gt;Try first&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A small club or class with a few dozen members&lt;/td&gt;
&lt;td&gt;Wix Groups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A support forum or a Q&amp;amp;A board for your product&lt;/td&gt;
&lt;td&gt;A forum app, or an outside forum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A very large community with its own moderators&lt;/td&gt;
&lt;td&gt;A hosted forum such as Discourse, linked from your menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A shop where buyers ask about products&lt;/td&gt;
&lt;td&gt;A forum app with product Q&amp;amp;A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;More detail in &lt;a href="https://kayabyte.dev/guides/add-forum-to-wix" rel="noopener noreferrer"&gt;how to add a forum to a Wix site&lt;/a&gt;. To see what Google needs from a forum, read &lt;a href="https://kayabyte.dev/guides/wix-forum-seo" rel="noopener noreferrer"&gt;Wix forum SEO&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do I move my old Wix forum to Wix Groups?
&lt;/h2&gt;

&lt;p&gt;Wix's own article (&lt;a href="https://support.wix.com/en/article/wix-forum-move-your-forum-to-wix-groups" rel="noopener noreferrer"&gt;Moving your forum to Wix Groups&lt;/a&gt;) lists these steps. Wix deleted forum data after 1 March 2026, so check your dashboard first to see whether anything is left.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your site dashboard, go to Forum and click &lt;strong&gt;Move Forum to Wix Groups&lt;/strong&gt; in the banner.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Move Now&lt;/strong&gt;. A progress bar shows the move.&lt;/li&gt;
&lt;li&gt;Open Groups to set each group's preferences, then open the Editor, adjust your group pages and publish.&lt;/li&gt;
&lt;li&gt;Back in Forum, click &lt;strong&gt;Add Members&lt;/strong&gt; next to "Add forum members to your groups."&lt;/li&gt;
&lt;li&gt;Tell your members they can start using groups.&lt;/li&gt;
&lt;li&gt;Set up 301 redirects from your old forum URLs to the new group pages. URLs do not carry over by themselves.&lt;/li&gt;
&lt;li&gt;Delete Wix Forum when the move is done.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Wix says each category becomes a group, and posts, comments and reactions are copied. Analytics, SEO settings, moderation settings and email settings are not. You can move only once, and later posts are not copied. Wix's page is unclear on subcategories, so convert them to ordinary categories before you move.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the app fits
&lt;/h2&gt;

&lt;p&gt;Full disclosure: Kayabyte makes &lt;a href="https://kayabyte.dev/wix/forum/" rel="noopener noreferrer"&gt;Community Forum &amp;amp; Q&amp;amp;A&lt;/a&gt;, so I describe it in more detail than the other options. Other forum apps exist in the Wix App Market.&lt;/p&gt;

&lt;p&gt;It is a forum with categories, search that includes replies, Q&amp;amp;A mode with accepted answers, reply emails, and a moderation queue with lock, pin, move and merge. Each thread gets its own page with all approved replies written out, which gives Google something to read. Data lives in your own site's CMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plans
&lt;/h2&gt;

&lt;p&gt;Free: a full forum with unlimited members and replies, up to 100 threads and 3 categories, and a small "Powered by" link. Pro is $6.99 per month, or $5.59 per month billed yearly, with a 14-day free trial. It adds unlimited threads and categories, no "Powered by" link, private categories, advanced moderation, product Q&amp;amp;A and CSV import and export. Billed by Wix. &lt;a href="https://kayabyte.dev/wix/forum/#plans" rel="noopener noreferrer"&gt;Full plan table&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://go.kayabyte.dev/forum?s=dv-forum-replacement" rel="noopener noreferrer"&gt;Get Community Forum &amp;amp; Q&amp;amp;A on the Wix App Market&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can I still add the old Wix Forum?&lt;/strong&gt;&lt;br&gt;
No. It left the App Market on 15 April 2025 and was discontinued on 1 March 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Wix Groups a forum?&lt;/strong&gt;&lt;br&gt;
It is a group feed with posts and comments. It has some forum features and lacks others. See the list above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will my old forum posts move over automatically?&lt;/strong&gt;&lt;br&gt;
Only if you ran Wix's move to Groups before the deadline. Wix says posts, comments and reactions were copied, but not URLs or SEO settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need to redirect the old forum URLs?&lt;/strong&gt;&lt;br&gt;
Yes. Wix says URLs are not carried over, so set up 301 redirects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is a forum app better than Wix Groups?&lt;/strong&gt;&lt;br&gt;
It depends. Groups is simpler. A forum app gives you topics, search in replies and a page for each thread.&lt;/p&gt;

&lt;p&gt;Wix help checked on 7 November 2026. Wix changes its tools often, so check the pages linked above. Nothing here guarantees a ranking on Google.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/add-forum-to-wix" rel="noopener noreferrer"&gt;How to add a forum to a Wix site: 3 ways&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/wix-forum-seo" rel="noopener noreferrer"&gt;Wix forum SEO: how threads get found on Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/wix/forum/" rel="noopener noreferrer"&gt;Community Forum &amp;amp; Q&amp;amp;A app page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wix</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>community</category>
    </item>
    <item>
      <title>Wix Bookings: sync more than one calendar per staff member (Google, Outlook, iCloud)</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Wed, 11 Nov 2026 08:40:29 +0000</pubDate>
      <link>https://dev.to/kayabyte/wix-bookings-sync-more-than-one-calendar-per-staff-member-google-outlook-icloud-5a4i</link>
      <guid>https://dev.to/kayabyte/wix-bookings-sync-more-than-one-calendar-per-staff-member-google-outlook-icloud-5a4i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Wix Bookings' own calendar sync connects one external calendar per staff member, and for Google it uses the primary calendar only. To block bookings with busy time from several calendars (a work Google calendar, a personal iCloud calendar, an Outlook or Exchange calendar), link each calendar's private iCal address to the staff member with an app such as Calendar Sync for Bookings, which turns all their busy times into blocks on the Wix schedule.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Cc83J8J6uzw" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What Wix Bookings' built-in sync does
&lt;/h2&gt;

&lt;p&gt;Wix's help article &lt;a href="https://support.wix.com/en/article/wix-bookings-about-syncing-personal-calendars-with-wix-bookings" rel="noopener noreferrer"&gt;"Syncing personal calendars with Wix Bookings"&lt;/a&gt; describes the built-in two-way sync with Google, Microsoft and Apple calendars. Its limits, as Wix lists them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One external calendar per staff member.&lt;/li&gt;
&lt;li&gt;With Google, only the primary calendar of the account syncs.&lt;/li&gt;
&lt;li&gt;Microsoft Exchange is not supported.&lt;/li&gt;
&lt;li&gt;All-day events in Google do not block time.&lt;/li&gt;
&lt;li&gt;Buffer time is not added to busy slots.&lt;/li&gt;
&lt;li&gt;It needs a Business Premium plan and cannot be set up in the Wix mobile app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wix collects votes for &lt;a href="https://support.wix.com/en/article/wix-bookings-request-syncing-multiple-calendars-with-wix-bookings" rel="noopener noreferrer"&gt;syncing multiple calendars&lt;/a&gt; and &lt;a href="https://support.wix.com/en/article/request-syncing-your-wix-bookings-calendar-with-additional-google-calendars-in-the-same-google-account" rel="noopener noreferrer"&gt;additional Google calendars in the same account&lt;/a&gt;, so these limits are known.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: put everything into one calendar
&lt;/h2&gt;

&lt;p&gt;If every staff member keeps all their appointments in their primary Google calendar, the built-in sync is enough. In practice people have a work calendar, a personal or family calendar, and sometimes a second employer's Outlook calendar, and copying events between them by hand fails sooner or later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: block time by hand
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Booking Calendar &amp;gt; Add &amp;gt; Blocked staff time&lt;/strong&gt; blocks a period for one staff member. It works for holidays planned weeks ahead, not for a dentist appointment added on a phone this morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: link every calendar with its iCal address
&lt;/h2&gt;

&lt;p&gt;Most calendar services give each calendar a private iCal (ICS) address that always shows its current events:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Calendar:&lt;/strong&gt; Settings &amp;gt; Settings for my calendars &amp;gt; the calendar &amp;gt; Integrate calendar &amp;gt; "Secret address in iCal format".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outlook / Microsoft 365 / Exchange Online / Outlook.com:&lt;/strong&gt; Outlook on the web &amp;gt; Settings &amp;gt; Calendar &amp;gt; Shared calendars &amp;gt; Publish a calendar &amp;gt; "Can view when I'm busy" &amp;gt; Publish &amp;gt; ICS link.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iCloud:&lt;/strong&gt; Calendar &amp;gt; Calendars &amp;gt; (i) &amp;gt; Public Calendar &amp;gt; Share Link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.wix.com/app-market/kayabyte-calendar-sync-for-bookings" rel="noopener noreferrer"&gt;Calendar Sync for Bookings&lt;/a&gt; (our app) reads these addresses for each staff member and creates "Busy (Calendar Sync)" blocks on their Wix schedule, so those times disappear from the booking page. It handles repeating events, time zones and all-day events (blocking the whole day by default), skips events marked free, and on the paid plan adds buffer minutes and ignores events by keyword. It checks every hour on the free plan (1 staff member, 1 calendar) and every 10 minutes on Pro ($9 per month, up to 10 staff members with 5 calendars each).&lt;/p&gt;

&lt;p&gt;What to know about the iCal route:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is read-only and checks on a schedule, so a new appointment blocks bookings at the next check, not instantly.&lt;/li&gt;
&lt;li&gt;The private address gives read access to the calendar: keep it private, and reset it in the calendar app if it leaks (then link the new one).&lt;/li&gt;
&lt;li&gt;Some company Microsoft 365 accounts have calendar publishing turned off by their admin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Getting Wix bookings into your own calendar
&lt;/h2&gt;

&lt;p&gt;The reverse direction (seeing Wix bookings in Google, Apple or Outlook) works with a subscribed calendar: Calendar Sync for Bookings gives each staff member a private booking feed address to add as "From URL" (Google), "New Calendar Subscription" (Apple) or "Subscribe from web" (Outlook). Google refreshes subscribed calendars every few hours; Apple and Outlook more often.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/wix-bookings-outlook-calendar-sync" rel="noopener noreferrer"&gt;Wix Bookings and Outlook: sync Microsoft 365, Exchange or Outlook.com calendars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/wix-bookings-all-day-events-buffer-time" rel="noopener noreferrer"&gt;Google all-day events and buffer time not blocking Wix Bookings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why are my Google all-day events not blocking Wix bookings?&lt;/strong&gt;&lt;br&gt;
Google marks all-day events as "free" by default and Wix's built-in sync does not block all-day events. Calendar Sync for Bookings blocks the whole day by default; you can change that per calendar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can two staff members share one calendar?&lt;/strong&gt;&lt;br&gt;
Yes. Link the same calendar address to both; each gets their own blocks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this work for classes?&lt;/strong&gt;&lt;br&gt;
Blocks apply to appointment services that use staff members. Class and course sessions are scheduled in advance and are not cancelled by blocks.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Full disclosure: Calendar Sync for Bookings is an app we (Kayabyte) built. This guide first appeared on &lt;a href="https://kayabyte.dev/guides/wix-bookings-sync-multiple-calendars" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wix</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Photo proofing on Wix: how clients pick favorite photos for editing</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Wed, 11 Nov 2026 07:53:00 +0000</pubDate>
      <link>https://dev.to/kayabyte/photo-proofing-on-wix-how-clients-pick-favorite-photos-for-editing-nd4</link>
      <guid>https://dev.to/kayabyte/photo-proofing-on-wix-how-clients-pick-favorite-photos-for-editing-nd4</guid>
      <description>&lt;p&gt;By Kayabyte&lt;/p&gt;

&lt;p&gt;Full disclosure: we make Client Gallery &amp;amp; Proofing, the Wix app this guide uses as its example.&lt;/p&gt;

&lt;p&gt;After a shoot you send proofs (preview photos) to the client. The client chooses the ones they want fully edited or printed. A good proofing step has a limit that matches your package (say 30 photos), a place for notes ("lighten this one"), and a clear moment where the client says "this is my final choice".&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a normal gallery does not do this
&lt;/h2&gt;

&lt;p&gt;Wix Pro Gallery and other display galleries show photos, they do not collect choices: no limit, no notes, no "send my selection" step. Clients end up sending file numbers by email or message. Wix Photo Albums used to have favorites lists, but it cannot be added to a new site since April 2024 (&lt;a href="https://support.wix.com/en/article/about-wix-photo-albums" rel="noopener noreferrer"&gt;Wix help&lt;/a&gt;). Another route is a password-protected page, which hides the gallery but still gives the client no way to choose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow with a client gallery app
&lt;/h2&gt;

&lt;p&gt;This is the flow in Client Gallery &amp;amp; Proofing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload the proofs into a gallery. They are stored in your own Media Manager as private files.&lt;/li&gt;
&lt;li&gt;Set the favorites limit for the package, for example 30, and a PIN.&lt;/li&gt;
&lt;li&gt;Send the link and PIN. The client opens it on a phone or computer, no account needed.&lt;/li&gt;
&lt;li&gt;The client taps the heart on each photo. A counter shows "12 of 30 chosen", and at the limit the page asks them to remove one to choose another. They can open a photo full screen and write a note.&lt;/li&gt;
&lt;li&gt;The client sends the selection. A confirm window asks once, because after sending the choices are locked.&lt;/li&gt;
&lt;li&gt;You see the result in your dashboard: the chosen photos with their notes and comments.&lt;/li&gt;
&lt;li&gt;Copy the file names and paste them into your editing software's filter or search. "Copy for Lightroom filter" copies the names in one line.&lt;/li&gt;
&lt;li&gt;If the client wants three more, "Let client change picks" unlocks the selection again.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make the limit generous at first; you can raise it later.&lt;/li&gt;
&lt;li&gt;Use sets (Ceremony, Party) so a client with 400 photos does not scroll one long page.&lt;/li&gt;
&lt;li&gt;Turn on the watermark if you do not want the proofs reused. Free shows a "Preview" overlay; Pro and Studio can burn in your own text or logo.&lt;/li&gt;
&lt;li&gt;Keep downloads off until the client has paid.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Favorites are counted for the whole gallery, across everyone who uses the link, not per person.&lt;/li&gt;
&lt;li&gt;The client cannot change the choice after sending until you reopen it.&lt;/li&gt;
&lt;li&gt;It does not sell prints or files yet, and it does not email clients.&lt;/li&gt;
&lt;li&gt;Free is 1 published gallery with 50 photos. Pro is $12 a month ($10 billed yearly) with 25 galleries and 1,500 photos per gallery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app is on the &lt;a href="https://go.kayabyte.dev/clientgallery?s=dv-proofing" rel="noopener noreferrer"&gt;Wix App Market&lt;/a&gt;. The full guide, with an FAQ, is on &lt;a href="https://kayabyte.dev/guides/wix-client-photo-proofing-favorites?s=dv-proofing" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wix</category>
      <category>photography</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to see who changed a HubSpot property, and when</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Wed, 11 Nov 2026 04:57:21 +0000</pubDate>
      <link>https://dev.to/kayabyte/how-to-see-who-changed-a-hubspot-property-and-when-19kk</link>
      <guid>https://dev.to/kayabyte/how-to-see-who-changed-a-hubspot-property-and-when-19kk</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://kayabyte.dev/hubspot/guides/track-hubspot-property-changes" rel="noopener noreferrer"&gt;kayabyte.dev&lt;/a&gt;. This post was written with AI assistance (grammar help); I checked the facts against HubSpot's docs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A dropdown option disappears, a property gets relabelled, a new field shows up that nobody remembers creating, and a workflow or report quietly breaks. HubSpot keeps two different kinds of history, and it helps to know which one you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Value history&lt;/strong&gt;: what a property's value was on a record (for example, a contact's lifecycle stage last week).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings history&lt;/strong&gt;: changes to the property itself (its label, type, group or dropdown options), which is what breaks forms, workflows and integrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide covers both, starting with what HubSpot has built in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Value history on a record (all plans)
&lt;/h2&gt;

&lt;p&gt;On any record, you can see the history of a property's values: who or what changed it and when (&lt;a href="https://knowledge.hubspot.com/records/view-record-property-history" rel="noopener noreferrer"&gt;HubSpot guide&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;To see value history across many records, export it: go to &lt;strong&gt;Settings &amp;gt; Properties&lt;/strong&gt;, hover over the property, click &lt;strong&gt;More&lt;/strong&gt; and choose &lt;strong&gt;Export property history&lt;/strong&gt;. Tick &lt;strong&gt;Include Source Information&lt;/strong&gt; to see which user or tool made each change (&lt;a href="https://knowledge.hubspot.com/properties/export-property-history" rel="noopener noreferrer"&gt;HubSpot guide&lt;/a&gt;). Limits worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HubSpot keeps up to 45 revisions per contact property and up to 20 per company, deal, ticket and custom object property.&lt;/li&gt;
&lt;li&gt;Dates in the export are in UTC.&lt;/li&gt;
&lt;li&gt;You need CRM export permission and Edit All permission for the object.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This tells you about values on records. It doesn't tell you that someone deleted an option from the dropdown itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Settings history: the audit log (Professional and Enterprise)
&lt;/h2&gt;

&lt;p&gt;HubSpot's centralized audit log includes &lt;strong&gt;Property updates&lt;/strong&gt; and &lt;strong&gt;Conditional property options&lt;/strong&gt; on Professional and Enterprise accounts; Starter accounts don't get those categories (&lt;a href="https://knowledge.hubspot.com/account-management/view-and-export-account-activity-history" rel="noopener noreferrer"&gt;HubSpot guide&lt;/a&gt;).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the &lt;strong&gt;settings&lt;/strong&gt; icon in the top navigation bar.&lt;/li&gt;
&lt;li&gt;In the left panel, under &lt;strong&gt;Account Management&lt;/strong&gt;, click &lt;strong&gt;Audit Logs&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Filter by &lt;strong&gt;Category&lt;/strong&gt;, &lt;strong&gt;Action&lt;/strong&gt;, &lt;strong&gt;Modified by&lt;/strong&gt; and &lt;strong&gt;Date&lt;/strong&gt;, or click &lt;strong&gt;Export report&lt;/strong&gt; to have the current view emailed to you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need &lt;strong&gt;Super Admin&lt;/strong&gt; permissions to view or export audit logs.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;All Logs&lt;/strong&gt; view covers the last 30 days.&lt;/li&gt;
&lt;li&gt;The log only records actions taken by HubSpot users. HubSpot says changes not made by a user aren't shown there.&lt;/li&gt;
&lt;li&gt;HubSpot's article doesn't say that the log shows the old and new values of a property's settings, such as the option list before and after.&lt;/li&gt;
&lt;li&gt;Breeze can summarize the audit log for you if you'd rather ask than filter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Settings at a glance: the property export (all plans)
&lt;/h2&gt;

&lt;p&gt;For a quick check of one property, go to &lt;strong&gt;Settings &amp;gt; Properties&lt;/strong&gt;, hover over it, click &lt;strong&gt;More&lt;/strong&gt; and choose &lt;strong&gt;Export property definition&lt;/strong&gt;. The ZIP file includes the property's details and the user who created it, and for contact, company, deal and ticket properties, the last updated time and update source. &lt;strong&gt;Export all properties&lt;/strong&gt; gives the same basics for every property, with its options and fill rate (&lt;a href="https://knowledge.hubspot.com/properties/organize-and-export-properties" rel="noopener noreferrer"&gt;HubSpot guide&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;That's a snapshot of today, not a history. To spot what changed, you'd have to export regularly and compare the files yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Undo a change
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Archived properties&lt;/strong&gt; go to the &lt;strong&gt;Archived&lt;/strong&gt; tab in property settings and can be restored for 90 days; after that HubSpot deletes them permanently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archived dropdown options&lt;/strong&gt; can be restored from the &lt;strong&gt;Archived options&lt;/strong&gt; tab in the property's &lt;strong&gt;Field type&lt;/strong&gt; settings (&lt;a href="https://knowledge.hubspot.com/properties/manage-enumeration-property-options" rel="noopener noreferrer"&gt;HubSpot guide&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deleted options or a changed label&lt;/strong&gt; have no built-in undo. You put them back by hand, which is easy if you know exactly what the old definition was.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where the built-in options stop
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free and Starter accounts&lt;/strong&gt; have no audit log of property settings changes. Starter's audit log covers logins, security and a few other categories, and Free has no audit log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No option-level diff.&lt;/strong&gt; Even with the audit log, there's no simple view that says "these 3 options were removed from Lead source on Tuesday, and here's what the list looked like before".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only Super Admins&lt;/strong&gt; can see the audit log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No way to put back an old definition&lt;/strong&gt;, such as a previous label, description or option list. HubSpot restores archived properties and options, not earlier versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beyond 30 days&lt;/strong&gt; you're working from exports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No alert.&lt;/strong&gt; Nobody is told when a property that a workflow or integration depends on changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  An app that keeps a nightly change log
&lt;/h2&gt;

&lt;p&gt;Full disclosure: I make an app for this, &lt;a href="https://ecosystem.hubspot.com/marketplace/listing/bulk-property-import-export?src=devto" rel="noopener noreferrer"&gt;Bulk Property Import &amp;amp; Export&lt;/a&gt;. It mainly creates properties and options in bulk from a CSV, and it also keeps a change log of your property settings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every night, and right after each import made with the app, it compares all property definitions with the last check and lists properties and options that were added, changed or archived, down to which options were added, removed or relabeled, with the HubSpot user ID when HubSpot provides it.&lt;/li&gt;
&lt;li&gt;You can filter by object, period or property name.&lt;/li&gt;
&lt;li&gt;On Free, the log shows the last 30 days, on any HubSpot plan, including the free CRM.&lt;/li&gt;
&lt;li&gt;On Pro, it keeps 12 months, can send a weekly email digest of changes, and can put a property's previous definition back with one click (with a preview first).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What it doesn't do: it doesn't track values on records (use HubSpot's property history for that), and since it checks once a night, a change that's made and undone on the same day won't show. It only asks for property settings permissions, so it never sees contact, company, deal or ticket records.&lt;/p&gt;

&lt;p&gt;Pro is free for the first 14 days in a new account. See the &lt;a href="https://kayabyte.dev/hubspot/bulk-property/setup.html?src=devto" rel="noopener noreferrer"&gt;setup guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick answers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can I see who deleted a dropdown option in HubSpot?&lt;/strong&gt; On Professional and Enterprise, check the audit log under property updates (Super Admins only). On other plans there's no built-in record of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How far back does the audit log go?&lt;/strong&gt; The All Logs view shows the last 30 days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I restore a deleted property?&lt;/strong&gt; If it was archived less than 90 days ago, yes, from the Archived tab in property settings.&lt;/p&gt;

&lt;p&gt;Questions or corrections: &lt;a href="mailto:support@kayabyte.dev"&gt;support@kayabyte.dev&lt;/a&gt;. HubSpot is a registered trademark of HubSpot, Inc. Kayabyte is an independent developer and is not affiliated with HubSpot.&lt;/p&gt;

</description>
      <category>hubspot</category>
      <category>crm</category>
      <category>sales</category>
    </item>
    <item>
      <title>What the Wix Accessibility Wizard checks, and what it misses</title>
      <dc:creator>Kayabyte</dc:creator>
      <pubDate>Tue, 10 Nov 2026 15:38:02 +0000</pubDate>
      <link>https://dev.to/kayabyte/what-the-wix-accessibility-wizard-checks-and-what-it-misses-4abi</link>
      <guid>https://dev.to/kayabyte/what-the-wix-accessibility-wizard-checks-and-what-it-misses-4abi</guid>
      <description>&lt;p&gt;A small shop owner runs the Wix Accessibility Wizard, fixes every item it lists and sees a clean result. Then a customer using a screen reader writes to say the checkout is hard to use. Both things can be true. The Wizard does a useful job on most pages, but Wix's own help says plainly that it does not scan some parts of a site. Below is what it checks, what it leaves out, and a short checklist you can run yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Accessibility Wizard checks
&lt;/h2&gt;

&lt;p&gt;Wix's help page &lt;a href="https://support.wix.com/en/article/accessibility-about-the-accessibility-wizard-5119725" rel="noopener noreferrer"&gt;Accessibility: About the Accessibility Wizard&lt;/a&gt; says the Wizard is based on WCAG 2.2. It scans from inside the editor and shows two lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Detected issues&lt;/strong&gt; are split into site level and page level. According to &lt;a href="https://support.wix.com/en/article/accessibility-using-the-accessibility-wizard" rel="noopener noreferrer"&gt;Accessibility: Using the Accessibility Wizard&lt;/a&gt;, the site-level items are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;focus indicators&lt;/li&gt;
&lt;li&gt;the "Skip to Main Content" link&lt;/li&gt;
&lt;li&gt;the main site language&lt;/li&gt;
&lt;li&gt;DOM order (the order a keyboard or screen reader moves through the page)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The page-level items are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;page title&lt;/li&gt;
&lt;li&gt;heading structure&lt;/li&gt;
&lt;li&gt;image alt text&lt;/li&gt;
&lt;li&gt;colour contrast&lt;/li&gt;
&lt;li&gt;unsupported elements&lt;/li&gt;
&lt;li&gt;media file accessibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Manual tasks&lt;/strong&gt; are things the Wizard cannot detect. The same article lists descriptive link and button text, using more than colour to give information, text inside images, controls for animation and audio, content at 200% zoom, an accessibility statement, and a second look at colour contrast.&lt;/p&gt;

&lt;p&gt;To run it in the Wix Editor, go to Settings, then Accessibility Wizard, then Scan Site. In Wix Harmony, click the site name at the top left, scroll to Accessibility, click Fix Issues, then Scan Site (&lt;a href="https://support.wix.com/en/article/wix-harmony-editor-using-the-accessibility-wizard" rel="noopener noreferrer"&gt;Wix Harmony Editor: Using the Accessibility Wizard&lt;/a&gt;). The Studio steps in the article are the same as the Editor steps, as far as I could find.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does not cover
&lt;/h2&gt;

&lt;p&gt;The "About" page lists areas the Wizard does not support or scan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the CMS, external and third-party apps, and Velo&lt;/li&gt;
&lt;li&gt;password-protected pages&lt;/li&gt;
&lt;li&gt;the side cart and checkout pages&lt;/li&gt;
&lt;li&gt;Wix Site Search, Gift Cards, Music, Reviews, Referral Program, Loyalty Program, Pricing Plans, Podcast Player, Table Reservations and Restaurant Orders&lt;/li&gt;
&lt;li&gt;the Online Programs Thank You page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also works only in the site's primary language. It cannot be opened for secondary languages added with Wix Multilingual. The checklist, Wix says, can be used for all languages.&lt;/p&gt;

&lt;p&gt;For a shop, the gaps matter most. The side cart and checkout are where people pay.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Accessibility Monitor
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://support.wix.com/en/article/accessibility-checking-site-accessibility-with-the-accessibility-monitor" rel="noopener noreferrer"&gt;Accessibility Monitor&lt;/a&gt; scans the published site and shows the result in an Accessibility card in your dashboard, under Site &amp;amp; Mobile App, then Website Overview. If it finds issues, Fix Issues opens the Wizard. It only sees what you have published, so publish first. Wix's page says it detects "potential accessibility issues" and does not list the types, so I cannot say what it covers in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist you can run
&lt;/h2&gt;

&lt;p&gt;Wix publishes its own &lt;a href="https://support.wix.com/en/article/accessibility-checklist-for-improving-your-sites-accessibility" rel="noopener noreferrer"&gt;accessibility checklist&lt;/a&gt; with twelve items, from the site language to an accessibility statement. Here is a shorter version for a site owner.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run the Wizard and work through Detected issues.&lt;/li&gt;
&lt;li&gt;Open the Manual tasks tab and check each item by eye.&lt;/li&gt;
&lt;li&gt;Set the page language for every language you offer, not only the first.&lt;/li&gt;
&lt;li&gt;Give every meaningful image alt text.&lt;/li&gt;
&lt;li&gt;Check that each page has one H1 and that headings follow in order.&lt;/li&gt;
&lt;li&gt;Make sure links and buttons say where they go. "Read more" five times in a row does not help a screen reader user.&lt;/li&gt;
&lt;li&gt;Check that forms show a field title. Wix warns that old Wix Forms are not accessible (&lt;a href="https://support.wix.com/en/article/accessibility-creating-an-accessible-wix-form" rel="noopener noreferrer"&gt;creating an accessible Wix form&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Zoom the browser to 200% and look for text that is cut off.&lt;/li&gt;
&lt;li&gt;Tab through the site with a keyboard. Try the menu, the checkout and any popup.&lt;/li&gt;
&lt;li&gt;Test the pages the Wizard skips: checkout, side cart, password-protected pages, CMS pages, app pages.&lt;/li&gt;
&lt;li&gt;Add an accessibility statement (&lt;a href="https://kayabyte.dev/guides/wix-accessibility-statement" rel="noopener noreferrer"&gt;how to&lt;/a&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where an overlay widget helps, and where it does not
&lt;/h2&gt;

&lt;p&gt;A widget is a button on your site that opens a panel of display options for visitors. Text size, contrast, a dyslexia-friendly font, a reading guide and stopping animations are typical. They help people who want to change how a page looks for them.&lt;/p&gt;

&lt;p&gt;A widget does not repair the page underneath. A missing alt text, a skipped heading or an unlabelled button is still there for people whose own screen reader reads the page code. In April 2025 the US Federal Trade Commission issued a final order against accessiBe over claims that its tool made sites WCAG compliant. The lesson is to be wary of any tool that promises that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the app fits
&lt;/h2&gt;

&lt;p&gt;Full disclosure: Kayabyte makes &lt;a href="https://go.kayabyte.dev/a11y?s=dv-a11y-checklist" rel="noopener noreferrer"&gt;Accessibility Widget &amp;amp; Audit&lt;/a&gt;, so I describe it in more detail than the other options. Other accessibility apps exist in the Wix App Market.&lt;/p&gt;

&lt;p&gt;It does two things.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The toolbar.&lt;/strong&gt; Visitors can change text size, contrast, font, reading mask and guide, stop animations, have text read aloud and highlight links and headings. Profiles set several tools at once. There is no page-view limit on any plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The audit.&lt;/strong&gt; It reads your published pages and lists language, titles, image alt text, heading order, link and button names, form labels, iframe titles and disabled zoom. Each finding names the page and says where to fix it in Wix. This covers some of what the Wizard leaves out, because it looks at the published page. It does not check colour contrast, keyboard use or anything behind a login, the checkout or the side cart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No tool on its own makes a site meet WCAG. Use the Wizard, the audit and your own testing together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plans
&lt;/h2&gt;

&lt;p&gt;Free: the full toolbar, an audit of 5 pages and the statement generator. Pro is $5.99 per month, or $4.99 per month billed yearly, with a 14-day free trial. It adds an audit of up to 200 pages with history, a custom colour and offsets for the button, and hiding the "by Kayabyte" link. If you open the toolbar from your own &lt;code&gt;#accessibility&lt;/code&gt; link (which works on every plan), Pro also lets you hide the floating button. Billed by Wix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://go.kayabyte.dev/a11y?s=dv-a11y-checklist" rel="noopener noreferrer"&gt;Get Accessibility Widget &amp;amp; Audit on the Wix App Market&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is Wix WCAG compliant?&lt;/strong&gt;&lt;br&gt;
Wix says it cannot guarantee that a site meets your region's laws, even after using the Wizard, and suggests asking an accessibility expert. See the &lt;a href="https://support.wix.com/en/article/accessibility-about-web-accessibility" rel="noopener noreferrer"&gt;About Web Accessibility&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the Wizard work on Wix Studio and Harmony?&lt;/strong&gt;&lt;br&gt;
Wix has a Harmony article and the Monitor page lists the Editor, Studio and Harmony. The usage article describes Studio as supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the audit replace the Wizard?&lt;/strong&gt;&lt;br&gt;
No. Run both. They look at different things.&lt;/p&gt;

&lt;p&gt;Wix help checked on 7 November 2026. Wix changes its tools often, so check the pages linked above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related guides
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/wix-alt-text-headings-links" rel="noopener noreferrer"&gt;How to fix alt text, headings and link names in Wix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kayabyte.dev/guides/wix-accessibility-statement" rel="noopener noreferrer"&gt;How to add an accessibility statement to a Wix site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wix</category>
      <category>a11y</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
