I see this on rescue jobs more than “the webhook is dead.” People rebuild the whole scenario. The trigger was fine. The empty bundle started two modules later.
What “empty” actually means
In Make, a module can succeed and still output zero bundles. Search modules do this on purpose: “no record matched” is a successful search. Downstream modules then have nothing to map. History still looks healthy if you only glance at the status pill.
Open the execution. Click the module that should have created the contact or the Slack message. If the output is an empty array, stop adding modules. Work backwards from that step.
Check these four places, in order
1. Search / Get / List
Wrong unique field, extra space, or HubSpot/GHL ID vs email. A Search for “email equals the mapped field” fails silently when the mapped field is blank on that run, or when the CRM stores Name@Brand.com and the form sent name@brand.com and you did not normalize.
If the module is a Search and you expected exactly one record, set the scenario to handle “zero results” on purpose: Router with a fallback that creates the record, or a filter that routes to a “not found” Slack ping. Do not assume the next module will invent a row.
2. Filters
A filter after the trigger that says “only if status is customer” will drop Shopify draft orders, free samples, and test checkouts. The execution continues as “filtered,” which looks like success if you are not reading the label. Temporarily disable the filter, run once, confirm a bundle exists, then put the filter back with the real values from a live order — not the sample you typed in the editor.
3. Iterator / aggregator
Line items, attachments, and “array of contacts” need an iterator. If the JSON path is one level off, the iterator walks nothing. The next module is empty even though the webhook payload in module 1 is huge. Inspect the raw bundle: if line items live under line_items and you mapped items, that is the whole bug.
4. Error handler that swallows the failure
A “Resume” or “Ignore” directive on a 404 makes history green. The CRM never got the contact. If you added an error route while debugging and left it on, turn it off until the happy path writes a real record, then add a handler that notifies you — not one that hides the 404.
A Shopify → GoHighLevel scenario I rebuilt was “running” and still dropping people. The search used a phone field the store did not send on guest checkout. Search returned []. The create module never ran. Mapping email as the match key, then create-if-missing, restored the sync. Same pattern as the case on the work page.
A 15-minute test you can do today
- Run once with a real record (not the Make sample).
- Open that execution. Find the first module whose output is empty or filtered.
- Copy one field from the trigger (email, order id). Paste it into the Search module’s test. Confirm the CRM actually has that row.
- If Search is empty, decide: create the record, or fix the match key. Do not add more modules yet.
When to stop poking
If two searches, a router, and an iterator are all “probably the issue,” the scenario needs a map, not another clone. Send me the execution screenshot and one sample JSON. I will tell you which module is lying — then we either patch it or rebuild the path so empty bundles have a named fallback.
Empty bundles on a live scenario?
Send the tools and one execution. I’ll say what I would change first.