Forum Discussion

rohancs's avatar
rohancs
Active Member
11 months ago

Rate limiting Action based campaigns

Greetings!

Our team is working on implementing an Action based campaign for surveys (using in App messaging)
We trigger the survey when the user performs Custom events ( which are navigation events that we have predefined ).
One of our requirements is that we only want to trigger surveys for X users a day.  Reason being - we have a large customer base and don't want to overload our servers. Also, we want our surveys to be spread over time so there is no time period bias in the responses.

Problem: We are unable to configure such a rate limit in our Action-based campaign. The only rate limiting option available is a blanket "Stop sending this in-app message after approximately X impressions" which is not useful for us, since we want to rate limit, not a volume limit.
Wondering if there is such a thing as rate limit for Action based campaigns and keen to understand how others might have tackled this situation.

Thank you in advance !


  • Stuart's avatar
    Stuart
    Practitioner III

    Hey rohancs, interesting problem. My approach would be:

    The simplest solution is to create frequency capping rules for all your IAM campaigns.   

    If the above solution is not suitable, please confirm if you need to display this IAM in the same app/web session that the user has performed the triggering custom event? 

    If no, and a user can see this IAM on their next app/web session, then my solution would be:

    • Create x1 API-triggered IAM campaign (no sending limits)
    • Create x1 action-based triggered (by your Custom  Event) webhook campaign 
    • In the webhook campaign's 'Target Audience', select 'limit the number of people who will receive this campaign'  +  'every hour....' and add max users.
    • Enter the API address of the API-triggered IAM campaign into the webhook (i.e. using /campaigns/trigger/send endpoint

    If yes, and a user must see this IAM on their current app/web session, then my solution would be:

    Embed Liquid in the IAM to record the daily count of sends and then add a message abort when daily limit is reached. 

     

     

  • Hey Stuart ,

    I love the direction you're going with this, and this inspired an idea which I'll share below. 

    You mentioned this: "Embed Liquid in the IAM to record the daily count of sends and then add a message abort when daily limit is reached."

    If I'm understanding your suggestion correctly, the toughest part of this solution will be figuring out where to store the counter that Braze can access, regardless of which user is triggering the IAM. 

    I wonder if Catalogs can be used as a solution here... Catalogs can serve as that global counter that Braze can rely on to check if the IAM has met the daily count or not. Expecting lots of hurdles, latency, API calls, etc. with this set up. 

    • Stuart's avatar
      Stuart
      Practitioner III

      Hey AllanHeo, thanks, I was thinking exactly that (to record counts in Catalog)! I think all hurdles here, for this solution, can be overcome (latency, calls etc). 

      I've been doing lots with Catalogs of late and I expect to use it more in the future, especially with when CDI can update Catalogs and when Braze allow Catalogs to be used in segment extensions. I've also asked Braze to allow/add the Catalog APIs in Data Transformation!