---
title: "Answer named questions about an IVR caller"
method: POST
path: "/api/v1/ivr/routing/facts"
tags: ["IVR"]
---

# Answer named questions about an IVR caller

`POST /api/v1/ivr/routing/facts`

## Request

- Base URL: `https://api.cloverhealth.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cloverhealth.com/api/v1/ivr/routing/facts`
- Auth: API key in header `X-MC2-Signature`

GE-3316. Called by an IVR widget that wants to know something about the caller.

Returns only the facts named in `facts`, each computed only because it was asked for, and
decides nothing: the flow reads them and chooses where the call goes. It always answers 200:
a failure here must not strand a call, so if the service raises, every requested fact is
null ("could not tell") and the error is logged without the request's PHI.

## Request body

- IVRRoutingFactsRequest: Posted by an IVR widget that wants to know something about the caller (GE-3316). camelCase like the sibling IVR schemas. Every field is optional on purpose: refusing a request over a missing field would strand the call. `masterRecordId` is a plain string, not a UUID type, so a malformed id yields "no case" rather than a 422 the flow cannot recover from. `facts` names what the widget wants. Only those are computed, so a widget that needs nothing asks for nothing and pays for no query; omitted, null or empty means none.
  - `masterRecordId` string, nullable
  - `facts` string[], nullable

## Response `200`

OK

- IVRRoutingFactsResponse: The requested facts as "true"/"false" strings (the convention of `isOpen` and `isHoliday`). A fact is null when it could not be determined: null is not "false", so the flow can tell "no" from "could not tell". `details` holds what a fact names, by fact name (for `hasOpenWelcomeCase`, whether the case owner holds the TTEC skill as `ownerHasTtecSkill` "true"/"false", and their Twilio `workerSid`, an empty string when there is no one). Names that were asked for and do not exist are in `unknownFacts`.
  - `facts` object, required
  - `details` object, required
  - `unknownFacts` string[], required

## Changes

- **2026-10-30** `8b6b076703b7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cloverhealth/apis/clover-api/changes/api/v1/ivr/routing/facts/post.md)

---

[API](https://skmtc.dev/cloverhealth/apis/clover-api.md) - [All operations](https://skmtc.dev/cloverhealth/apis/clover-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloverhealth/apis/clover-api/revisions/824d541751f2?raw)
