Story 16.1.1 Saclab Inventory – Archive, Orders & Attachment Compression

1. General Info

Background (short):

The Saclab Inventory base is close to Airtable limits due to a large number of contacts, Bag Vault entries, old orders and big uncompressed attachments. We want to slim down the live base while keeping historical data accessible in an archive and reduce attachment usage without breaking workflows.

Goals:

  • Keep all contacts archived in a single base, while removing old / low-value ones from the live inventory.

  • Free up records in the live Saclab Inventory base (contacts, Bag Vault, old orders).

  • Reduce attachment storage for the targeted images by ~50% through compression and archiving.

  • Let dev investigate options to reduce public API calls (no concrete solution defined in this story).

2. Scope

2.1 Contacts

  • Archive all contacts:

    • Create/archive base (e.g. “Saclab Inventory Archive”) that contains all contacts from the time of migration (full copy of the contact table).

  • Clean up live inventory:

    • From “Saclab Inventory” → delete contacts if:

      • Last modified older than 1.1.2025, and

      • Contact has no tag "seller", "buyer", "vip".

      • We don’t have data on user like:

        • existing order

        • existing submitted item

        • shipping address

        • billing address

        • phone#

          Bildschirmfoto 2025-12-01 um 11.43.14.png

    • Contacts removed from the live base must still exist in the archive base.

    • Ensure that if a deleted customer “wakes up” by their action, the contact gets created again

    • Target: at least 5k contacts removed from the live base.

    • link to Airtable View “clients to archive”: https://airtable.com/appYjRuQ4YEFTUwtb/tbld5UYfgjeNZpuOq/viwoY20x2OuTgslR8?blocks=hide

2.2 Bag Vault

  • Move Bag Vault out of the live “Saclab Inventory” base into its own base (into a dedicated “Bag Vault” base).

  • Remove Bag Vault data from the live base.

  • Keep bag vault functional

  • Target: at least 4k records freed from the live base.

2.3 Orders

  • From “Saclab Inventory” → move orders older than 01.01.2023 into the archive base.

  • Remove those orders from the live base.

  • Target: at least 2k orders freed (depending on actual data).

2.4 Attachments & Compression

  • New accepted submissions:

    • If a submission is accepted, the compression function must be enabled and used before long-term storage of attachments.

  • Existing attachments:

    • Focus on existing SYB / submission images, especially where HubSpot does not archive deal attachments properly.

    • Process: archive originals → compressreupload compressed images to Saclab Inventory / archive and keep them correctly linked.

    • Target: reduce attachment storage usage for the targeted set by around 50% (≈ half the current usage), while still maintaining enough detail in the product shots.

2.5 Public API Calls

  • Dev should investigate current public API usage (e.g. across automations) and note potential options to reduce call volume (batching, combining flows, etc.).

  • No specific implementation or target is required in this story; any optimisation work can be handled in follow-ups.

3. Acceptance Criteria

#

Scenario (Given / When / Then)

1

All contacts archived
Given the current contact data in “Saclab Inventory”
When the initial migration is completed
Then all contacts that exist at that time are present in the archive base (e.g. “Saclab Inventory Archive”) with their core fields.

2

Old non-tagged contacts removed from live base
Given a contact in “Saclab Inventory” with … (Link to View with filter settings)

  • Last modified older than 1.1.2025

  • no tag "seller", "buyer" or "vip"

  • no linked order

  • no submitted item

  • no billing / shipping address / phone#

When the archive / clean-up process is run
Then this contact no longer exists in the live “Saclab Inventory” base
And the contact still exists in the archive base.
And if the customer reappears, it gets recreated in Airtable

3

Important contacts remain in live base
Given a contact in “Saclab Inventory” with tag "seller" or "buyer" or "vip", a linked order or a submitted item or existing address/phone#, or last modified after 1.1.2025
When the archive / clean-up process is run
Then this contact remains in the live base (not removed).

4

Bag Vault moved out of live base
Given a Bag Vault table in “Saclab Inventory”
When the Bag Vault migration is completed
Then Bag Vault data is available in its new base
And Bag Vault records are no longer counted as records in the live “Saclab Inventory” base
And the bag vault is still fully functional

5

Orders older than 01.01.2023 archived

Given orders in “Saclab Inventory” with order date before 01.01.2023

When the order archive process is run

Then these orders no longer exist in the live base

And they exist in the archive base.

6

Compression for accepted submissions

Given a submission reaches status “accepted”

When its attachments are stored in their final location

Then the compression function is applied to those attachments

And only the compressed versions are kept as the long-term copies
And the original full size images are stored on box inside a folder named DealID_SellerName_SellerEMail_BagName https://app.box.com/folder/351924093564

7

Existing attachments archived, compressed & reuploaded

Given existing submission-related attachments (mainly SYB images) in HubSpot / historical records

When the attachment archival job is run

Then the original attachments are archived on box inside a folder named DealID_SellerName_SellerEMail_BagName https://app.box.com/folder/351924093564

And compressed versions are reuploaded and correctly linked to the corresponding records in Saclab Inventory / archive

And total attachment usage for this targeted set is reduced by around 50% without noticeable loss of essential image detail.

8

API investigation documented

Given automations using public APIs (Airtable, HubSpot, etc.)

When dev work for this story is completed

Then there is a short dev note (e.g. in the ticket or on this page) summarising current public API usage patterns and potential options to reduce call volume (if any)

And any actual implementation of API optimisations is explicitly marked as out of scope / follow-up.

9

No negative impact on daily work

Given sales and ops use “Saclab Inventory” for their daily work

When the archive and compression changes are live

Then active contacts, orders and relevant attachments remain available in the live base

And no actively used records are reported as missing due to the archiving rules.

Comments

Leave a Reply