My Retell AI voice agent webhook is triggering multiple n8n executions per call, and I only want one execution (from the final analyzed event) to run my automation

Retell sends three webhook events per call — call_started, call_ended, and call_analyzed — all with the same call_id.
Each event triggers my n8n Webhook node, so I get 3 separate executions per call, even though I only want to process the final call_analyzed payload.
I’ve already added an IF node ({{$json[“body”][“event”]}} === “call_analyzed”) to run my main logic only once, and connected the false path to a Respond to Webhook (200 OK) node.
It works functionally, but n8n still counts all 3 webhook hits as executions, cluttering my history and occasionally causing retries or duplicate triggers.
What I Need Clarified - Is there a native way in n8n to filter or ignore webhook hits before they count as executions?
Or can I set the Webhook node to only listen to specific event types (e.g., “call_analyzed”) in the incoming JSON before triggering the whole workflow?
If not, is there an official best practice for handling multi-event webhooks (e.g., conditional routing, pre-filters, or a middleware approach)?

[quote=“Alasdair_Wicks, post:1, topic:215323”]

If not, is there an official best practice

[/quote]

Using self-hosted n8n for the limit execution or some advanced skills for :

The WebSocket allows you to:

  • Receive live transcripts in real-time

  • Stream responses back to Retell as they’re generated.

  • Get real-time updates about the call.

Can u not change n8n to only execute the completed data (3rd one)??. And avoid the other 2?

No, you cannot stop the incoming events to your n8n.

If you need only the call results, you have to listen for post call events analisys , not the real time ones.

If you want realtime , I already told you that WEBSOCKETS are needed(advanced programming) and anyway will consume your executions if not self hosted.

SUMMARY : NO, YOU CANNOT STOP INCOMING REQUESTS FROM RETELL (YOU CAN ONLY FILTER THE EVENTS YOU NEED).

Definitely you need “post call analisys” . You can choose what events to return there.

Read docs, and learn the difference between events. (Beggining of call, or after call ends).

Yeh i only need post call, is there a node to add to my workflow to only accept this one, Hence stopping 3 executions?

No, keep the same nodes, just change the events name you wish to receive , AFTER you set the desired events from your Retell dashboard.

Click the link I shared from Retell docs, and you will see…

Yes, I am getting all the exact info I need from retell, its just stopping 3 executions and making it only 1. This is to make sure I am not wasting executions and hitting the cap unnecessarily.

If any of the answers solved your “issue”, please mark it as solved. It may help others in the future, avoiding such long topics :slight_smile: .

Have fun!

yes, i will, but it hasnt been solved yet

What you didn’t understood?

Eg : the real time events (call_started, call_progress) , comes as bundle(means all of them mentioned in the Retell docs), you can only SORT them after they are received(so yes, your webhook will be bombarded with events if there are multiple calls) …

That’s why POST CALL events (happens only after a call ends), and you can set which results from call_ended to receive(transcript, timestamp etc…) and only this events will hit your webhook…

Did you understand :thinking:?

Thanks, that makes sense. So if I understand correctly, the goal is to switch from real-time events to post-call only so I only receive call_ended + call_analyzed instead of all the mid-call webhook noise.

Can you point me to exactly where in Retell to configure this?

Specifically:

Where do I disable the real-time events (call_started, call_progress, etc.)?
Where do I enable only post-call events?
Is there a setting to receive only call_analyzed without call_ended, or is that not possible yet?

I’ve looked in the Retell UI, but I don’t see a clear toggle for “only send post-call events.” If this is through API setup instead of the dashboard, could you share the request format?

Thanks — trying to cut down executions so I only trigger one n8n run per call.

I used mostly vapi, ,elevenlabs, twilio… but never used Retell, so i am not quite familiar with their UI, but according to their docs, is possible.

I would look in the dashboard for ‘‘Webhooks’’ , or Post-call.
Use the chat or search in the docs, it’s quite intuitive.

I suppose it has to be inputs where you set the Webhook url of your n8n, whee you receive the events.
Not sure if is a button or…
Good, you understood the underlying structure of a pub/sub system :clap:.
If there any other question, just shoot it..
Cheers !
:slight_smile: