Google Tag Manager

Forum Discussion

ks927's avatar
ks927
Active Member II
9 months ago

Best way to update thousands of profiles at once?

We would like to classify all of our active user profiles, based on app engagement/behavior, on a nightly or weekly or monthly basis. This requires tens of thousands of api requests, which can be done in batches of 225, running in a loop, calling Braze's api endpoint on each iteration to update custom profile attributes.

We've been told this is a common practice among other companies, so I'm wondering if anyone here has any experience or advice for doing this without burning up CPU's and taking hours to complete.

Thanks,

Kyle

  • Joseph_C's avatar
    Joseph_C
    Practitioner II

    You are making the calls from your app's backend? 

    How we did this - Through the Snowflake CDI sync. All of our user data was passed to our snowflake warehouse. We classified users as 'Acitve' or 'Passive' and then daily at 6:00am every day, we ran a query to sync user's whose classification had changed, from snowflake to braze. If you don't have snowflake, there are other data syncs braze has connections with.

    The other way I can think of - would be to set up a canvas that enters users based on your active or passive definitions, and uses a webhook step to update a custom attribute for their engagement state. So... you might enter users who "Last used App more than 7 days ago" and assign your new `engagement_State` attribute = `passive`. 




     

  • ks927's avatar
    ks927
    Active Member II

    Thanks for the reply!

    Yes we would be making the calls to Braze from our backend to sync the user data. We use a data warehouse through Google to segment all active users into 4 different groups. On a scheduled basis, we would update these segments, and via our API update a `user_group` attribute on each Braze profile.

    We do not use Snowflake, but it sounds like you're still making similar calls from Snowflake to Braze to sync your user deltas. I'm not familiar with that integration though so I might be missing information here, are you bypassing Braze's API endpoints? That is the bottleneck we're trying to work around.

  • Joseph_C's avatar
    Joseph_C
    Practitioner II

    Hey Kyle! ks927 , didn't mean to ghost ya! 

    I think that the Rest API you are using is different than the CDI solution. We don't need to make any API calls, so we're not limited by that cap. Once your integration is set up, you can sync a table with unlimited rows (userId's) all at once.