Midwater

Every conversation your AI agents have, known.

Your AI receptionists and support agents talk to thousands of people a month. Nobody could listen to all of it. Midwater reads every call and chat in full and tells you what actually happened.

0 mSurfaceDescend

You can see the top. Below it, nobody's looking.

A dashboard tells you how many calls your agents took and how long they lasted. It can't tell you whether the caller got what they needed, whether the booking really happened, or whether someone asked for a person and never got one. That's all down in the conversations.

  1. Send

    Your platform sends each finished call or chat to Midwater with its transcript: one request per conversation, or connect your call platform and it happens on its own.

  2. Read

    Midwater's model reads the whole conversation and answers your checks in plain language, pointing to the turns behind every answer.

  3. Know

    Every call gets an outcome, every agent gets a health status, and the calls that need you rise to the surface.

Most life in the ocean lives here, unseen. So do most of your calls.

The midwater, between the bright surface and the dark floor, is the largest living space on Earth and the least explored. Your agents' conversations are like that: too many to watch, too important to guess at. Midwater reads them all.

Example callFront desk · Voice · 1 min 48 s · Live
  1. 01AgentThanks for calling Harbor Dental. This call may be recorded. How can I help?
  2. 02CallerI was charged twice for my cleaning. Can I talk to someone in billing?
  3. 03AgentI can help with billing questions. Could you tell me your date of birth?
  4. 04CallerI'd rather speak to a person, please.
  5. 05AgentI understand. Is there anything else I can help you with today?
  6. 06CallerNo. Forget it.
Was the caller's need handled?
NoTurns 2, 6
Did the caller ask for a person, and get one?
Asked twice, never transferredHigh severityTurns 2, 4
Was an appointment actually booked?
Not part of this call
Was pricing asked about, and answered?
Not asked
Was a card number spoken aloud?
No
How frustrated was the caller?
High by the endTurn 6
OutcomeUnresolvedAn alert went to the front-desk team's Slack channel.

Every call ends one of four ways.

Resolved
The caller got what they came for.
Unresolved
They didn't, and Midwater shows you where it went wrong.
Handed to a person
The agent passed the caller to your team.
Not a customer call
Wrong numbers, spam and silence, kept out of your results.

And every agent has a health status.

  • Front deskAt risk3 requests for a person not honored this week
  • After-hours lineWatchFewer calls resolved than last week
  • Booking assistantHealthySteady for 30 days
  • Spanish lineNot enough calls yetA status shows after a few more calls

Example agents. Health is worked out over the last 7 and 30 days of calls.

No sunlight reaches this far. Midwater brings what it finds back up.

Alerts, the moment it matters

When a high-severity check fails on a live call, Midwater tells the right people in Slack or sends a webhook to your systems, with a link straight to the call. Routes decide which agents and checks go where.

check.failed · conversation.evaluated · agent.health_changed · group.health_changed

Example alert.

A review queue for the calls it isn't sure about

When Midwater can't tell, it says so and sets the call aside for a person. Confirm or correct it, and your answer stays with the call, so you can see how often Midwater agrees with you.

Example review queue.

Groups, by client, location or line

Put agents in folders however your business is shaped. A group's health is its weakest agent's, so one struggling agent is never hidden by the rest.

  • Harbor DentalAt risk
    • Front desk At risk
    • Booking assistant Healthy
  • Lakeside PlumbingHealthy
    • Dispatch line Healthy

Example groups.

Test and live, kept apart

Try things in a test environment with its own keys, then go live with separate ones. Test calls never set off alerts unless you ask them to.

Example keys.

Reports you can share

Send a client or your team a link that shows how their agents did, prepared under your workspace's name. Stop sharing whenever you like.

Harbor Dental · How calls ended in September

  • Resolved 62%
  • Handed to a person 21%
  • Unresolved 17%

Prepared for you by Northshore Voice · Powered by Midwater

Example report.

One request per conversation

Send each finished call or chat to the API when it ends. Results come back over the API and in webhooks, and every request is in your workspace's log.

Read the docs
curl https://api.midwater.ai/v1/conversations \
  -H "Authorization: Bearer $MIDWATER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "call_8f2a91",
    "channel": "voice",
    "agent": { "id": "front-desk", "name": "Front desk" },
    "transcript": [
      { "speaker": "agent", "text": "Thanks for calling…" },
      { "speaker": "user",  "text": "Can I move my booking?" }
    ]
  }'

→ 202 { "id": "cnv_…", "status": "queued" }

Built to hold many businesses at once, each one sealed off.

Every workspace is isolated
Calls, agents, keys, alerts and reports belong to one workspace and are never visible to another.
Keys for each environment
Test and live keys are separate and can be revoked one at a time. A test key only ever writes test calls.
For agencies and single businesses
Run one business's agents, or every client's from one account, with a group for each client and reports you can share with them.
Your conversations
Before general availability we'll publish exactly how conversations are stored, for how long, and who processes them. Ask us for the current draft.

Come see what's been down there all along.

Midwater is in early access. Tell us a little about your agents and we'll be in touch to bring you on.

Whose agents are they?