ShipPulse
  • Pricing
  • Docs
  • Blog
  • Compare

Product

TestimonialsChangelogStatus PagesFeedbackRoadmapPricing

Resources

DocsBlogAPI ReferenceSDKHelp Center

Company

AboutContact

Legal

TermsPrivacyCookie PolicyDPASub-processors

Product updates

Changelog updates only. Unsubscribe any time.

ShipPulse operated by Igor Bogdanov, Limassol, Cyprus. [email protected]. Cyprus registration number pending — will be published once issued.

ShipPulse

© 2026 ShipPulse. All rights reserved.

OverviewQuick StartCore ConceptsWidget ReferencePlatform GuidesAPI ReferenceAPI PlaygroundError HandlingPaginationRate LimitingJavaScript SDKWebhooksZapier, n8n & MakeCustom DomainsTeam ManagementBilling & PlansNotification ChannelsAI FeaturesOverviewFrom SenjaFrom Testimonial.toFrom HeadwayFrom Canny

Introduction

  • Overview
  • Quick Start
  • Core Concepts

Embed Widgets

  • Widget Reference
  • Platform Guides

REST API

  • API Reference
  • API Playground
  • Error Handling
  • Pagination
  • Rate Limiting

SDK & Webhooks

  • JavaScript SDK
  • Webhooks
  • Zapier, n8n & Make

Guides

  • Custom Domains
  • Team Management
  • Billing & Plans
  • Notification Channels
  • AI Features

Migrations

  • Overview
  • From Senja
  • From Testimonial.to
  • From Headway
  • From Canny

Need help?

[email protected]
Configuration

Notification Channels

ShipPulse can send real-time alerts to Slack, Discord, Telegram, and any webhook URL when monitors go down, incidents are created, or changelog entries are published. Configure channels in project Settings → Notifications.

SlackDiscordTelegramSMS / PhoneGeneric webhookEmail

Events that trigger notifications

EventChannelsDescription
monitor.downAllA monitor fails its health check
monitor.recoveredAllA previously down monitor recovers
incident.createdAllA new incident is opened
incident.updatedAllAn update is posted to an incident
incident.resolvedAllAn incident is marked resolved
changelog.publishedAllA new changelog entry is published
testimonial.submittedSlack, WebhookA new testimonial is submitted
feedback.submittedSlack, WebhookA new feedback request is submitted

Slack

ShipPulse uses Slack Incoming Webhooks to post formatted messages to a channel of your choice.

1Go to api.slack.com/apps → Create New App → From scratch.
2Enable Incoming Webhooks in your app settings.
3Click "Add New Webhook to Workspace" and select the channel.
4Copy the Webhook URL (starts with https://hooks.slack.com/).
5In ShipPulse: Settings → Notifications → Add channel → Slack. Paste the URL and choose which events to send.

Message format

ShipPulse posts rich Slack blocks. Example for a monitor down event:

json
{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "🔴 *Monitor down* — api.yourapp.com
HTTP 503 · 2 consecutive failures"
      }
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "View incident" },
          "url": "https://shippulse.dev/dashboard/..."
        }
      ]
    }
  ]
}

Discord

ShipPulse posts to Discord via channel webhooks with rich embed formatting.

1In your Discord server, go to Server Settings → Integrations → Webhooks.
2Click New Webhook, choose the channel, and copy the Webhook URL.
3In ShipPulse: Settings → Notifications → Add channel → Discord. Paste the URL.

Embed format

json
{
  "embeds": [{
    "title": "🔴 Monitor down — api.yourapp.com",
    "description": "HTTP 503 · 2 consecutive failures",
    "color": 16711680,
    "fields": [
      { "name": "Project", "value": "My App", "inline": true },
      { "name": "Impact", "value": "Major", "inline": true }
    ],
    "timestamp": "2026-04-07T12:34:56Z"
  }]
}

Telegram

ShipPulse sends messages to a Telegram chat via the Bot API. You need a bot token and a chat ID.

1Message @BotFather on Telegram and create a new bot. Copy the bot token.
2Add the bot to your group or channel, or start a direct chat with it.
3Get your chat ID: send a message to the chat, then visit https://api.telegram.org/bot<TOKEN>/getUpdates and copy the "chat.id" value.
4In ShipPulse: Settings → Notifications → Add channel → Telegram. Enter your bot token and chat ID.

SMS / Phone

ShipPulse can send SMS alerts via Twilio when monitors go down, incidents are created, or other critical events occur. Useful for on-call engineers who need to be paged immediately.

1Create a Twilio account at twilio.com and buy a phone number.
2In the Twilio Console → Account Info, copy your Account SID and Auth Token.
3Add TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, and TWILIO_FROM_NUMBER to your server environment.
4In ShipPulse: Settings → Notifications → Add channel → SMS / Phone. Enter the destination phone number in E.164 format (e.g. +15551234567).
5Select which events trigger SMS alerts (recommended: monitor.down, incident.created).

Cost: ~$0.0085/SMS in the US. Messages are capped at 320 characters (2 SMS segments) to minimise cost. You can add multiple SMS channels for different on-call phone numbers.

Generic webhook

Send ShipPulse events to any HTTP endpoint — useful for custom alerting, PagerDuty, OpsGenie, or your own backend. The payload format is identical to the Webhooks reference.

Setup

Settings → Notifications → Add channel → Webhook. Enter your endpoint URL and choose events. ShipPulse will POST JSON to your URL for each event.

HMAC verification

Each request includes a X-ShipPulse-Signature header — an HMAC-SHA256 hash of the raw body using your webhook secret. Verify it to reject forged requests:

typescript
import { createHmac } from "crypto";

export function verifySignature(
  rawBody: string,
  signature: string,
  secret: string,
): boolean {
  const expected = createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return `sha256=${expected}` === signature;
}

// In your webhook handler
app.post("/webhooks/shippulse", (req, res) => {
  const sig = req.headers["x-shippulse-signature"] as string;
  const valid = verifySignature(req.rawBody, sig, process.env.WEBHOOK_SECRET!);
  if (!valid) return res.status(401).send("Invalid signature");

  const { event, data } = req.body;
  // Handle event...
  res.status(200).send("ok");
});

Email notifications

Email notifications are sent for the following events:

Monitor down / recoveredOn-call team members + custom alert emails
Incident created / resolvedProject Admins and Owners
Changelog publishedAll subscribers who opted in to changelog emails
New testimonial submittedProject Admins and Owners (configurable)
Roadmap item status changeUsers who subscribed to that item

Managing subscribers

All public-facing subscriptions (changelog, status, roadmap) are double-opt-in. Subscribers can unsubscribe via a link in every email. You can view and manage subscribers in the module settings of your project dashboard.

Custom sender domain

By default, emails are sent from [email protected]. On Agency plan, you can send from your own domain by adding SPF/DKIM records and verifying your domain in Settings → Email → Custom sender.