Notifications
The wizard currently configures one webhook endpoint with a template selection:
- Slack
- Discord
- Telegram
- ntfy
- Plain text
Setup flow
- Enter webhook URL.
- Choose template.
- Click Test Webhook to send a template-specific test payload.
- Continue deployment.
Channel setup
Slack
- Open your Slack workspace and go to Apps.
- Search for Incoming Webhooks and add it.
- Select the channel where you want alerts to appear.
- Copy the webhook URL (starts with
https://hooks.slack.com/services/...). - Paste it into the wizard's webhook URL field and select the Slack template.
Discord
- Open Server Settings in your Discord server.
- Go to Integrations and click Webhooks.
- Click New Webhook, choose a channel, and copy the URL.
- Paste it into the wizard's webhook URL field and select the Discord template.
Telegram
- Message @BotFather on Telegram to create a new bot.
- Copy the bot token BotFather gives you.
- Get your chat ID by messaging @userinfobot.
- Your webhook URL format is:
https://api.telegram.org/bot<TOKEN>/sendMessage - Include
chat_idfor delivery (for example,?chat_id=<YOUR_CHAT_ID>). - Select the Telegram template in the wizard.
ntfy
Paste your ntfy topic URL, such as https://ntfy.sh/your-topic, into the webhook URL field and
select the ntfy template. No token, bot, or app setup is needed.
On the public ntfy.sh server, the topic name is effectively the password. Choose a long, random
topic name and keep the URL secret.
Plain text / custom endpoint
Use the Plain text template for endpoints that do not expect Slack/Discord/Telegram/ntfy-specific formats. This template sends a plain-text request body; other templates send structured JSON or channel-specific headers.
Example payload (illustrative)
For JSON-capable destinations, the payload generally includes monitor/state details like this:
{
"monitor": "API Server",
"status": "down",
"previousStatus": "up",
"statusCode": 503,
"latency": 2500,
"timestamp": "2025-01-15T12:00:00Z",
"url": "https://status.example.com"
}
About payload format
The exact payload for runtime alerts depends on the deployed FlareWatch runtime version and template behavior. If your destination requires a strict schema, place a small transformer service (for example, a Worker) in front of your endpoint.
For PagerDuty, Microsoft Teams, or other services without a native template, use a small Cloudflare Worker as a transformer between FlareWatch and your destination.
Use webhook.site while testing to inspect exactly what your endpoint receives.