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

# Launch RCM outreach campaigns for delinquent loans

> Configure and start a Revenue Cycle Management campaign in Safeclose to reach borrowers via SMS, email, or call when a loan falls behind schedule.

Revenue Cycle Management (RCM) in Safeclose is a structured outreach system that helps you stay in contact with borrowers when a loan has fallen behind schedule. Rather than tracking follow-ups manually, you configure a campaign — choosing which channels to use, the tone of the messages, and how often to reach out — and Safeclose records every action in a compliance log.

<Warning>
  RCM outreach copy generated by Safeclose does not constitute legal advice. Before sending any outbound communications to borrowers, consult your legal team to ensure compliance with applicable laws, including the Telephone Consumer Protection Act (TCPA) and any state or local regulations.
</Warning>

## Before you start

RCM campaigns have one hard prerequisite:

* The document must have an attached loan record
* That loan's status must be set to **BEHIND**

If the loan status is **CURRENT**, the campaign option is not available. Update the loan status to BEHIND via the document edit flow or the API before proceeding.

## Start a campaign

<Steps>
  <Step title="Open the document">
    Navigate to **Documents** and click the document whose loan is behind schedule. The detail view opens, showing the loan information and any existing RCM campaigns.
  </Step>

  <Step title="Open the outreach section">
    Scroll to the **Outreach** section on the document detail page and click **Start campaign**.
  </Step>

  <Step title="Choose your channels">
    Select at least one contact channel. You can enable multiple at once:

    | Channel   | What it enables                       |
    | --------- | ------------------------------------- |
    | **SMS**   | Text message outreach to the borrower |
    | **Email** | Email outreach to the borrower        |
    | **Call**  | Voice call outreach to the borrower   |

    <Note>
      At least one channel must be selected. The campaign form will not submit if all three are unchecked.
    </Note>
  </Step>

  <Step title="Set tone and cadence">
    * **Tone** — Describe the communication style for outreach messages. Common values: `empathetic`, `firm`, `neutral`. Up to 80 characters.
    * **Cadence** — Describe how frequently outreach should occur. Common values: `weekly`, `bi-weekly`, `monthly`. Up to 80 characters.

    <Tip>
      Use `empathetic` and `weekly` as defaults for early-stage delinquency. Switch to a firmer tone only after initial attempts have been made.
    </Tip>
  </Step>

  <Step title="Add notes (optional)">
    Enter any context your team needs to know about this borrower or campaign — for example, prior communication history or agreed payment arrangements. Notes are stored on the campaign record and visible in the document detail view.
  </Step>

  <Step title="Start the campaign">
    Click **Start outreach**. Safeclose creates the campaign record, marks it as **active**, and writes a `campaign_started` entry to the compliance log.
  </Step>
</Steps>

## Compliance logging

Every campaign action generates a permanent compliance record that cannot be deleted:

| Event              | When it is logged                               |
| ------------------ | ----------------------------------------------- |
| `campaign_started` | Immediately when you start a campaign           |
| `opt_out`          | When a borrower opts out of one or all channels |

These records appear in your compliance audit trail and cannot be altered or deleted. Each log entry captures the user who performed the action, the document and campaign IDs, the channels involved, and an ISO timestamp.

## Borrower opt-outs

If a borrower asks to stop receiving outreach, you must record an opt-out promptly. Opt-outs can be per-channel or for all channels at once.

<Steps>
  <Step title="Open the campaign on the document">
    Navigate to the document and scroll to the active RCM campaign.
  </Step>

  <Step title="Select the opt-out scope">
    Choose whether to opt the borrower out of a specific channel (`sms`, `email`, or `call`) or from all channels (`all`).

    Opting out from **all** channels sets the campaign to **inactive** so no further outreach is initiated.
  </Step>

  <Step title="Record the opt-out">
    Add any notes (for example, the borrower's stated reason or the date of their request) and confirm. Safeclose writes an `opt_out` compliance log entry immediately.
  </Step>
</Steps>

<Warning>
  Opt-outs must be honored promptly under TCPA and similar regulations. Record an opt-out in Safeclose as soon as you receive a borrower's request, and ensure your outreach integrations respect the inactive campaign status.
</Warning>

## API examples

Use the RCM API to start campaigns and record opt-outs from your own systems.

<CodeGroup>
  ```bash Start a campaign theme={null}
  curl -X POST https://api.safeclose.com/v1/documents/clxyz123abc/rcm \
    -H "Authorization: Bearer <your-token>" \
    -H "Content-Type: application/json" \
    -d '{
      "sms": true,
      "email": true,
      "call": false,
      "tone": "empathetic",
      "cadence": "weekly",
      "notes": "Borrower indicated temporary hardship; follow up gently."
    }'
  ```

  ```json Response (201 Created) theme={null}
  {
    "campaign": {
      "id": "rcm_abc789",
      "documentId": "clxyz123abc",
      "channels": "{\"sms\":true,\"email\":true,\"call\":false}",
      "tone": "empathetic",
      "cadence": "weekly",
      "notes": "Borrower indicated temporary hardship; follow up gently.",
      "active": true,
      "createdAt": "2026-04-27T15:30:00.000Z"
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```bash Record a channel opt-out theme={null}
  curl -X POST https://api.safeclose.com/v1/documents/clxyz123abc/rcm/opt-out \
    -H "Authorization: Bearer <your-token>" \
    -H "Content-Type: application/json" \
    -d '{
      "campaignId": "rcm_abc789",
      "channel": "sms",
      "notes": "Borrower called on 2026-04-27 and requested no further texts."
    }'
  ```

  ```bash Record an all-channel opt-out theme={null}
  curl -X POST https://api.safeclose.com/v1/documents/clxyz123abc/rcm/opt-out \
    -H "Authorization: Bearer <your-token>" \
    -H "Content-Type: application/json" \
    -d '{
      "campaignId": "rcm_abc789",
      "channel": "all",
      "notes": "Borrower submitted written cease-and-desist."
    }'
  ```

  ```json Response (200 OK) theme={null}
  {
    "ok": true
  }
  ```
</CodeGroup>

The `channel` field accepts `sms`, `email`, `call`, or `all`. Setting `channel` to `all` deactivates the campaign.

For the full request schema and error codes, see the [RCM API reference](/api/documents/rcm).
