{
  "title": "SKU.io Changelog",
  "description": "User-facing changes to SKU.io, dated and tagged by area and impact. The `sop_impact` field on each entry describes what a customer's internal SOP may need to change. Machine-readable companion to https://docs.sku.io/changelog . Agents: fetch this file, filter `entries[]` by `date >= your-last-sync-date`, and read the linked `docs[]` pages (append `.md` for clean markdown).",
  "impact_legend": {
    "added": "New capability. Usually additive to existing SOPs.",
    "changed": "Existing behaviour changed. Review SOPs that rely on it.",
    "moved": "UI location / navigation changed. High risk of breaking step-by-step SOPs.",
    "fixed": "A bug was fixed; behaviour now matches the docs.",
    "deprecated": "Still works but scheduled for removal.",
    "removed": "No longer available."
  },
  "entries": [
    {
      "id": "2026-07-24-segment-profitability-by-customer-tag",
      "date": "2026-07-24",
      "area": "Insights",
      "type": "added",
      "title": "Segment the Profitability report by customer tag",
      "summary": "You can now tag customers — by hand on their detail page, or automatically from synced Shopify orders — and segment the Profitability report by those tags. Each customer tag becomes a revenue, cost, and profit segment in both the Trend and Cost Breakdown views, with drill-down to the underlying orders.",
      "sop_impact": "To analyze margin by customer segment, go to Insights → Reports → Profitability and set Group By to Customer Tags. Tag customers on their detail page (Contacts → Customers → the Tags card); Shopify customer tags also sync in automatically. Note: because a customer can have several tags, per-tag rows can total more than the grand total, which still counts each order once.",
      "docs": [
        "/guides/insights/segment-profitability-by-customer-tag",
        "/guides/contacts/customers/tag-a-customer",
        "/concepts/customer-tags-from-shopify"
      ]
    },
    {
      "id": "2026-07-24-create-a-supplier-pickup-order",
      "date": "2026-07-24",
      "area": "Orders",
      "type": "added",
      "title": "Supplier pickup (drop-ship will-call) orders",
      "summary": "You can now run drop-ship orders that a distributor collects directly from your supplier: a pickup shipping method turns a drop-ship line into a supplier pickup, fulfilled with Mark as Picked Up (no tracking), with a PDF pickup authorization and a Supplier Pickup Orders report.",
      "sop_impact": "If an SOP fulfills a drop-ship line by entering a tracking number, orders set to a pickup shipping method are now completed with Mark as Picked Up instead — and appear under Insights → Reports → Supplier Pickup Orders.",
      "docs": [
        "/guides/orders/create-a-supplier-pickup-order"
      ]
    },
    {
      "id": "2026-07-23-customize-your-dashboard",
      "date": "2026-07-23",
      "area": "Dashboard",
      "type": "added",
      "title": "Customizable dashboards",
      "summary": "Add any of 100+ widgets to your dashboard with a live preview, arrange and resize them, and keep multiple named dashboards you can switch between.",
      "sop_impact": "Dashboards are now personal and customizable: if an SOP assumes a fixed set of dashboard cards, note users can add/remove widgets and keep multiple dashboards via Dashboard → Customize.",
      "docs": [
        "/guides/dashboard/customize-your-dashboard"
      ]
    },
    {
      "id": "2026-07-23-airtable-integration",
      "date": "2026-07-23",
      "area": "Integrations",
      "type": "added",
      "title": "Airtable integration (two-way sync)",
      "summary": "Connect an Airtable account and sync SKU.io data both ways with no middleware. Push products, inventory, orders, purchase orders, and suppliers into Airtable on a schedule or in real time; provision a ready-made Ops Hub base in one click; and review edits made in Airtable before they update your catalog. Includes computed product-analytics columns, a monthly API-usage cap, sync-health alerts, and an \"Airtable: Write Rows\" automation node.",
      "sop_impact": "If your process exports SKU.io data to CSV or uses middleware to reach Airtable, you can now connect Airtable directly under Apps & Integrations → Airtable and map datasets instead.",
      "docs": [
        "/guides/integrations/airtable/"
      ]
    },
    {
      "id": "2026-07-22-trend-aware-forecasting",
      "date": "2026-07-22",
      "area": "Demand Planning",
      "type": "added",
      "title": "Trend-aware baselines and promotion lift",
      "summary": "Demand Planning can now build a forecast from a damped growth trend (or a recency-weighted average) instead of only a flat mean, show each recommendation's baseline decomposition, and re-apply a measured promotion as a multiplier that scales with your volume.",
      "sop_impact": "If your reorder SOP assumes a flat-average forecast, note the new Baseline method control in Demand Planning → Configuration; choosing Damped trend changes the recommended quantities for trending products.",
      "docs": [
        "/guides/inventory/trend-aware-forecasting"
      ]
    },
    {
      "id": "2026-07-20-workflows-scheduled-po-reminder",
      "date": "2026-07-20",
      "area": "Workflows",
      "type": "added",
      "title": "Build workflows from scratch on a schedule + unsubmitted-PO email reminders",
      "summary": "Workflows can now run on a recurring Schedule (hourly/daily/weekly/monthly, in your timezone) and query your purchase orders with a new Find Purchase Orders node. Together they power a build-from-scratch email reminder about POs sitting Unsubmitted. Two how-tos document the general canvas authoring and the reminder recipe (previously only templates were documented).",
      "sop_impact": "If your SOP for chasing unsubmitted purchase orders relied on someone manually checking the list, you can replace it with a scheduled workflow (Schedule -> Find Purchase Orders -> IF count>0 -> Send Email) that emails a summary on your chosen cadence. Building a workflow from scratch (not just from a template) is now a documented, supported path.",
      "docs": [
        "/guides/workflows/build-a-workflow-from-scratch",
        "/guides/workflows/get-an-email-reminder-about-unsubmitted-purchase-orders"
      ]
    },
    {
      "id": "2026-07-14-suppliers-tax-currency-bulk",
      "date": "2026-07-14",
      "area": "Suppliers",
      "type": "added",
      "title": "Bulk-manage supplier tax rate (GST) & currency",
      "summary": "A supplier's default tax rate and default pricing tier (which sets its currency) are now available in the Suppliers list as toggleable, inline-editable columns, in the list export, and in the supplier importer.",
      "sop_impact": "If your SOP for maintaining supplier GST/currency said it could only be done one supplier at a time on the detail page, update it: you can now export suppliers, edit the Default Tax Rate / Default Pricing Tier columns, and re-import; or inline-edit them in the list grid view.",
      "docs": [
        "/guides/contacts/suppliers/importable-columns-reference",
        "/guides/contacts/suppliers/export-suppliers",
        "/guides/contacts/suppliers/list-columns-reference"
      ]
    },
    {
      "id": "2026-07-13-po-internal-notes-so-custom-fields-import",
      "date": "2026-07-13",
      "area": "Orders",
      "type": "fixed",
      "title": "Internal Notes (PO) and custom fields (SO) now save on spreadsheet import",
      "summary": "The purchase-order importer now saves the Internal Notes column, and the sales-order importer now saves custom-field columns. Previously the mapper offered these columns and showed them in the preview, but they were silently dropped on import.",
      "sop_impact": "If your import SOP avoided mapping Internal Notes (PO) or custom fields (SO) because they didn't stick, you can now include them — they persist.",
      "docs": [
        "/guides/orders/purchase-orders/import-columns-reference",
        "/guides/orders/sales-orders/importable-columns-reference"
      ]
    },
    {
      "id": "2026-07-13-so-po-import-export-column-references",
      "date": "2026-07-13",
      "area": "Orders",
      "type": "added",
      "title": "Column-by-column import & export references for sales & purchase orders",
      "summary": "Every importable and exportable column for sales orders and purchase orders is now documented with its type, whether it's required, accepted values, and behaviour — including the export-to-re-import round-trip.",
      "sop_impact": "Use these references to build or verify your bulk order import/export SOPs against the exact column list rather than trial and error.",
      "docs": [
        "/guides/orders/sales-orders/importable-columns-reference",
        "/guides/orders/sales-orders/export-columns-reference",
        "/guides/orders/purchase-orders/import-columns-reference",
        "/guides/orders/purchase-orders/export-columns-reference"
      ]
    },
    {
      "id": "2026-07-13-product-pricing-via-import",
      "date": "2026-07-13",
      "area": "Products",
      "type": "changed",
      "title": "Set per-tier selling prices via the products spreadsheet import",
      "summary": "The Products list Import now writes per-tier selling prices from a `Price: <tier>` column (for example, `Price: Retail`). Previously it only wrote cost, and selling prices had to be set another way.",
      "sop_impact": "If your product-pricing SOP routed bulk price changes through the generic Data Imports tool or Bulk-edit as a workaround, you can now set selling prices directly in the Products import file with a `Price: <tier>` column.",
      "docs": [
        "/guides/products/import-products#set-selling-prices"
      ]
    },
    {
      "id": "2026-07-06-fulfillments-nav-consolidated",
      "date": "2026-07-06",
      "area": "Fulfillments",
      "type": "moved",
      "title": "Fulfillments combined into one sidebar item with tabs",
      "summary": "The separate Fulfillments sidebar entries were combined into a single sidebar item that uses horizontal tabs.",
      "sop_impact": "If an SOP says to click a specific Fulfillments item in the sidebar, update it: open the single Fulfillments item, then choose the relevant tab.",
      "docs": [
        "/guides/orders"
      ]
    }
  ]
}
