> For the complete documentation index, see [llms.txt](https://docs.heypoplar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.heypoplar.com/platform-basics/transactional-data/csv-upload.md).

# CSV Upload

Measuring the impact of your direct mail campaigns can easily be done from inside the platform. We recommend waiting 30-90 days after your campaign's in-home date to see the full scope of success accurately reflected in the numbers.

<figure><img src="/files/WqTvsLHP6MNU2LaR52oJ" alt="" width="563"><figcaption></figcaption></figure>

A CSV record of your order data can be uploaded to the [Transactions](https://app.heypoplar.com/transaction) page of your account. Records can be uploaded more than once, without having duplicates - the platform will ignore duplicates and update any changes to existing orders by **order\_id.**

The maximum file size is 20MB so if your uploading large amounts of order data, we recommend splitting the CSV and uploading separately.

## **Required Data**

To run attribution reports the platform requires (at minimum) **order\_id, order\_date, shipping address OR billing address and order\_amount** to calculate revenue related metrics. For campaigns that mailed using emails for Address Enrichment, we accept **email OR hashed\_email** to match against as well.

<table><thead><tr><th width="233.203125">Column Header</th><th width="142.62890625">Required</th><th>Description</th></tr></thead><tbody><tr><td><strong>order_id</strong></td><td>Y</td><td>A unique identifier for each order</td></tr><tr><td><strong>order_date</strong></td><td>Y</td><td><p><strong>YYYY-MM-DD</strong></p><p><br>Must be an <strong>ISO8601</strong> formatted date representing the date and/or time of purchase</p></td></tr><tr><td><strong>order_amount</strong></td><td>Y/N</td><td><p><strong>Required</strong> to calculate Revenue and related metrics (CPO, ROAS, etc.), must represent the total order value in <strong>decima</strong>l form</p><p><br><em>Optional for use cases that don't require revenue tracking (site sign-ups, app downloads, etc.)</em></p></td></tr><tr><td><strong>customer_id</strong></td><td>N</td><td>A unique identifier for the transacting customer in your e-commerce system</td></tr><tr><td><strong>billing_name</strong><br><strong>billing_address_1</strong><br><strong>billing_address_2</strong> <br><strong>billing_city</strong><br><strong>billing_state</strong><br><strong>billing_postal_code</strong></td><td>Y/N</td><td><p><strong>Required</strong> if Shipping Address data is not provided</p><p><br><em>Optional to include with Shipping Address data</em></p></td></tr><tr><td><strong>shipping_name</strong><br><strong>shipping_address_1</strong><br><strong>shipping_address_2</strong><br><strong>shipping_city</strong><br><strong>shipping_state</strong><br><strong>shipping_postal_code</strong></td><td>Y/N</td><td><p><strong>Required</strong> if Billing Address data is not provided</p><p><br><em>Optional to include with Billing Address data</em></p></td></tr><tr><td><strong>email</strong></td><td>N</td><td><p>Can be used to match against campaigns that mailed using emails for <strong>Address Enrichment</strong></p><p><br><em>This data is not stored by Poplar, it is used to compute a hash and then discarded</em></p></td></tr><tr><td><strong>hashed_email</strong></td><td>N</td><td><p>The SHA256 has of the customer's email address as a 64 character string</p><p><br><em>Please convert the value of the email address to lowercase prior to hashing</em></p></td></tr><tr><td><strong>metadata</strong></td><td>N</td><td>Additional order details such as items purchased or <strong>New Buyer</strong> tags</td></tr><tr><td><strong>currency_code</strong></td><td>N</td><td>Three character ISO country-code - if not provided will default to <strong>USD</strong></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.heypoplar.com/platform-basics/transactional-data/csv-upload.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
