Forum Discussion

andrewdonnelly's avatar
andrewdonnelly
Active Member
2 years ago

How to record the origin of all users in Braze - Best practices

I'm looking to hear from someone who records the origin of all their Braze users and how best to do this. Do you use a custom attribute? If not, what do you use? Or do you record it outside of Braze? 

We’re looking for the best way to identify where each user in our database originated from and how they entered our database.

For example:

  • A conference or industry event
  • Created manually by one of our staff in our CRM
  • Our product user database - businesses add their employees to provide them with access to our product, which then syncs to Braze
  • Free product trial sign up
  • Social media e.g. YouTube, Facebook, etc.
  • Ad campaign
  • etc

This is part of but different to attribution - we're also currently working on a multi-touch attribution dashboard covering all touchpoints with various attribution data models.

How do you record and structure the origin data in Braze?  

thanks a lot!

  • Max's avatar
    Max
    Specialist

    Hey andrewdonnelly,

    I don't know if you use a third party for click or install attribution, such as AppsFlyer or Adjust. If you're using one of them, you can connect them to Braze through the technology partner page and send install attribution, such as CRM campaign, social media, etc., to Braze. You will then have it as a native attribute in the user profile. You can use this as well for reporting and retargeting. 

    On the other side, if you're using another solution or something build by our own, you can send a webhook from your backend or service with the new data transformation feature to save this information as a custom attribute.

    I hope that helps.

    Best,

    Max

  • Thanks for your reply Max. We're not using either AppsFlyer or Adjust. But I'll look into both. 

    Native attribute in the user profile - that kind of answers my question. It would be interesting to see how the data is structured in such an attribute. I tried googling this but can't find any examples. Do you use a native attribute or custom attribute to store the user's source? Is it a nested attribute or an array of objects?

    Thanks

    • Max's avatar
      Max
      Specialist

      Hey andrewdonnelly, regarding your answers:

      Firstly, as AllanHeo  mentioned, I'm not talking about custom attribution. Braze has the ability to sync install attribution through direct integration from app attribution partners like Adjust or AppsFlyer. This would look like this in the engagement tab of the Braze user's profile:

      This is a native and direct integration in the user profile, similar to device and profile information.

      You can use the install attribution data in your campaign or canvas entry filter. For example: You want to send a communication (like a voucher code) to every customer that comes from TikTok. No problem. The data will be synchronized between your install attribution software (through SDK or API) along with the ad group etc.

      Check out the Braze documentation for more information and how it works:

      You also can use the Braze query builder to check how many customers are coming from which sources in which week. Something I like to do pretty often:

       

      SELECT 
          SOURCE,
          EXTRACT(WEEK FROM SF_CREATED_AT::timestamp) AS week_number,
          COUNT(*) AS users_count
      FROM USERS_BEHAVIORS_INSTALLATTRIBUTION_SHARED
      GROUP BY SOURCE, week_number
      ORDER BY week_number DESC;

      Let me know if you need any further information or help 🙂 .

      Best,

      Max

       

  • Hey Andrew,

    It will most likely be a custom attribute. For "native attribute", if Max is referring to the Braze-reserved standard attributes like "first_name", "last_name", then you can see the full list here. These standard attributes really have many names for them 😅 I've also heard them be called profile attributes. 

    https://www.braze.com/docs/user_guide/data_and_analytics/user_data_collection/user_import/#importing-a-csv

    Regarding the datatype of the custom attribute, I think it's really up to your team how you think is the best way to manage while not overcomplicating things. One method is just a straight up String for each type. For example, each of the bullet points you listed above could be its own custom attribute. Easy to handle, could get messy, probably needs a naming convention.

    On the extreme other side, you could have ALL those bullet points in one object data called "origin" or something similar. I think it's super cool that Braze allows for objects, nested objects, and array of objects as datatypes, so you really have a lot of options.

    I'm sure a mix of either approach could work well for you too. I've seen different teams have all sorts of different approaches. As long as your team can keep a good documentation of your process and you're easily able to use them in your targeting, then you should be good.

    The simpler the data structure is, the easier to retarget, but the more quantity of attributes you could use up. More quantity of attributes does not necessarily mean more data point consumption though. It seems like objects and nested attributes really take up the same amount of DP consumption bc every change is a consumption. 

    Lastly, Braze also allows for a pretty dang awesome way to filter through nested data. I would check it out on the segmentation page with nested data. 

    Hope this helps and lmk if you have any questions! allan@fornowmarketing.com