Skip to main content
MoleSignal separates provider credentials from recipients and routing. Configure a connector once, bind identities or fallback targets, and then choose when the notification engine uses those routes.

Supported connectors

All connector timeouts must be between 1 and 60 seconds. URLs must be absolute http or https URLs.

Create and test a connector

Viewing connectors requires alerts.read. Creating, editing, testing, enabling, disabling, or deleting connectors requires alerts.manage.
1

Open notification management

Go to Settings → Notify → Connectors.
2

Choose a provider

Click New connector, enter a unique name, and select the connector type. Connector type cannot change after creation.
3

Enter provider settings

Add the credentials and transport settings described below. Keep Allow this connector to deliver enabled unless preparing the connector for later use.
4

Save the connector

Click Save connector. MoleSignal encrypts the complete configuration at rest. API responses replace sensitive values with ***.
5

Send a test

Edit the saved connector, select a compatible target type, enter a real target, and click Test connection. The connector status changes to Connected or Error based on the latest test.
Save a new connector before testing. During connector edits, leave a masked *** value unchanged to preserve the stored secret.

Configure each provider

Email SMTP

Enter the SMTP host, port, username if required, password, and a valid From address. Choose one of these TLS modes: Use fixed_address or direct_user for the test target and enter a valid mailbox such as [email protected].

Slack app

Create a Slack app with a bot token that can call chat.postMessage. Add the bot to each channel where notifications must be sent. Enter:
  • Bot token — the bot token, normally beginning with xoxb-;
  • App-level token — optional; a token beginning with xapp- with the connections:write scope, which lets Mole Agent answer in Slack over Socket Mode. See Mole Agent in IM;
  • API base URL — keep https://slack.com/api unless a compatible proxy is configured;
  • Client ID and Client secret — from Basic Information of the Slack app, for status pages whose visitors add the page to their own Slack channels. See Status pages;
  • Timeout — a value from 1 to 60 seconds.
The connector needs the bot token, the client ID and secret, or all three. Notifications need the bot token. The client secret, like the bot token, is kept encrypted with the connector and is never returned. Use a Slack member ID for direct_user or a channel ID for fixed_group. The value must not contain whitespace. A display name such as #alerts is not a channel ID. Once the connector is turned on under Mole Agent → Settings → IM, alert notifications sent through it carry Acknowledge and Resolve buttons. See Alert cards.

Slack webhook

Create an incoming webhook in Slack and copy the URL into Webhook URL. A fixed_group target uses this configured URL. A webhook target treats the target value as an alternate URL for that delivery. MoleSignal sends a JSON object with a text field. Any non-2xx response marks the attempt as failed.

Lark app

Create a tenant app that can obtain a tenant access token and send messages. Enter the App ID and App secret. Keep the default API base URL unless another compatible Lark endpoint is used. The selected recipient ID type applies to direct_user targets: With events received over a long connection, the app also lets Mole Agent answer in Feishu. See Mole Agent in IM. Once the connector is turned on under Mole Agent → Settings → IM, alert notifications sent through it carry Acknowledge and Resolve buttons. See Alert cards.

Lark webhook

Copy the custom bot URL into Webhook URL. If bot signature verification is enabled, also enter the Signing secret. MoleSignal generates the timestamp and HMAC-SHA256 signature for every request. A fixed_group target uses the configured URL. A webhook target can override the configured URL with another absolute URL. See Webhook connectors for the request and signature format.

DingTalk app

Use the robot of an internal DingTalk app. Enter the app’s Client ID and Client secret. Leave Robot code empty unless the robot has a code of its own; it then is the Client ID. MoleSignal exchanges the credentials for an access token and sends Markdown messages through the robot. With its messages received over Stream mode, the robot also lets Mole Agent answer in DingTalk. See Mole Agent in IM.

DingTalk webhook

Copy the custom robot’s URL into Webhook URL. If the robot signs requests, also enter the Signing secret: MoleSignal adds the timestamp and HMAC-SHA256 signature to every request. A fixed_group target uses the configured URL; a webhook target replaces it.

WeCom app

Use a self-built WeCom app. Enter the Corp ID, the app’s Secret, and its AgentId. MoleSignal exchanges them for an access token and sends Markdown messages, which WeCom cuts at 4,096 bytes. Add the address MoleSignal connects from to the app’s trusted IPs.

WeCom webhook

Copy a group robot’s URL into Webhook URL. A fixed_group target uses it; a webhook target replaces it.

WeCom smart bot

A WeCom smart bot in API mode that receives messages over a long connection. Enter the bot’s Bot ID and the Long connection secret made for it, and keep the default Long connection address unless WeCom gives you another. This connector delivers no notifications, and neither notification policies nor a person’s order of methods can choose it: it only lets Mole Agent answer in WeCom. See Mole Agent in IM. For notifications, use a WeCom app or WeCom webhook connector. A member’s notification method on this connector is the user ID the smart bot sees; it only recognizes the person asking in IM.

Microsoft Teams bot

Use a Bot Framework bot. Enter its App ID, a Client secret, and its Tenant ID; for an older multi-tenant bot, the tenant is botframework.com. Keep the default service URL unless the bot runs in a regional or sovereign cloud. The bot must be installed for the people and teams it writes to. With the callback address MoleSignal gives entered as the Azure Bot’s messaging endpoint, the bot also lets Mole Agent answer in Teams. See Mole Agent in IM.

Microsoft Teams webhook

Create a channel webhook with a Workflows flow (Post to a channel when a webhook request is received), or use a classic incoming webhook, and copy its URL into Webhook URL. MoleSignal sends each message as an Adaptive Card.

Google Chat app

Use a Chat app’s service account. Paste the account’s JSON key into Service account key; it is encrypted with the connector and never returned. MoleSignal signs a token request with the key and sends messages as the app. With a Pub/Sub subscription (projects/<project>/subscriptions/<name>), the app also lets Mole Agent answer in Google Chat. See Mole Agent in IM. Leave it empty when the app only sends notifications.

Google Chat webhook

Copy a space’s incoming webhook URL into Webhook URL. A fixed_group target uses it; a webhook target replaces it.

Phone numbers for voice and SMS

Voice and SMS connectors send to one number: the phone number a member binds (direct_user), or a fixed number in a fallback route (fixed_address). Write it with + and the country code, like +14155550100; spaces and hyphens are removed. Alibaba Cloud connectors also take an 11-digit mainland mobile number. A call reads the notification’s title, then its text, up to 400 characters; a text puts the title on one line and the text on the next, up to 320 characters. Alibaba Cloud only sends approved templates, which the title and text fill, as described below. Providers limit how often one number is called or texted. A call or text refused for that, for a wrong number, or for an unapproved template fails the delivery, and the policy goes on to the person’s next method and the fallback routes. Whether a call was answered or heard is not reported back: a successful delivery means the provider accepted the call or the text. One connector calls one number at most once a minute. Notifications that arrive within the minute wait on that line, shown as Queued to merge in the delivery log; when the minute is over they are read in one call, each notification’s title in turn, and those acknowledged meanwhile are left out. Alibaba Cloud allows one call a minute to a number anyway, so a burst of alerts is no longer refused.

Alibaba Cloud voice

Voice notifications from Alibaba Cloud Voice Service, to numbers in mainland China only. Complete the enterprise qualification in the Voice Service console, apply for a text-to-speech voice notification template such as Hello, ${content}. Please handle it now., and create an AccessKey for a RAM user that can only call Voice Service. Then fill in:
  • AccessKey ID and AccessKey secret;
  • Template code — starting with TTS_;
  • Caller ID — empty for the shared mode; the number you bought in the dedicated mode, which then shows on every call so on-call people can save it as a contact. The template must be of the same mode;
  • Title variable and Text variable — variable names in the template, such as content. The title and text are cut to the Variable length limit (35 by default) and filled in; leave both empty for a template without variables;
  • Times read — 1 to 3.
Alibaba Cloud calls one number at most once a minute, 5 times an hour and 20 times a day, and refuses the calls beyond that. Keep links and IP addresses out of the variables.

Alibaba Cloud SMS

Apply for an SMS signature and a notification template such as ${content}. Please handle it now. in the SMS console, then fill in the AccessKey, Signature, Template code (starting with SMS_), and the Title variable and Text variable. A variable in a notification template holds 35 characters by default; once Alibaba Cloud lifts the limit for an enterprise account, raise the Variable length limit. Variables cannot carry links or IP addresses. Numbers can be mainland mobile numbers or international numbers.

Twilio voice

Find the Account SID and Auth token on the Twilio console, then fill in:
  • Calling number — a voice-capable number on the account, like +14155550100;
  • Language — the language the notification is read in, such as en-US or cmn-CN;
  • Voice — optional, such as Polly.Joanna or Polly.Zhiyu; Twilio’s default voice when empty;
  • Times read — 1 to 3.

Twilio SMS

Fill in the Account SID, Auth token, and Sender. The sender is a number on the account (E.164), a Messaging Service (MG…), or an alphanumeric sender ID of up to 11 letters and digits where the destination country allows one. Texts to US numbers need A2P 10DLC registration first.

AWS voice and SMS

AWS voice (aws_voice) calls with SendVoiceMessage from AWS End User Messaging and Amazon Polly reads the notification; AWS SMS (aws_sms) sends a transactional text with SendTextMessage. Fill in:
  • Region — such as us-east-1;
  • Authentication — the same ways as the AWS data connectors: access key, temporary key, node identity, assumed role, or web identity. To assume a role, its trust policy requires the external ID the page shows;
  • Origination identity — a phone number, phone number ID, pool ID, or the ARN of one. Voice needs one, and the number must be voice-capable; SMS can leave it empty for AWS to pick a number for the destination, or name a sender ID;
  • Polly voice — voice only, optional: MATTHEW when empty, ZHIYU for Mandarin;
  • API URL — optional; the region’s endpoint when empty.
The identity needs sms-voice:SendVoiceMessage or sms-voice:SendTextMessage. An AWS account still in the sandbox only reaches verified numbers.

Generic webhook

Enter a default URL and select POST, PUT, or PATCH. Add request headers as a JSON object:
MoleSignal sends this JSON body:
For direct_user, fixed_address, and fixed_group, MoleSignal posts to the configured default URL and includes the target as routing data. For webhook, the target value replaces the default URL. A 2xx response is successful. If the response contains X-Request-ID, MoleSignal records the header value as the provider message ID.
Webhook URLs, authorization headers, tokens, passwords, and signing secrets are credentials. Do not put credential values in test targets, templates, or event attributes.

Bind user notification methods

Administrators can open Settings → Notify → User routing, select a member, and click Bind notify method. Each identity selects one connector and one external identity, such as an email address, a Slack or Lark user ID, or the phone number a voice or SMS connector calls. After binding an identity:
  1. send a test to confirm provider acceptance;
  2. verify the identity after the organization confirms ownership;
  3. enable the identity in the Alert events, On-call events, or Reports preference;
  4. order multiple identities from primary to fallback;
  5. optionally configure quiet hours and allow critical alerts to bypass the restriction.

Move on when nobody acknowledges

In the order for alert events, every step after the first can wait a number of minutes: For example, Lark at once, SMS after 3 minutes, a call after 5 minutes: once the alert is acknowledged or resolved, no later step is sent, including those of the people its escalations reached. A step that fails to send still moves on to the next at once. A step waits at most a day, and only for alert events; the orders for on-call events and reports only fall back on failure. Members can manage personal identities and preferences under Account settings → Notify. Reading another member’s settings requires org.members.read. Changing or attesting another member’s identity requires org.members.manage.
Remove an identity from every delivery preference before deletion.

Create templates and policies

Open Settings → Notify → Templates to create a reusable text, Markdown, or HTML body. Select a notification category, insert supported placeholders, and use the preview attributes to verify the rendered message. Then open Policies and create the routing rule:
  1. select an event type and category;
  2. add JSON matchers and set the policy priority;
  3. choose a recipient resolver and resolver configuration;
  4. respect user preferences, force one connector, or send through multiple connectors;
  5. select a template and enable user, team, or organization fallbacks;
  6. optionally set an acknowledgement timeout and escalation route;
  7. inspect the live delivery preview, which resolves actual members and routes without sending.
Policies currently cover alert lifecycle and on-call schedule events. The policy editor lists the event types and recipient resolvers supported by the running backend.

Configure fallback routes

Open Settings → Notify → Fallback routes. Select an organization or team scope and a notification category. Add one or more enabled connectors, choose fixed_address or fixed_group, and enter the provider target. MoleSignal tries routes in the displayed order after the enabled personal route stages fail. The policy decides whether to use user, team, and organization fallbacks.

Inspect and retry deliveries

Open Settings → Notify → Delivery log. Filter by event ID, status, or stage. Select an attempt to inspect the masked target, connector, latency, provider error, and complete delivery chain.
  • alerts.read can inspect delivery history.
  • alerts.acknowledge can acknowledge the source event.
  • alerts.manage can retry failed routes.
Retries create a new attempt. Existing delivery history remains unchanged. A delivery with the stage Direct comes from a feature that names its connector and target itself, such as a scheduled log inspection. A direct delivery passes through no policy and cannot be retried.

Connector lifecycle and status

Disabling a connector does not remove references. Deletion remains blocked while a user identity, policy, fallback route, or scheduled log inspection still references the connector. Move all references before deleting the connector.

Troubleshoot delivery

Alerting

Create rules and follow the incident lifecycle.

Webhook connectors

Review webhook payloads, overrides, signing, and security.
Last modified on October 26, 2026