# Whistleblower reports

URL: /workflows/processes/whistleblower-reports · Id: `process:whistleblower-reports`

> Whistleblower reports takes reports on a line outside management, acknowledges each within seven days, investigates, and protects the reporter.

Whistleblower reports takes reports on a line outside management, acknowledges each within seven days, investigates, and protects the reporter.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each report is acknowledged within seven days, investigated outside management, and answered within three months with the reporter protected. |
| Reads | [Thread](/business/nouns/thread) |
| Leaves | [Evidence](/business/nouns/evidence), [Decision](/business/nouns/decision), [Message](/business/nouns/message) |
| On time | Within 7 days (calendar time); the clock never stops. Late Actions go to the [Legal Lead](/agents/legal/legal-lead). |
| Runs in | Each Startup |

## Accountable
[Compliance Officer](/agents/legal/compliance-officer), [Legal Team](/agents/legal).

Responsible: [Compliance Officer](/agents/legal/compliance-officer).

Consulted: [Legal Lead](/agents/legal/legal-lead).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | on `Thread.created` where `intake = 'whistleblower-reports'` | [Legal Team](/agents/legal) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | 1. Acknowledge the report within seven days. | [Compliance Officer](/agents/legal/compliance-officer) | [Message.create](/business/nouns/message/create) | None |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | 2. Keep the reporter’s identity out of every record management can read. | [Compliance Officer](/agents/legal/compliance-officer) |  |  |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | 3. Investigate and record the findings as Evidence. | [Compliance Officer](/agents/legal/compliance-officer) | [Evidence.create](/business/nouns/evidence/create) | None |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | 4. Record the outcome and any fix as a Decision. | [Compliance Officer](/agents/legal/compliance-officer) | [Decision.create](/business/nouns/decision/create) | None |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) | 5. Tell the reporter what was done within three months of the report. | [Compliance Officer](/agents/legal/compliance-officer) | [Message.create](/business/nouns/message/create) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On `Thread.created` where `intake = 'whistleblower-reports'` | Starts [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) |
| Out | `Message.created` | Raised by step 1 of [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) |
| Out | `Evidence.created` | Raised by step 3 of [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) |
| Out | `Decision.created` | Raised by step 4 of [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) |

## Plays
No Play names this Process.

## Controls
No Control names this Process or a Workflow of it.

## Settings
None.

## Failure
A failed step retries; when retries run out, the Action goes to the [Legal Lead](/agents/legal/legal-lead).

| Step | On failure |
| --- | --- |
| [Take a whistleblower report](/workflows/processes/whistleblower-reports/take-whistleblower-report) 1. Acknowledge the report within seven days. | Times out after 7 days. Goes to the [Legal Lead](/agents/legal/legal-lead). |

## Loop
No loop: the path is never randomized, because it serves [Whistleblowing](/systems/legal-and-corporate/floor/whistleblowing).

## Code

**Ask**

```text
Turn on whistleblower reports
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

```ts
import { $ } from 'startup-builder'

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

## Example
A contractor reports that refunds are refused against policy. The [Compliance Officer](/agents/legal/compliance-officer) acknowledges the report the same day, investigates outside the [Customer Team](/agents/customer), and answers the reporter within six weeks.