The Marketing module is where you reach your audience and where new leads come in. You keep a base of marketing contacts with their consent recorded, gather them into audiences (either fixed lists or live segments), and send them an email or SMS campaign. On the way in, lead-capture forms let people on your website leave their details, which land as a contact and a CRM lead automatically.
This is more than a bulk-send tool. It is a lean but genuine marketing engine with a consent-first spine: no campaign can reach a contact who has not granted consent for that channel, every send is checked against the platformβs suppression list first, and SMS is costed and gated before it goes out. This guide describes IXL CORE version 1.0.
Overview
Marketing covers four connected areas:
- Contacts β the people you may market to, each carrying separate email and SMS consent and a record of how that consent was obtained.
- Audiences β the group a campaign targets, as either a static list you curate by hand or a dynamic segment resolved live from a filter.
- Campaigns β a named email or SMS message that you compose, pre-flight for compliance and cost, then launch now or schedule for later.
- Lead-capture forms β public web forms that turn a visitorβs submission into a consented contact and a CRM lead.
Everything is scoped to your organisation, governed by permissions, and β because Marketing is a paid platform capability β gated behind a marketing entitlement (see Access & permissions).
Contacts & consent
A contact is a person you may market to. Each needs at least an email address or a phone number (a name, company, source and free-form tags are optional). Contacts are deduplicated within your organisation, so the same email or number never creates two records.
Consent is the heart of the module. Email consent and SMS consent are tracked separately, each moving through the states unknown, granted, denied or withdrawn. A contact is only ever sendable on a channel whose consent is granted β an unknown or withdrawn contact is quietly skipped, never mailed. When consent is granted the system stamps the source, timestamp and purpose as a compliance record, so you can always show how and why you were permitted to reach someone.
You can add contacts one at a time, import them in bulk from a CSV, or let them arrive through a lead-capture form. An import never fabricates consent: a rowβs consent comes from the file, and by default an imported contact stays unknown (and so not sendable) until consent is on record.
An explicit opt-out withdraws consent for a channel immediately and, crucially, also arms the platformβs messaging suppression list for that address or number. That closes the gap where a message was already queued before someone unsubscribed β the send pipeline re-checks suppression at delivery time and drops it. Re-granting consent lifts that suppression again. Every consent change is written to the audit trail.
Audiences β static lists & live segments
An audience is who a campaign goes to, and it comes in two kinds.
A static list is a named audience you curate by hand β βApril newsletterβ, say β by adding and removing contacts. Membership is fixed until you change it.
A dynamic segment holds no members at all: it stores a filter, and its members are resolved live every time you view or send it, so it is always current. You can filter by tags (any-of or all-of), contact source, email or SMS consent state, or channel eligibility (has an address or number and granted consent for that channel). Before you commit, you can preview any audience β a live count plus a sample of who it resolves to β and you can preview an ad-hoc segment filter before saving it as an audience at all.
Campaigns
A campaign is a single email or SMS message with a name, an optional objective, its content and the audience it targets. Every campaign starts as a draft so you can compose, review and revise it. A draft or scheduled campaign can still be edited; once it has begun sending it is locked, keeping the record of what actually went out honest.
When you build a campaign you set:
- Name and an optional objective β how you recognise it and why you are sending it.
- Channel β email or SMS, fixed when the campaign is created.
- Subject and HTML body for email, or a plain-text body for SMS.
- Audience β the static list or dynamic segment to reach.
- Schedule β an optional future send time; leave it blank to send on demand.
Pre-flight β see the compliance and cost picture before you send
Before launching you can run a pre-flight. Without sending anything, it resolves the audience and sorts every contact into mutually exclusive buckets: eligible, suppressed (on the platformβs bounce/complaint/opt-out list), no-consent, and unreachable (no address or number for the channel). For an SMS campaign it also estimates the credit cost and tells you whether your wallet can cover it. This is the honest picture of what a send will actually do.
Launching β consent-first, metered and safe
Launching a campaign is deliberately careful:
- Email goes out through the platformβs messaging hub, bundled with the rest of your platform email β it is not charged per message.
- SMS is metered: each eligible recipient debits SMS credits (priced by segment count with the platform margin applied). If the wallet cannot cover the send it is blocked before launch β you top up and try again.
- A large send (a high number of eligible recipients) needs an explicit confirmation before it proceeds β a cheap guard against an accidental blast.
- A campaign with a future schedule is parked in a scheduled state and picked up automatically when it falls due, running through the exact same send path. A scheduled or draft campaign is the only state you can launch from β once sent, it cannot be sent again.
Sending is idempotent and race-safe: a recipient is materialised at most once per campaign, and a concurrent double-launch is rejected rather than double-sending or double-charging.
Delivery tracking
As a campaign runs, every recipient gets its own record with a status β queued, sent, failed, suppressed or skipped (no consent) β and, where relevant, the reason. The campaign carries a stats snapshot you can read back: how many were queued, how many were suppressed, how many had no consent, and the total recipients resolved. Opening a sent campaign shows the per-recipient list β name, email or phone, status and reason β so you can see exactly who was reached and who was intentionally skipped, and why.
Lead-capture forms
A form is a public web form you build to gather leads. You define its fields (text, email, phone, company and message types), a consent statement and which channels that consent covers, and optionally attribute the form to a campaign. Each form has an opaque public key β the only credential needed to embed it β and a live summary of views, submissions, contacts created, leads handed to CRM and how many submissions carried consent, along with a conversion rate.
The public submit endpoint is unauthenticated but hardened: an unknown or inactive key returns a plain 404 with no enumeration hint, submissions are rate-limited, a hidden honeypot field silently absorbs bots, only declared fields are read, and the raw visitor IP is never stored (only a salted hash). A form that requires consent will not capture a lead without the opt-in ticked.
When a valid submission arrives, it does two things in one safe, idempotent step: it upserts a marketing contact (deduped by email or phone, recording the granted consent with its proof), and it creates or updates a CRM lead with the captured details, source and campaign attribution. A repeat submission updates the same contact and lead rather than spawning duplicates.
Access & permissions {#access-and-permissions}
Every Marketing action is governed by a capability, and viewing is always separate from managing. Someone can be allowed to see contacts, audiences, campaigns or forms without being able to create, edit, send or delete them. Capabilities are grouped by area β audiences and contacts, campaigns, and forms β and are enforced on every request, not merely hidden in the interface. On top of that, the whole module is gated behind the platformβs marketing entitlement, so it only appears for organisations whose plan includes it.
How Marketing connects
Marketing sits on the shared platform foundation rather than standing apart:
- Sending runs through the platform Communication Hub. Email and SMS both go out through the same hub that powers the rest of IXL CORE, with one suppression list and one SMS meter β Marketing invents no second sender and no second wallet.
- Suppression and opt-outs are honoured everywhere. When a contact opts out or an address bounces, that is recorded centrally and respected on every future campaign automatically.
- Leads flow into CRM. A form submission does not stop at Marketing β it opens or updates a real CRM lead, carrying its source, consent and campaign attribution, so a marketing enquiry becomes a sales record in the same motion.
That connection is the point: consent is captured once and trusted everywhere, sending reuses the platformβs money-safe messaging, and the leads you gather land where your team already works.
