Marketing

Runs

Describe what you want on the Marketing overview, and a run researches, finds angles, writes scripts and checks them.

View as Markdown

A run turns one request into ad scripts. You type what you want on Marketing → Overview, click Create scripts, and the run works through its steps on your own OpenRouter key. The scripts it writes land under Scripts for review.

Start a run

The Overview asks "What do you want to make?" above one box. Describe the ads in a sentence, for example "Five video ads for our spring offer, aimed at first-time buyers", and click Create scripts (or press Ctrl+Enter or Cmd+Enter). The run page opens straight away.

A run uses whatever brand context the selected brand has: profile, customer types, voice quotes, swipe ads and active knowledge. Nothing is required first. Ideas under the box suggest prompts from the brand's own data, and up to two soft hints say what is still missing, each linking to that section of Brand. They never stop you from starting. See Overview.

More options opens three optional choices, closed by default:

OptionWhat it does
ProjectTies the run and its scripts to a project. No project by default.
Customer typeWrites for one customer type. Any customer type by default.
Number of scripts1 to 10. Default uses Scripts per run from the AI pipeline settings (5 unless you changed it), unless your request names a number: "three video ads" or "3 scripts" makes three.

The button is off while no working OpenRouter key is connected, unless the brand's steps run on your agent, which needs no key. The account owner sees the hint Connect your OpenRouter key to start, linking to Connections; team members see Ask the account owner to connect an OpenRouter key. See Connections.

Below the box, Recent runs lists the last five runs of the brand with their status and number of scripts. The latest run also shows a small picture of its pipeline canvas. Click a row to open it. Show more under the list loads older runs, and Costs next to the title opens Costs.

How many scripts a run writes

A number you pick under Number of scripts always wins. With Default left on, a number of 1 to 10 in your request sets the count when it stands right before a word like scripts, ads, videos or variants, written as a digit or a word in English, Dutch or Turkish: "Three video ads for first-time buyers", "Maak 4 korte advertenties" or "üç reklam" each set the count. Years, prices, percentages, durations and "10x" are ignored ("Ads for our €5 offer in 2026" uses the default), and so is a request that names two different numbers. Anything else uses Scripts per run. The run page shows the count it used under Scripts asked.

Go deeper on picked scripts

On Marketing → Scripts, tick up to 5 scripts you like and click Go deeper, then Confirm. The Overview opens with the picked scripts as chips under Deeper on, above the box, and the box starts with a note you can change, such as "shorter", "more emotional" or "for the new product". Click the cross on a chip to drop that script. With more than 5 ticked, the list says Go deeper takes up to 5 scripts and nothing opens.

The new run keeps the idea of the picked scripts and writes new hooks, structure and length for it. Its angles and scripts steps get the picked scripts in full, with their ad results when results are linked; research, judging and scoring work as for any run. When you leave All products as it is, the run is about the products of the picked scripts' own runs; products you pick win. The run page lists the picked scripts under Deeper on in Details, each linking to its script.

The steps

Every run goes through up to four steps, in this order:

StepWhat it does
ResearchReads your brand context and finds insights, pains, desires and objections. Facts it thinks are worth keeping become proposed knowledge entries, which you accept or not under Knowledge.
AnglesTurns the research into angles to write for.
ScriptsWrites the scripts, spread over the angles, each with its hook variants, body, call to action and three ad copies.
CheckReviews each script against your brand and sends a failing one back once for a rewrite. See The check.

Research and Check can be switched off in the AI pipeline settings; a switched-off step shows Skipped. Angles and Scripts always run.

The run page

The run page (/m/marketing/runs/{id}) has no sidebar item: open it from Recent runs or from a script. It updates by itself while the run is busy.

  • The title is your request, with the run status next to it. Under it: when it started and the cost so far. Click the cost to open Costs.
  • Pipeline shows the run as a canvas of step cards (see The pipeline canvas). Click a card for that step's details.
  • Scripts says how many scripts the run made and how many are left to review. Review scripts at the top opens them: the scripts list filtered to this run.
  • The order follows the run: while it is busy, paused, failed or cancelled, Pipeline comes first; once it is done and wrote scripts, Scripts comes first, so the result is the first thing you see.
  • What the agent was told shows the brief the run was given: each part of your brand context, how many items went in, and how many were left out to fit. Accepted learnings appear there as "What worked before".
  • Details on the side: brand, Runs on (Borkol or Your agent), project, customer type, Scripts asked, Tokens in / out, Cost, Zero data retention (On or Off) and Cost limit (runs on Borkol only).

The pipeline canvas

Pipeline draws one card per step, Research, Angles, Scripts and Check, joined by a line in the order they run. Each card shows the step status, the model it used (on runs on Borkol), how long it took and what it cost. The canvas is a fixed picture of the run: you cannot move or connect cards.

The cards change by themselves while the run is busy. When live updates are on, a step's new status shows the moment it changes. When live updates are off or the connection drops, the page checks the run every few seconds instead, so it still keeps up, a little later.

Above the canvas a soft hint can appear. It never stops the run:

  • "Connect your OpenRouter key so the next run can start." with Open Connections, when no working key is connected (not on a brand that runs on your agent). Team members see "Ask the account owner to connect an OpenRouter key to start." instead, without the link.
  • "Scripts get better with brand details. Add them on the Brand page.", linking to What you sell on Brand, when the brand setup score is below 50%.

The step sheet

Click a card (or tab to it and press Enter) to open the step sheet on the right. It shows what the old step list showed, and more:

  • The step name with its status, and what the step does. A failed step shows why (see When a step fails).
  • Model, Status, Started, Duration, Tokens in / out, Cached tokens, Cost with its source, Attempts and Playbook. On a run on your agent also Waiting since and Picked up by your agent.
  • Research insights on the Research step and Angles on the Angles step: what those steps found. They moved here from the run page.
  • On the Scripts step, how many scripts the run made and Review scripts; on the Check step, Review flagged scripts.

Press Escape or click outside to close it.

Switching a step's model for the next run

The bottom of the step sheet, Next runs, holds Model for the next runs: the brand's model for this step. Pick one from the list or type any OpenRouter model id, then click Save; the sheet says "Model saved for the next runs." It is the same setting as the step's model under AI pipeline, which All pipeline settings opens.

The run you are looking at keeps the model it ran with ("This run used {model}. Runs that already started keep their model."), and so does every run that already started. The change applies from the next run on. It needs marketing edit access, like the AI pipeline settings. On a run on your agent the sheet says "Your agent picks its own models." instead.

Run statuses

StatusMeaning
WaitingAnother run of the same brand is busy; this one starts when it ends
RunningA step is working
Paused at run limitThe run reached its own cost limit before the next model call
Paused at monthly limitThe brand reached its monthly limit before the next model call
DoneEvery step finished
FailedA step failed; see the step for the reason
CancelledSomeone cancelled the run

Paused at run limit and Paused at monthly limit are two different pauses: the first is this run's own cost limit, the second the brand's limit for the month. Each has its own Continue (see The cost limit and The monthly limit).

Steps show Not started, Waiting, Running, Done, Failed, Skipped or Paused. On a brand whose steps run on your agent, a step can also show Waiting for your agent (ready, not picked up yet) or Stalled (waiting for 30 minutes without being picked up). A stalled step adds "Your agent has not picked up a step in time. Check that your agent is running and its schedule is on." at the top of the run, with a link to Your agent.

Cost

Every model call is billed to your OpenRouter account; Borkol does not bill AI tokens. The run page shows the cost per step and in total, with where the number comes from:

  • measured: OpenRouter reported the cost of every call.
  • estimated: OpenRouter did not report it for a call, so Borkol estimated it from the model's list price.
  • cost unknown: Borkol has no price for the model you chose and OpenRouter did not report one.
  • reported by your agent: the step ran on your agent, which reported its own cost. Your agent pays for its models, not your OpenRouter key.

Your OpenRouter activity page stays the source of truth for what you paid.

The cost limit

Each run has a Cost limit (the Cost limit per run setting, $1.00 by default, for runs on Borkol; a run on your agent is never paused at it). Before every model call the run checks what it has spent. Once the limit is reached it stops before the next call: the run shows Paused at run limit and the page says "Paused at the cost limit: {spent} of {cap} spent. Continue with a higher limit, or cancel the run." Scripts already written stay.

Continue asks for a New cost limit, filled in with double the current one. It must be higher than what is spent so far, and at most $50. The paused step then carries on. Continuing needs the approve permission, the same one that approves scripts.

The monthly limit

Each brand also has a Monthly limit, $25 by default, set under Costs. Before every model call a run on Borkol also checks what the brand has spent this month (UTC). Once the brand reaches its monthly limit, the run stops before the next call, exactly like at the cost limit: it shows Paused at monthly limit and the page says "Paused at this brand's monthly limit: {spent} of {cap} spent this month. Continue with a higher monthly limit, or cancel the run." Other brands and runs on your agent are not paused.

Continue then asks for a New monthly limit, filled in with double the current one. It must be higher than this month's spend, and at most $5,000. The new limit is saved for the brand and the paused step carries on. Raising the monthly limit needs the approve permission.

Golden checks

A golden check of a playbook change is a run too, so the run limit, the monthly limit, cost recording and the canvas all apply. It writes no scripts into Scripts and is left out of Recent runs; its page shows Golden check with "This golden check compares the current and the proposed playbook. Its scores are on the proposal." and Open the playbook change. Steps it does not need show Skipped.

Cancel or try again

  • More actions → Cancel run stops a waiting, running or paused run after you confirm "Cancel this run?". Steps that have not run yet are skipped; scripts already written stay.
  • A Failed run has Try again, which runs the failed step again with the same cost limit.

When a step fails

MessageWhat to do
"No working OpenRouter key."Connect or replace the key under Connections
"The OpenRouter account is out of credits."Add credits on OpenRouter, then Try again
"The model provider was busy or rate limited."Wait a moment, then Try again
"The model returned output in the wrong shape twice."Try again, or pick another model for the step
"This model has no zero data retention (ZDR) provider on OpenRouter."Pick another model for the step in the step sheet or the AI pipeline settings, then Try again
"This step failed."Try again; if it keeps failing, contact Borkol

One run at a time

By default one run per brand works at a time (Runs at the same time, up to 3). A run you start while another is busy shows Waiting and starts by itself when the earlier one ends, oldest first. Runs of another brand are not held up.

Notifications

When a run ends, the bell in the bar shows one notification with your request after it: "3 scripts ready for review" when it wrote scripts to review, "Marketing run finished" or "Marketing run failed" otherwise, and "Marketing run paused at its cost limit" or "Marketing run paused at the monthly limit" when it paused. On a brand that runs on your agent, a step nobody picks up for 30 minutes sends "Your agent has not picked up {step}" once per step. Click it to open the run. A run you cancel sends nothing. The mobile app sends the same events as push notifications.

Who can do what

Starting, cancelling, Try again and switching a step's model need marketing edit access. Continue after the cost limit or the monthly limit needs the approve permission. Members with read access see runs and their pages.

On mobile

The Borkol app starts runs from the same question box, lists runs by day and shows a run as a list of its steps with status, model, duration and cost. Continue, Try again and Cancel run follow the same rules as here; the pipeline canvas, the step sheet and the brief stay on the web. See Marketing on mobile.