Building a Personal Automation Alert Hub with n8n and Echobell

How to connect n8n workflows with Echobell to turn any API, webhook, or scheduled task into instant phone calls or push notifications.

Building a Personal Automation Alert Hub with n8n and Echobell

n8n handles workflow automation well, but its built-in notifications are weak. Pairing it with Echobell fills that gap: n8n handles the logic, Echobell delivers push alerts or phone calls that actually reach you.

Setting Up Your First Alert Workflow

A practical starting point: get notified when server CPU exceeds 80%.

Step 1: Create an Echobell Channel

  1. Open Echobell → New Channel
  2. Name it "Server Alerts"
  3. Copy your webhook URL from the channel settings

Step 2: Build the n8n Workflow

{
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "parameters": {
        "rule": {
          "interval": [{"field": "minutes", "minutesInterval": 5}]
        }
      }
    },
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.your-monitoring.com/stats",
        "method": "GET"
      }
    },
    {
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.cpu_usage }}",
              "operation": "gt",
              "value2": 80
            }
          ]
        }
      }
    },
    {
      "name": "Echobell Alert",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "YOUR_ECHOBELL_WEBHOOK_URL",
        "method": "POST",
        "bodyParameters": {
          "parameters": [
            {
              "name": "server_name",
              "value": "production-01"
            },
            {
              "name": "cpu_usage",
              "value": "={{ $json.cpu_usage }}"
            },
            {
              "name": "alert_type",
              "value": "CPU Alert"
            }
          ]
        }
      }
    }
  ]
}

Step 3: Configure the Notification Template

In your Echobell channel:

Title: 🔥 Server {{server_name}} CPU Critical!
Body: CPU usage at {{cpu_usage}}%. Immediate attention needed.

Set the notification type to Calling for critical alerts.

More Workflow Examples

GitHub Actions Failure Alerts

// n8n Webhook trigger configuration
{
  "path": "github-actions",
  "responseMode": "onReceived"
}

Connect your GitHub webhook to n8n, filter for action: completed and conclusion: failure, then POST to your Echobell webhook.

Crypto Price Threshold Alerts

// In n8n's Function node
const price = $json.price;
const threshold = 50000;

if (price < threshold) {
  return {
    json: {
      symbol: "BTC",
      price: price,
      alert: "Price dropped below $50,000"
    }
  };
}
return null;

Smart Home Critical Events

Forward Home Assistant critical events (water leak sensors, smoke detectors, door/window sensors when away) via n8n to Echobell. See the Home Assistant integration guide for details.

RSS/Newsletter Digest

// Cron trigger → RSS Read → Filter new items → Echobell
{
  "cron": "0 8 * * *",
  "rss_url": "https://your-favorite-blog.com/feed",
  "condition": "contains({{title}}, 'AI')"
}

Cron Job Monitoring

const lastRun = new Date($json.last_execution);
const now = new Date();
const hoursSince = (now - lastRun) / (1000 * 60 * 60);

if (hoursSince > 24) {
  return {
    json: {
      job: "daily-backup",
      status: "OVERDUE",
      last_run: lastRun.toISOString()
    }
  };
}

Best Practices

Use Separate Channels per Priority

  • Critical: Production down, security alerts → Phone call
  • Warning: Disk space, high CPU → Time-sensitive push
  • Info: Daily reports, digests → Normal push

Use Conditions to Reduce Noise

Echobell's Conditions feature lets you filter at the delivery layer:

// Only call during off-hours
hour < 8 || hour > 18

Keep Templates Short and Actionable

Good: 🔴 Disk Full on server-01
Bad:  The disk on server number one in the production environment has become completely full

Add a Weekly Test

// Every Friday at 5 PM
if (new Date().getDay() === 5 && new Date().getHours() === 17) {
  return { json: { test: "Weekly system check" } };
}

Start with one workflow, then build from there. The webhook docs cover the full Echobell API.