Internal copy. Presenter notes are showing. Press Escape to hide them
01 / 11
Partner Intake API01/11

One request, and your patient is in care.

Send us a patient from your system. We create the record, open a clinical queue item, and put their intake forms in front of them, all in a single call you can safely repeat.

Partner Intake API Integration overview Arrow keys to advance
SignalIntake accepted
What it is02/11

A clinical back end you can call, instead of one you have to build.

You own the patient relationship and the front end. Everything behind the handoff, from licensed provider matching through clinical review, prescribing and fulfilment, runs on our side under our clinical entity.

Calls to integrate
1One POST per patient. No SDK, no polling loop, no queue for you to drain.
Required fields
3Name, email, and the state the patient is in. Everything else is optional.
Duplicate records
0A repeated call returns the original patient rather than creating a second one.
Typical time to live
DaysMost partners are sending real intakes within a week of receiving a key.
The handoff03/11

Four steps, and only two of them are yours.

The boundary is deliberate. You stop at the moment a patient is ready for care, and we pick them up there.

Step 01

You capture the patient

Your funnel, form or checkout collects their details, however you already do it.

Your system
Step 02

You post the intake

One authenticated call carrying the patient's name, email and state.

Your system
Step 03

We open the chart

A patient record and a clinical queue item, returned to you with identifiers you can store.

TrueEval
Step 04

The patient completes intake

They get a secure link to a health history baseline and a form specific to their treatment.

TrueEval
Who talks to the patient

By default we email the intake link. If you would rather keep every message in your own brand and voice, say so and we will hand you the link and stay silent.

What you send04/11

A complete, working request fits on one screen.

Three fields are required. The rest sharpen the clinical picture, and you can add them at your own pace once you are live.

patient_nameFull name, as one string.
patient_emailThe patient's identity for the intake link.
patient_stateTwo letter code. Providers are licensed per state, so this decides who is allowed to see them.
external_order_idYour own reference. This is what makes a repeated call safe.
treatment_typeWhat they are coming in for. We infer it if you leave it out.
Requestcurl
# One patient, one call.
# Your base URL is issued with your key.
curl -X POST "$TRUEEVAL_BASE/external-intake-webhook" \
  -H "x-api-key: te_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "patient_name":      "Jordan Reyes",
    "patient_email":     "jordan@example.com",
    "patient_state":     "TX",
    "treatment_type":    "glp1",
    "external_order_id": "ORD-2026-44817"
  }'
Phone and address

Send a phone number and we can text the intake link as well as email it. Send an address if anything will ship to the patient.

In plain English

If you can give us a name, an email address and a state, you can send us a patient. Everything else only makes the clinician's job easier.

What comes back05/11

Two identifiers worth writing down.

201 Createdabridged
{
  "success":           true,
  "patient_id":        "8f14e45f…",
  "queue_item_id":     "c9a2d7b1…",
  "status":            "pending_intake",
  "intake_link":       "https://…",
  "treatment_program": "GLP1 Weight Management",
  "email_sent":        true
}
patient_idOur permanent identifier for this person. Every future conversation about them starts here.
queue_item_idThis specific episode of care, which is not the same thing as the patient.
intake_linkTheir secure form address, which is what you send if you are handling the messaging.
statusWhere the episode starts. Useful on your own dashboards.
Store both

Partners who keep only the patient identifier end up unable to say which visit they are asking about. Keep the pair together.

In plain English

Save the two ID numbers we hand back. One says who the patient is. The other says which visit you are talking about.

Reliability06/11

The failure that creates two patients cannot happen here.

The dangerous network failure is not the one that fails. It is the one that succeeds on our side and times out on yours. You send it again, and now one person has two charts.

Sending your own external_order_id closes that. We key on it, so a repeat of the same intake returns the original result rather than creating anything new.

Recommended

Generate the reference once, when the intake is first created in your system, and not once per attempt. Then repeat freely on timeouts and server errors.

200 OKsame reference sent twice
{
  "success":       true,
  "deduplicated":  true,
  "patient_id":    "8f14e45f…",
  "queue_item_id": "c9a2d7b1…",
  "message":       "Request already processed"
}

Same identifiers, no second chart, and no second email to the patient. The status code tells you which happened: 201 created something new, 200 found it already there.

In plain English

If your server never hears back from ours, send the identical request again. You get the same patient back, not a second one.

Access and trust07/11

Your key does exactly what it was issued to do, and nothing else.

Scoped by design
  • Keys carry named permissions. An intake key can create patients and open queue items. It cannot read anyone else's data.
  • If a permission is missing, the response names it, so you never have to guess.
Stored as a hash
  • We keep a one way hash, never a readable copy. Nobody at TrueEval can look your key up.
  • A lost or exposed key is replaced rather than recovered. Rotation runs with an overlap window so you switch across without downtime.
Clinically bounded
  • State decides which licensed provider may see a patient. That routing is enforced on our side, not trusted from yours.
  • Every access to a chart is attributed and auditable.
In plain English

Your key opens one door and no others. We cannot read it back to you. A patient in Texas is only ever seen by someone licensed in Texas.

Where the patient lands08/11

One integration, a whole platform behind it.

The API is the front door. What makes it worth walking through is everything already standing on the other side.

The compliance layer
  • Provider licensing tracked per state, so a patient is only ever seen by someone allowed to treat them where they live.
  • Credentialing, state rules, and an audit trail on every chart access.
The clinical record
  • Intake, clinical review, notes, orders and follow up all sit on one record.
  • Your call opens that record, so nothing has to be keyed in twice.
Fulfilment
  • Prescriptions are dispensed and shipped through pharmacy partners already wired to the same record.
  • The journey does not stop at the consultation, so neither does your patient.
Getting started09/11

What we need from you, and what you get from us.

From you
  • A technical contact who owns the integration
  • Expected volume at launch, and at steady state
  • Which treatment types you will be sending
  • Whether we message patients, or you do
From us
  • An API key scoped to this integration
  • An agreed reference prefix for test traffic, so it is easy to spot and clear out
  • A named contact for integration questions
  • Notice ahead of any change to this contract
  • Authenticate firstPost an empty body. A validation error proves your key and headers are right.
  • Send one full intakeWith patient messaging switched off, so nothing reaches a real person while you are wiring up.
  • Send the exact same one againYou should get the same identifiers back and no second chart. This is the check most integrations skip and later regret.
  • Then one live runWith an address you control, so you see exactly what a patient sees.
In plain English

Tell us how many patients, and from which states. We hand you a key. You run four test calls before you send anybody real.

Who builds it10/11

Three ways to connect, and one of them asks nothing of you.

Nobody on your team has to write code for this to work. If you would rather hand it over, our engineers will go in and set the whole thing up for you.

Your developer
  • One authenticated POST. Most engineers finish it in an afternoon.
  • You get the field reference, sample requests and a named contact on our side.
Your automation tool
  • Zapier, Make, n8n or the webhook builder already inside your CRM can all send this call.
  • No code, no hosting, no deploy. You paste the fields into a form.
We do it for you
Our team, in your systems
  • You grant access. We build the connection, test it and hand it back working.
  • Scope and cost agreed in writing before anyone touches anything.
How the handover runs
  • Access. You give us the narrowest login that can do the job, on the one system that needs changing.
  • Build. We wire your form, funnel or CRM to the intake call.
  • Test. Four test patients, with messaging switched off, so nothing reaches a real person.
  • Handover. We walk you through what changed, then you revoke our access.
How we treat your access

We ask for the least we can work with, we never ask for anything holding patient data, and access ends the day the work does. If your platform can issue a temporary or limited login, use that one.

Typical shape

Most of these take under a week from access to first live patient. If your setup is unusual we will say so before we start, not halfway through.

Next11/11

Bring your volume, your states and your treatment list.

Thirty minutes with your engineer and ours is usually enough to agree the contract and issue a key.

Volume. Intakes per day at launch, and where you expect to be in six months.
States. Where your patients are, so we can confirm provider coverage.
Treatments. What you are sending, so we can map it to a program.
Messaging. Who emails the patient, you or us.
Timing. The date you want to be live.