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

# Notification

> Comprehensive guide to Flashduty On-call supported notification channels, including App push, voice, SMS, email, and various IM tools

## Overview

***

### Supported Channel Matrix

Flashduty On-call provides a comprehensive notification matrix covering mobile App, traditional communication, and mainstream instant messaging (IM) tools.

| Channel Type           | Notification Form | Interactive        | Rating | Description                                                                       |
| ---------------------- | ----------------- | ------------------ | ------ | --------------------------------------------------------------------------------- |
| **Flashduty App**      | Direct Message    | ✅ Native           | ⭐⭐⭐⭐⭐  | Top choice for mobile work, supports incident handling, full-featured             |
| **Voice Call**         | Direct Message    | ✅ Keypad           | ⭐⭐⭐⭐   | High availability, used for major incident escalation, forced delivery            |
| **SMS**                | Direct Message    | ❌ Text only        | ⭐⭐     | High availability, covers no network signal scenarios                             |
| **Email**              | Direct Message    | ❌ Text only        | ⭐⭐     | Fallback notification channel, suitable for detailed incident reports             |
| **IM App Integration** | Direct/Group Chat | ✅ Card interaction | ⭐⭐⭐⭐⭐  | Top choice for team collaboration, supports handling incidents directly in groups |
| **IM Bot**             | Direct/Group Chat | ❌ Link redirect    | ⭐⭐     | Quick integration alternative, simple configuration, no admin permissions needed  |

***

## Core Notification Channel Configuration

***

### Flashduty App

The Flashduty App is the most efficient mobile work tool for On-call engineers. Wherever you are, you can fully control the incident handling process just like at your computer.

![Flashduty App](https://docs-cdn.flashcat.cloud/images/png/63bbac8f1f3de4dee54b8605e414c163.png)

<AccordionGroup>
  <Accordion title="Core Features" icon="star">
    **Critical Notifications, Must Reach Users**: iOS critical alerts are based on Apple's official Critical Alerts protocol, penetrating silent and Do Not Disturb modes; Android supports system-level push channels from mainstream manufacturers, ensuring App receives notifications even in background.

    **Efficient Mobile Handling**: Complete all core operations on your phone including searching, viewing details, acknowledging, closing, and escalating incidents.

    **Smart Voice Notification Recognition**: App can automatically sync Flashduty On-call voice notification numbers to phone contacts, avoiding misinterception.
  </Accordion>

  <Accordion title="How to Enable and Use" icon="mobile">
    <Steps>
      <Step title="Download and Install">
        Search "Flashduty" in App Store or major Android markets, or scan QR code in console personal center
      </Step>

      <Step title="Login and Link Device">
        Open App and login with your Flashduty account, or scan to login from console. After login, current device automatically links to your account
      </Step>

      <Step title="Enable Key Permissions">
        * **iOS Users**: In phone System Settings → Notifications → Flashduty On-call, enable **Critical Alerts** toggle
        * **All Users**: Recommend enabling **Sync Contacts** permission in App Settings → Voice Notifications
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="FAQ" icon="circle-question">
    **Why am I not receiving App push notifications?**

    1. Check if notification permissions are enabled for Flashduty App in phone system settings
    2. Confirm App push is set as one of the notification channels in your escalation rules
    3. If "Follow Personal Preferences" is set, check if Flashduty App is selected in personal notification settings
  </Accordion>
</AccordionGroup>

### Voice, SMS, Email

<Tabs>
  <Tab title="Use Cases">
    * **Incident Escalation**: Use voice calls for forced delivery in the final stage of escalation rules
    * **IM Fallback**: When IM app message delivery fails, system automatically sends supplementary reminders via SMS or email
    * **Offline Coverage**: Cover team members in poor network environments or without smartphones
  </Tab>

  <Tab title="How to Enable">
    <Steps>
      <Step title="Bind Contact Information">
        Go to **Personal Center** → **Basic Information**, bind and verify your phone number and email
      </Step>

      <Step title="Use in Escalation Rules">
        Add voice, SMS, or email as notification methods in **escalation rules**
      </Step>
    </Steps>
  </Tab>

  <Tab title="Voice Numbers">
    **Mainland China Numbers**:

    * +86 (010)21364727, (021)32017538, (010)21364713
    * (010)21364708, (0571)23675454, (0571)23675496

    **Outside Mainland China**: Use unified number `16465861127`, covering 200+ countries and regions globally.

    <Note>
      For the complete list of supported regions, refer to [FAQ](/en/on-call/quickstart/faq).
    </Note>
  </Tab>
</Tabs>

<AccordionGroup>
  <Accordion title="Why can't I receive voice notifications?">
    1. **Check phone blocking settings**: Check phone's blacklist or spam interception records. Flashduty On-call uses fixed numbers for voice push; you can download Flashduty App to sync number whitelist
    2. **Check carrier services**: Some users may have carrier-level high-frequency spam call blocking enabled; check and configure through your carrier's official account
    3. **Ported number users**: Check blocking status across multiple carriers
  </Accordion>

  <Accordion title="Why are emails going to spam?">
    1. Check "Spam" or "Junk" folders, mark Flashduty On-call emails as "Not Spam"
    2. Add Flashduty On-call's sending domain or address to your email whitelist
    3. Contact company email administrator to set Flashduty email whitelist at domain level (`no-reply@notice.flashcat.cloud`)
  </Accordion>
</AccordionGroup>

***

## Instant Messaging (IM) Integration

***

Integrating Flashduty On-call with your team's daily IM tools (like Feishu/Lark, Dingtalk) allows receiving and handling incidents in familiar collaboration environments, greatly improving On-call efficiency.

### App Integration (Recommended)

App integration provides the most complete interactive experience. We strongly recommend teams with the capability to use this method.

<CardGroup cols={2}>
  <Card title="Interactive Cards" icon="hand-pointer">
    Acknowledge, close, escalate directly on IM message cards without redirecting
  </Card>

  <Card title="Passwordless Operations" icon="key">
    After linking member accounts with IM accounts, no need to re-login to Flashduty when operating
  </Card>

  <Card title="Full-featured" icon="list-check">
    Supports getting complete incident details, viewing timeline, adding comments, etc.
  </Card>

  <Card title="Simple Maintenance" icon="wrench">
    One-time configuration, long-term effectiveness
  </Card>
</CardGroup>

#### Configuration Guide

<CardGroup cols={3}>
  <Card title="Feishu/Lark Integration" icon="comments" href="/en/on-call/integration/instant-messaging/lark">
    Feishu/Lark app integration
  </Card>

  <Card title="Dingtalk Integration" icon="comments" href="/en/on-call/integration/instant-messaging/dingtalk">
    DingTalk app integration
  </Card>

  <Card title="WeCom Integration" icon="comments" href="/en/on-call/integration/instant-messaging/wecom">
    WeCom app integration
  </Card>

  <Card title="Slack Integration" icon="slack" href="/en/on-call/integration/instant-messaging/slack">
    Slack app integration
  </Card>

  <Card title="Teams Integration" icon="microsoft" href="/en/on-call/integration/instant-messaging/microsoft-teams">
    Microsoft Teams integration
  </Card>
</CardGroup>

### Bot Integration

If your team cannot do app integration temporarily, using bots is a simple, quick, and effective alternative.

**Use Cases**:

* Cannot obtain IM platform admin permissions to install apps
* Only need basic incident notification push functionality, no complex online interaction needed
* Need to quickly establish notifications in temporary project groups or cross-department groups

<Tabs>
  <Tab title="Feishu/Lark Bot">
    <Steps>
      <Step title="Create Custom Bot">
        Enter Feishu/Lark group chat → **Group Settings** → **Group Bots** → **Add Bot** → Select **Custom Bot**
      </Step>

      <Step title="Configure Bot Parameters">
        Set bot name and description, configure custom keyword: `#`, click **Add** to generate Webhook URL
      </Step>

      <Step title="Integrate with Flashduty On-call">
        Copy Webhook URL, add Feishu/Lark bot in Flashduty On-call's **Channel** → **Escalation Rules**
      </Step>
    </Steps>
  </Tab>

  <Tab title="Dingtalk Bot">
    <Steps>
      <Step title="Create Custom Bot">
        Enter Dingtalk group chat → **Group Settings** → **Group Management** → **Smart Assistant** → **Add Robot** → Select **Custom** type
      </Step>

      <Step title="Configure Security Settings">
        Set bot name, add keyword: `#`, agree to related agreements
      </Step>

      <Step title="Complete Integration">
        Copy Webhook URL, configure Dingtalk bot in Flashduty On-call's **Channel** → **Escalation Rules**
      </Step>
    </Steps>

    <Tip>
      Dingtalk uses member phone numbers for @ mentions by default, no extra configuration needed.
    </Tip>
  </Tab>

  <Tab title="WeCom Bot">
    <Steps>
      <Step title="Create Group Bot">
        Enter WeCom group chat → **Top right settings** → **Add Group Bot** → **Create a new bot**
      </Step>

      <Step title="Configure and Get Webhook">
        Set bot name, click **Add Bot**, copy generated Webhook URL
      </Step>

      <Step title="Configure Flashduty">
        Select **WeCom Bot** in Flashduty On-call's **Channel** → **Escalation Rules**, paste Webhook URL
      </Step>
    </Steps>
  </Tab>

  <Tab title="Telegram">
    <Warning>
      Telegram services may not be directly accessible in some regions. Ensure the Webhook URL you use is accessible in your current network environment.
    </Warning>

    <Steps>
      <Step title="Create Telegram Bot">
        Search `BotFather` in Telegram and send `/newbot` command, enter bot name, record the returned Token
      </Step>

      <Step title="Create Channel and Add Bot">
        Click top left settings → **New Channel**, create Channel and add bot as member
      </Step>

      <Step title="Get Chat ID">
        Visit `https://api.telegram.org/bot{Token}/getUpdates`, find `chat.id` in returned JSON. You can also use tools like [@userinfobot](https://t.me/userinfobot)
      </Step>

      <Step title="Configure Flashduty">
        Configure Telegram bot in **Channel** → **Escalation Rules**:

        * **Webhook URL**: Enter the Bot Token or an accessible Telegram service proxy address
        * **Chat IDs**: Enter group Chat IDs that should receive notifications. Multiple Chat IDs are supported — press Enter after each to confirm
        * **Alias** (optional): Set an alias to distinguish different notification channels
      </Step>
    </Steps>
  </Tab>

  <Tab title="Slack">
    <Steps>
      <Step title="Create Slack App">
        Visit `https://api.slack.com/apps?new_app=1`, select app name and workspace, click **Create App**
      </Step>

      <Step title="Enable Incoming Webhook">
        On app settings page select **Incoming Webhook**, enable **Activate Incoming Webhooks** toggle
      </Step>

      <Step title="Get Webhook URL">
        Click **Add New Webhook to Workspace**, select target channel, copy generated Webhook URL
      </Step>

      <Step title="Configure Flashduty">
        Configure Slack bot in **Channel** → **Escalation Rules**, paste Webhook URL
      </Step>
    </Steps>
  </Tab>

  <Tab title="Generic Webhook Bot">
    If the IM tool you use is not listed above, or you want to forward alerts to your own in-house message gateway, you can choose any bot type (we recommend the DingTalk / Feishu / WeCom bot, whose message body structures are the most general) and set the webhook URL to your own HTTP service endpoint. Flashduty does not validate the webhook domain — as long as your server can receive and parse the JSON payload Flashduty pushes, the integration works.

    <Steps>
      <Step title="Prepare your webhook service">
        Expose a publicly reachable HTTPS endpoint on your server that accepts `POST` requests and parses a JSON body. If you need to deliver to an internal network, use a reverse proxy or Flashduty's edge node to forward the traffic.
      </Step>

      <Step title="Add the channel in an escalation rule">
        In **Channel** → **Escalation Rules**, choose any bot type (e.g., **DingTalk Bot**) and set the **Webhook URL or Token** to your own service URL.
      </Step>

      <Step title="Configure advanced options as needed">
        You can set an **alias**, **severity filter**, and **notification event types** for the channel. If your service needs to identify specific responders, you can read the responder information that Flashduty injects into the message body.
      </Step>
    </Steps>

    <Tip>
      For detailed message-body schemas and integration examples, see [FAQ: How do I integrate an in-house notification system](/en/on-call/quickstart/faq#i-dont-use-feishudingtalkwecomtelegram--how-can-i-receive-bot-notifications).
    </Tip>
  </Tab>

  <Tab title="Zoom">
    <Warning>
      Zoom Incoming Webhook connections are tied to the Zoom account that created them. When that user leaves the organization or their account is deactivated, all Webhook connections they created are automatically invalidated. **We strongly recommend using a shared team service account** (rather than a personal account) to create Webhook connections, preventing notification disruptions due to personnel changes.
    </Warning>

    <Steps>
      <Step title="Create Bot">
        Open Zoom app, go to **Apps** → **Add Apps**, search and add the `Incoming Webhook` app. Return to the chat interface and confirm the `Incoming Webhook` app has been added successfully. In any channel or the `Incoming Webhook` app, enter the command: `/inc connect flashduty`. The system will return the app's connection information
      </Step>

      <Step title="Configure Flashduty">
        Configure Zoom bot in **Channel** → **Escalation Rules**:

        * **Webhook URL**: Copy the `Endpoint` URL from the returned information
        * **Verify Token**: Copy the `Verification Token` from the returned information, used to verify request authenticity
        * **Alias** (optional): Set an alias to distinguish different notification channels
      </Step>

      <Step title="(Optional) Enable @ Mentions">
        When enabled, the system uses the user mapping table to @ mention corresponding responders:

        1. Admin obtains user `user_id` from the Zoom console
        2. Create a Zoom-type mapping table in Flashduty **Platform Management** → **Mapping Table Management**, mapping Flashduty member emails to Zoom `user_id`
        3. Associate the corresponding Zoom bot and mapping table in **Escalation Rules**
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Tip>
  **Don't use any of the above IM platforms? You can still use bot notifications.** Flashduty does not validate the domain of bot webhook URLs, so you can select any bot type (e.g., Dingtalk Bot) and set the webhook URL to your own server endpoint. Simply implement the corresponding IM platform's message push protocol on your server to receive Flashduty alert notifications. This approach is ideal for custom notification systems or integrating with non-standard IM tools. For step-by-step instructions, see the [FAQ](/en/on-call/quickstart/faq#i-dont-use-feishudingtalkwecomtelegram--how-can-i-receive-bot-notifications).
</Tip>

#### Advanced settings

All bot types support the following advanced options, accessible by expanding **Advanced Settings** during configuration:

| Setting                      | Supported Bot Types                       | Description                                                                                                                                                                                                    |
| :--------------------------- | :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Alias**                    | All                                       | Set an alias for the bot to help remember and distinguish different notification channels                                                                                                                      |
| **Severity filter**          | All                                       | Select which alert severity levels trigger notifications. Incidents with unselected severity levels will not be pushed                                                                                         |
| **Notification event types** | Feishu/Lark, Dingtalk, WeCom, Slack, Zoom | Select which event types trigger notification pushes (e.g., triggered, acknowledged, closed). All selected by default                                                                                          |
| **@ Mentions**               | Feishu/Lark, Dingtalk, WeCom, Slack, Zoom | When enabled, @ mentions corresponding responders. Feishu/Lark and Zoom require a user mapping table; WeCom optionally supports one; Dingtalk matches by phone number by default. Dingtalk also supports @ all |

<Tip>
  The user mapping table defines the correspondence between Flashduty users and IM platform users. You can create and maintain mapping tables on the **Platform Management** → **Mapping Table Management** page.
</Tip>

#### FAQ

<AccordionGroup>
  <Accordion title="Telegram message push fails with a network error?">
    Check whether the Webhook URL is accessible in your current network environment. Telegram services may be restricted in some regions. Consider using a reliable proxy service address.
  </Accordion>

  <Accordion title="How do I get a Telegram group chat's Chat ID?">
    After adding the Bot to the target group, you can call the Telegram Bot API `getUpdates` method to obtain the group Chat ID. You can also use tools like [@userinfobot](https://t.me/userinfobot).
  </Accordion>

  <Accordion title="Zoom notification fails with 'Failed to send bot message'?">
    This error means Zoom cannot send messages through the Webhook. Possible causes include: the Webhook connection has been invalidated, the creator's account was deactivated or removed, or the Webhook was manually deleted.

    **Troubleshooting steps:**

    1. Create a new Incoming Webhook connection in Zoom
    2. Test the new Webhook URL in your Flashduty escalation rule
    3. If the new Webhook works, the original connection has been invalidated (commonly caused by the creator leaving the organization) — replace it with the new Webhook
    4. If the new Webhook also fails, check the message content format or contact Zoom support

    **Prevention:** Use a shared team service account (rather than a personal account) to create Webhook connections, preventing notification disruptions due to personnel changes.
  </Accordion>

  <Accordion title="Where do I find the Zoom Verify Token?">
    After adding the Incoming Webhook app in Zoom, use the `/inc connect flashduty` command. The returned connection information includes the `Verification Token`.
  </Accordion>

  <Accordion title="Bot @ mentions are not working?">
    Verify the following:

    * The **@ mentions** toggle is enabled
    * Feishu/Lark, Zoom: a **user mapping table** is correctly selected with complete mappings
    * WeCom: if using a mapping table, verify the mappings are correct
    * Dingtalk: verify member phone numbers are correct
    * Slack: verify member account associations are correct
  </Accordion>
</AccordionGroup>

***

## General Configuration

***

<AccordionGroup>
  <Accordion title="How to customize notification content?" icon="paint-brush">
    Flashduty On-call allows you to customize personalized notification messages for different channels.

    **Configuration Path**: Console → Template Management

    Here you can select different notification types (like incident trigger, acknowledgment, closure, etc.) and edit message formats for each channel. Templates support variable references to dynamically display incident information.

    For more details, see [Notification Template Configuration](/en/on-call/configuration/templates).
  </Accordion>

  <Accordion title="How to configure different notification strategies for different severity incidents?" icon="layer-group">
    You can design refined notification workflows based on any dimension like alert severity, source, labels. This is mainly achieved through **routing rules** and **escalation rules**.

    * **Routing Rules**: Integration Center → Specific Integration → Routing Rules. Determines which alerts should be routed to which channel
    * **Escalation Rules**: Channel → Escalation Rules. Determines who incidents should notify, through which channels, and how to escalate when no one responds

    For example, you can configure: P1 level incidents first notify primary on-call via Flashduty App and Feishu/Lark app; if no one acknowledges within 5 minutes, notify their supervisor via voice call.
  </Accordion>
</AccordionGroup>

## Related Topics

***

<CardGroup cols={2}>
  <Card title="Escalation Rules" icon="sitemap" href="/en/on-call/channel/escalation-rule">
    Configure alert notification rules and escalation paths
  </Card>

  <Card title="Notification Templates" icon="file-code" href="/en/on-call/configuration/templates">
    Customize notification content format for each channel
  </Card>
</CardGroup>
