Email & SMS platform

Customer messaging, rewritten around consent.

OrnexReach is the email and SMS platform for teams whose customer data lives in more than one system — and whose consent record has to hold up when somebody asks.

AWS UK region Email + SMS in one API Multi-tenant by design
Built for teams running

Why we built OrnexReach

Most messaging tools stop where the hard part starts.

  • 01

    Consent is spread across three systems and none of them agree

    An unsubscribe lands in the email tool, the CRM keeps its own tick-box, and a spreadsheet import quietly re-opts somebody in. When a complaint arrives, nobody can say which record was true at the moment of sending.

  • 02

    The customer is five rows in five systems

    Two email addresses, an old phone number, a CRM id and a CSV row. Without one canonical person behind them, segments are guesswork and the same customer gets the same campaign twice.

  • 03

    Every new triggered email needs a developer and a deploy

    A reminder that should take an afternoon takes a sprint, because the event, the template and the rule all live in code. Marketing waits; the backlog wins.

What OrnexReach does

One platform from raw data to delivered message.

Six things it takes care of, so the campaign is the only thing you have to think about.

01

One profile per person

A canonical profile with an identity graph behind it, so email addresses, phone numbers and external ids all resolve to the same customer.

  • Identity resolution on every inbound event
  • Non-destructive merges with a retained history
  • Per-profile activity timeline
02

Consent as a system of record

An append-only ledger — nothing is ever updated or deleted — projected into a live consent state using most-restrictive-wins.

  • Connectors can revoke consent, never grant it
  • Checked at creation and at fire time
  • Audited override path for off-platform evidence
03

Email and SMS on one API

Amazon SES v2 for email and AWS End User Messaging for SMS, behind a single send API with idempotency and a contract-locked response.

  • Separate marketing and transactional queues
  • Suppression list with bounce and complaint feedback
  • Delivery, open and click events streamed back
04

An email builder your brand can't break

Drag-and-drop blocks that render Outlook-safe HTML, with brand themes applied at creation time and reusable saved sections.

  • Themes for palette, fonts and button style
  • Media library on a CDN with permanent URLs
  • Versioning and a draft → test → activate flow
05

Data in without a data team

Bring customer data in the way you already have it, map it once, and preview the diff before anything is written.

  • Guided CSV import with column type inference
  • REST push, signed webhooks and scheduled pulls
  • Dry-run every mapping before you activate it
06

Journeys that fire themselves

Register an event, point a rule at it, pick a template. No deploy, no developer, and a test-fire before it ever reaches a customer.

  • Filters, delays, throttles and cancel conditions
  • Loop guards and per-workspace fire quotas
  • Scheduling relative to a date in the event itself

How it works

Four steps from first connection to first send.

01

Connect your data

Upload a CSV, point a webhook at us, or pull from Salesforce or OrnexCRM. Map columns once; the mapping is versioned.

02

Settle consent

Every inbound signal is written to the ledger. The current state is derived, never overwritten, and always shows its working.

03

Build the message

Compose in the builder on your brand theme, or reuse a saved section. Preview, send a test, then activate.

04

Automate and measure

Attach a trigger rule or a segment, watch delivery events land, and export the numbers when finance asks.

See the detail of each step

Under the hood

The unglamorous parts, done properly.

The things you only notice when they're missing — and the reason a send you scheduled last month still behaves the way you expect.

Tenant isolation

Every workspace-scoped read is filtered by workspace, and a cross-tenant lookup returns a 404 rather than a 403 — so existence itself isn't leaked.

Idempotent sends

Durable idempotency keys in Postgres mean a retried request doesn't become a second email to the same customer.

Queues that survive a bad day

Separate SQS lanes for marketing, transactional and ingestion traffic, each with a dead-letter queue, so one noisy campaign can't starve a password reset.

Additive migrations only

Schema changes are additive and nullable-safe, and the send API response shape is pinned by a test. Upgrades don't break your integration.

Images that never expire

Media is content-addressed and served through a CDN, and any asset used in a sent email is frozen — the URL in a two-year-old email still resolves.

An audit trail worth reading

Rule activations, mapping changes, consent overrides and key rotations are recorded with who did them and when.

UK hosting

Runs in AWS eu-west-2 (London), with sending, storage and processing kept in region.

Reconciliation, daily

A scheduled job reconciles our record of what was sent against what the providers report, so the reporting you export is the reporting that happened.

Consent & deliverability

The gate is in the platform, not in the process.

Consent isn't a checkbox on a campaign screen. It's enforced twice — when a send is created and again at the moment it fires — and there is no code path around it.

Most-restrictive-wins

A later opt-out always beats an earlier opt-in for the same identifier and purpose. Re-importing an old list can't resurrect a lapsed permission.

Marketing email needs an unsubscribe link

A marketing send whose body has no unsubscribe link is rejected at the API, not caught in review.

Transactional stays separate

Transactional messages ride their own queues and are counted separately — and a marketing template can't be sent as transactional to dodge the gate.

How consent is recorded

// consent_event — append-only. Nothing here is ever updated. { identifier: "ada@example.com", purpose: "marketing", state: "opt_in", source: "preference_centre", occurredAt: "2026-02-11T09:14:02Z" } { identifier: "ada@example.com", purpose: "marketing", state: "opt_out", source: "unsubscribe_link", occurredAt: "2026-06-30T18:02:47Z" } // projection → profile.email_consent = "opt_out" // a CSV import claiming opt_in cannot overturn this.

Customer story — placeholder

“Add a short, specific quote here — ideally one that names the problem the team had before, and the thing they can now do in an afternoon.”

Name, Role — Company

Common questions

Straight answers.

How long does it take to send our first campaign?

The gating item is almost always domain authentication — SPF, DKIM and DMARC records have to be published and verified before anything leaves. Once DNS has propagated, importing a list, building a template and sending a test is same-day work.

Do we have to move our CRM?

No. OrnexReach sits alongside whatever you already run. Data comes in by CSV, REST, signed webhook or a scheduled pull, and unsubscribes can be read back out through a consent feed so your CRM stays current.

Who is the system of record for consent?

OrnexReach is, by design. Inbound connectors can revoke consent but never grant it, so an import can't quietly re-subscribe somebody. Your other systems can poll the consent feed to stay aligned.

Where is our data held?

In AWS eu-west-2 (London) — database, queues, media and sending infrastructure. Each tenant's data is isolated at the row level and enforced on every read.

Can non-technical staff set up a triggered email?

Yes, that's the point of the self-service layer. An admin registers an event type, builds a rule against it in the portal, picks a template, and test-fires it as a dry run — with no deploy and no developer.

Is there an API?

OrnexReach is an API first and a portal second. Sends, events, profiles and templates are all available over REST with scoped API keys, and the interactive reference is published with the service.

See it against your own data.

A 30-minute walkthrough: connect a sample list, build one journey, and look at what the consent ledger records. No slideware.

Book a demo Explore the platform