Marketing

Imports

Bring past scripts, ad results, creatives, swipe ads and customer quotes into Borkol from a spreadsheet, as often as you like.

View as Markdown

Borkol learns faster when it starts from what you already have. One import flow takes a spreadsheet (CSV, TSV or Excel .xlsx) and turns its rows into scripts, ad results, creatives, swipe ads or customer quotes. You start it from the screen where the data belongs; there is no separate import page.

Where Import lives

ScreenButtonWhat you can import
Marketing → ScriptsMore (under Import)Scripts history, Ad results, Creatives
Marketing → Brand → Your voice → Voice of customerImportCustomer quotes
Marketing → Brand → More → Swipe fileImportSwipe ads

A script without results links to the ad results import from the line "Results show up here after an import.", and an empty Learnings tab under Knowledge has Import ad results.

Every import goes into the brand that is selected at the top of the screen.

The file

  • CSV, TSV or .xlsx, up to 5 MB and 5,000 rows. The first row holds the column names.
  • Commas, semicolons and tabs all work as the separator, so a CSV saved by a Dutch or Turkish spreadsheet app imports as it is. Dates may be written as 2026-10-20, 20/10/2026, 20.10.2026 or a spreadsheet date cell; one clear value such as 13/10/2026 settles day-first for the whole column.
  • An Excel file is read from its first sheet.
  • For customer quotes a plain .txt file works too: one quote per line, no column names.

A file with no rows under the column names is refused with "The file has no rows below the column names." A file over 5,000 rows is refused with "The file has more than 5,000 rows. Split it and import the parts." In both cases nothing is added.

How columns are recognised

Borkol reads the column names and matches them to its own fields, in English, Dutch and Turkish, ignoring capitals, accents and anything in brackets. Amount spent (USD) is Spend, Datum is Date, Yorum is Quote. The sheet then shows "We recognised 9 of 9 columns" and goes straight to the preview.

These are the column names Borkol recognises (a selection; any capitalisation works):

WhatFieldColumn names
Ad resultsAd name (required)Ad name, Ad, Ad code, Creative name, Advertentienaam, Reklam adı
DateDay, Date, Reporting starts, Datum, Dag, Tarih
Spend (required)Amount spent, Spend, Cost, Uitgegeven bedrag, Harcanan tutar
Video lengthVideo length, Length, Duration, Video duration, Videolengte, Video süresi
ImpressionsImpressions, Impr, Vertoningen, Gösterimler
3-second plays3-second video plays, 3s video views, Video plays at 3s
ThruPlaysThruPlays, Video completions, Completed views
ClicksClicks, Link clicks, Klikken, Tıklamalar
PurchasesPurchases, Conversions, Orders, Aankopen, Satın almalar
RevenuePurchase conversion value, Revenue, Conversion value, Omzet, Gelir
Currency, ChannelCurrency, Valuta; Channel, Platform
Scripts historyTitle, AngleTitle, Name, Script name; Angle, Concept
Hook to Hook 5Hook, Hook 1, Opening line; Hook2 to Hook5
Script, Call to actionBody, Script, Voiceover; CTA, Call to action
Ad copy to Ad copy 3Ad copy, Primary text, Caption
Hook type, Format, Awareness, Customer typeHook type; Format; Awareness; Customer type, Persona, Audience
Ad code, ID, Status, DateAd code, Code, Ad name; ID, External ID; Status; Date, Created
CreativesAd code (required), Link (required)Ad code, Ad name; URL, Link, Creative URL, Video URL
Editor, Launch date, NotesEditor, Made by, Creator; Launched, Launch date, Start date; Notes
Swipe adsTitle, Link, TranscriptTitle, Name, Headline; URL, Link, Ad link; Transcript, Copy, Primary text
Notes, Tags, ProjectNotes, Comments; Tags, Labels, Category; Project, Campaign
Customer quotesQuote (required), ThemeText, Review, Comment, Quote, Feedback; Theme, Topic, Category
Customer type, SourceCustomer type, Persona, Segment; Source, Reference, Review ID

A swipe ad needs at least a title, a link or a transcript. A scripts history row needs at least a hook or a script.

The mapping step

When a column could mean more than one thing (for example Comment theme, which holds both "comment" and "theme"), or a required field has no column, the sheet opens the mapping table for you: Column in your file, Example and Imports as. Unclear columns carry Check this. Pick a field for each, or Ignore. Until every required field has a column, the sheet says "Choose a column for {fields} under More before importing." and the import button stays off.

When everything was recognised the table stays folded under More. Open it to check or change any column.

When you choose columns yourself, Borkol remembers the choice for files with the same column names, so next week's export maps itself. Saved choices are per business and listed in Settings → Imports under Saved column mappings, where Forget mapping removes one.

Preview and import

The preview shows how many rows are ready ("2 rows ready") and how many will be skipped, with the first rows as they will be imported. Missing data is a hint, never a blocker: for example "No impressions or 3-second plays column: hook rates stay empty." or "Rows without a date are booked on today."

Click Import 2 rows. Import finished shows how many rows were Added, Updated and Skipped, and See all imports opens the history.

Skipped rows

A row with a problem is skipped, and the other rows still land. 2 skipped rows under the preview lists each one with its row number, field and reason, for example "Row 14, Spend: not a number". Common reasons: empty (a required cell), not a number, not a date, below zero, not a web link, too long.

Importing again

Imports are safe to repeat. Upload this week's results sheet every week: rows Borkol already has are updated, not added twice.

WhatA row is the same when
Ad resultsSame ad code and same day
Scripts historySame ID, or else the same Ad code
CreativesSame script and same link
Swipe adsSame link
Customer quotesSame quote text

An imported script never changes a script Borkol wrote: a row whose ad code belongs to a script made in Borkol is skipped with "code of a script made in Borkol, left unchanged". A script someone approved, rejected or put in the golden set stays as it is too: its row is skipped with "reviewed or golden script, left unchanged".

An ad results row for an ad and day that the Meta ads connection already synced is skipped with "already synced from Meta ads": the synced numbers come straight from Meta, so nothing counts twice.

A swipe ads row whose link belongs to an ad from the Meta Ad Library is skipped with "belongs to an ad from the Meta Ad Library": those ads update with each sync and an import never changes them.

What each import does

  • Ad results join the scripts they belong to through the ad code inside the ad name, then show on the script under Results and feed learnings. A result whose ad name holds no known code is kept, and joins as soon as the script exists (for example after you import your scripts history).
  • Scripts history adds past scripts with Imported as their source. A row without an ad code gets a new Borkol code. The Status column maps words like live, winner or active to Approved and paused, stopped or loser to Rejected; anything else imports as Approved.
  • Creatives link your finished ads (a video link per ad code) to their script; they show on the script under Creatives. A row whose ad code matches no script is skipped with "no script with this code".
  • Swipe ads and Customer quotes land in the Swipe file and Voice of customer. A project or customer type the brand does not have is left empty, with a hint.

Everything you import is treated as data. In a brief it is quoted, never followed as an instruction.

Settings → Imports

Marketing → Settings → Imports (/m/marketing/settings/imports) lists every file imported into the selected brand: File, What, Rows, Added, Updated, Skipped, Status (Imported, Not imported or Failed), By and When. Filter on What and Status. Below it are the Saved column mappings.

Importing needs marketing edit access. Uploaded files are kept privately with the import and are never public.