Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Goal & strategy

Goal & strategy screen in Octibiz

Overview

Marketing starts with a goal for four weeks (Marketing → Goal & strategy). From the goal, your brand profile, the connected channels, the results of the last four weeks and the learnings from tests, the AI creates a strategy: which channels with which share of the budget, why, and a prioritised task list in three columns — To do · In progress · Done.

Each brand always has exactly one running goal. The strategy is a proposal: it spends nothing and switches nothing on.

The autopilot (button Autopilot at the top of the page) then monitors ads and sending and optimises towards the goal metric — per channel with suggestions only, after your approval (default) or fully automatic within the limits you set.

Core tasks

1. Set a goal

  1. What is your goal? Pick a template: Scale volume despite losses, *Improve profitability

first*, Break even while growing, Not sure (the AI proposes a path) or Custom goal with one sentence in your own words.

  1. How do we measure it? Cost per lead, cost per purchase or revenue per ad euro. The KPI

that fits your past figures is marked “recommended”.

  1. Target for four weeks: for cost per lead the number of leads, for cost per purchase the number

of purchases, for revenue per ad euro the factor (3.5 = €3.50 revenue per ad euro). Optionally the budget for the period and the start (default today; the goal runs for 28 days).

  1. Create strategy creates the goal and generates the strategy. This takes a moment.

2. Read and regenerate the strategy

The Strategy card shows the summary and the channel mix with share, budget and reasoning. Regenerate creates the strategy again — open AI tasks are replaced, started, done and your own tasks stay.

If your brand profile is empty, Maintain brand profile is the first required task — without tone, audience and taboos every ad speaks into the void.

3. Work through the tasks

Clicking a task sets it to In progress and opens the page where it is done (connect ad account, create ad, create audience …). Drag a card to another column to change its state. Add task creates a task of your own.

4. Launch the campaign

Launch campaign is only possible once all required tasks are done; the goal card shows how many are open. From the launch on, the reports are created. Ad campaigns stay as they are — each is switched live individually with the release permission.

5. Edit or end the goal

Edit changes target, budget, the responsible people and which reports go out by email. End goal closes the goal early at once; afterwards a new one can be set. For five seconds Undo takes it back — via the interface POST /v1/marketing/goals/{ulid}/reopen, as long as the final report has not been written and the brand has no new goal.

6. Set up the autopilot

Autopilot opens Marketing → Goal & strategy → Autopilot (also via the card on the overview and under Settings → Marketing). Per channel — every ad network, email, SMS, WhatsApp — choose the level:

  • Suggestions only — the autopilot records what it would do; you apply it yourself.
  • After approval (default) — every action waits in the approval list; one click executes it.
  • Fully automatic — the autopilot acts at once, always within the limits. Only someone with the

budget permission (ads) or send permission (messages) in the brand can switch it on; the page shows who did. If that person loses the permission or their account, the level falls back to “after approval” by itself — with a notice and an entry in the log.

The limits apply per brand and channel: increase per day at most (default 20 % — all increases of a day together, measured against the daily budget at the start of the day) and optionally a daily cap of the network (sum of the daily budgets of all running campaigns of the brand in that network). Every campaign’s own cap always applies. Pausing and lowering are always allowed. The autopilot never increases a lifetime budget.

The style — Cautious, Balanced (default) or Aggressive — sets how much data and confidence a decision needs and how big the steps are. It can be overridden per channel.

For email, SMS and WhatsApp set the contact cap (default at most 5 promotional messages per recipient within 7 days across all channels; 0 = off) and switch email at each recipient’s best hour and channel per recipient on or off. Save applies the changes; Check now runs at once like the hourly run.

7. Approve, reject, revert

The approval list shows every waiting action with its reasoning (rule, metric, comparison, threshold) and before → after. Approve executes it with one click — through the same paths and locks as a rule; Reject discards it, and the same decision does not come back. Suggestions (level “suggestions only”, ChatGPT Ads) can only be dismissed. Open actions expire after three days because their figures are then outdated.

The log lists every action with time, channel, reasoning, before → after, actor (Autopilot on behalf of …, a person or an AI team member) and state. Revert restores what was there before: budget, paused campaigns and ads, send time and channel per recipient. Anything that spends money again passes the cap. The same entries appear in the reports and on the overview.

8. What the autopilot checks

It runs hourly, in the channel’s style, on the figures of the last seven full days:

  • Ad test — every ad group with at least two active ads: clicks per impression (from 20 results in

the group: results per impression) are compared statistically. Only with minimum runtime, minimum impressions per ad and enough clicks of the leading ad is anything decided: losers are paused; once every ad has been compared, the winner is fixed — it gets the group’s budget, and a learning is created.

  • Scale winners — if a result costs at most a share of the goal cost (goal budget divided by the

target), the daily budget rises by the style’s step.

  • Emergency brake — if a campaign spends a multiple of the goal cost without a single result, it is

paused (for revenue per ad euro: without revenue from twice the minimum spend).

the next run suggests pausing it — by the network’s level (pausing is always allowed), with the reason “Outlier warning” including spend, average and threshold in the log; at most once per campaign and day. Once the warning is acknowledged or resolved, no suggestion is created any more, and an open one expires.

  • Shift budget — between campaigns and ad networks: if the best campaign leads the weakest by the

style’s gap (results per euro), a share of the daily budget moves — the total never rises.

  • Fatigue — if the click-through rate drops clearly against the previous week or each person reached saw

the ads too often (frequency = impressions divided by the reach of the last seven days; only Meta, TikTok and LinkedIn report reach, the other networks check the click-through rate only), the task Renew ad appears on the goal’s task board (at most once a week). A draft with network and finding is waiting in the ad studio — whoever opens the task and clicks Create continues in exactly this draft.

  • Split test of an email (subject or content) — if one variant is reliably better, it is decided

before the deadline and the remaining send starts; otherwise the deadline decides as before.

  • Send time per recipient — a scheduled newsletter goes out in hourly waves: recipients with their

own best hour (from their opens and clicks) get it then, within 24 hours; all others at once.

  • Channel per recipient — in flows with a fallback chain, first the channel the recipient reacts to

best; the fallback stays behind it.

Emergency brake, scaling and shifting need a running goal, the outlier brake does not. ChatGPT Ads has no management API: everything there stays a recommendation for the OpenAI Ads Manager.

ThresholdCautiousBalancedAggressive
Confidence of a test decision95 %90 %80 %
Impressions per ad / clicks of the leader2,000 / 301,000 / 20500 / 10
Runtime before a test decision7 days4 days2 days
Minimum spend of a campaign (7 days)€50€30€15
Scale at cost per result at most / step70 % / +10 %80 % / +15 %90 % / +20 %
Emergency brake from spend without result3 × goal cost2 × goal cost1.5 × goal cost
Shift from gap / share1.5× / 10 %1.3× / 20 %1.2× / 30 %
Fatigue from drop in click-through rate30 %25 %20 %
Fatigue from frequency (7 days; Meta, TikTok, LinkedIn)4.03.53.0
Split test before deadline from recipients per variant20010050

9. Suggestions on their own

Every Monday from 6 am suggestions are created for every brand on their own — by default 5 ads, 3 emails, 1 SMS and 1 WhatsApp message. On top come suggestions on occasions: new product, overstock, new goal, decided test, fatigued ad and an upcoming occasion from the occasion calendar. Each occasion triggers at most once, and per day at most as many occasions as set (default 3) — the rest follow the next day.

The Suggestions on their own card on the autopilot page sets the amounts per area; 0 switches an area off. It shows whether the week is done, when the next run is due and how many occasions came today. Suggest now runs immediately like the hourly run.

  • If Monday is missed (server down, AI unreachable), the next run of the week catches up.
  • Without a configured AI nothing is created and nothing is charged; the card shows a hint. As soon as

the AI is on, the next run catches up on the week.

  • SMS and WhatsApp suggestions are only created when the channel is set up.
  • Every suggestion carries an approach, a reason with figures, a preselected product (never sold out),

format and network or channel. You find them in the ad studio, the mail studio, the SMS studio and the WhatsApp templates; one click turns them into the result. All open suggestions are returned by GET /v1/marketing/suggestions.

Fields in detail

The goal reads and writes via /v1/marketing/goals (strategy: POST …/strategy, launch: POST …/launch, end: POST …/end), tasks via /v1/marketing/goal-tasks. The grey name after the label is the API field.

Goal

FieldRequiredValues / formatWhat it does
Brand brandIdnoa brand in which you may manage goals; default: your only or the default brandWhich brand the goal applies to. One goal runs per brand; a goal never changes brand.
Template templateyesscale_despite_losses, profitability_first, break_even_growth, not_sure, customThe direction the strategy follows.
Custom goal customGoalfor customtext, at most 500 charactersYour goal in your own words; an addition for the other templates.
KPI kpiyescpl (cost per lead), cpa (cost per purchase), roas (revenue per ad euro)How success is measured — in overview, progress and reports.
Target targetValueyeswhole number above 0: leads (cpl), purchases (cpa) or revenue per ad euro in hundredths (roas, 350 = 3.5)What should be reached in four weeks. Progress in percent is measured against it.
Budget budgetCentnocents, 0 = openBudget for the whole period; the strategy splits it across channels to the cent.
Start periodStartnoYYYY-MM-DD, default todayFirst day; the end follows (28 days). After the launch the period is fixed.
Responsible people reportRecipientUlidsnoup to 10 active users who may see the brand’s analyticsThey receive the reports by email.
Reports by email reportMailKindsnodaily, weekly, finalWhich reports go to the responsible people.
Hint hintnotext, only for …/strategyExtra input for the AI, for example a focus.

Read-only: end and state (periodEnd, status: active, completed, ended), launch and end (launchedAt, endedAt), the strategy (strategy with summary and channels, strategyGeneratedAt), progress (progress), task counts (taskCounts), whether launch is possible (canLaunch) and after …/strategy the result (generation: aiUsed, tasksCreated, notice — aiInactive without AI, noAnswer without a usable answer).

Task

FieldRequiredValues / formatWhat it does
Goal goalUlidyes, on creationa running goalWhich goal the task belongs to; it never changes.
Title titleyestext, at most 200 charactersWhat to do.
Description descriptionnotext, at most 2000 charactersDetails.
Channel channelnoads, email, sms, whatsappWhat the task is for.
Ad network networknometa, linkedin, tiktok …Advertising only.
Work path actionnobrand_profile, connect_ads, ad_create, ad_review, audience, form, email_campaign, email_template, sms_campaign, whatsapp_campaign, consents, reportWhich page opens when clicking the task.
Required requirednoyes/noRequired tasks must be done before “Launch campaign”.
Order priorityno1 to 999, lower = firstWhere the task sits in its column.
State statusnotodo, in_progress, doneTo do · In progress · Done; start and completion are recorded.

Read-only: origin (source: ai, system, manual) and timestamps (startedAt, completedAt).

Autopilot

Read and save via /v1/marketing/autopilot (?brandId=), check at once with POST /v1/marketing/autopilot/run.

FieldRequiredValues / formatWhat it does
Brand brandIdnoa brand in which you may manage the autopilotWhich brand the setting applies to.
Style stylenocautious, balanced, aggressiveThresholds and step size of all rules (table above).
At most promotional messages contactCapMaxno0 to 100, 0 = no capContact cap per recipient across email, SMS and WhatsApp together; every send checks it.
Within days contactCapDaysno1 to 90Period of the cap.
Email at best hour bestTimenoyes/noWhether the autopilot suggests “at each recipient’s best hour” for scheduled newsletters.
Channel per recipient bestChannelnoyes/noWhether it suggests “channel per recipient” for flows with a fallback chain.
Channels channelsnolist, one row per channelPer channel: channel (required per row: meta, google, microsoft, pinterest, tiktok, linkedin, chatgpt, email, sms, whatsapp), Level level (suggest, approval, auto = suggestions only · after approval · fully automatic; ChatGPT Ads only suggest), Channel style style (cautious, balanced, aggressive or empty — overrides the brand style), Increase per day at most maxIncreasePercent (0 to 100, default 20; all increases of a day together, 0 = never increase) and Daily cap of the network dailyCapCent (cents or empty; maximum sum of the daily budgets of all running campaigns of the brand in this network).

Read-only: per channel the kind (kind), whether the network is switched on (available) and controllable (controllable), the effective style (effectiveStyle), who switched on full automation (enabledByUlid, enabledByName, enabledAt), a fallback (notice: revoked, noticeAt) and the required permission (requiredPermission); plus the thresholds per style (styles), open actions (open) and the last run (lastRunAt, lastRun).

Suggestions on their own

Read via GET /v1/marketing/suggestion-settings (?brandId=), save with POST /v1/marketing/suggestion-settings, run immediately with POST /v1/marketing/suggestion-settings/run.

FieldRequiredValues / formatWhat it does
Brand brandIdnoa brand in which you may run the autopilotWhich brand the amounts apply to.
Ads per week adsPerWeekno0 to 20, default 5Ad ideas every Monday; 0 = off.
Emails per week mailsPerWeekno0 to 20, default 3Email ideas every Monday; 0 = off.
SMS per week smsPerWeekno0 to 20, default 1SMS ideas every Monday, only with an SMS channel set up; 0 = off.
WhatsApp per week whatsappPerWeekno0 to 20, default 1WhatsApp ideas every Monday, only with WhatsApp switched on; 0 = off.
Occasions per day triggersPerDayno0 to 20, default 3At most this many occasions trigger suggestions per day; 0 = no occasion suggestions.
resetnolist of field namesSet these values back to the default.

Read-only: whether the brand sets a value itself (own), the defaults (defaults), whether the AI is on (aiActive), SMS and WhatsApp are ready (smsReady, whatsappReady), the week (week, weekDone), last and next run (lastRunAt, nextRunAt), occasions today (triggersToday) and after "Suggest now" the figures of the run (lastRun).

Autopilot action

Approval list and log via /v1/marketing/autopilot-actions (?brandId=&status=open|log), approve POST …/{ulid}/approve, reject POST …/{ulid}/reject, revert POST …/{ulid}/revert. All fields are read-only: kind (kind: ad_test, budget_increase, budget_decrease, budget_shift, campaign_pause, creative_renewal, split_decide, send_time, channel_choice; log entries level_fallback, contact_cap), state (status: suggested, pending, executed, rejected, failed, expired, reverted), channel, level and style at the time of the suggestion, subject (subjectType, subjectName, subjectPath), reasoning (reason: rule, metric, value, compare, threshold, confidence, sample, windowDays; for the outlier brake also percent, severity, day, warningUlid; for fatigue by frequency frequency, frequencyThreshold, reach), before and after (before, after), notice (notice, e.g. approvalNeeded, limitReached, chatgptAdsManager, warningAcknowledged), actor (actorType: autopilot, user, ai; actorName, onBehalfOfName), timestamps, whether it can be reverted (revertible) and which permissions approving or reverting require (requiredPermissions).

Settings & permissions

  • Viewing requires seeing the marketing analytics in the brand (marketing.report.view).
  • Setting a goal, generating the strategy, managing tasks, launching and ending requires **Manage

marketing goal, strategy, tasks, reports and learnings (marketing.goal.manage) in the goal’s brand**. The permission does not move money.

  • The strategy needs AI to be set up (ai.gateway). The task is Create strategy for a marketing goal

(marketing.strategy); it is charged to the brand’s AI budget and throttled per user.

  • The brand profile comes from Content; without that module the strategy

is created without a profile.

  • Viewing the autopilot requires seeing the brand’s marketing analytics (marketing.report.view).

Configuring, approving, rejecting and reverting requires Configure the marketing autopilot, approve and revert suggestions (marketing.autopilot.manage) in the brand — plus the permission of the effect: increasing, shifting, full automation of ads, higher limits and any revert that spends money again require marketing.ads.publish; lowering, pausing and ad tests marketing.ads.manage; split test, send time and channel per recipient as well as full automation of messages marketing.campaign.send; the renewal marketing.goal.manage.

  • AI team members use the autopilot through the same paths and permissions. They trigger

increases, shifts, re-activation and the remaining send of a split test only with the authority “self” for money or external impact — otherwise an approval is created. If an AI team member switched on full automation, every such action waits in the approval list without that authority.

  • Suggestions on their own are visible to anyone who sees the marketing reports; setting amounts and

"Suggest now" require marketing.autopilot.manage in the brand. The suggestions run on the brand's AI budget; what they lead to (launching an ad, sending an email) still requires its own permission.

  • The autopilot runs hourly in the scheduler; networks are only controlled through their adapter, where

every campaign’s cap is checked a second time.

FAQ & troubleshooting

“A goal is already running for this brand.” Each brand has one goal. End the running goal, then a new one can be set.

“Launch campaign” is greyed out. Required tasks are still open; the goal card shows how many. Or the goal has already launched.

No strategy is created. Without AI a notice appears; the basics are still in the tasks.

The autopilot suggests nothing. It needs figures: the style’s minimum spend, minimum impressions and runtime. Budget rules also need a running goal with a budget.

An “Outlier warning” suggestion has expired. The warning has since been acknowledged or resolved (notice warningAcknowledged) — the autopilot then no longer pauses the campaign.

“Full automation and higher limits require the permission …” You lack the budget or send permission in the brand. Lowering, switching off and “after approval” always work.

Full automation is back on “after approval”. The person who switched it on lost their permission or account. Someone with the permission switches it on again.

An approval fails with “limit reached”. The campaign cap, the network’s daily cap or the percentage per day is used up — tomorrow there is room again.

marketing.goal · Available from version 0.6.484