Overview
Introduction
Our platform supports multiple methods for data integration through file transfers. You can share your data files in two ways:- Direct upload via sFTP
- Cloud storage integration (such as Azure Blob Storage)
Data types
- Costs - Marketing costs data
- Indeliveries - Incoming products
- Inventory - Current stock levels and product attributes
- Logistics - Shipping and fulfillment costs
- Orders - Customer transaction data
- Returns - Order return details
File name convention
We expect the file to be named the following:{merchant}_{dataType}_{date}.{fileFormat}
where:
merchant= Company namedataType= One of the values specified in data typesdate= last date of data (normally ‘yesterday’ as it’s the last day containing a full day of data looking at today)fileFormat= One of the values specified under technical specification
Technical specification
| Category | Supported Options | Explanation |
|---|---|---|
| File formats | .csv, .xls, .xlsx, .parquet | |
| Delimiters | Comma ,, Semicolon ; | |
| Decimal sign | Dot . | |
| Multiple values | "value1|value2|value3" | Separated by pipe | and wrapped in quotes " |
Setup instructions
sFTP integration
Contact our customer success team to receive your dedicated sFTP credentials and server details. Once configured, you can upload files directly to your designated folder, and our system will automatically process them.Azure Blob Storage integration
To integrate Azure Blob Storage with our platform, you need to configure an Event Subscription that notifies our system whenever new files are uploaded to your storage container.Prerequisites
- An active Azure Storage Account
- Appropriate permissions to create Event Subscriptions
- Files following our file name convention and technical specifications
Configuration steps
-
Navigate to event subscriptions
- In the Azure Portal, go to your Storage Account
- Select Storage → Events → Event Subscription
-
Create new event subscription
- Click + Event Subscription to create a new subscription
-
Configure event subscription details
- Fill in the following settings:
Setting Value Description Event Schema Cloud Event Schema v1.0 Required schema format for our webhook endpoint Event Types Blob Created Triggers notification when files are uploaded Endpoint Type Webhook Sends notifications to our platform Endpoint https://s3-blob-webhook.dema.ai/blobsOur webhook URL for receiving blob events -
Save configuration
- Review your settings and click Create to activate the event subscription
How it works
Once configured:- You upload files to your Azure Blob Storage container
- Azure triggers a “Blob Created” event
- Our webhook receives the notification
- Our system automatically fetches and processes the file
- Data becomes available in your Dema app
Important: Ensure your files follow the file name convention specified in this guide. Files that don’t match the expected naming pattern may not be processed correctly.
Troubleshooting Azure Blob Storage integration
If you experience issues with Azure Blob Storage integration:- Verify that the Event Schema is set to Cloud Event Schema v1.0
- Confirm the webhook endpoint URL is correct:
https://s3-blob-webhook.dema.ai/blobs - Check that your storage account allows outbound connections to our webhook
- Ensure blob names follow our naming convention
Schemas and examples
Important: When importing examples into Google Sheets or similar tools, verify that numbers are not malformatted. Pay special attention to decimal points and thousand separators.
Costs
- Please reach out to commercial team for more info on the channel groups and channels.
- There is a possibility to map rows to different storefronts by country. In case you want that, we need information on how the mapping should look, see Merchant mappings.
| Column name | Format | Data type | Description | Optional | Example |
|---|
Indeliveries
| Column name | Format | Data type | Description | Optional | Example |
|---|
Inventory
| Column name | Format | Data type | Description | Optional | Multiple | Example |
|---|
Logistics
The logistics cost format allows merchants to upload shipping and fulfillment cost data that gets associated with orders. The system supports shipping directions for both outbound shipments to customers and return shipments from customers. Standard CSV format The standard format supports tab-separated or comma-separated CSV files with the following columns:| Column name | Format | Data type | Description | Optional | Multiple | Example |
|---|
Orders
- Orders are matched on productId and variantId so we expect a unique combination of orderId-productId-variantId. If multiple items of the same variant were bought we expect them be aggregated with
quantity: number of items bought. - All prices should include tax.
- Order header level fields should be repeated for all items in the same order. If an item is returned or updated, we expect the original values for all columns except for what has been updated (eg. the returned… fields or status line).
- If an order is updated, please fill out the
updatedAtfield and the fields that have been updated (eg. return details). - If you want data mapped to a specific storefront, fill out externalStorefrontId and provide us with info about your existing storefronts, see Merchant mappings.
| Column name | Format | Data type | Description | Optional | Example | Default |
|---|
Returns
Returns can be sent to us in three ways (listed in preferred order):- Part of orders, see Orders
- Separate file with an order reference, see Referenced return
- Separate file without an order reference, see Unreferenced return
returns. For details on the fields, please refer to Orders.
Referenced return
- We expect the file to contain all items that have been returned between uploads (so if one file is sent every day, the file should contain only returns that happened the day before).
-
We expect a snapshot, that is, each row should have a unique combination of orderId-productId-variantNo. That is returned quantities should be aggregated, and all returned items from the same order should be included.
Example of referenced returns:
orderId,productId,returnedQuantityDecimal,returnedAt,variantNo
externalStorefrontId,returnedReason,returnedShipmentStatus,returnedShipmentId,returnedShippingProvider,returnedWarehouse,warehouse
Unreferenced return
- Unreferenced returns are returns that cannot be linked to an original order. Without the original order context, some metrics like time-to-return and complete return rate calculations will be estimated and less accurate.
Please include as many fields from the Orders schema as possible to improve data matching and analytics.
returnId(replacesorderId, unique identifier for the return)currency,paidPrice,productId,returnedAt,returnedQuantityDecimal,tax,taxTotal,total,variantNo

