DEV Community

Eva
Eva

Posted on

How to Handle Webhook Errors in Make.com

Webhooks are one of the easiest ways to connect different tools with Make.com.

They are also one of the easiest places for an automation workflow to break.

A webhook may receive incomplete data.

A field may have a different format than expected.

Another service may return an error.

Or the workflow may simply stop because one step didn't receive what it expected.

I've run into this several times while building digital product automation workflows.

Over time, I've started using a simple approach to make webhook-based workflows easier to debug and maintain.

Start by checking the webhook data

When something goes wrong, don't immediately change the whole workflow.

First, look at what the webhook actually received.

A typical workflow might look like this:

Payhip

Webhook

Make

Process data

Notion / Telegram / HTTP

The first question should be:

Did Make receive the data correctly?

If the webhook didn't receive the expected information, changing later modules won't solve the problem.

This sounds obvious, but it's an easy step to skip.

Check the actual fields

A webhook may receive much more information than you expect.

For example, an order event might contain:

Customer information

Product information

Order information

Payment information

Timestamps

Transaction IDs

Instead of assuming that every field will always exist, check the actual webhook output.

Look for the fields your workflow really needs.

For example:

Customer email

Product name

Order ID

Payment status

If one of these fields is missing, the next module may fail.

Don't assume the data will always be the same

One important lesson I've learned is that external data is not always predictable.

For example, you might expect:

Product name

But sometimes an API or webhook may return:

Product title

Or the value may be empty.

Your workflow should be designed with this possibility in mind.

This is especially important when connecting several different services.

The more services you connect, the more likely it is that their data structures will be slightly different.

Validate important data before continuing

For important workflows, I prefer to validate the data before performing the next action.

The basic idea is:

Webhook

Receive data

Check required fields

Continue if valid

Perform action

For example:

Webhook

Check order ID

Check customer email

Check product

Create order record

This is safer than immediately sending everything to another service.

If the data is incomplete, you can stop the workflow before creating a bad record.

Don't make every error a complete failure

Another useful idea is separating important actions from optional actions.

Imagine this workflow:

Payhip

Make

Create order record

Send Telegram notification

Send customer email

What happens if Telegram is temporarily unavailable?

The order itself shouldn't necessarily be considered a failure.

The most important operation may be recording the order.

The Telegram notification may be secondary.

Thinking about priorities like this makes automation systems much easier to maintain.

Add logging

When a workflow works perfectly, you don't think much about logging.

When something breaks three days later, logging suddenly becomes very important.

A simple log can help answer questions like:

What happened?

When did it happen?

Which order triggered it?

Which module failed?

What data was received?

Without this information, debugging often becomes guesswork.

For a small automation, even a simple Notion database or spreadsheet can be enough for basic logging.

Be careful with retries

Retries can be useful.

But retries can also create duplicate actions.

Imagine a workflow receives an order and creates a record.

The next step fails.

The workflow runs again.

Now you might accidentally create the same order twice.

This is why unique identifiers are important.

For example, an order ID can be used to determine whether the order has already been processed.

The basic idea is:

New event

Check order ID

Already processed?
→ Yes: stop
→ No: continue

This simple check can prevent many duplicate records.

Keep error handling simple

It's tempting to build a complicated error-handling system immediately.

I don't recommend doing that.

Start with the most common failure cases.

For example:

Missing customer email

Missing order ID

Invalid data

API timeout

Service unavailable

Duplicate event

Handle these first.

You can always add more protection later.

Avoid adding unnecessary branches

Another mistake is creating too many branches in a workflow.

A workflow can quickly become difficult to understand:

Webhook

Router

Condition A

Router

Condition B

HTTP

Router

Telegram

Router

Notion

At some point, the workflow becomes harder to maintain than the original manual process.

A simpler structure is often better.

For example:

Webhook

Validate

Process

Record

Notify

The goal isn't to create the most sophisticated workflow.

The goal is to create one that keeps working.

Test with real examples

Testing with one example isn't always enough.

Try different situations.

For example:

Successful order

Different product

Missing optional field

Duplicate event

Failed API request

Unexpected data

This helps reveal problems before real customers encounter them.

I also recommend keeping test data clearly separated from real customer data whenever possible.

Design for failure

One of the biggest changes in how I think about automation is this:

Don't design only for the happy path.

A workflow that works perfectly when everything goes right isn't necessarily a reliable workflow.

Real systems have:

Network problems

API errors

Missing data

Duplicate events

Temporary service outages

Unexpected inputs

A maintainable automation should have at least some idea of what happens when things go wrong.

When should you rebuild a workflow?

Not every error means the workflow needs to be rebuilt.

If one module fails occasionally, you may only need better validation or error handling.

If the workflow has become extremely difficult to understand, however, it may be time to simplify it.

A useful question is:

Can I understand what this workflow does by looking at it for a few minutes?

If the answer is no, the workflow may have become too complicated.

My simple debugging process

When one of my Make.com workflows stops working, I usually go through these steps:

Check the webhook output
Find the first module that failed
Check the input data
Check the output data
Look for missing or unexpected fields
Check whether the external service returned an error
Check for duplicate events
Fix the smallest possible problem
Run another test
Only rebuild the workflow if the structure itself is the problem

This approach is much faster than randomly changing multiple modules at once.

The bigger lesson

Webhook automation isn't difficult because connecting two tools is complicated.

The difficult part is dealing with everything that happens when the data isn't exactly what you expected.

That's why I now think about automation in three parts:

Input

What data did I receive?

Process

What should the workflow do with it?

Output

What should happen after the process finishes?

Then I add one more question:

What happens if something goes wrong?

That question can make a big difference.

Final thoughts

Automation should remove repetitive work.

But a workflow that constantly breaks, creates duplicates, or requires manual debugging can become another source of work.

That's why I prefer simple workflows with clear responsibilities, basic validation, useful logging, and straightforward error handling.

You don't need to build a perfect automation system.

You need to build one that you can understand, test, and maintain.

**Automate repetitive work.

Don't automate complexity just because you can.**

I'm also collecting reusable digital product automation workflows and examples on GitHub.

You can find them here:

https://github.com/Eva-311/hermes-automation-examples

Top comments (0)