Reports & learnings

Overview
Marketing → Reports holds two things:
- Reports summarise how your goal did in a period: KPIs, a summary and the
actions of the period (tasks done, tests decided, autopilot steps).
- Learnings capture what a completed test showed — winner or loser with reasoning. The AI takes
them into account for every new strategy, ad and message.
The previous acquisition analytics (leads per source, attribution) are under Reports → Acquisition analytics.
Core tasks
1. Read reports
Reports are created automatically once the campaign has launched:
- Daily report — every morning for the previous day,
- Weekly report — at the end of the first, second and third week for the seven days before,
- Final report — after the last day of the goal (or after “End goal”) for the whole period.
Choose the goal at the top and the report on the left. Each report shows spend, leads, the KPI value, how far the goal is reached, the summary, the actions and the figures per channel. The figures are a snapshot of the report day.
2. Create a report now
Create now writes the report of the chosen type right away: daily = today so far, weekly = the last seven days, final only after the goal has ended. A second click updates the same report.
3. Send by email
Send by email sends the report to the goal’s responsible people — exactly once per recipient. Which reports go out by themselves is set under Goal & strategy → Edit. The link in the email opens exactly this report.
4. Import and maintain learnings
In the Learnings tab, Import from tests takes every decided test that has no learning yet — ad variants (the winner and every loser of the group) and split tests of send-outs. This also happens by itself every morning. Without a clear difference (tie, too little data) no learning is created.
Record a learning adds one of your own, for example from a test outside Octibiz. Take into account removes a learning from the AI’s proposals without deleting it.
Fields in detail
The page reads and creates reports via /v1/marketing/goal-reports (email: POST …/send), learnings via /v1/marketing/learnings (import: POST /v1/marketing/learnings/collect). The grey name after the label is the API field.
Create report
| Field | Required | Values / format | What it does |
|---|---|---|---|
Goal goalUlid | yes | a goal of your brand | Which goal the report is for. |
Report type kind | yes | daily, weekly, final | Day (today), week (last seven days) or final (whole period, only after the end). |
Read-only: period (periodFrom, periodTo), KPIs (kpis: costCent, leads, purchases, revenueCent, cplCent, cpaCent, roas, impressions, clicks, channels, daily, progress), the summary (summary, summaryAiUsed), the actions (actions with kind: task_done, test_winner, test_loser, autopilot …) and the send-out (sentAt, sentCount).
Learning
| Field | Required | Values / format | What it does |
|---|---|---|---|
Brand brandId | no | a brand in which you may manage goals | Which brand the learning applies to — across all goals. |
Test testName | yes | text, at most 200 characters | Name of the test. |
Tested subject | no | text, at most 500 characters | What was tested: headline, subject line, message. |
Result result | yes | winner, loser | Winner or loser. |
Channel channel | no | ads, email, sms, whatsapp | Where it was tested. |
Ad network network | no | meta, linkedin, tiktok … | Advertising only. |
Reasoning reason | yes, for your own | text, at most 2000 characters | Why. Optional for imported tests — otherwise the reasoning comes from the figures. |
Take into account active | no | yes/no, default yes | Whether the AI considers the learning for new proposals. |
Read-only: origin (sourceType: ad_variant, split_test, manual), the test figures (metric, value, compareValue, sampleSize), the goal of the period (goalUlid) and the time (decidedAt). For imported tests, test, result and channel are fixed.
Settings & permissions
- Viewing requires seeing the marketing analytics in the brand (
marketing.report.view). - Creating, sending by email and maintaining learnings requires
marketing.goal.managein the brand
of the goal or learning; “Import from tests” only works in those brands.
- Reports only go to active users who may see the brand’s analytics — checked again when sending. Sending
uses the single send path; every email appears in the goal’s history.
- The summary needs AI to be set up (
ai.gateway, task **Summarise daily, weekly and final report of a
marketing goal**, marketing.goal_report), charged to the brand’s AI budget. Without AI only the figures are shown. The run is daily at 06:30.
FAQ & troubleshooting
There are no reports yet. Reports are only created after Launch campaign — the first daily report on the morning after.
“The final report is created once the goal has ended.” The final report covers the whole period; for an interim view use the weekly report.
A test does not appear as a learning. It is not decided yet, ended in a tie or had too little data.