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

# External Incident Submission

> Once external reporting is enabled, customers or partners can submit incidents to a channel through a dedicated link or API without logging in to Flashduty, and the incidents automatically enter the assignment and notification flow

<Tip>**Plan requirement**: This feature requires an On-call Pro or higher subscription. [Learn more](https://flashcat.cloud/flashduty/price/)</Tip>

External incident submission allows external personnel (such as your customers or partners) to submit incidents through a standalone page or an API **without logging in** to Flashduty. Once submitted, the incident is created directly in the corresponding channel, where it automatically matches the escalation rules and notifies responders — ideal for routing customer-facing issue reporting into your unified incident handling process.

## Enable External Reporting

Go to **Channel Details → Configuration → Settings → Advanced Configuration** and turn on the **External Reporting** switch (you can also enable it in the channel creation wizard). Once enabled, the system generates a dedicated external reporting link for the channel — copy it and share it with external personnel.

<Warning>
  * The external reporting link is a login-free submission entry. Anyone with the link can submit incidents, so share it only with intended recipients
  * **Turning off external reporting immediately invalidates any shared link; turning it back on generates a new link** — the old link cannot be restored
</Warning>

## Submission Page

External personnel open the reporting link, fill in the incident on a standalone page, and submit it — no login required:

| Field                      | Required | Description                                                                                     |
| :------------------------- | :------- | :---------------------------------------------------------------------------------------------- |
| Title                      | Yes      | Up to 500 characters                                                                            |
| Description                | Yes      | Supports Markdown, up to 10,000 characters                                                      |
| Attachments or screenshots | No       | Up to 10 files; supports JPEG, PNG, WebP, GIF, TIFF, BMP, and ICO; each file must be under 5 MB |
| Email                      | Yes      | The reporter's contact, so responders can follow up for more information                        |
| Company                    | No       | The reporter's company name                                                                     |

A human verification (CAPTCHA) is required before submission. After a successful submission, the page shows a success message; if the link has been disabled or regenerated, the page shows **Invalid Link**, and the reporter needs to contact your team for a new link.

## What Happens After Submission

An externally submitted incident is created in the channel the link belongs to, with the following characteristics:

* **Severity**: fixed at **Warning**
* **Progress**: Triggered, the same as incidents triggered automatically by alerts
* **Reporter info**: the email and company are recorded as the incident's `reporter_email` and `reporter_company` labels, visible in the label area of the incident details
* **Auto assignment**: after creation, the incident automatically matches the channel's escalation rules and sends notifications

<Warning>
  If the channel has no escalation rule configured, an externally submitted incident is not assigned to anyone and no notification is sent. Before enabling external reporting, make sure the channel has a valid [escalation rule](/en/on-call/channel/escalation-rule).
</Warning>

## Submit via API

Besides the standalone page, you can integrate the submission capability into your own system. The external reporting link looks like `https://<console-domain>/incident/external-create/<token>` — take the `token` from it and call the API with `multipart/form-data`:

```bash theme={null}
curl -X POST "https://<console-domain>/api/incident/external-create?token=<token>" \
  -F 'data={"title":"Payment API errors","description":"All payment requests have returned 500 since 14:00","reporter_email":"ops@example.com","reporter_company":"Example Inc.","captcha_verify_param":"<captcha verify param>"}' \
  -F "images=@/path/to/screenshot.png"
```

| Part     | Description                                                                                                                                                                                                                                                                                                                                                                   |
| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`   | Required, a JSON string. Fields: `title` (required, up to 500 characters), `description` (required, up to 10,000 characters), `reporter_email` (required, up to 100 characters), `reporter_company` (optional, up to 100 characters), `captcha_verify_param` (human-verification CAPTCHA parameter, required in the SaaS environment; not needed for on-premises deployments) |
| `images` | Optional image files; multiple allowed. Each file must be under 5 MB and the whole request under 50 MB; excess images are silently ignored and only the first 10 are kept                                                                                                                                                                                                     |

A successful call returns the created incident ID:

```json theme={null}
{
  "data": {
    "incident_id": "664f1b2c8f2a1c0012ab34cd"
  }
}
```

## Further Reading

* [Create and Configure Channels](/en/on-call/channel/create-edit): where the external reporting switch lives
* [Configure Escalation Rules](/en/on-call/channel/escalation-rule): decides who gets notified for externally submitted incidents
