Rescue · Make

Why your Make scenario returns empty bundles

The scenario is on. History is green. The CRM, Slack, or sheet still gets nothing — or a module shows []. That is not “Make is down.” It is almost always a search that found zero rows, a filter that dropped the bundle, or an iterator with nothing to walk.

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.

Field note

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

  1. Run once with a real record (not the Make sample).
  2. Open that execution. Find the first module whose output is empty or filtered.
  3. Copy one field from the trigger (email, order id). Paste it into the Search module’s test. Confirm the CRM actually has that row.
  4. 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.

Book a strategy call