Running a campaign
Collecting submissions
The online grid and the Excel round trip, validated the same way, plus what suppliers see.
9 min read
Suppliers submit either by typing into an online grid or by filling in a generated Excel workbook and uploading it. Both are generated from the same field definitions and validated by the same code, so neither path can accept something the other would refuse.
Two paths, one form
Suppliers choose their path each time they submit, and can mix them: three items online today, a workbook of twenty tomorrow. Items append; a second upload never replaces the first unless the supplier explicitly asks it to.
| Path | Best for |
|---|---|
| Online grid | A handful of items, a late addition, a correction. Nothing to download, and the dropdowns and date pickers are right there. |
| Excel workbook | Many items at once, or a supplier whose data already lives in a spreadsheet. Fill it in offline, upload once. |
The online grid
Everything is on one screen.
- A bar at the top: the supplier tag, the submission type, and the input method, all as chips. Brokers pick which tag they are submitting for; a single-brand contact has one tag already chosen.
- A grid, one row per item, with a numbered first column. Add 4 rows extends it; each row has a remove control.
- Submit once, for every row.
Required fields carry an asterisk and help text sits under the column heading. Every row becomes an individually tracked item with its own reference ID, its own status, and its own history.

The Excel round trip
Download the template
Generated live from the campaign's current form, so it is never out of date. Row 1 is the title, row 2 is the help text for each column, row 3 is the headers, and the header row is frozen.
Fill it in offline
Required columns are marked with an asterisk. Dropdown and multi-select columns are real Excel dropdowns. Date columns with an allowed window state that window in the help row.
Upload it
.xlsxonly, up to 10 MB by default. Workbook uploads are scanned for malware before parsing, synchronously, because the file is opened in the same request.Every row becomes an item
Validated individually against the same field definitions the online form uses, and given its own reference ID.
When a row is rejected
Validation is per row and per field. The upload reports what failed, on which row, and why, with the field label rather than its key. The messages are the same ones the online form produces.
Typical validation messages
Promo price is requiredPromo price must be a numberPromo price must be ≥ 0.5Deal start must be between 2026-10-01 and 2026-10-29Tactic must be one of: TPR, Ad, DisplayStore groups: invalid option(s) Midwest
What the parser tolerates
- Currency written as
$3.49or1,250. - Dates as
2026-10-05or10/5/2026. - Yes as
Yes,Y,True,1orX. - Dropdown values in the wrong case.
- Reordered, hidden or inserted columns.
- Completely blank rows, which are dropped.
What it refuses
- Text in a number column.
- A date outside the allowed window.
- A dropdown value not on the list, however close.
- A blank in a required column.
- A file that is not
.xlsx. - A file above the size limit.
A line sent twice
A submission adds to what is already there rather than replacing it, which is what makes a second upload safe. It also means a workbook sent twice leaves the same line in the campaign twice, and until the buyer reaches review nobody notices.
After a submission lands, the supplier is told about any line that repeats one they already sent, by reference: Q4PROMO-ACME-007 repeats Q4PROMO-ACME-003. Two lines repeat when every required field holds the same value. It is a warning, not a refusal: a supplier who means to send the same promotion twice can, and they see it while the workbook is still open rather than a week later in somebody else's queue.
Buyers see the same thing in the Received table, and can filter to it. See Received.
Attachments
Files are attached to an item after it exists, on the item screen, against a file field the form defines. They are never in the workbook, and a file field can never be required. See Intake forms and field types.
| Rule | Detail |
|---|---|
| Types | .xlsx .xls .csv .pdf .docx .pptx .png .jpg .jpeg |
| Size | 10 MB per file by default. |
| Scanning | Every stored file is malware-scanned. The upload is accepted immediately and the scan runs alongside it. |
| Downloading | A file is downloadable only once it has been scanned clean. Until then the download is refused rather than served hopefully. |
| An infected file | Deleted, with the uploader notified. |
Editing and withdrawing
While the campaign is open, a supplier owns their items:
- Edit any field on any of their items, as often as they like.
- Attach and remove files.
- Withdraw an item. It stays on the record struck through as Withdrawn, so a buyer can see it existed.
- Submit more items at any time.
After the close, editing needs an edit access grant from you, scoped to one item or one submission. Suppliers can request one with a button on the closed campaign. See Suppliers, tags and access.
Watching it arrive
| Where | What it tells you |
|---|---|
| CampaignOverview | Supplier participation: every invited supplier and their item count, with zero shown in red. This is your chase list. |
| CampaignOverviewitem table | Every item as it arrives, with Excel and CSV export buttons. |
| Home | Across all your campaigns: what needs action, what is closing soon. |
| LibraryEmail log | Whether the invitation actually reached a supplier who says they never got one. |
Items arriving before the close are Submitted and still the supplier's to change. Nothing is yours to decide until the campaign closes; see Received.