Skip to content
IntuCloud is built on the open-source intu-dev engine — star it on GitHub

Platform

A canvas for people who can read the code underneath.

The IntuCloud designer is a full-screen React Flow canvas where a channel takes shape as nodes and edges. Underneath, it is a channel.yaml file and a folder of TypeScript stages — the same project the open-source engine runs.

The IntuCloud designer showing the adt-a01a08-distribution channel: a TCP (MLLP) listener on port 2575 flowing through Preprocessor, Validator, Source Filter, Transformer and Postprocessor TypeScript stages, then fanning out to FHIR, Database and Kafka destinations, each with its own filter, transformer and response-transformer hooks

Canvas

Design the whole channel at a glance.

A channel in a legacy interface engine lives in a GUI backed by a database, and the only way to review a change is to click through it. Here the canvas and the repository are the same artifact. Open the designer, change a mapping, and the diff is a TypeScript file.

That matters most when something breaks at 2am: the channel that is running in production is a set of files you can read, blame, and revert.

  • Full-screen React Flow canvas — sources on the left, stages in the middle, destinations fanning right.
  • Stage chips on each node show which stages are enabled without opening anything.
  • Add destinations from a palette; each carries its own filter, transformer and response transformer.
  • The canvas is a view of channel.yaml — rearranging nodes changes a file, not a hidden database row.

Pipeline

Nine stages, all TypeScript.

Five stages run once per inbound message on the source side. Three more run per destination, so a channel that fans out to three systems can shape each payload independently.

Source stages — run once per message

  1. 1

    Preprocessor

    Normalize the raw payload before anything else touches it — encoding fixes, line endings, envelope stripping.

  2. 2

    Validator

    Assert the message is what you expect. Reject structurally invalid input at the edge instead of downstream.

  3. 3

    Filter

    Decide whether this message belongs in this channel at all. Return false and the message stops here.

  4. 4

    Transformer

    The main mapping step: reshape HL7 segments into FHIR resources, enrich, or restructure as needed.

  5. 5

    Postprocessor

    Run after the source pipeline completes — bookkeeping, acknowledgement shaping, side effects.

Per-destination hooks

  1. 1

    Filter

    Per destination: should this particular endpoint receive this message?

  2. 2

    Transformer

    Per destination: shape the payload for that specific system — a FHIR bundle here, a flat file there.

  3. 3

    Response Transformer

    Interpret what the destination sent back and decide whether it counts as success.

Five source stages plus three destination hooks, plus the destination dispatch itself — the nine stages a message can pass through on its way out.

TypeScript

Real TypeScript, not a scripting dialect.

Transformer logic is ordinary TypeScript running on a Node.js worker pool. If you can write it in a modern codebase, you can write it in a stage — modern syntax, real types, and the standard library you already know.

The in-browser runner executes the stage against whatever sample message you point it at and shows you the output. Nothing is deployed and no environment is consumed while you are still working out the mapping.

  • Monaco editor with type checking, completion and inline errors.
  • npm type packages available — @types/fhir for FHIR resource shapes, for example.
  • Run a stage in the browser against a sample message in a Web Worker, before anything deploys.
  • Iterate on a mapping in seconds instead of a deploy cycle.

Test data

Bring the messages you actually receive.

Good integration work is mostly about the messages that do not look like the specification. The test-data library exists so the odd ones become fixtures rather than folklore.

On the Free plan, test data must be synthetic — PHI is permitted only on Team and Enterprise under a BAA. See Security & Compliance.

  • Upload HL7 v2, FHIR and CDA samples into the project test-data library.
  • Capture payloads directly from sandbox runs and save them as fixtures.
  • Re-run any stage against a saved fixture to check a change before promoting it.
  • Keep synthetic fixtures in the repository so the next engineer inherits them.

Migration

Start from the channels you already run.

Most teams do not start with a blank canvas. The import wizard reads Mirth Connect channel XML and rebuilds it as an intu-dev project, so the first thing you see in the designer is something you recognize.

  • Import Mirth Connect channel XML through the in-app wizard.
  • Imported channels arrive as editable visual pipelines, not read-only documents.
  • The engine CLI equivalent is intu import mirth for scripted bulk migration.
  • Review, test in the sandbox, then promote — channel by channel, at your pace.

Git-friendly

Everything is a file. Nothing is trapped.

Portability is a design constraint here, not a marketing line. The designer writes the same project layout the open-source engine reads, which is what makes "export and leave" a real option rather than a promise.

  • Publish creates a revision you can inspect and roll back to.
  • Export the whole project as a portable intu-dev project at any time.
  • The exported project runs on the open-source engine with no IntuCloud account.
  • Channels and projects are unlimited on every plan, including Free.

Start building today.

Free plan, no credit card — design and test unlimited channels.