What is your goal?
I am building a WhatsApp lead qualification bot for estate agents called Konzi. When a lead sends a WhatsApp reply to the Twilio sandbox number, my Make Scenario 2 (Conversation Handler) should run once, read the lead’s reply, generate a response via Claude AI, and send one message back to the lead. Instead it is running multiple times (between 2 and 10 times) and sending duplicate messages to the end user — which is completely unacceptable for a client-facing product.
What is the correct way to ensure a Make scenario triggered by a Twilio WhatsApp webhook only runs once per inbound message — ignoring status callbacks and duplicate webhook fires? Is there a native Make solution, or does this require middleware?
What is the problem & what have you tried?
Setup
- Twilio WhatsApp Sandbox → Webhook → Make Scenario 2
- Scenario 2 receives the reply, queries Google Sheets for conversation stage, sends to Claude AI via HTTP module, parses the JSON response, and sends the reply via a direct Twilio API HTTP call
- I have tried routing through a Google Apps Script middleware to deduplicate by MessageSid using PropertiesService — but the Apps Script execution log shows no entries, suggesting Twilio is not reaching it despite the correct URL being in Twilio sandbox settings
- Scenario 2 is set to run Immediately and is toggled ON
What I Have Tried
- Google Sheets deduplication using MessageSid (race condition — all webhooks arrive before any can save)
- Make Data Store deduplication (same race condition)
- Google Apps Script middleware with PropertiesService to catch duplicates before forwarding to Make (Apps Script does not appear to be receiving Twilio’s requests)
- Setting Sort Order to Descending and Limit to 1 on the Google Sheets Search module
- Scheduling the scenario every 1 minute instead of immediately
Error messages or input/output bundles
Key Observation
Duplicates only started when I introduced a Google Sheets row that gets created by Scenario 1 at the start of each conversation. Before that row existed, Module 2 (Search Conversations sheet) returned 0 bundles and the scenario ran once. Now it returns 1 bundle and runs multiple times. This suggests the issue may be Twilio sending status callback webhooks (Accepted, Delivered) in addition to the inbound message webhook — and all of them are triggering the scenario.

