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
Cells Per Upload
40,000
Uploads Per Collection
20
Cells Per Collection
800,000
Collection Size
34 MB
Cell Limits Depending on the data, you can upload a maximum of 20 uploads per collection. Each upload can have up to 40,000 cells, which means a collection can have up to 800,000 cells. For example, if you have 10 columns each upload can have 4,000 rows. If you have 5 columns, the upload can have 8,000 rows.
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