Skip to main content
← All use cases

Webhook Monitoring for Laravel and API Teams

Webhook monitoring sounds simple until the first silent failure.

A payment provider sends a callback that never reaches your app. A customer endpoint starts timing out after a deploy. A retry queue backs up because one downstream service changed its TLS config. The webhook was “sent,” but nothing useful happened on the other side.

That is why webhook monitoring matters. It is not just about sending webhooks. It is about knowing when delivery stops, slows down, or starts failing in a way your users will feel.

What webhook monitoring should catch

A good webhook monitor should surface more than a single success or failure flag. For Laravel teams, the useful signals are usually:

If the only signal you have is “the job was dispatched,” you are still guessing.

Why generic checks miss the problem

Many teams watch webhook health indirectly through uptime checks or log searches. That is better than nothing, but it misses a lot of real failure modes:

These are exactly the cases where a Laravel-native monitor helps, because it can track the queue, the worker, and the job history together.

What to monitor in Laravel

If your app sends webhooks, track the queue group that handles them separately from your general background jobs.

Useful alerts include:

For inbound webhooks, you can still use the same monitoring pattern. Watch the job or task that processes the callback, and alert if it stops running or starts failing.

How Crontinel helps

Crontinel tracks Laravel scheduler runs, queue depth, failed jobs, and Horizon state. That means webhook delivery problems show up as a real incident, not as a vague log line somewhere.

A SaaS team can use Crontinel to watch webhook delivery queues and alert on the first signs of backlog growth. A self-hosted team can keep the data inside its own infrastructure and still get the same signal.

Quick setup idea

A simple pattern looks like this:

Schedule::job(new SyncWebhooksJob)->everyMinute();

// In Crontinel, alert on the webhook queue depth and failed-job rate

Then route the alert to Slack, email, PagerDuty, or a webhook endpoint. If your webhook pipeline starts failing, you get told before a customer opens a ticket.

See also

Start with one HTTP receipt

Five common runtimes post the same outcome body: curl, Node, Python, Sidekiq, and GitHub Actions. Laravel apps can add the Composer package for schedule, queue, and Horizon.

curl -X POST "$CRONTINEL_API_URL/api/v1/ingest/cron" \
  -H "Authorization: Bearer $CRONTINEL_INGEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command":"nightly-import","status":"completed","exit_code":0,"outcomes":{"metrics":{"processed_records":0}}}'