Health insurers and medical aids

The agent operating system for health insurers.

Health Loops run the member journeys between policy and claim: onboarding, check-ins, document chasing and renewals. Each loop works with the policy and claims systems you already run, talks to members by phone and SMS, and keeps a record of every step.
Teams that already run on Ollie
The problem

Where the work piles up

“Members only hear from us at claim time.”

The relationship is a premium debit and the occasional rejection letter.

“Half our claims wait on a missing document.”

Staff chase invoices, referrals and forms one member at a time.

“Every new benefit needs a new app.”

Launching a programme means a vendor, a project and a long wait.

“We can’t show what happened.”

When a member complains or an auditor asks, the trail is spread across inboxes and call notes.
How the loop works

How a loop runs a member journey

  1. Your system starts it. The policy or claims system calls the loop with the member and the reason. Your team can also run it from the dashboard.
  2. It applies your rules. The loop reads cover, limits and history from your endpoints. Plan rules live in the loop’s code, so they apply the same way every time.
  3. It reaches the member. A phone call, an SMS or a wellness scan link, whichever the journey needs.
  4. It waits, then carries on. The run parks until the member finishes a scan or a call ends, then carries on from the same line.
  5. It writes back. The outcome goes to your systems and the member’s record, and every step stays on file.
gp-visit-check.tsTypeScript
interface Visit { memberId: string; plan: "core" | "plus" }

export class HealthLoop extends Workflow {
  async run(event: HealthEvent<Visit>, step: HealthStep) {
    const { memberId, plan } = event.body;

    const visits = await step.do("Read visit count", async () => {
      const url = `${this.env.CLAIMS_API}/members/${memberId}/gp-visits`;
      const res = await fetch(url);
      return (await res.json()).count as number;
    });

    // Your plan rules, in code, applied the same way every time.
    const limit = plan === "core" ? 4 : 8;
    const decision = visits < limit ? "authorised" : "clinician_review";

    await step.do("Write decision", async () => {
      await fetch(`${this.env.CLAIMS_API}/members/${memberId}/decisions`, {
        method: "POST",
        body: JSON.stringify({ decision, visits, limit }),
      });
    });

    return { decision, visits, limit };
  }
}
Channels and integrations

What the loop works with

Phone calls. Outbound calls to a phone number, or a browser call from your app. Each call ends with a transcript and a summary.
SMS. One message or up to 500 at once, with opt-out checks and timed delivery.
Wellness scans. A phone-camera scan behind a consent screen, with a hosted PDF report. The scan link works from your app, a text message or WhatsApp.
Your own systems. Loops call your endpoints to read data and send results back. Your systems start loops with one authenticated API call.
Data and compliance

How data is handled

Your own data plane. Each organisation’s loops, runs, members and keys live in that organisation’s own store, apart from every other customer.
Keys you control. An API key only reaches loops in the organisation that made it, and you can revoke it at any time. Secrets are encrypted and only admins can see them.
A record of every run. The trigger, each step and its result, every tool call, every log line and every error are kept for your team to review.
Not for underwriting. A wellness snapshot is not a diagnosis. It is not used on its own to approve, decline or price cover.
FAQ

Questions

What does Health Loops do for a health insurer?

Health Loops runs member journeys as stateful health agents written as code. Insurers and medical aids use loops for onboarding, check-ins, claims document follow-up and renewals. Each loop calls the policy and claims systems you already run and keeps a record of every step.

Do we have to replace our policy or claims system?

No. Your systems start loops with an API call, and loops read from and write back to your own endpoints. Your systems of record stay where they are.

Can a loop make a decision on a claim or authorisation?

A loop applies the rules you write into it and records which rule applied. Where a person needs to decide, the loop hands the case to your team with the details attached.

Are wellness scans used for underwriting?

No. The scan gives a wellness snapshot, not a diagnosis, and it is not used on its own to approve, decline or price cover.

Who writes the loops?

Your developers write loops in TypeScript, or you describe the journey and Ollie writes the first draft. Each deploy is a new version, and runs already in progress finish on the version they started with.

Show us the journey costing you the most. We’ll show you the loop.