Data & Character Limitations
How many custom attributes can I add?
You can add up to 100 custom attributes and unlimited number of metrics. If you need to add more than 100 custom attributes, please let your Customer Success Manager know.
Are there character limitations for an attribute value?
Please see below the character limits for different set of attributes.
Attribute Type | Limit | Examples |
Core Attribute | 255 Characters | Title, External Id |
Custom Attribute | 64 Characters | Color, Size, Division, Department |
Historical Data
How much historical data is needed for validation?
Below are the recommended historical data for validation. This give Toolio enough sample set to iron out the kinks in your data.
Model | Duration |
Sale | 3 months |
Inventory | 3 months |
Purchase Order | Full Open POs |
Receipt | 3 months (based on receipt date) |
Product | Full |
Transfer Orders | Full Open TOs |
Transfer Receipts | 3 months (based on receipt date) |
How much historical data is needed for initial data import?
We recommend importing all the historical data that will be helpful to your future decisions. We suggest loading the following data durations into Toolio.
Model | Duration |
Sale | 2 years + Current Year |
Inventory | 2 years + Current Year |
Purchase Order | Full Open POs |
Receipt | 2 years + Current Year |
Product | Full |
Transfer Orders | Full Open TOs |
Transfer Receipts | 3 months (based on receipt date) |
Data Update Frequency
When and how frequently will the data be updated?
Data update frequency will depend on the needs of the business, but our suggested approach is sending data daily.
If daily is not an option, you can send it weekly, after the last day of the week on your retail calendar.
When you are updating data, you only need to send the relevant data, i.e. you don’t need to send a full data dump every week. Below are some rules of thumb on how much data to send every week.
Model | Data Span | Comments |
Sale | Incremental (i.e. updated since last time) | Sales information can change for a few weeks after the transaction. So please send the trailing 8 weeks |
Inventory | Today | Send BOP based on the current date sent |
Purchase Order | Incremental (i.e. updated since last time) |
|
Receipt | Incremental (i.e. updated since last time) |
|
Product | Incremental (i.e. updated since last time) |
|
Transfer Order | Incremental (i.e. updated since last time) |
|
Transfer Receipt | Incremental (i.e. updated since last time) |
|
What is a good time in the day for the integrations (or data sync) to be triggered at?
We recommend having the integrations or data feeds to be synced as early as possible within the day at a time after which you know the sources of record (e.g. ERP or Data Warehouse) are fully updated. A typical recommendation would be some time between 1-4AM in your organization local time.
Let's say that you have set up your data warehouse to be the source of truth for your Toolio integration. Review with your tech team, when your data warehouse is typically updated. We typically see the update process starting at midnight and taking a few hours. Accordingly, set the Toolio integration trigger time to be 30-60 mins after the time your database would be updated.
Inventory FAQs
How does Toolio handle duplicates in the inventory feed?
Toolio defines a unique inventory record using the combination of:
Variant ID (SKU)
Timestamp (date)
Location
If duplicate records exist for the same combination, Toolio will take the latest value from the feed as the source of truth.
In some cases (though this is not the expected pattern), you may want to aggregate duplicate values instead of overwriting them. Toolio supports this through the organizational feature flag aggregateDuplicatesOnInventory
, which combines duplicate values (e.g., units).
Why am I getting a "number of lines cannot exceed 50,000" error in the inventory feed?
If the feature flag aggregateDuplicatesOnInventory
is turned on, Toolio enforces a limit of 50,000 rows for each inventory feed upload.
When
aggregateDuplicatesOnInventory
is enabled, Toolio must load all data into memory to aggregate duplicates. To ensure performance and stability, we apply a hard cap of 50,000 rows on the inventory feed size.
If your feed exceeds this limit, you’ll need to:
Reduce the number of rows in each file (e.g., split the feed by location or date), or
Turn off the
aggregateDuplicatesOnInventory
flag if aggregation is not required.
Purchase Order FAQs
I am seeing past POs with On Order, even though these are no longer included on our Feed
This happens when you are sending POs incrementally and have deleted POs on your system vs. marking them as inactive on your end. To prevent these "stale POs", we can update your configuration to assume that you're sending all Open POs at any point, so that Toolio automatically deletes all POs that are not included in your latest PO feed.
If you would like to make this configuration change to allow "Full Purchase Order Import", please get in touch with us and we can make the change.