Octibiz
Demo

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

Marketing settings

Marketing settings screen in Octibiz

Overview

Marketing settings maintain the module's statuses — in three tabs: campaigns, email campaigns and social posts.

In Octibiz statuses are data, not program logic: they can be created, renamed and reordered without anyone touching code. The order determines how lists and filters offer them.

The sending path does not belong here. It is configured under Integrations — that is where credentials live; here there is only vocabulary.

Core tasks

Maintain campaign statuses. The stages a campaign passes through.

Maintain email campaign statuses. The stages of a send.

Maintain social statuses. The stages of a post from planning to publication.

Set the order. All three lists are sortable; the order is what people later see in the selection fields.

Track opens. An invisible image in the mail reports when it was opened. The switch is off by default. Even when it is on, a mail only carries the image if the recipient has agreed to open tracking — a separate consent with the topic Open tracking, which a form can ask for or which you record with proof. If either is missing, the mail goes out without the image; clicks on links are counted regardless. Permission: platform.settings.manage (setting marketing.tracking.opens).

Studio variants. Under Studio variants you set how many variants the studios create by default: Variants per ad in the ad studio (2–8, default 4; setting marketing.studio.ad_variants) and Versions per email suggestion in the mail studio (1–3, default 2; setting marketing.studio.mail_versions). The number can be changed per run in the studio. Permission: platform.settings.manage.

Switch ad networks. Under Ad networks each network (Meta, LinkedIn, TikTok) shows whether it is switched on and whether an ad account is connected. LinkedIn and TikTok are off by default and can be switched on here (settings marketing.ads.linkedin.enabled, marketing.ads.tiktok.enabled, permission platform.settings.manage). Without an ad account it says "Access missing" with the way to connect. For TikTok there is an extra note that advertising needs a second app at "TikTok for Business" — the app used for posts is not enough. More under Ad campaigns.

Set up conversion reporting to ad networks. Under Conversion reporting to ad networks each network (Meta, Google Ads, TikTok, LinkedIn, Microsoft Advertising, Pinterest, ChatGPT) shows whether it gets leads, won deals and purchases reported back — with its status (Off, Incomplete, Ready), the numbers of the last 30 days and the last error. Set up opens the network's IDs. Below sits the log of every report. Permission to set up: marketing.ads.connect, to view: marketing.ads.view. More in the next section.

Maintain sender profiles. On whose behalf newsletters and journeys are sent: sender name, sender address, reply-to address and imprint. Per brand exactly one profile is the default; a profile without a brand is the house default for cross-brand sends and every brand without its own profile. A campaign can choose another profile on creation (Sender), a single message may override it once more. Permission: marketing.config.manage.

Conversion reporting to ad networks

Ad networks optimise for what they are told is a success. Octibiz reports three events back server-side via the networks' interfaces (Conversions API):

KindWhenValue
Leada lead is created (form, mask, import)no value
Deal wona deal is wonvalue of the deal
Purchasean invoice is fully paid (flow Report paid invoices to the ad networks)invoice amount with currency

By default Lead and Purchase are reported. “Deal won” and “Purchase” together count the same revenue twice when a paid invoice follows a won deal — pick only one then.

Only with consent. A person is reported only if they consented to ad measurement. The consent comes from the form: add a checkbox named ads_consent to the form, for example “I agree that my enquiry is passed on in hashed form to advertising partners (e.g. Meta, Google, Microsoft, Pinterest, ChatGPT) to measure advertising success.” The wording is stored as proof. Without consent nothing is stored and nothing is sent — the report shows as skipped in the log. Consent to ad measurement is deliberately separate from the marketing consent for newsletters.

Click IDs. When a person comes from an ad, the network appends an ID to the address (fbclid for Meta, ttclid for TikTok, li_fat_id for LinkedIn, gclid/gbraid/wbraid for Google, msclkid for Microsoft, epik for Pinterest, oppref for ChatGPT). The form picks it up from the submit address, from a hidden field of the same name or from the referring page and stores it with the consent — for 90 days, as long as the networks attribute a click.

Hashed only. Address, phone and name leave the system only as SHA-256 of the normalised values (as the networks require); nothing goes out in clear text. The log only shows what was matched on (e.g. em, fbclid), never the values.

Deduplicated and retried. Every report carries a fixed ID (octibiz.<kind>.<source>). The same event goes out exactly once per network, even if it fires twice; the network deduplicates on this ID as well. If a network does not answer (timeout, overload), Octibiz retries over about two hours. A final error stays in the log with the network's reason and can be queued again with Send again once fixed.

What to set up per network

Meta. In Events Manager under Data sources pick the dataset (pixel) and enter the dataset ID. Access: the token of the connected Meta ad connection is enough if the user has access to the dataset; otherwise store a system user token from Business Manager as own access token. To check, enter the test code from Test events — while it is set, reports only show up there.

TikTok. In TikTok Ads Manager under Tools → Events → Web events copy the pixel code. On the same page generate an Events API access token and enter it as own access token (otherwise the TikTok ad connection's token is used). Optionally a test code.

LinkedIn. In Campaign Manager under Analyze → Conversion tracking create one conversion per reported kind with the method Conversions API and link it to the campaigns; enter its number (or urn:lla:llaPartnerConversion:…) per kind. The LinkedIn ad connection needs the rw_conversions permission (partner access at the network); an own access token with this permission works too.

Google Ads. Under Goals → Conversions, create one conversion action “Import from clicks” per reported kind and enter its number (or customers/…/conversionActions/…) per kind. For leads without a click, enable enhanced conversions for leads — Google then matches via the hashed address. Access: the Google Ads sign-in with developer token; the customer ID comes from the chosen ad account (or enter it). Reported with gclid (or gbraid/wbraid), order ID = ID of the report.

Microsoft Advertising. Under Conversion tracking, create one “offline conversion” goal per kind and enter its name per kind. Access: the Microsoft sign-in with developer token; ad account and customer come from the connection (or enter them). Matched via msclkid or hashed address and phone.

Pinterest. The Pinterest connection with ads consent is enough; alternatively generate a conversion access token under Ads → Conversions and enter it as your own access key. The ad account comes from the connection (or enter it). Lead = lead, deal won and purchase = checkout; click ID epik.

ChatGPT. In the OpenAI Ads Manager under Conversions, create a Pixel ID and a Conversions API key. Enter the Pixel ID here and the key as your own access key (or as conversions_api_key on the “openai_ads” integration). Lead = lead_created, deal won and purchase = order_created; OpenAI appends the click ID oppref to the landing page. OpenAI only accepts reports up to seven days back.

Log

StatusMeaning
Pendingqueued, about to be sent
Sentaccepted by the network; the receipt is in the row
Failedreason in plain text (network message or missing setup); Send again possible
Skippeddeliberately not sent: no consent, nothing to match, network or kind off, erasure request

Goal metric measurement

Overview, goal progress, reports and strategy calculate with one metric across all channels: cost, leads, purchases and revenue per campaign, channel and ad network. Under Goal metric measurement you set how attribution works (read with marketing.report.view, change with marketing.config.manage).

Where the numbers come from. Advertising: spend, results and revenue as the ad network reports them (results count as leads for the goal “Leads”, as purchases for “Sales”). Mail, SMS and WhatsApp: deliveries and clicks of the sends, conversions of the sends. Plus Octibiz's own attribution: leads (first touch in the period) and won deals (won in the period, with the deal's value) go to the touches they came from.

Attribution model. Last touch (default — the way the ad networks count, too): the touch before the conversion gets the lead or deal. First touch: the touch through which the person first came. Linear: all touches share; the value is split to the cent, a deal still counts exactly once.

Nothing counts twice. Someone who comes from an ad and fills in your own form is a lead in Octibiz — and the ad network counts them via its form, the pixel or the conversion report as well. A paid touch (utm_medium=paid, source = network) therefore counts at the ad campaign instead of additionally at the campaign, and per row and day the larger of the two numbers applies, never the sum. The same for purchases: conversions of sends against won deals.

SMS and WhatsApp cost. SMS cost per part: an SMS has 160 characters, longer ones are chained in parts of 153 characters; with an emoji or another character outside the GSM character set it is 70 or 67 characters per part. WhatsApp costs per message. You maintain the price per SMS part and the price per WhatsApp message in ONE place, under Cost of SMS and WhatsApp on this page (guide values 8 and 13 cents) — they apply to the cost estimate before sending and to the metric. Without a price, the messages count as 0.

  • SMS campaigns (bulk sending): sent SMS × parts × price per part, on the day of sending.
  • SMS from journeys (step “Message” with channel SMS, also as a fallback): every SMS sent goes into the **send

log** — with its parts and the price at the time of sending. The cost appears at the journey's campaign; a later tariff change does not rewrite it. Whatever did not go out (no consent, blocked, provider error) costs nothing. The log holds neither number nor text, only the provider's ID for matching against its invoice.

  • WhatsApp (from journeys and from bulk sending to an audience, e.g. a campaign created from a template): every message

sent goes into the send log the same way — with the price per message at the time of sending — and counts at its campaign. A rerun of the same step on the same day sends nothing and costs nothing.

Outlier warnings

Every day at 9 am Octibiz compares marketing against its own history and reports what falls out of line. The list is under Marketing → Overview → View warnings (the notice appears as soon as something is open); the people in charge also get a notification.

KindCheckedDefault
Sudden spendan ad campaign's spend yesterday against the daily average of the 14 days before (at least 3 days with spend)from 200% and at least €50 more
Cost per goal risingcost per goal (conversion as reported by the network) of the last 7 days against the 28 days before (at least 5 goals); without a single goal it counts whether more than the raised cost of one goal was spentfrom 150%
Deliverability droppingbounces and spam complaints per sent mail of the last 7 days, higher than in the 28 days beforefrom 3% with at least 100 mails
High unsubscribe rateunsubscribes per sent mail of the last 7 daysfrom 1% with at least 100 mails

A warning becomes critical from one and a half times the threshold (advertising) or twice the threshold (mail). Per kind, brand and ad campaign there is at most one active warning: while the outlier lasts, only the numbers are updated — a notification goes out when it appears and when it is raised to “critical”, not every day. Once the outlier is over, the warning is resolved; if it comes back, a new one is created.

Acknowledge means “noted”: the warning stays active while the outlier lasts but does not notify again. Check now runs the daily check immediately. Advertising warnings go to holders of marketing.ads.manage, mail warnings to holders of marketing.campaign.manage — in the brand. Every new warning is also the trigger “Marketing outlier detected” for automations, for example to pause an ad campaign on sudden spend. The autopilot also suggests pausing the campaign in its next run while a “Sudden spend” warning is open; once acknowledged, it no longer does.

The thresholds are on the warnings page under Thresholds (change with marketing.config.manage).

Fields in detail

The What it does column answers what changes in the system — not what the field is called. The grey name behind the label is the API field: the same thing runs under that name through automation, import and AI tools.

Sender profile

FieldRequiredValues / formatWhat it does
Name nameyestextOnly to tell profiles apart in the selection — the inbox shows the sender name.
Brand brandIdnoone of your brands; empty = house defaultWhich brand the profile applies to.
Sender name fromNameyestextWhat the recipient reads as sender.
Sender address fromEmailyesemail addressMust match the sending domain (SPF/DKIM/DMARC), otherwise mail ends up in spam.
Reply-to address replyTonoemail addressWhere replies go; empty = to the sender address.
Imprint imprintnotextLegal details of the brand; available as {{ imprint }} in template and footer.
Default for this brand isDefaultnoyes/noExactly one profile per brand carries it — setting it takes it from the previous one.
Active activenoyes/noOnly active profiles can be chosen on the campaign.

Goal metric measurement

FieldRequiredValues / formatWhat it does
Attribution model attributionModelnolast_touch (default), first_touch, linearWhich touches own leads and won deals go to.

Warning thresholds

FieldRequiredValues / formatWhat it does
Check daily enablednoyes/no, default yesOff = no new warnings.
Sudden spend from spendSpikePercentno110–1000% (200)Daily spend in percent of the average of the 14 days before.
Minimum extra amount spendSpikeMinCentnocents (5000)Only from this much more than usual; also the minimum spend of the last 7 days for “cost per goal”.
Cost per goal from cpaRisePercentno110–1000% (150)Cost per goal of the last 7 days in percent of the 28 days before.
Undeliverable from bounceRateBasisPointsno10–5000 basis points (300 = 3%)Bounces and spam complaints per sent mail.
Unsubscribe rate from unsubscribeRateBasisPointsno10–5000 basis points (100 = 1%)Unsubscribes per sent mail.
Minimum number of mails minMailsnonumber (100)This many mails in 7 days for a rate to count.

Conversion reporting (per ad network)

FieldRequiredValues / formatWhat it does
Network networkyesmeta, google, tiktok, linkedin, microsoft, pinterest, chatgptWhich ad network receives the reports.
Brand brandIdnoone of your brands; empty = brand-lessA brand-less setup applies to every brand without its own; an own, switched-off setup turns the network off for that brand.
Send reports enablednoyes/no, default noOff = nothing goes to this network.
What is reported eventsnoLead, Deal won, PurchaseWhich events go out.
IDs settingsper networkMeta: dataset ID, test code · TikTok: pixel code, test code · LinkedIn: conversion rule per kind · Google: conversion action per kind, customer ID · Microsoft: conversion goal per kind, ad account, customer · Pinterest: ad account · ChatGPT: Pixel IDWhere the network books the report; the format is checked on save.
Own access token accessTokennotext, stored encryptedUsed instead of the ad connection's token; never shown again, saving it empty removes it.

Status of a dispatch

FieldRequiredValues / formatWhat it does
Key keyyesshort, stable textThe technical identifier for automation and reporting. Do not change it once dispatches sit on it.
Label labelyestextWhat the user sees.
Category categorynoopen, active, done, cancelledThe business meaning behind your name. The system decides by it which dispatch is still outstanding and which counts.
Colour colornocolour valueColour of the status marker.
Order sortOrdernonumberPosition in the selection.
Default isDefaultnoyes/noThe status a new dispatch starts on.
Active activenoyes/noOff means no longer selectable.

Settings & permissions

  • Module module.marketing — with it off, the settings tile disappears too.
  • marketing.ads.view — see status and log of the conversion reports; marketing.ads.connect — set them

up and send again. Both apply in the brand of the report.

  • marketing.config.manage — the permission for statuses and sender profiles. It is pre-assigned to no role:

whoever changes the status catalogue changes it for everyone.

  • The tile sits in the settings group Vertrieb & Kunden, see Settings.

FAQ & troubleshooting

I get no warning although spend went up. The comparison is with the 14 days before — a new campaign without three days of spend has no comparison yet. And only finished daily numbers count: ad numbers are pulled in the morning, the check runs at 9 am.

Why is a conversion report “skipped – no consent”? The person did not consent to ad measurement in the form (field ads_consent) — or the lead did not come through a form. Then nothing is reported, on purpose.

The network shows “Incomplete”. An ID is missing (its name is shown next to it) or access is: neither an own access token nor a connected ad connection.

I cannot see the tile. Either the module is disabled or marketing.config.manage is missing.

A status cannot be deleted. It is still in use. Rename it, or move the affected records first.

Where do I configure the sending provider? Not here, but under Integrations.

Where do I create email templates? Under Email sending & templates — templates are content, not configuration.

marketing.settings · Available from version 0.5.0