Offline Imports
When it is not possible to establish a real-time data stream from a source, such as an offline system or certain CRM providers, Velocidi supports data onboarding through secure file uploads.
#
OverviewFor confidentiality, safety and security reasons, CRM data files should be uploaded to a dedicated location for each partner, from where it is picked up for processing. This location is normally a unique Amazon S3 bucket. Files can be uploaded using any Amazon S3 compatible software, including Amazon's own AWS CLI. Authentication details are provided separately and consist of an access key and a password. When uploading files to S3, files can be uploaded to the root folder of the S3 bucket. Multiple files might reside in the same folder, if needed.
Amazon S3 secures data transmissions using HTTPS and most tools have encryption enabled by default.
#
Load External Attribute Data FilesOnboarding external user attributes from a CRM system or a third-party provider is possible when you have users identified with a User ID such as an email address, phone number, subscriber id, or another CRM ID of any kind. To make this data usable on other platforms (Browsers, Mobile apps, etc) you must first have built a pool of Cross-Channel Matches in order to make the connection at the individual user level between the CRM ID and the platform ID (such as a cookie).
#
Data Types#
Event DataVelocidi can receive periodic data uploads with data from events collected from users, such as page views, in-app activity, or e-commerce behavior. These types of data files should always contain a timestamp of the event, including time-zone information, as well as the event details (more information about Events and standard naming conventions is available in the Collection documentation)
#
CRM DataVelocidi accepts CRM data of various kinds, such as age (DoB or Age bands), gender, household income, location or any data that might be relevant to leverage with Velocidi.
When uploading static data you may use CSV and JSON. There is no limit to the number of fields per entry.
#
OrdersExport your CRM orders and import them into the CDP.
Use cases:
- Bootstrap your system with historic order data;
- Ensure the orders used by the CDP are in sync with your CRM orders;
- Complement your collected order tracking events with details private to the CRM backend.
#
Supported schemasWe currently have support for the following 1st and 3rd party formats:
#
Velocidi CSVThis format is intended for CSV imports where each line is a Velocidi's Order
/LineItem
objects serialized to CSV (Example file).
Relevant notes:
- All Line items for the same Order must be listed sequentially;
- Given an order with an arbitrary number of rows, only the first row is used to extract Order details and all rows are used to extract Line item details. This means that Orders with more than 1 Line item do not need to populate the order columns for all columns and can be left empty.
Column | Required | Type | Description | Details | Example |
---|---|---|---|---|---|
orderId | Required | String | Order identifier | Must be unique by Order | or123 |
userIdType | Required | String | The type of user identifier (e.g. "email") | ||
userId | Required | String | The user identifier | john@email.com | |
currency | Required | String | The currency used in monetary values | Check the supported currencies | EUR |
total | Required | Double | Total value of the order with all discounts already considered, including subtotal, tax and shipping | total = subtotal + tax + shipping | 102.5 |
subtotal | Required | Double | The value of the order, when tax and shipping are excluded | subtotal = total - tax - shipping | 85 |
tax | Required | Double | The total applied tax value for the order | 11.5 | |
shipping | Required | Double | The total shipping costs for the order | 6 | |
discount | Required | Double | The total discounted value for the order | 5 | |
refund | Required | Double | The total refunded value for the order | 0 | |
paymentMethod | String | The payment method | Visa | ||
shippingMethod | String | The shipping method | UPS | ||
shippingCountry | String | The destination country | France | ||
promotions | List of Strings | Vouchers applied in the purchase. | Strings separated by ; | WINTERSALE | |
createdAt | Required | DateTime | When the order was created | Date format: ISO-8601 | 2020-09-16T10:38:06+0100 |
lastUpdated | DateTime | When the order was last updated | Date format: ISO-8601 | 2020-09-16T20:13:31+0100 | |
lineItem_id | String | A unique identifier for the line item within the order | If undefined, a new one will be generated using the orderId and productId | li125zc | |
lineItem_productId | Required | String | Product identifier | p125zc | |
lineItem_itemGroupId | String | Identifier for a group of products that come in different versions (variants) | p125 | ||
lineItem_name | String | Product name | My Product | ||
lineItem_sku | Required | String | Product SKU | p125zc-5 | |
lineItem_brand | String | Product brand | Nike | ||
lineItem_productType | String | Product category | Shirts | ||
lineItem_currency | Required | String | The currency used in monetary values | Check the supported currencies | EUR |
lineItem_total | Required | Double | Total value of the line item with all discounts already considered, including subtotal, tax and shipping | total = subtotal + tax + shipping | 102.5 |
lineItem_subtotal | Required | Double | The value of the line item, when tax and shipping are excluded | subtotal = total - tax - shipping | 85 |
lineItem_tax | Required | Double | The total applied tax value for the line item | 11.5 | |
lineItem_shipping | Required | Double | The total shipping costs for the line item | 6 | |
lineItem_discount | Required | Double | The total discounted value for the line item | 5 | |
lineItem_refund | Required | Double | The total refunded value for the line item | 0 | |
lineItem_quantity | Required | Int | Number of purchased items | 1 | |
lineItem_promotions | List of Strings | Vouchers applied in the purchase or displayed together with the product | Strings separated by ; | WINTERSALE | |
lineItem_adult | Boolean | Whether the product includes sexually suggestive content. | Must be true or false . Defaults to false | false | |
lineItem_subscriptionDuration | Long | If the purchase relates to a subscription, captures the subscription duration, in milliseconds. | 15552000000 | ||
lineItem_status | Required | String | Line item status. placed the order has been placed but the item is yet to be paidpaid the item has been paid but not yet deliveredfulfilled the item has been paid and deliveredrefunded the item has been refundedcancelled the order has been modified to exclude this line item | Supported status: placed , paid , fulfilled , refunded , cancelled | fulfilled |
There's an example file available, showing how each field can be used.
#
Velocidi JSONThis format is intended for JSON lines imports where each line is a Velocidi's Order
object serialized to JSON.
#
Shopify CSVVelocidi supports CSV order exports from Shopify. The documentation for generating a Shopify export can be found here. Please ensure you select Export orders
to export all order information, instead of Export transaction histories
, which only exports the transactions.
Relevant notes:
- Shopify uses the
Name
column to distinguish between different orders inside the CSV file, so it must be unique per Order; - All Line items for the same Order must be listed sequentially;
- Given an order with an arbitrary number of rows, only the first row is used to extract Order details and all rows are used to extract Line item details. This means that Orders with more than 1 Line item do not need to populate the order columns for all columns and can be left empty.
Velocidi will consider the following attributes while importing a Shopify file:
Column | Required | Type | Details |
---|---|---|---|
Name | Required | String | Must be unique by Order and can be the same as Id |
Required | String | ||
Id | Required | String | |
Currency | Required | String | Check the supported currencies |
Total | Required | Double | |
Subtotal | Required | Double | |
Taxes | Required | Double | |
Payment Method | String | ||
Financial Status | Required | String | Supported status: paid , pending , refunded , partially_refunded , voided |
Refunded Amount | Required | Double | |
Discount Amount | Required | Double | |
Discount Code | String | ||
Shipping Method | String | ||
Shipping Country | String | ||
Shipping | Required | Double | |
Created at | Required | DateTime | Date format: yyyy-MM-dd HH:mm:ss Z |
Paid at | DateTime | Date format: yyyy-MM-dd HH:mm:ss Z | |
Fulfilled at | DateTime | Date format: yyyy-MM-dd HH:mm:ss Z | |
Lineitem quantity | Required | Int | |
Lineitem name | Required | String | |
Lineitem price | Required | Double | |
Lineitem discount | Required | Double | |
Lineitem fulfillment status | Required | String | Supported status: pending , fulfilled |
Lineitem sku | Required | String | |
Vendor | String |
#
CustomersUNDER CONSTRUCTION
We're still working on this portion of the documentation.
#
ProductsUNDER CONSTRUCTION
We're still working on this portion of the documentation.