# Scripts

**Marketing** → **Scripts** (`/m/marketing/scripts`) lists every script your [runs](/docs/marketing/runs) wrote for the selected brand, and the scripts you imported, newest first. This is where you review them, export the approved ones for production and see how they performed.

## The list

Columns: **Title**, **Check**, **Scenes** (how many hooks have [scenes](/docs/marketing/scenes)), **Status** and **Created**. **Angle** and **Hooks** (the number of hook variants) are hidden by default; turn them on under **View**, which remembers your choice. A script in the golden set carries the **Golden set** pill next to its title. Search finds text in the title, body and angle. Filters:

- **Status**: **To review**, **Approved** or **Rejected** (pick more than one).
- **Check**: **Passed**, **Flagged** or **Not checked**.
- **Source**: **Made here** or **Imported**.
- **Golden set**: **In golden set** shows only the [golden set](/docs/marketing/learning#golden-set).

Tick scripts and click **Make scenes** to turn a hook of each into a shot list for your AI video tool; see [Scenes](/docs/marketing/scenes). Tick up to 5 and click **Go deeper** to start a new run on their idea; see [Go deeper on picked scripts](/docs/marketing/runs#go-deeper-on-picked-scripts).

**Export approved** sits next to **More**, which holds the imports under **Import**: **Scripts history**, **Ad results** and **Creatives**. Bring in past scripts, your ad platform's results export, or the links of your finished ads. See [Imports](/docs/marketing/imports).

With no scripts yet, the list points you to the **Overview**: "Start a run on the overview and its scripts appear here." **Review scripts** on a run page opens this list for that run only, with a **From one run** button that clears the filter. Each row's menu has **Approve** and **Reject**.

## A script

Click a title to open the script. The page shows:

- **Hooks**: the hook variants, alternative openings of the same script to test against each other. Each has its text, a visual note, its hook type (for example **Question** or **Bold claim**) and its own ad code. **Copy hook** copies one.
- **Script**: the body, and the **Call to action**.
- **Ad copy**: three ad texts to post with the video.
- **Check**: the result of the check step (see below).
- **Results**: spend, hook rate, hold rate, CTR, purchases, cost per purchase and ROAS from your ad results, also per hook. Until results arrive the box is left out and one line says "Results show up here after an import.", linking to the ad results import. See [Results on the script](/docs/marketing/learning#results-on-the-script).
- **Creatives**: the finished ads linked to the script through a creatives import, with who made them and when they went live. Shown only when there are any.
- **Details** on the side: angle, **Ad code**, format, awareness, customer type, the run (or **Imported** with the date for an imported script), when it was created, who reviewed it, when and with which note, and the **Golden set note**.

**More actions** has **Copy script** (title, every hook with its ad code, body, call to action and ad copy as plain text), **Open run**, **Export CSV** (this script only) and, on an approved script, **Add to golden set** or **Remove from golden set**.

### Ad codes

Every script gets an ad code such as `M2610-7KQ3D` (M, the year and month, then five characters), and every hook variant adds its number: `M2610-7KQ3D-H1`, `-H2`, `-H3`. Use the hook's code in the ad name when you publish, so results can be traced back to the exact opening later. Codes are unique within your business and never change. The copy button next to the code in the header copies it. See [Ad codes](/docs/marketing/learning#ad-codes) for how results find them.

An imported script keeps the ad code from your file; a row without one gets a Borkol code.

## The check

When the **Check** step is on, a second model reviews each script against a rubric: a hook in the first 3 seconds, your brand voice, banned claims, a clear call to action, fit with the format, and valid tags. It also flags a script that repeats instruction-like text from your imported material ("Repeats instruction-like text"), which always counts as a fail.

A script that fails goes back to the writer once with the list of issues, keeping its ad codes, and is checked again. The **Check** section shows:

- **Passed** or **Flagged**, with the score (for example **Score 82**). A passed script shows only that line; **Details** opens the rest.
- **Rewritten once** when the first version failed.
- **Issues**, each with **Low**, **Medium** or **High**, or "No issues found."

A script that is still flagged after the rewrite is not thrown away: it stays **To review**, so you decide. A run without the check step shows **Not checked**.

## Approve or reject

- **Approve** marks the script **Approved**. It works from **To review** and from **Rejected**.
- **Reject** asks "Reject this script?" with a required **Note**: say what is wrong. The note is kept with the script. It works from **To review** and from **Approved**. The note shows in **Details** as **Review note**.

Approving and rejecting need the approve permission. Without it, clicking them shows "You do not have permission to do this."

## Export approved

**Export approved** on the list downloads a CSV file named `scripts-YYYY-MM-DD.csv` with the approved scripts of the selected brand (of one run, when the list is filtered to a run). The file has one row per hook variant, so every ad code gets its own line. Columns:

`ad_code`, `script_code`, `title`, `angle`, `hook`, `hook_visual`, `hook_type`, `body`, `cta`, `ad_copy_1`, `ad_copy_2`, `ad_copy_3`, `format`, `awareness`, `customer_type`, `status`, `reviewed_at`

The file is UTF-8 and opens directly in Excel, Numbers or Google Sheets. Text that a spreadsheet would read as a formula (starting with `=`, `+`, `-` or `@`) gets a leading `'`, so it shows as text and never runs.

## On mobile

The Borkol app lists scripts with the **Status**, **Check** and **Golden set** filters, shows a script with its hooks, ad codes, check and results, and has **Approve**, **Reject** (with a required reason) and **Share script**. Exports, imports and the golden set marking stay on the web. See [Marketing on mobile](/docs/marketing/mobile).
