Pulsar
docs
← back to home

Automations

Automate your deploy workflow — trigger deploys from anywhere, get notified in Slack or Discord, and automatically recover from failures.

Overview

🚀
Auto-deploy on push
Automatically deploys when you push to the configured branch. Disable to deploy manually only.
🔁
Auto-retry on failure
Queues one automatic retry if a deployment fails. Max one retry per 10-minute window — no infinite loops.
💬
Slack notifications
Rich attachments with color, branch, commit, duration, and URL for every deploy event.
🎮
Discord notifications
Embed messages with colored border, inline fields, and code-block error messages.
🔗
Deploy hooks
Secret POST URLs — call from GitHub Actions, Zapier, Make, or any HTTP client.
📡
Outbound webhooks
HMAC-signed POST to any endpoint on deploy_success, deploy_failed, health_alert, and more.

Auto-deploy on push

When a GitHub push hits your configured branch, a deploy is queued automatically. The toggle is in Automations → Deploy behavior. Disable it if you want manual-only deploys (e.g. after CI passes via a deploy hook).

Auto-retry on failure

If a deployment fails, Pulsar can automatically queue a single retry. It checks whether a retry has already run in the past 10 minutes before queueing to prevent runaway loops. Enable it in Automations → Auto-retry on failure.

The retry uses the same commit SHA, branch, and env vars as the failed deployment and is marked triggered_by: auto_retry in the deployment history.

Slack notifications

Paste an Incoming Webhook URL from your Slack app into Automations → Slack webhook URL. Pulsar posts a colour-coded attachment for these events:

deploy_startedDeployment queued / build began
deploy_successDeployment is live
deploy_failedBuild or container error
health_downHealth check not responding
health_recoveredHealth check back to normal

To create a Slack webhook: go to api.slack.com/apps → your app → Incoming WebhooksAdd webhook to workspace.

Discord notifications

Paste a Discord webhook URL into Automations → Discord webhook URL. Pulsar posts an embed with the same events as Slack. To create a Discord webhook: Server Settings → Integrations → Webhooks → New Webhook → Copy Webhook URL.

Deploy hooks

A deploy hook is a secret URL that triggers a new deployment when called with an HTTP POST. Use it from GitHub Actions, Zapier, a shell script, or any service that can make HTTP requests.

# Trigger a deploy
curl -X POST "https://api.pulsardeploy.com/api/projects/PROJECT_ID/deploy-hooks/HOOK_ID/trigger?secret=SECRET"

Create hooks in Automations → Deploy hooks. Each hook has a unique ID and a secret token — treat the URL as a password. Rotate by deleting and recreating.

The hook endpoint is public (no auth header required) but protected by the secret query parameter. The secret is SHA-256 hashed in storage.

Outbound webhooks

Outbound webhooks let you send deploy event data to any endpoint — useful for updating Jira, posting to Slack via a custom bot, triggering Zapier, or syncing with a deployment tracker.

Configure them in Project settings → Outbound webhooks. Each request includes:

POST https://your-endpoint.com/hook
Content-Type: application/json
X-Pulsar-Event: deploy_success
X-Pulsar-Delivery: 1717200000000
X-Pulsar-Signature: sha256=abc123...  (HMAC if secret configured)

{
  "event": "deploy_success",
  "project_id": "...",
  "project_name": "my-app",
  "deployment_id": "...",
  "commit_sha": "a1b2c3d",
  "branch": "main",
  "url": "https://my-app.pulsardeploy.com",
  "duration_ms": 28400,
  "ts": 1717200000000
}

Rate limits

General API600 req / min per user
Deploy trigger40 req / min per user
Deploy hooks120 req / min per IP (public endpoint)
Auth routes200 req / 15 min per IP