Overview
The Data feature allows any data to be uploaded to the platform. This data can then be linked to integration points - where applicable - on the platform. Typically, this data consists of measurable data to be used for graphing, data tracking and activation.
Data that is uploaded, should be analytical in nature and is not meant for mass data (see Limits, below). When planning integrations, it is recommended to provide summative data instead of transactional. For example:
Don't Upload transactional sales data with rows detailing each purchase.
Instead Upload total sales for a user per row.
Collections & Uploads
When data is uploaded it is assigned to a unique data collection. A collection could be considered a container of multiple buckets - and each upload is 1 bucket in the collection. A collection name is unique per account, and an upload is unique per collection.
The Data feature has been designed this way in order to create agility when integrating multiple collections to other features and to structure uploads clearly.
When accessing the API endpoints you will always need to provide the collection
and upload
parameter to target the specific data that you are managing.
Data Processing
Data is processed as it is received. This allows several things to occur in near real-time: Connects app users to data Processing scans the uploaded data to identify users and to connect them to data. This allows for uploaded data to be integrated on a user level. Connects data to locations Processes locations to assign a location ID to a row. This allows time location filtering to occur on integrations. Connects data to a timestamp Processes dates to assign a timestamp to a row. This allows time-based filtering to occur on integrations.
Optimizes Data After data has changed in a collection, the platform optimizes & organizes data into a structure that allows the best performance in indexing and scanning.
Notifies Integrations As new data is received, integrations in platform features are notified - which invokes any built-in hooks to update data points on graphs or activities.
Date Formats
Format | Example | Parsed As |
DD/MM/YYYY | 01/12/2020 | 01 December 2020 |
D/MM/YYYY | 1/12/2020 | 01 December 2020 |
DD/M/YYYY | 01/1/2020 | 01 January 2020 |
D/M/YYYY | 1/1/2020 | 01 January 2020 |
DD MONTH YYYY | 01 Feb 2020 | 01 February 2020 |
DD LONG_MONTH YYYY | 01 February 2020 | 01 February 2020 |
YYYY-MM-DD | 2020-03-01 | 01 March 2020 |
Limits
Type | Limit |
Columns Per Upload | 20 |
Rows Per Upload | 2,000 |
Uploads Per Collection | 20 |
Rows Per Collection | 20,000 |
Collection Size | 34 MB |
Reserved Types and Words
Specifically named headers allows data to be treated differently from other columns. This allows you to use "User Identifiers" when mapping collections to integration points on the platform.
Header | Description |
User Code | Processes the data in this column as a user code. |
User Mobile | Processes the data in this column as a mobile ID. |
User Email | Processes the data in this column as an email. |
User Location | Process the data in this column as a location. |
ISO Specifications
Type | Format |
Location | ISO 3166-1 alpha-2 (e.g. Cape Town, ZA) |
Valid email address | |
Mobile Number | E.123 international notation (No Spaces) |
Benchmarks
Data uploads can be intensive and have a hard limit of 2,000 rows of data per upload. When planning your integration it is important to be aware of upload time so you can anticipate latency. Data uploading happens asynchronously so you will only be able to call the endpoint once, per upload.
To give you an idea of how long data takes to upload, we have provided benchmarks based on estimated upload times when using the API.
Data | Time (In Seconds) |
10 Columns, 1 Row | 0.76 |
10 Columns, 10 Rows | 1.06 |
10 Columns, 100 Rows | 3.64 |
10 Columns, 1000 Rows | 31.06s |
10 Columns, 2000 Rows | 60.95s |
Last updated