Automation & workflow

AI Agents and Make

A Custom Webhook module receives every finished conversation. Make infers the data structure from the first delivery, so the order of the first two steps matters.

Via webhookMake (Integromat) · bitpull AI agents

Where this stands today

Make's Custom Webhook is the counterpart to Zapier's Catch Hook, with one behavioural difference worth planning around: Make determines the data structure from the first payload it receives and then keeps it. If your first delivery is a half-filled test, every later module maps against that half-filled shape.

Send a realistic delivery first - a genuine finished conversation, or the dashboard test delivery - and let Make learn from that. Redetermining the structure later is possible but means revisiting every mapping you already built.

Where Make earns its place over Zapier is branching. A router with three routes - resolved, needs follow-up, negative sentiment - is far more legible on Make's canvas than the equivalent chain of filters.

What the agent can do

Custom Webhook trigger

Gives you a URL, waits for the first payload, and derives the data structure from it.

Router on outcome and sentiment

Three routes with clear filters instead of a chain of conditionals. This is Make's real advantage here.

Iterator over the transcript

The transcript is an array of turns. An Iterator lets you write each turn as its own row when you want the conversation searchable in a sheet or a database.

Error handlers on every module

Make lets you attach a handler per module. A failed CRM write becomes a logged incident instead of a silently dead scenario.

How it is wired

  1. Conversation ends
  2. Custom Webhookstructure determined once
  3. Routeroutcome · sentiment
  4. ModulesCRM, sheet, notification

Code

Scenario outline
Webhooks → Custom webhook
    copy the URL, leave the scenario listening

bitpull → agent → Actions → Outbound webhook
    URL: <the Make webhook URL>
    press "Test" → Make: "Successfully determined"

Router
  ├─ Route 1  filter: outcome = RESOLVED
  │             → Google Sheets: add row  (archive only)
  ├─ Route 2  filter: followUp.required = true
  │             → CRM: search contact → create/update → create task
  └─ Route 3  filter: sentiment = NEGATIVE
                → Slack / email: notify the owner immediately

Attach an error handler to every write module:
    Resume + log to a "failed deliveries" sheet, so nothing disappears.
Determine the data structure from a realistic delivery, not from an empty test.

Limits worth knowing before you start

  • No bitpull app in Make. This is the generic Custom Webhook module.
  • The data structure is learned once. A first delivery from an empty test conversation will haunt the whole scenario.
  • Make bills per operation, and a router counts each route it enters. Filter before the router, not after.
  • As with Zapier, the transcript passes through and is stored on Make's infrastructure. Consider that before routing call recordings through it.
  • A scenario that is paused or over quota drops deliveries. There is no documented replay on the bitpull side.

Questions

Why is Make not seeing my fields?

The scenario has to be listening when the delivery arrives, and the structure is only determined from a payload it actually received. Start the scenario, then press Test delivery in bitpull.

Can I re-determine the data structure later?

Yes, on the webhook module - but mappings built against the old shape need checking afterwards. Getting the first delivery right is cheaper.

Ready to run this?

Agents are created and operated on bitpull.ai - this site documents how to connect one. If the outbound webhook is not visible in your dashboard yet, that is the account capability flag, and support can enable it.