> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frayme.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Request information from the customer

> Send a templated request for documents or explanations, track it in the queue, and cancel it if needed.

export const Clip = ({id, caption}) => <Frame caption={caption}>
    <video controls muted playsInline preload="metadata" className="w-full aspect-video rounded-xl" poster={`/videos/guides/${id}.poster.png`} src={`/videos/guides/${id}.mp4`} />
  </Frame>;

export const Shot = ({id, alt, caption}) => <Frame caption={caption}>
    <img className="block dark:hidden rounded-lg" src={`/images/guides/${id}.light.png`} alt={alt} loading="lazy" decoding="async" />
    <img className="hidden dark:block rounded-lg" src={`/images/guides/${id}.dark.png`} alt={alt} loading="lazy" decoding="async" />
  </Frame>;

An information request (RFI) asks the customer for something you need before deciding. Frayme composes the email; **your company's systems deliver it** through the communication webhook. Frayme never sends email itself.

<Clip id="analyst/send-rfi" caption="Compose from a template, send, and see the case marked as awaiting information." />

## When to send one

Send a request when the evidence is incomplete rather than wrong: missing proof of address, an unexplained source of funds, a document that needs re-capture.

## Open Request Information

You need the claim. **Request Information** sits in the decision rail under Approve and Decline.

<Shot id="analyst/rfi-01-button" alt="Decision rail with Request Information" caption="Request Information in the decision rail." />

## To, CC and the verified identifier

**To** is resolved by Frayme from the case and cannot be edited. The badge next to it tells you where the address came from: **verified identifier** (from the case subject), **AI-extracted**, or **caller-supplied**. **CC** takes up to ten addresses, comma-separated, with your recently used ones suggested.

<Shot id="analyst/rfi-02-compose-empty" alt="Request Information dialog before choosing a template" caption="The recipient is resolved from the case." />

If the case has no usable email, the dialog says **No customer email on file** and sending is blocked.

<Shot id="analyst/rfi-08-no-recipient" alt="Dialog with no recipient" caption="Without an email identifier nothing can be sent." />

## Pick a template

Templates come from **Settings → Communication**. Choosing one fills **Subject** and **Body** with the case data merged in: customer name, amount, currency, case id.

<Shot id="analyst/rfi-03-template-select" alt="Template list" caption="Templates your tenant defined." />

<Shot id="analyst/rfi-04-compose-merged" alt="Subject and body rendered from the template" caption="Variables are replaced with the case values; anything unresolved is listed above the body." />

You can edit the subject and body before sending. If you clear the body, Frayme asks whether to send the template's default text.

## Send

**Send request** records the request on the case, writes **Information requested** to the timeline and emits a `case.rfi_requested` event to your webhook endpoint.

## Awaiting information

The rail now shows **Awaiting customer information** with the masked address, and the queue row gets an **Awaiting info** chip. **Hide awaiting info** on the queue hides these cases.

<Shot id="analyst/rfi-05-sent" alt="Awaiting customer information banner in the decision rail" caption="The case is parked as awaiting information." />

<Shot id="analyst/rfi-07-queue-chip" alt="Queue row with the Awaiting info chip" caption="The queue marks the case." />

## One open request per case

Opening **Request Information** again shows **A request has already been sent** with the recipient, time and template. Cancel it to compose a new one.

<Shot id="analyst/rfi-06-already-sent" alt="Already sent state" caption="One case holds at most one open request." />

## Cancel a request

**Cancel request** closes the open request and writes **Information request cancelled** to the timeline. You can then decide or compose a new request.
