Google Tag Manager

Forum Discussion

David_M's avatar
David_M
Influencer
5 hours ago

First_did_event

Hi all, 

I'm working with a white label solution so 95% of my events (and attribute overwrites) are being ingested in to Segment and forwarded to braze via webhooks and largely it's working fine.  

However, I have a first_did_action_event that is super key but not available via the webhook

the only place that see's it is snowflake via updated tables every 5 minutes (not Ideal but soon enough to remove clients from nudging canvas and in to others) 

I plan to build tables for details that help us group  activity based on the first and ongoing did_action_event but wondering the following: 

CDI will allow me to update attributes 

But how can I send an event with these systems alone if i want to trigger an event (rather than use audience exclusions to remove someone) - We might want to trigger comms on this action_event in future potentially. 

I've been reading up about external_functions in snowflake and think we can use Segment Source Function to accept the Above external_function and send on to Braze. 

Could anyone confirm or offer up some alternative options. 

Thanks. 

1 Reply

  • Hey! Just to clarify on the CDI point- you're not limited to attribute updates only. CDI actually supports syncing **custom events** and **purchase events** directly from your data warehouse into Braze, so you don't necessarily need to introduce additional hops via Snowflake External Functions or a Segment Source Function for this use case.

    From the Braze docs on [Supported Data Types](https://www.braze.com/docs/user_guide/data/unification/cloud_ingestion/#supported-data-sources):

    > CDI supports: User attributes, **Custom events**, Purchase events, and User deletion requests.
    So for your `first_did_action_event` scenario, you could set up a CDI integration pointing at your Snowflake table (which updates every 5 mins) and have Braze ingest that as a real tracked **custom event** on the user profile — which then lets you:

    - Trigger action-based Canvas entry off that event

    - Remove users from nudge flows via exit criteria

    - Use it for future campaign triggers as needed

    This keeps the architecture clean and native:

    Snowflake table (5 min refresh)

    → Braze CDI sync

    → Custom event on user profile

    → Canvas trigger / journey

    Your Snowflake External Function → Segment Source Function approach could still work, but CDI alone should cover this without the extra complexity. Worth validating the sync frequency (CDI minimum is every 15 mins) against your 5-minute Snowflake refresh window to make sure the timing works for your use case.

    Hope this helps! 🙌