Apps · Marketing

Omni marketing

The layer that turns a pile of marketing channels into one campaign. Omni contributes the hub, the visual campaign builder and the cross-channel numbers; the channels do the sending.

User guideApps › Omni marketing

Omni is a bundle

Installing Omni doesn't just install Omni. It pulls in the marketing apps it orchestrates and it hard-requires the segmentation layer underneath them.

EdgeAppsWhat happens on install
Requires Audiences Installed with Omni, always. A journey enrols an audience, so Omni is non-functional without it.
Includes Email marketing, SMS marketing, WhatsApp marketing, Social marketing, Social ads, Google ads, Landing pages, Webchat Every one your plan allows is installed alongside. The rest are skipped and shown as locked entries in the Marketing menu.
Minimum At least one channel The builder and Statistics are usable with a subset but meaningless with none, so the install stops if no channel can be installed.

What Omni itself contributes is the hub — the Marketing menu, the workspace, contacts, reports and statistics — and the campaign builder. It reuses the same flow engine and the same visual canvas the rest of the platform uses for automations, and it calls the channels' own send logic rather than reimplementing it. See Automation & logic for the engine those flows are built on.

The screens

Everything Omni adds lives under /omni, grouped in the sidebar.

ScreenWhereWhat it's for
Marketing (workspace)/omni/workspaceThe marketing home: headline numbers and a tile per surface — Campaigns & journeys, Contacts, Audiences, Email, SMS, Ads, Landing pages, Reports.
Campaign Builder/omniThe list of journeys and campaign flows, and the canvas that edits them.
Contacts/omni/contactsEvery contact seen across journeys, with a lead score and a cross-channel timeline.
Reports/omni/reportsAutomations vs campaign flows vs channels in one report, over 7 / 30 / 90 days.
Statistics/omni/statisticsSent, delivered, engaged, converted and spend across every installed channel.

Two kinds of flow

This is the distinction to get straight before you build anything. Both are drawn on the same canvas and both live in the same list, but they operate at completely different scales.

AutomationCampaign flow
The thing that walks the graphOne contactOne whole campaign
A step meansSend this person a messageCreate and launch a real campaign in that channel
A branch asksDid this person open / click / convert?Did that campaign's open rate clear a threshold?
Starts whenYou launch it, or its trigger firesYou launch it — Start (on launch)
Typical useWelcome series, lead nurtureSend the email campaign, wait 5 days, and if open rate is under 20% follow up on another channel

The Campaign Builder list offers New campaign flow and New automation as separate buttons, and each row carries its mode. The mode of an existing flow is fixed — build a new one to switch.

Building an automation

An automation walks each recipient through the canvas on their own cursor. Give it a name — the placeholder suggests e.g. Welcome series — choose how contacts get in, then draw the steps.

How contacts get in

TriggerBehaviour
AudienceEnrol an audience when you launch the journey. This is the default. One enrollment per resolved recipient.
CRM eventWhen a record is created or a field changes (lead status, tag added…). Pick the entity, Record created or Field changed / updated, optionally a field and a condition, and the field holding the contact's email or phone.
EngagementWhen a contact opens or clicks an email or converts. The contact's identifier is their email address.
ManualEnrol contacts by hand or from another flow.

An audience-triggered journey is launched — resolve the audience and enrol everyone now. An event-triggered journey is activated instead: nobody is enrolled up front, and contacts join as the trigger fires. The builder's button changes wording accordingly.

The canvas

The palette is deliberately marketing-only — the general automation actions (update a field, create a record, call an HTTP endpoint) are not offered here. What you get is the installed channels' marketing actions plus Omni's own control nodes:

NodeWhat it doesSettings
WaitPauses the contact for a fixed delay before the next step.Amount plus Minutes / Hours / Days. Capped at 30 days.
Branch if openedWaits for the recipient to open the previous message, then takes yes or no.Wait up to (hours), default 24. Check every (minutes), default 30.
Branch if clickedSame, for a click on a tracked link.As above.
Branch if convertedSame, for a conversion beacon.As above.
GoalMarks a conversion goal — boosts the contact's lead score and shows in reports.End the journey when reached stops the contact there.
Branching needs tracking in the message

A branch node only ever sees an outcome that was actually reported. Outcomes come from first-party tracking the message carries: put {omni_open_pixel} and {omni_link:https://…} into the message body of the step before the branch. A message without them can never produce an open or a click, so the branch always times out and takes no.

Message text can use {Field name} tokens, resolved from the source record the recipient came from, plus {name} and {identifier}.

Launching it

  1. Save Save stores the flow as Draft. The builder refuses to save without a name, and refuses to launch a journey with no steps on the canvas.
  2. Launch or activate For an audience journey, Launch asks to confirm, resolves the audience, enrols everyone, and reports back Enrolled N recipient(s) (N resolved, N already enrolled). For an event-driven journey, Activate just flips it live.
  3. Watch it run A background tick runs every minute and advances everyone who's due. The list shows Enrolled and Active / Done per journey.
Re-launching is safe

A recipient can only be enrolled in a journey once — the identifier is unique per journey. Launching the same audience journey again enrols only the people who have started matching since last time; everyone already in it is counted under already enrolled and left exactly where they are.

Editing a running journey

You can't. An active journey reads This journey is active — pause it to edit. And pausing is not a soft stop: pausing or archiving cancels every still-active enrollment. Resuming afterwards puts the journey back to active, but the cancelled recipients are not resumed — you would relaunch to enrol afresh. Treat pause as "stop this campaign", not "hold it for a minute".

Building a campaign flow

A campaign flow has no event trigger. It gets a locked Start (on launch) entry and an optional Default audience (optional) used by any step that doesn't set its own — the alternative reads No default — set per step.

As the builder puts it: A campaign flow starts when you launch it. Each step launches a real campaign in its channel; add Wait + Branch-on-result steps to relate them.

  1. Drop a channel step Each installed channel that can be launched from a flow contributes one action. A step gets an Audience select plus that channel's own settings — templates, senders, WhatsApp numbers, draft ad campaigns — populated from live data.
  2. Add a Wait Give the campaign time to produce numbers before you judge it.
  3. Branch on the result Branch on campaign result reads a launched step's measured outcome: a metric (open rate, click rate, conversion rate, engagement rate, delivered rate), an operator, and a threshold as a percentage. It can wait for the source campaign to finish first so the rate is final rather than mid-send. It emits yes and no handles.
  4. Launch Launch confirms with Launch this campaign flow now? It will start launching channel campaigns per its steps. and reports Campaign flow launched. Each launch creates one run.
Ad steps launch something you built first

An ads step in a campaign flow does not invent creative, budget or targeting. You shape the ad campaign in Ads as a draft first; the flow step references that draft and launches it. Nothing about spend or destination URLs can be conjured from the flow.

Before any result branch is evaluated the flow re-polls every still-running step it launched, so the numbers it decides on are current.

Results

Each flow in the list has a Results action, and what you get depends on the mode.

  • Automation results — a funnel of Enrolled → Sent → Opened → Clicked → Converted, with Failed; a By channel breakdown; a By step (drop-off) table; Enrolments over time (30d); and a Recipients list where each contact opens a timeline of what they touched and which step they're on now.
  • Campaign-flow results — a per-step table of Launches and the summed sent / delivered / opened / clicked / converted plus Spend, flow totals, and a Runs summary of total, running, completed and failed.
"Sent" means the step dispatched

In an automation funnel, Sent counts steps that executed without raising an error. A channel that declines to send — because the number is on its opt-out list, or no sender is configured — does not raise an error, so that recipient still counts as sent while no message went out. Reconcile against the channel's own campaign report, not the funnel, when the two disagree.

Contacts and lead scoring

Contacts is built from journey enrollments — as the empty state says, No contacts yet — they appear as journeys enrol recipients. Each contact is one identifier (an email address or a phone number) with their engagement counted across every journey they've been in, a computed Score, the journeys they're in, and a Timeline.

The Scoring panel holds the Lead-score weights — Open, Click, Convert and Goal. A contact's score is each metric's count multiplied by its weight, summed, and computed on the fly, so changing a weight re-scores everyone immediately.

Reports and statistics

Reports puts Automations, Campaign flows and channels side by side over a 7 / 30 / 90-day range — counts, completed, goals, runs, engaged.

Statistics is the channel-level roll-up: Sent, Delivered, Engaged, Converted and Spend as totals, plus a By channel table, over the same three ranges. Each channel reports its own numbers from its own tables; Omni only adds them up. With nothing installed it reads No marketing channels installed yet. Install Email, SMS, WhatsApp, Social or Ads from the Apps store to see stats here.

Who can do what

Opening the Omni screens needs access to the app. Two capabilities split authoring from going live, granted per role under Settings → Module Access. Admins pass everything.

PermissionUnlocks
App accessViewing journeys, contacts, reports, statistics and results.
Build journeysCreating and editing journeys, flows and scoring. Without it Save is disabled with the tooltip You don't have the 'Build journeys' permission (Settings → Module Access).
Launch journeys & campaignsEnrolling audiences, launching campaign flows, activating, pausing and resuming. Without it the Launch button is not shown.

Both are enforced on the server as well, so a member who only has Build cannot launch by any route. More on how app access and capabilities interact in Permissions & access.

When something doesn't run

What you seeWhat it means
No audiences yet — create one under Audiences first.An automation needs somebody to enrol. Build one in Audiences on the channel you intend to send on.
Pick an audience. / Name the journey. / Add at least one step to the canvas.The three things checked before a launch is allowed.
Launch reports 0 enrolledEither the audience resolves to nobody — check its live preview — or everyone in it was already enrolled from a previous launch.
Every contact takes the no branchThe preceding message carried no tracking tokens, so no open or click could ever be recorded. Add {omni_open_pixel} / {omni_link:…} and relaunch.
The Launch button isn't thereYou don't have Launch journeys & campaigns.
Statistics shows zerosThe installed channels genuinely have no activity in the selected range, or nothing has been launched yet. Widen to 90 days first.

For a single campaign traced from segment to result — including why one specific contact didn't get a message — read Campaign lifecycle.

Where to go next