Skip to main content
Solved

How to throttle a flow that contains web hooks

  • February 13, 2025
  • 5 replies
  • 50 views

Forum|alt.badge.img

I am creating a sunset flow for profiles who have not engaged for some time, the flow will use a web hook to inform our CRM and use the Klaviyo API to suppress them. My concern is the first run will breach the web hook limits, is there any way to throttle a flow so we don’t send more than 75/second 700/minute

Best answer by bluesnapper

Hi ​@Guides for Brides 

As ​@emma.owens recommends, my approach for a sunset flow using webhooks is to use that moving forward for profiles who enter your sunset segment. That way the profiles are drip fed in to the flow so there shouldn’t be a large volume of webhooks calls at that flow step. 

As a sunset flow is targeting disengaged profiles, your profiles who have “not engaged for some time” are unlikely to re-engage anyway. So, best to idenfity those and suppress them manually rather then feed them into a sunset flow.

Hope that helps

Andy 

View original
Did this topic or the replies in the thread help you find an answer to your question?

5 replies

MANSIR2094
Problem Solver IV
Forum|alt.badge.img+17
  • Problem Solver IV
  • 240 replies
  • February 13, 2025

Hello ​@Guides for Brides ,

You can manage the webhook rate by batching requests in your sunset flow. Klaviyo doesn’t have built-in throttling, but you can use a delay before the webhook action or segment profiles into smaller groups to control the flow rate. Another option is using an intermediary server or script to queue and send requests at your desired rate (e.g., AWS Lambda, Zapier, or a custom script). This ensures you stay within the webhook limits while still suppressing inactive profiles efficiently. Let me know if you need help setting this up!


Amos Peace
Problem Solver III
Forum|alt.badge.img+5
  • Problem Solver III
  • 62 replies
  • February 14, 2025

Hello ​@Guides for Brides,

Yes! You can throttle your Klaviyo sunset flow to stay within webhook limits using these methods:

1. Add a Time Delay in the Flow

  • Insert a time delay between steps to slow down the webhook execution.
  • Example: If you set a 1-minute delay for every 500 contacts, you’ll prevent overloading the system.

2. Use Klaviyo’s Batch Processing with Segments

  • Instead of triggering the webhook for all profiles at once, create segments based on engagement and process them in smaller batches.
  • Example:
    • Segment 1: Last engaged 6–12 months ago → Process Week 1
    • Segment 2: Last engaged 12+ months ago → Process Week 2

3. Use a Third-Party Queueing System

  • Instead of directly calling the webhook, send events to an intermediate system (e.g., AWS Lambda, Zapier, or a custom queue service).
  • The queue can then process and send requests at a controlled rate.

4. Klaviyo API Rate Limiting (For Suppression)

  • If using the Klaviyo API to suppress profiles, ensure you stay within Klaviyo’s rate limits (10 requests per second).
  • If needed, use a script with a retry mechanism to handle API throttling.

 

Kindly reach out if you need further help.

Best Regards,


ross_hopkins
Active Contributor I
Forum|alt.badge.img+5
  • 2025 Champion
  • 11 replies
  • February 16, 2025

I think your approach may depend on your technical expertise, or what you have available to you. If you have the tech resource available, then MANSIR2094’s guidance is great.

If you don’t, one approach I’ve taken to spread the load on external systems when calling webhooks via backdating a Flow is to use a Conditional Split, and use the Random Sample filter. Then add different time delays to spread the calls over time. It’s perhaps not the most efficient approach and you can’t be specific about how you adhere to the rate limits.

How many profiles are we talking here? Another approach is to create a segment and then sample it. Within the flow after the webhook set a profile property that indicates that the webhook took place. Make that property an exception in the main segment, and then sample again.


emma.owens
Community Manager
Forum|alt.badge.img+13
  • Community Manager
  • 64 replies
  • February 18, 2025

Hi ​@Guides for Brides ! 

I see you’ve received a few great workarounds above. Another option I will suggest is manually suppressing your Sunset segment first - that way that large number of profiles will be suppressed before your flow is set to live, and you won’t risk breaching web hook limits. Then, anyone who enters that segment moving forward will enter your flow and be suppressed through the webhook. 


bluesnapper
Partner
Forum|alt.badge.img+45
  • Champion & Partner
  • 737 replies
  • Answer
  • February 19, 2025

Hi ​@Guides for Brides 

As ​@emma.owens recommends, my approach for a sunset flow using webhooks is to use that moving forward for profiles who enter your sunset segment. That way the profiles are drip fed in to the flow so there shouldn’t be a large volume of webhooks calls at that flow step. 

As a sunset flow is targeting disengaged profiles, your profiles who have “not engaged for some time” are unlikely to re-engage anyway. So, best to idenfity those and suppress them manually rather then feed them into a sunset flow.

Hope that helps

Andy