Skip to content
IRIS
Case study Pharma cold chain EU data residency

Replacing 26 Make.com scenarios with IRIS — the Seemoto migration

Seemoto runs pharmaceutical environmental monitoring across five EU countries. Its alerting once lived in 26 hand-built Make.com scenarios with no state machine and no proof a human had acknowledged. We rebuilt it as IRIS: a single stateful engine that escalates SMS and voice across ~20 rounds in 6 languages, captures two-way acknowledgement, keeps data on the EU edge, and writes an audit-grade trail. The same engine delivered 1,431+ alerts in production on the prior AMS v1.

Honesty note. IRIS and Seemoto are both operated by MeshWorks Wireless Oy — Seemoto is our own production proving ground, not an arm’s-length customer. We share these numbers because we can stand behind every one of them: we run this alerting in production ourselves.

Situation

A pharma cold chain that cannot miss

Seemoto monitors temperature and environmental conditions for pharmaceutical storage and distribution across five EU countries — the Netherlands, Finland, Germany, Austria and Spain. The sensors are reliable. The hard part was never measurement; it was making sure that when a freezer or a shipment drifts out of range, the right person is actually reached, acknowledges, and the whole event is provable to an inspector months later — in the responder’s own language, at any hour, across every site.

Problem · 26 Make.com scenarios

Glue that grew faster than the value

Make.com connected the apps, but it could not hold the state of a critical alert. The alerting lived in 26 scenarios that failed the same four ways.

26 scenarios to keep alive

Every site, channel and escalation branch was a separate Make.com scenario. Twenty-six of them — each a chain of modules that can hit operation, rate or timeout limits at high volume, and needs maintaining whenever a webhook payload changes.

No state machine

Make.com fires steps; it does not hold the state of an open alert. There was no single source of truth for “is this excursion still unacknowledged, and which round are we on?” — so escalation logic had to be faked across scenarios.

No two-way proof

A reply from a recipient is just another inbound webhook to correlate by hand. There was no reliable way to prove a specific human had acknowledged a specific alert at a specific time — exactly what a pharma audit asks for.

Harder to operate at scale

More sites and more languages meant more scenarios and more operations consumed. The cost and operational overhead grew with the business instead of with the value.

Solution · IRIS

One stateful engine, edge-native

We rebuilt the alerting as IRIS: a single platform that owns the lifecycle of every alert and proves it.

Stateful escalation, one engine

Each alert is a Durable Object that holds its own state and drives up to ~20 escalation rounds. SMS → voice → the next responder, until a human acknowledges. No cross-scenario glue.

Two-way acknowledgement

Recipients reply (SMS) or press a key (voice/IVR). IRIS distinguishes “delivered” from “acknowledged” and only the latter resolves the alert — and it is timestamped against the alert that triggered it.

6 languages, SMS + voice

A multi-country cold chain spans languages. Each responder is reached in theirs across both live channels, from one message definition — not 26 branching scenarios.

EU data residency by architecture

Alert state lives in Cloudflare Durable Objects pinned to EU jurisdiction. Residency is structural, not a contractual promise on a US cloud.

Audit-grade event log

Every signal, dispatch, escalation round, reply and resolution is written immutably and exportably — the evidence trail GxP/GMP investigations demand, with GDPR Art. 15 / 17 support and a DPA.

Outcome

26 scenarios → one proven engine

The alerting now scales with sites and languages instead of fragmenting across them — and every alert leaves an auditable record.

1,431+
alerts delivered in production on the prior AMS v1 Source: MeshWorks Wireless Oy — Seemoto AMS v1 operations
5
EU countries served (NL, FI, DE, AT, ES) Source: Seemoto production deployment
6
languages, per recipient, across SMS + voice Source: IRIS live configuration

Seemoto migration — frequently asked

Is Seemoto an independent customer of IRIS?

No. Seemoto and IRIS are both operated by MeshWorks Wireless Oy. Seemoto is our own production proving ground, not an arm’s-length customer — which is precisely why we can speak to it concretely. The alerting engine ran Seemoto’s environmental monitoring in production before it became IRIS, and the figures here (5 EU countries, 1,431+ alerts on AMS v1, 26 Make.com scenarios replaced) are from that operation.

Why move off Make.com at all — it worked?

It worked — but it was not built for this. Make.com is excellent for connecting apps, but it has no state machine for a long-running alert, no native two-way acknowledgement proof, and cost and operational overhead that grow with every new site, language and escalation branch. For critical pharma cold-chain alerting — where you must prove a human was reached and acknowledged — those gaps are why we moved off it. IRIS replaces 26 hand-built scenarios with one stateful engine.

Can IRIS do this for our operation, not just Seemoto?

Yes — that is the point of turning it into a product. Any sensor platform, BMS or monitoring system that can fire a webhook posts an excursion to one REST endpoint, and IRIS takes over routing, language, escalation and the audit trail. The same engine that runs Seemoto across five EU countries is the one you get.

Run the engine that runs Seemoto

Start free with 1,000 credits — no credit card. The same stateful, EU-native engine, behind one REST call.