MAKE.COM SETUP

Monitor Make.com scenarios with Hellhound

Connect any Make.com scenario in 5 minutes. No code changes. Two HTTP modules.

timer Setup time: 5 minutes per scenario

Hellhound monitors Make.com scenarios by receiving two webhook signals from your scenario — one when it starts, one when it finishes. If the finish signal never arrives, or arrives with an error, Hellhound alerts you immediately.

You add two HTTP Request modules to your existing scenario. Nothing else changes. Your scenario logic is untouched.

Your Make.com scenario
[Trigger] [HTTP: run-start] [Your modules...] [HTTP: run-end]
Hellhound notified Hellhound notified
"scenario started" "scenario complete"
↓ if run-end never arrives
Hellhound sends alert
HOW IT WORKS

What Hellhound monitors in Make.com

Hellhound tracks each scenario run and detects:

Missed runs — scenario did not run when expected

Hellhound learns your scenario's schedule and alerts if it goes quiet for longer than expected.

Failed runs — Make.com reported an error

When your run-end module sends success: false, Hellhound immediately alerts you with the error message.

Hung scenarios — run-start received, run-end never came

If your scenario starts but does not complete within 2x its normal duration, Hellhound pages you.

Slow runs — taking much longer than usual

If a scenario that normally takes 30 seconds suddenly takes 10 minutes, Hellhound flags it.

What Hellhound cannot detect

Hellhound monitors at the scenario level, not the module level. It cannot see which specific module inside your scenario failed. For that, use Make.com's built-in error handlers alongside Hellhound.

Hellhound catches:

  • "My scenario didn't run at all"
  • "My scenario crashed partway through"
  • "My scenario is taking way too long"
  • "My scenario is producing no results"

Make.com's own error handling catches:

  • → Which specific module failed
  • → The exact error message from a module
  • → Module-level retry logic
BEFORE YOU START

What you need

A Hellhound account — sign up at hellhound.dev

You will need your API key (get it in step 1 below)

A Make.com account with at least one active scenario

The scenario must use HTTP Request modules

(available on all Make.com plans including free)

HTTP Request is a built-in Make.com module — you do not need any special Make.com plan or add-on. It is available on every plan including the free tier.

1
STEP 1

Get your API key

Your API key authenticates Hellhound's webhook requests. You can find it in two places.

Option A — From the CLI

If you have the Hellhound CLI installed:

$ hellhound init # if you haven't already
$ cat ~/.hellhound/config.json
{
"api_key": "hh_live_xxxxxxxxxxxxxxxxxxxxxxxx",
"email": "you@agency.com"
}

Copy the api_key value. You will use it in the next steps.

Option B — From the dashboard

Your API key was shown once when you registered on hellhound.dev. If you did not save it:

  1. Log in at hellhound.dev/dashboard
  2. Go to Account Settings → API Key
  3. Click "Generate new key" and confirm with your password
  4. Copy the new key — it is shown once

Keep your API key private. Anyone with your API key can create runs under your account. Do not commit it to Git or share it publicly.

If you think your key is compromised, go to Account Settings and generate a new one — your old key stops working immediately.

2
STEP 2

Add the run-start module

Add an HTTP Request module as the FIRST module in your scenario, immediately after your trigger.

Module position
[Trigger] [🔴 HTTP: run-start] [Module 1] [Module 2] → ...
↑ add this here

How to add it in Make.com

  1. Open your scenario in Make.com
  2. Click the + button after your trigger
  3. Search for "HTTP" and select HTTP → Make a request
  4. Configure the module with these exact settings:
Setting Value
URL https://hellhound.dev/api/webhook/run-start
Method POST
Headers X-API-Key: your-api-key-here
Body type Raw
Content type application/json
Request content see JSON below
{
"automation_name": "your-scenario-name",
"source": "make"
}

Important — naming your scenario:

The automation_name is how you identify this scenario in your Hellhound dashboard and in alert messages.

Good names:

"acme-lead-enrichment"
"globex-invoice-processor"
"client-weekly-report"

Bad names:

"scenario1"
"test"
"make"

Use the same name consistently in both run-start and run-end.

Save the run ID

The run-start response returns a run_id. You need to pass this to the run-end module so Hellhound can match them.

After adding the HTTP module, configure the response parsing:

  1. Under Response → Parse response: Yes
  2. Under Response → Output type: JSON

Make.com will now expose the run_id in the data bundle. You can reference it as:

{{1.run_id}} (if this is the 1st module)
{{2.run_id}} (if this is the 2nd module)
etc.

Response shape:

{
"run_id": "abc123def456...",
"message": "Run started. Send run_id to /api/webhook/run-end when complete."
}

If you cannot use the run_id (e.g. in a complex scenario where storing it is difficult), you can omit it in run-end and use automation_name alone. Hellhound will match the most recent running run for that automation. Using run_id is more reliable.

3
STEP 3

Add the run-end module

Add an HTTP Request module as the LAST module in your scenario, after all your other modules complete successfully.

Module position
... → [Module 1] [Module 2] [🔴 HTTP: run-end]
↑ add this here

Settings

Setting Value
URL https://hellhound.dev/api/webhook/run-end
Method POST
Headers X-API-Key: your-api-key-here
Body type Raw
Content type application/json
Request content see JSON below
{
"run_id": "{{1.run_id}}",
"automation_name": "your-scenario-name",
"success": true
}

Replace {{1.run_id}} with the actual reference to the run_id from your run-start module. The module number depends on where you placed run-start in your scenario.

The automation_name here must exactly match the automation_name you used in run-start. Capitalisation and spacing matter. Copy-paste it to be safe.

4
STEP 4

Add error handling

This step is critical. Without error handling, Hellhound only detects hung scenarios (where run-end never arrives). With error handling, it catches explicit failures too.

How to add error handling in Make.com

Make.com has two ways to handle errors:

Method 1 — Error handler route (recommended):

  1. Right-click any module in your scenario
  2. Select "Add error handler"
  3. Choose "Break" route type
  4. Add an HTTP Request module to the error route

Method 2 — Scenario error settings:

Use Make.com's built-in error notification alongside Hellhound's error webhook for maximum coverage.

Settings for the error handler HTTP module:

Setting Value
URL https://hellhound.dev/api/webhook/run-end
Method POST
Headers X-API-Key: your-api-key-here
Body type Raw
Content type application/json
Request content see JSON below
{
"run_id": "{{1.run_id}}",
"automation_name": "your-scenario-name",
"success": false,
"error_message": "{{error.message}}"
}

Note: {{error.message}} is Make.com's built-in variable that contains the error from the failed module.

What this looks like in your scenario

Scenario structure
[Trigger] [HTTP: run-start] [Module 1] [Module 2] [HTTP: run-end]
↓ (on error)
[HTTP: run-end with success: false]

Result in Hellhound:

When a module in your scenario fails, Hellhound immediately receives:

  •   success: false
  •   error_message: "the actual error from Make.com"

You get an alert within seconds of the failure, not hours later when you happen to check Make.com's execution history.

If you skip this step, Hellhound will still detect failures — but only after a timeout (when run-end never arrives). Adding explicit error handling means you get alerted faster and with a more useful error message.

5
STEP 5

Set up your alerts

Tell Hellhound where to send alerts for this scenario.

Install the CLI first if you haven't:

npm install -g hellhound-cli
hellhound init

Then add your alert destinations:

# Email alert
hellhound alert add \
--name "your-scenario-name" \
--channel email \
--to you@agency.com
# Slack alert (recommended — faster than email)
hellhound alert add \
--name "your-scenario-name" \
--channel slack \
--to "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
# SMS alert (Agency plan only)
hellhound alert add \
--name "your-scenario-name" \
--channel sms \
--to +14155552671
6
STEP 6

Test your setup

Run your scenario once manually in Make.com to verify Hellhound is receiving the signals correctly.

How to test

  1. Open your scenario in Make.com
  2. Click "Run once" at the bottom
  3. Watch the execution — all modules should turn green
  4. Open your Hellhound dashboard

You should see:

  • Your scenario name appears in the agent list
  • Run #1 shows in the run history
  • Status: ok
  • Duration recorded

Verify via CLI

hellhound logs --name "your-scenario-name"

Expected output:

Run history for: your-scenario-name
# Status Duration Time
──────────────────────────────────────
1 ok 8.4s just now

Test error detection

To verify error handling works, temporarily add a module that fails intentionally:

  1. Add a Tools → Error (throw error) module before your run-end
  2. Run the scenario once
  3. You should receive an alert immediately
  4. Check your dashboard — the run should show as "failed"
  5. Remove the error module when done

Once you see Run #1 in your dashboard with status "ok", you are done. Hellhound is now monitoring every future execution of this scenario automatically.

BEST PRACTICES

Naming your scenarios

Good automation names make your dashboard readable when you are monitoring 20+ scenarios for multiple clients.

Good naming patterns:

Format: {client}-{what-it-does}

"acme-lead-enrichment"
"acme-invoice-processor"
"globex-competitor-monitor"
"globex-weekly-report"
"internal-backup-job"
"internal-daily-digest"

Why this matters:

When you get a 3am Slack alert saying:

⚠ ANOMALY: acme-lead-enrichment — run-end not received

You know immediately:

  • — Which client is affected (Acme)
  • — Which automation is broken (lead enrichment)
  • — Which person to potentially notify

Compare to getting an alert saying:

⚠ ANOMALY: scenario1 — run-end not received

At 3am you have no idea what that is.

Keep names consistent:

The automation_name in your HTTP modules must match exactly what you use in hellhound alert add --name.

If you rename a scenario in Make.com, update the automation_name in your HTTP modules to match.

SCALING UP

Monitoring multiple scenarios

Each Make.com scenario gets its own automation_name. There is no limit on how many scenarios you can monitor.

Setting up multiple scenarios

Repeat steps 2-5 for each scenario. The only thing that changes between scenarios is the automation_name in the request body.

Everything else — API key, URL, method, headers — stays identical across all your scenarios.

Reusing a Make.com HTTP module template

Save time by creating the HTTP Request modules once and copying them between scenarios:

  1. Right-click the HTTP Request module in Make.com
  2. Select "Copy"
  3. Open another scenario
  4. Paste the module
  5. Update only the automation_name in the request body

The URL, method, and headers stay the same.

Setting alerts for each scenario

Each scenario can have different alert destinations. This is especially useful if different scenarios belong to different clients — you can alert the right person for each one.

# Alert ops team for internal automations
hellhound alert add --name "internal-backup" --channel email --to ops@agency.com
# Alert the client AND yourself for client automations
hellhound alert add --name "acme-lead-pipeline" --channel email --to ops@agency.com
hellhound alert add --name "acme-lead-pipeline" --channel email --to contact@acme.com
# Use Slack for your team channel
hellhound alert add --name "acme-lead-pipeline" --channel slack \
--to "https://hooks.slack.com/services/..."

Plan limits

Plan Automations you can monitor
Pro ($149) Up to 20 automations
Agency ($349) Unlimited automations

If you hit the Pro limit, upgrade to Agency at hellhound.dev/pricing.

COMPLETE EXAMPLE

A complete working example

Here is a minimal Make.com scenario with Hellhound monitoring configured correctly.

Scenario: Lead enrichment — runs every 15 minutes, fetches new leads from a form, enriches via an API, saves to a CRM.

Complete scenario structure
[Schedule trigger: every 15 min]
[HTTP: run-start]
POST hellhound.dev/api/webhook/run-start
Body: { "automation_name": "acme-lead-enrichment", "source": "make" }
Save response → run_id
[Google Sheets: get new rows]
[Router: any new leads?]
├── YES ──→ [Clearbit: enrich lead data]
[HubSpot: create contact]
[HTTP: run-end]
Body: { "run_id": "...", "automation_name": "acme-lead-enrichment", "success": true }
└── NO ───→ [HTTP: run-end]
Body: { "run_id": "...", "automation_name": "acme-lead-enrichment", "success": true }
(No leads today — still a successful run)
[Error handler on any module]
[HTTP: run-end]
Body: { "run_id": "...", "automation_name": "acme-lead-enrichment",
"success": false, "error_message": "{{error.message}}" }

Key points from this example:

Both the YES and NO router paths end with run-end success: true — "No leads today" is not a failure — it ran correctly

The error handler covers all modules and sends success: false with the actual error message

The automation_name is the same in every HTTP module

run_id is saved from run-start and passed to every run-end

Notice that "No leads found" is treated as success: true. Only actual errors (modules failing, API errors, crashes) should use success: false. A scenario that runs and finds no data is working correctly.

TROUBLESHOOTING

Common issues and fixes

Scenario does not appear in dashboard after running

Cause: The run-start HTTP module did not fire or failed silently.

Check:

  1. Open Make.com scenario history
  2. Find the run-start HTTP module
  3. Click it to see the request details
  4. Check the response — it should be 200 with a run_id

Common fixes:

  • Verify the URL is exactly: https://hellhound.dev/api/webhook/run-start
  • Verify the X-API-Key header has your actual API key (not a placeholder)
  • Verify the body is valid JSON (no trailing commas, quoted strings)
  • Make sure the HTTP module runs before any filtering/routing that might skip it

Run shows as "missed" immediately

Cause: run-start fired but run-end never arrived.

Check:

  1. Is the run-end module the very LAST module in the success path?
  2. Did the scenario complete fully or stop early?
  3. Is there a filter or router that might skip the run-end module?

Fix: Move the run-end module to be the absolute last module in your scenario. Make sure every success path through your scenario ends with the run-end module.

Getting an alert with "success: null"

Cause: The run-end module was reached but the success field was missing or null in the request body.

Fix: Check your run-end request body. Make sure it contains: "success": true (not a variable — the literal JSON boolean true)

401 Unauthorized from the HTTP module

Cause: Invalid or missing API key.

Fix:

  1. Get your API key: cat ~/.hellhound/config.json
  2. In the HTTP module header, verify X-API-Key is set
  3. Make sure there are no spaces before or after the key value
  4. The header name must be exactly X-API-Key (capital X, capital A, capital K)

400 Bad Request from the HTTP module

Cause: Malformed JSON in the request body.

Fix: Validate your JSON at jsonlint.com. Common mistakes:

  • Missing quotes around automation_name value
  • Trailing comma after the last field
  • Using Make.com variables incorrectly in the JSON

Correct body:

{
"automation_name": "my-scenario",
"source": "make"
}

Alerts not being received

Cause: Alert not configured for this automation name.

Fix:

# Verify alerts are configured
hellhound alert list --name "your-scenario-name"
# If no alerts listed, add one
hellhound alert add --name "your-scenario-name" \
--channel email \
--to you@email.com

Important: The --name flag must exactly match the automation_name in your HTTP modules.

Too many false positive alerts

Cause: Hellhound is still building your baseline.

The first 10 runs are the baseline learning period. During these first 10 runs, Hellhound collects data but does not send any anomaly alerts. After 10 runs it knows what normal looks like and only alerts on extreme outliers.

After 10 runs, Hellhound only alerts on extreme outliers:

  • Output 90%+ shorter than normal
  • Duration 10x+ slower than normal
  • Explicit success: false
  • No run-end received

Day-to-day variation in output size or duration does NOT trigger alerts.

Still stuck?

If the issue is with your API key, you can always regenerate a new one at hellhound.dev/account without contacting us.

Email contact@zerostone.digital with:

  • — Your automation_name
  • — A screenshot of your HTTP Request module settings
  • — The response you are getting from the HTTP module
  • — What you expected vs what actually happened

We will reply as fast as we can.

FAQ

Make.com questions

Does this work with Make.com's free plan? expand_more

Yes. The HTTP Request module is available on all Make.com plans including the free tier. There are no restrictions.

Does adding the HTTP modules slow down my scenario? expand_more

Negligibly. Each HTTP module adds approximately 100-500ms to your scenario's execution time — the same as any other HTTP request to an external API.

What if my Make.com scenario uses routers or filters? expand_more

Make sure both the run-start and run-end modules are on every path through your scenario. If you have a router that splits into two paths, each path that represents a successful execution needs a run-end module.

Can I monitor multiple Make.com accounts with one Hellhound account? expand_more

Yes. Your API key works regardless of which Make.com account the scenario is in. Use a unique automation_name for each scenario across all your Make.com accounts.

What if my scenario runs thousands of times per day? expand_more

Every run is logged and alerts are deduplicated with a 30-minute cooldown. You will not get thousands of alerts. Run history is stored for 90 days (Pro) or 1 year (Agency).

Can I see which module in my scenario failed? expand_more

Hellhound shows the error_message you send in the run-end body. If you pass {{error.message}} from Make.com's error handler, you will see the Make.com error message in your Hellhound alert. For module-level debugging, use Make.com's built-in execution history alongside Hellhound.

My scenario has 50+ modules. Does that change the setup? expand_more

No. The setup is always the same: run-start as the first module, run-end as the last module. The number of modules in between does not matter.

Can I test with Make.com's "Run once" feature? expand_more

Yes. "Run once" is the recommended way to test. It executes the scenario from start to finish and you can watch each module's execution in real time, including both HTTP modules.

What if I need to update the API key in all my scenarios? expand_more

Currently you would need to update the X-API-Key header in each HTTP module individually. We recommend using Make.com's custom variables or a connection to store the API key in one place. See Make.com docs on custom variables for how to do this.

Does Hellhound know about Make.com's built-in retry logic? expand_more

If Make.com retries a failed module, each retry is part of the same run as far as Hellhound is concerned — Hellhound tracks from run-start to run-end. If all retries fail and your error handler fires, Hellhound will receive the failure.

What to do next