Skip to main content

Clinics · Complaints

RelayClinic operations

Patient complaints from every channel in one queue, with the practice manager deciding

Complaints reach a clinic by phone, email, WhatsApp and public reviews, and each lives in a different place. These field notes cover one queue, a Relay that triages and drafts, and a practice manager who approves every reply.

Valnora & Elric team6 min read

A patient complains on the phone on Monday, emails on Wednesday and leaves a one-star review on Friday. At most clinics those are three separate records, owned by three people, and nobody sees that they are the same problem. These notes cover a setup where every complaint lands in one queue, a Relay does the sorting and first drafts, and the practice manager decides what is said.

Where do complaints come from?

Four channels, all ending in one table.

  • Calls. Agent Inbound & Outbound, the Valnora & Elric product that answers and places calls (available by invitation), creates a support query when a caller complains. Those queries can be exported or synced into the complaints table during setup, so they sit alongside the rest.
  • WhatsApp. Incoming messages arrive through the WhatsApp webhook trigger. A short workflow in the workflow builder checks whether the message is a complaint and adds a row with a first category, severity and response deadline.
  • Email. The Relay watches the clinic’s Gmail or Outlook inbox, checking at least every five minutes, and triages complaint emails the same way it handles table rows.
  • Reviews. Staff paste them in, or a workflow pulls them through the generic API block where the review platform offers an API.

What does the Relay do with each complaint?

From a complaint on any channel to an approved reply

Calls, emails, WhatsApp messages and reviews become rows in one complaints table. A Relay watches the table, triages each complaint and drafts a reply. The practice manager approves every email, and monitors catch complaints that wait too long.

Data · Intake

  1. 01CallsAgent Inbound & Outbound creates a support query when a caller complains; it can be exported or synced into the table during setup.
  2. 02WhatsApp and emailThe WhatsApp webhook trigger starts a workflow that adds a row with a first category and severity. The Relay watches the inbox for emails.
  3. 03ReviewsAdded by staff, or pulled in by a workflow with the API block where the review site offers an API.
  4. 04Complaints tableOne row per complaint: channel, text, category, severity, owner and status.

Relay · Complaints coordinator

  1. 05TriageWatches the table, checks category and severity in a triage note, and flags anything clinical for the clinical lead.
  2. 06Complaints policyReads your complaints policy and response templates from the Knowledge Base.
  3. 07Drafted replyDrafts the response. No email goes out until the practice manager approves.
  4. 08Escalation timerA monitor alerts when a complaint passes its response deadline.

A Relay is an AI coworker with its own instructions, tools and approvals. Here it watches the complaints table, checking for new rows as often as every minute. For each one it checks the category (waiting time, billing, staff attitude, booking, clinical) and severity, suggests an owner, and writes a triage note in its chat. A Relay reads tables, and writes to tables go through a workflow it runs, so here the practice manager updates the row. It reads the complaints policy and reply templates from the Knowledge Base so its drafts follow your wording.

It never assesses care. Anything about diagnosis, treatment or a clinician’s decision is marked clinical and goes to the clinical lead with no drafted explanation.

How does it find root causes?

What the solution produces

Triage record (illustrative)

Record
Channel
WhatsApp · received 09:42
Complaint
"Waited 70 minutes past my slot and nobody told me why. Second time this month."
Category
Waiting time · non-clinical
Severity
Medium · repeat complainant
Possible root cause
Four waiting-time complaints this week, all for Tuesday afternoon orthopaedic clinics.
Respond by
Tomorrow 17:00, per the complaints policy
Relay triage · owner: practice manager

Drafted reply waiting for approval (illustrative)

Message

Dear Mr Rao, thank you for telling us about your wait on Tuesday, and I am sorry it happened twice this month.

We are looking at how our Tuesday afternoon clinic runs, and we will let patients know about delays as they happen.

If you would like to talk this through, please reply and I will call you at a time that suits you.

Waiting for approval · practice manager · expires in 24 h

Once a week, on a schedule with your time zone, the Relay reads the week’s rows and writes a short summary: which categories rose, which clinics or sessions they cluster around, and which patients complained more than once. In the example above, waiting-time complaints cluster on Tuesday afternoons. That is a scheduling question for the practice manager, not something the Relay fixes.

A dashboard over the same table shows complaints by category, site and week, so the pattern is visible between summaries.

Who approves the reply?

The practice manager, every time. Relays never send email without an approval: under Observe it is blocked, under Assist or Operate it waits for a person. The approval covers the exact text shown and expires after 24 hours by default, so an old draft cannot go out by accident.

Set the Relay to Assist so it drafts and asks. Its recipient policy decides who it may write to: internal only (the default), an allowlist of up to 20 domains, or anyone. Patients use many email providers, so clinics that want the Relay to send approved replies directly choose "anyone", and rely on the approval step. Clinics that prefer staff to send keep it internal only, and the Relay drafts to the practice manager instead.

Relays do not post to WhatsApp themselves or place calls. A WhatsApp send through the integration is a write, so it waits for the practice manager’s approval. Otherwise a person sends the approved text, or a workflow does once the row is marked approved.

What stops a complaint from going stale?

Each row carries a response deadline set from its severity. A rule flags rows past their deadline with no reply, and a monitor re-checks as often as every five minutes and alerts the practice manager by email, in the app or in Slack. The Relay can also start on that alert and draft a holding reply for approval.

Controls and governance

Approvals before action

Relays never send email or book meetings without an approval, under any autonomy setting. An approval covers the exact payload the reviewer saw and expires if nobody decides.

Audit trail

Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.

PII detection

A Guardrails block detects personal data and blocks or masks it before text reaches the next step.

Roles and permission groups

Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.

Row-level access

Row-level policies narrow what each person sees in tables, dashboards, exports and scheduled reports.

Run logs

Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.

More on how Agent Serve handles access, data and audit on the security page.

Complaint text often holds health details. Turn on PII redaction in Settings → Data retention for logs and block outputs, and use row-level access so each site sees its own complaints. Ask your counsel which complaint and health-data rules apply where you operate.

Where should a clinic start?

Start with email and WhatsApp only, and keep the Relay in Observe mode for two weeks, where it triages and reports but nothing can be sent. Compare its categories with the practice manager’s. Then move to Assist, add calls, and set the deadlines. For the call side, see checking every front-desk call.

Questions teams ask

Can the Relay reply on WhatsApp?

Not on its own. Relays do not post to WhatsApp themselves. If the WhatsApp integration is on the Relay’s allowlist, a send is a write, so it waits in the review queue until the practice manager approves the exact message. Otherwise a person sends the approved text, or a workflow with the WhatsApp Send Message block sends it once the row is marked approved.

What if a complaint is about care or treatment?

The Relay marks it clinical and routes it to the clinical lead. It does not judge whether the care was right, and it does not draft a clinical explanation.

How many complaints can one Relay handle?

By default a Relay runs up to 25 tasks a day and two at once. That covers many clinics; a larger group can split sites across Relays.

Before you start

What you need

  • A complaints table with channel, text, category, severity, owner, status and response deadline columns
  • Your complaints policy and approved reply templates in the Knowledge Base
  • A workflow from the WhatsApp webhook trigger that adds incoming complaints to the table
  • A Gmail, Outlook or workspace inbox for the Relay to watch and draft from
  • A named practice manager to approve replies, and a clinical lead for clinical complaints
  • Agreed response deadlines per severity, for the escalation monitor

Written by the Valnora & Elric team.

Figures, dashboards and sample outputs in this article are illustrative examples, not customer results. This article is for information only and isn't legal or regulatory advice.

Enterprise access

Put AI agents to work across your team

Agent Serve is available to teams by invitation. Tell us what you want to build and we will set up your workspace with you.