diff --git a/_docs/_partners/data_and_analytics/customer_data_platform/crowdtwist.md b/_docs/_partners/data_and_analytics/customer_data_platform/crowdtwist.md new file mode 100644 index 00000000000..4556c4e2d7b --- /dev/null +++ b/_docs/_partners/data_and_analytics/customer_data_platform/crowdtwist.md @@ -0,0 +1,255 @@ +--- +nav_title: Oracle Crowdtwist +article_title: Crowdtwist +description: "This article outlines the partnership between Braze and Oracle Crowdtwist, by way of specially-created Braze Data-Transformation templates and Crowdtwist's Data Push Objects." +page_type: partner +search_tag: Partner + +--- + +# Oracle Crowdtwist + +> [Oracle Crowdtwist](https://www.oracle.com/uk/cx/marketing/customer-loyalty/) is a leading cloud-native customer loyalty solution to empower brands to offer personalized customer experiences. Their solution offers over 100 out-of-the-box engagement paths, providing rapid time-to-value for marketers to develop a more complete view of the customer. + +Oracle Crowdtwist's Data Push feature allows user or event metadata to be passed whenever an update occurs in Crowdtwist's platform. + +This guide outlines how to integrate Oracle Crowdtwist’s User Profile, User Activity, and User Redemption Live Push feeds into your Braze environment. Two additional Data Push types are available that are not explicitly covered in this documentation, but their setup follows the same principles outlined below. + +* [Live Push User Profile](https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/PushUserProfile-withTiersv2.html): Includes creations of new profiles and updates to existing profiles. + +* [Live Push User Activity](https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserActivity.html): Includes data on user activity completions. + +* [Live Push User Redemption](https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserRedemption.html): Includes data on user reward redemptions. + +By using a Braze Data Transformation template, you can filter out the elements of the Data Push that aren't relevant to Braze, and assign the values needed in Braze so that they can be leveraged by the available "destinations". + +For example, use a Data Push to pass relevant custom events and attributes to Braze, like when a user changes loyalty tier or redeems a reward. You can also use it to log custom attributes in Braze as soon as that data is updated on a member's user profile, like a user's points balance. + +## Prerequisites + + +| Requirement | Description | +| --- | --- | +| Oracle Crowdtwist account | An [Oracle Crowdtwist Account](https://www.oracle.com/uk/cx/marketing/customer-loyalty/) is required to take advantage of this partnership. | +| Braze Data Transformation Endpoint| This integration relies on Braze's [Data Transformation Tool]({{site.baseurl}}/user_guide/data/data_transformation/overview). When you create a Data Transformation, Braze generates a unique endpoint that you can add as a destination for Crowdtwist's Data Push.| +{: .reset-td-br-1 .reset-td-br-2 role="presentation" } + +## Integration + +Braze and Oracle Crowdtwist have created [Data Transformation templates]({{site.baseurl}}/user_guide/data/data_transformation/creating_a_transformation?redirected=1#step-2-create-a-transformation) to help our customers develop their own Data Transformations which leverage the User Profile, User Redemption, and User Activity events. + +## Step 1: Create Data Transformation from Oracle Crowdtwist Template + +Navigate to **Data Settings > Data Transformation > Create Transformations > Use a Template** > and select the “BRAZE <> CROWDTWIST” template of your choice. + +You will find four templates—one each for transforming User Profile, User Activity, and User Redemption events, and a master template that uses conditional logic to apply to various Data Push events. + +As shown in [Oracle Crowdtwist's Data Push documentation](https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/DataPush.html), Data Push objects contain different metadata, so each requires its own transformation code to create appropriate Braze objects. The master template illustrates how to set up a single Data Transformation to accept each of the three types of objects and creates an appropriate output with values from each object. + +## Step 2: Update and Test Template + +Below, you’ll see the annotated templates. The body of these templates is designed to apply to the `/users/track` destination. Annotations are marked by the `//` line-start and green text, and you can delete them without affecting the operation of the transformation code. + +The transformation uses JavaScript, which builds an object called "brazecall". This object is where you create the request body that is sent to a Braze REST API endpoint. For guidance on the required structures of the requests to these destinations, see the links in the "destinations" section. + +{% alert note %} +Notice that the "values" of each "key" start with `payload.`. The payload represents the data object received from Oracle Crowdtwist. Use JavaScript dot notation to choose what piece of data you want to populate the elements of your Braze object. For example, when you see `external_id: payload.thirdPartyId`, this means that the Braze external ID is set by the `third_party_id` value stored in Oracle Crowdtwist. For more information about the schema or makeup of the objects coming from Oracle Crowdtwist, see [Oracle's documentation](https://docs.oracle.com/en/cloud/saas/marketing/crowdtwist-develop/Developers/LivePushUserActivity.html). +{% endalert %} + +{% alert important %} + Use the objects sent from Oracle Crowdtwist to create users in Braze. By including the `update_existing_only` key with the value `false`, if an attribute or event object includes an identifier that does not exist in Braze, Braze creates a user profile with the attributes included in the event or attribute object. If you prefer that Oracle Crowdtwist update only profiles that already exist in Braze, set this attribute to `true` in each attribute or event object. +{% endalert %} + +### Data Transformation Templates +{% tabs %} +{% tab User Profile Event Template%} +```javascript +let brazecall = { + "attributes": [ + { + //You must include an appropriate identifier for your attribute or event object from data available in Oracle Crowdtwist. This could be an external ID, Braze ID, user alias, phone, or email address for attribute or event objects. + "external_id": payload.thirdPartyId, + "email": payload.emailAddress, + // **Important** To allow Oracle Crowdtwist events to create users in Braze, set the value of "_update_existing_only" to false. Otherwise, set this value to true in your event and attribute objects. + "_update_existing_only": false, + "crowdtwist_loyalty_points": payload.redeemablePoints, + //In this example, the "tierInfo" object from Crowdtwist is transformed into a Braze Nested Custom Attribute. Use the "_merge_objects" value to avoid duplications in a data point efficient manner. + //The "tierinfo_current_level" attribute is a flat Braze custom attribute, while "tierInfo" below is a nested object mirroring the Crowdtwist payload; the difference in capitalization is intentional. + "tierinfo_current_level": payload.tierInfo.currentLevel, + "_merge_objects" : true, + "tierInfo" : { + "resetDate": payload.tierInfo.resetDate, + "dateReached":payload.tierInfo.dateReached, + "scoreNeededToReach": payload.tierInfo.scoreNeededToReach, + "nextLevel":{ + "minValue":payload.tierInfo.nextLevel.minValue, + "maxValue":payload.tierInfo.nextLevel.maxValue, + "title":payload.tierInfo.nextLevel.title + } + } + } + ] +, +//Below we show how to create both custom attributes and events from a single Crowdtwist User Profile object. + "events": [ + { + "external_id": payload.thirdPartyId, + "email": payload.emailAddress, + "name": "assignedByEvent", +//Below we can see how to write a timestamp in your object, which is a required value for some objects, like the Event Object. + "time": new Date().toISOString(), + "properties": { + "assigned_by_event": payload.tierInfo.assignedByEvent, + "date_assigned": payload.tierInfo.dateAssigned + }, + "_update_existing_only": false + } + ] +}; +// After the /users/track request is assigned to brazecall, return brazecall to create an output. +return brazecall; + +``` + +{% endtab %} +{% tab User Activity Event Template %} +```javascript +let brazecall = { +"events": [ + { + "external_id": payload.thirdPartyId, + "_update_existing_only": false, + "activityId": payload.activityId, + "name": payload.activityName, + "time": new Date().toISOString(), + "properties": { + "description": payload.description, + "date_assigned": payload.dateAwarded + } + } + ] +}; +return brazecall; +``` +{% endtab %} +{% tab Redemption Event Template %} +```javascript +let brazecall = { + "attributes": [ + { + "external_id": payload.thirdPartyId, + //A user redemption event may not have a third party id, in which case you can instead provide the opportunity to include a user alias. + "user_alias": { "alias_name" : "crowdtwist_redemption_username", "alias_label" : payload.userName}, + "_update_existing_only": false, + "redeemed_coupon": payload.couponCode, + "total_points_redeemed": payload.totalPointsRedeemed + } +] +} +return brazecall; + +``` +{%endtab%} +{% tab Master Template %} +```javascript +//The master template uses JavaScript's conditional operators to determine the output of the Data Transformation. This example shows how to apply JavaScript to your transformation to allow for a dynamic range of sources or inputs. + + // We open the transformation with a simple "if" function. We're checking if the value "payload.tierInfo" is present. "tierInfo" is a value that is always populated in the User Profile Live Push object, but is not present in the others. + +if (payload.tierInfo) { +let brazecall = { + "attributes": [ + { + "external_id": payload.thirdPartyId, + "email": payload.emailAddress, + "_update_existing_only": false, + "crowdtwist_loyalty_points": payload.redeemablePoints, + "tierinfo_current_level": payload.tierInfo.currentLevel, + "_merge_objects" : true, + "tierInfo" : { + "resetDate": payload.tierInfo.resetDate, + "dateReached":payload.tierInfo.dateReached, + "scoreNeededToReach": payload.tierInfo.scoreNeededToReach, + "nextLevel":{ + "minValue":payload.tierInfo.nextLevel.minValue, + "maxValue":payload.tierInfo.nextLevel.maxValue, + "title":payload.tierInfo.nextLevel.title + } + } + } + ] +, + "events": [ + { + "external_id": payload.thirdPartyId, + "email": payload.emailAddress, + "name": "assignedByEvent", + "time": new Date().toISOString(), + "properties": { + "assigned_by_event": payload.tierInfo.assignedByEvent, + "date_assigned": payload.tierInfo.dateAssigned + }, + "_update_existing_only": false + } + ] +}; +return brazecall; +//Now we use an "else if" operator to change the "brazecall" body if the object is a User Activity event by checking if the unique key "activityId" has been populated. +} else if (payload.activityId) { + let brazecall = { +"events": [ + { + "external_id": payload.thirdPartyId, + "_update_existing_only": false, + "activityId": payload.activityId, + "name": payload.activityName, + "time": new Date().toISOString(), + "properties": { + "description": payload.description, + "date_assigned": payload.dateAwarded + } + } + ] +}; +return brazecall; +//Finally, this conditional statement triggers if the Data Push object is a User Redemption event, based on whether a value populates in the key "rewardId". +} else if (payload.rewardId) { + let brazecall = { + "attributes": [ + { + "external_id": payload.thirdPartyId, + "_update_existing_only": false, + "redeemed_coupon": payload.couponCode, + "total_points_redeemed": payload.totalPointsRedeemed + } +] +} +return brazecall; +} else { + //Include this error message to help with troubleshooting in the log if a call fails. Replace the text in the parentheses with anything that might be clearer to your team based on your Data Transformation. + throw new Error("No appropriate Identifiers found"); +} + +``` +{% endtab %} +{% endtabs %} + +### Destinations + +The templates in this guide are created to deliver to the "Track Users" destination, but you can design your template to send to any of the endpoints listed in [Braze's Data Transformation guide]({{site.baseurl}}/user_guide/data/data_transformation/creating_a_transformation/#step-2-create-a-transformation), with the support of the associated [REST API documentation]({{site.baseurl}}/api/home). + +### Testing + +After you modify the template to your liking, you must validate that it operates correctly. Click “Validate” to return a preview of your code’s output and to check if it is an acceptable request for your chosen destination. + +![Screenshot of Braze Data transformation UI]({% image_buster /assets/img/crowdtwist_tools/screenshot.png %}){: style="max-width:70%;margin-bottom:15px;border:none;"} + +When you're happy with the object you see in the "output" field, click **Activate** so that the Data Transformation endpoint is ready to accept data. + +You'll find your Data Transformation's webhook URL on the left-hand side panel. Copy this and use it for configuration within Oracle Crowdtwist's Integration Hub. + +{% alert important %} +The Braze Data Transformation endpoints have a rate limit of 1000 requests per minute. Consider the speed at which you want this data made available in Braze, and speak to your Braze Account Manager if you require a higher Data Transformation rate limit. +{% endalert %} + +Data Transformations are a very dynamic tool and you can design them for purposes beyond what is outlined in this document with an understanding of JavaScript and with the guidance of our REST API documentation. For support or troubleshooting on complex changes to your Data Transformation templates, talk to your Customer Success Manager to learn about the guidance available to you. \ No newline at end of file diff --git a/_docs/_partners/home.md b/_docs/_partners/home.md index c4a1128101e..32b40d0cd49 100644 --- a/_docs/_partners/home.md +++ b/_docs/_partners/home.md @@ -372,4 +372,8 @@ valid_partner_list: url: /docs/partners/message_personalization/dynamic_content/visual_and_interactive_content/cloudinary/ - name: LILT url: /docs/partners/lilt/ +- name: Fullstory + url: /docs/partners/message_personalization/dynamic_content/personalized_recommendations/fullstory +- name: Oracle Crowdtwist + url: /docs/partners/crowdtwist --- diff --git a/_docs/_partners/message_personalization/dynamic_content/personalized_recommendations/fullstory.md b/_docs/_partners/message_personalization/dynamic_content/personalized_recommendations/fullstory.md new file mode 100644 index 00000000000..bf132cd3b95 --- /dev/null +++ b/_docs/_partners/message_personalization/dynamic_content/personalized_recommendations/fullstory.md @@ -0,0 +1,181 @@ +--- +nav_title: Fullstory +article_title: Fullstory +description: "This reference article outlines the partnership between Braze and Fullstory." +alias: /partners/fullstory/ +page_type: partner +search_tag: Partner +--- + +# Fullstory + +Fullstory’s behavioral data platform helps technology leaders make better, more informed decisions. By injecting digital behavioral data into their analytics stack, Fullstory's patented technology unlocks the power of quality behavioral data at scale–transforming every digital visit into actionable insights. + +*This integration is maintained by Fullstory* + +## About this integration +You can leverage Fullstory insights in Braze to build moment-to-moment pictures of a user's website or app experience to deliver hyper-contextual messaging. Fullstory's Session Summary API makes it possible to capture detailed metadata on a user's browsing behavior for use in Braze messaging, which is particularly powerful when leveraged in a multi-step messaging journey like a Canvas. + +The real-time value of Fullstory’s Session Summary data is best leveraged through Connected Content. By using connected content in a Canvas Context step, you can store Fullstory’s data throughout a user's Canvas journey for use in any subsequent Canvas steps. This also avoids the need to write this data to a Braze user profile through custom events or attributes. + +In the following example, Canvas Context data is leveraged in an Agent AI Canvas step to generate the optimal message to encourage a user to pick back up an abandoned cart. However, you can leverage the data to personalize the message directly, to determine the user's journey via audience paths, or to determine the copy or assets used in subsequent messaging steps. + +## Use cases + +![Diagram showing Fullstory integration use cases with Braze]({% image_buster /assets/img/fullstory/1.png %}) + +## Prerequisites + +Before you start, you need the following: + +|Requirement | Description | +|-----------------------|-----------------| +| A Fullstory Session API Authorization Token | See Step 1 below. | +| A Braze Connected Content Authorization Token enabled | See the note below on Early Access | +| A Braze Canvas Context Step |See the note below on Early Access | +| Enabled Braze AI Agent Step | See the note below on Early Access| +{: .reset-td-br-1 .reset-td-br-2 role=“presentation”} + +## Integrating Fullstory + +### Step 1: Set up Fullstory for Session Summary API enablement + +#### A: Retrieving the [Auth Token](https://developer.fullstory.com/server/authentication/) for the Session Summary API endpoint + +To create a Fullstory API key, navigate to the Fullstory platform, then **Settings** > **API Keys**. Select the **Standard** permission level, and immediately copy the key value, as it appears only once. + +#### B: Creating a session summary Profile ID + +Following [Fullstory's guidance](https://developer.fullstory.com/anywhere/activation/ai-session-summary-api/#step-1-creating-and-managing-summary-profiles), create a session summary profile using the dedicated endpoint. This is where you define what sort of data you want the Session Summary response to provide to Braze. +In the response to this request, Fullstory provides a Session “Profile ID”. This Profile ID is a key component of the connected content request body used in the following use case. + + +### Step 2: Create the Connected Content Token Auth +1. In Braze, navigate to **Settings > Workspace Settings > Connected Content > Add Credential > Token Authentication**. + +2. Name the authentication “fullstory”. + +3. Add the Header key “Authorization”. Supply the Header value Fullstory provided in the previous step. + +4. Under Allowed Domain, submit “api.fullstory.com”. + +![Screenshot of Braze showing the Edit Credential fields]({% image_buster /assets/img/fullstory/2.png %}) + +## Use case: Leverage Fullstory Session Summary data and Braze Canvas Context steps and AI Agents to create dynamic message journeys + +Using Fullstory's [Activation Streams](https://help.fullstory.com/hc/en-us/articles/360045134554-Streams), you can trigger Braze Canvases immediately after key user interactions. The power of this integration lies in the unique `client_session_id` (accessible via {% raw %}`{{canvas_entry_properties.${client_session_id}}}`{% endraw %}), which the system passes automatically from Fullstory to Braze. This ID acts as a key, allowing Braze to fetch the complete Session Summary of exactly what the user experienced. + +By leveraging Canvas Context steps and Connected Content, you can use this ID to make an API request to Fullstory, retrieve the session data, and store it as a variable for use later in the journey. + +![Screenshot of Braze Canvas Context step showing the context variable `summary_result` being created and populated with a connected content call to Fullstory, to retrieve a session summary]({% image_buster /assets/img/fullstory/3.png %}) + +With the Authorization token created earlier, use the following request structure to pull the Session Summary data. + +{% raw %} +```bash +{% connected_content https://api.fullstory.com/v2/sessions/{{canvas_entry_properties.${client_session_id} | url_encode}}/summary?config_profile=[YOUR-FULLSTORY-PROFILE-ID] :auth_credentials fullstory :save summary_result %} +{{summary_result | as_json_string }} +``` +{% endraw %} + +{% alert Note %} + The response is stored as the Liquid tag {% raw %}`{{context.${summary_result}.response}}`{% endraw %}. We use this Context tag in subsequent Canvas steps. +{% endalert %} + +At this stage, the canvas can access the response to the Connected Content call, which contains the entire message payload for a user's session. + +{% details Example Payload from Session Summary API %} + +{% raw %} +```bash +{ + "response": { + "primary_goal": "User attempted to update payment method.", + "issues_encountered": [ + "Received 'invalid card number' error twice.", + "Clicked 'Submit' button multiple times with apparent frustration (based on event patterns)." + ], + "final_action": "Navigated away from payment page to dashboard.", + "reason_for_termination_suggestion": "Could not update payment method successfully.", + "help_pages_visited": [ + "/help/payment-errors" + ] + }, + "response_schema": { + "type": "OBJECT", + "properties": { + "primary_goal": { + "type": "STRING", + "description": "A summary of the user's main objective during the session." + }, + "issues_encountered": { + "type": "ARRAY", + "description": "A list of problems or errors the user faced.", + "items": { + "type": "STRING", + "description": "A description of a single issue." + } + }, + "final_action": { + "type": "STRING", + "description": "The last significant action the user took before the session ended." + }, + "reason_for_termination_suggestion": { + "type": "STRING", + "description": "A suggested reason for why the user ended their session." + }, + "help_pages_visited": { + "type": "ARRAY", + "description": "A list of URLs for help or documentation pages the user visited.", + "items": { + "type": "STRING", + "description": "The URL of a help page." + } + } + }, + "required": [ + "primary_goal", + "issues_encountered", + "final_action", + "reason_for_termination_suggestion", + "help_pages_visited" + ] + } +} +``` +{% endraw %} +{% enddetails %} + +You can leverage any of the data available in the object above using the context Liquid tag later in the user's Canvas journey. The following steps show how you can use this data in an [AI Agent](https://www.braze.com/docs/user_guide/engagement_tools/canvas/canvas_components/agent_step) Canvas step. + +{% alert Note %} +To avoid unexpected behavior, include an Audience Path step after the Context step, which can drop users out of the context if their Context tag is empty, indicating the connected content call failed or otherwise returned no information. + +![Screenshot of Braze Audience step]({% image_buster /assets/img/fullstory/3.png %}) + +{% endalert %} + +## Create an AI Agent that can analyze Fullstory’s payloads and produce appropriate copy for your use case + +[Braze's agents guidance]({{site.baseurl}}/docs/user_guide/brazeai/agents/creating_agents) outlines how Braze users can create AI Agents. By inserting an AI Agent step into a Canvas triggered by Fullstory, and including the Canvas Context step outlined above, users can feed their AI Agent Fullstory’s session summary data, for a wide range of purposes. + +In this example, we use this data to allow the AI Agent to generate appropriate message copy for use in a content card, which can encourage the user to return to their abandoned basket. + +![Screenshot of Braze Agent Context creator with the prompt]({% image_buster /assets/img/fullstory/4.png %}) + +Use the same name for the Context Liquid tag created in this step as the context Liquid tag used in the AI Agent step created earlier. + +The prompt required for your use case varies, but for our best practices for creating effective agent prompts, see [Writing Instructions]({{site.baseurl}}/docs/user_guide/brazeai/agents/creating_agents/#writing-instructions) in *Creating Agents*. + + +In your canvas, select an AI Agent step and then select the "Session Context" agent created from the drop-down menu. Save the output as a variable, in this case "message", which you can place into message copy by using the Liquid tag {% raw %}`{{context.${message}.message}}`{% endraw %}. + +![Screenshot of Braze Agent Context Canvas step with the prompt]({% image_buster /assets/img/fullstory/5.png %}) + +Create a message step that leverages the AI Agent-created copy. Use the Liquid tag in this step. + +{% alert Note %} + +Fullstory's Session Summary API may return sensitive identifiable user data. To ensure compliance while handling PII (Personally Identifiable Information), ensure your Fullstory data capture rules exclude PII before leveraging this use case. + +{% endalert %} \ No newline at end of file diff --git a/_docs/_releases/2025/9_16_25.md b/_docs/_releases/2025/9_16_25.md index 294a62f4162..468c7885d20 100644 --- a/_docs/_releases/2025/9_16_25.md +++ b/_docs/_releases/2025/9_16_25.md @@ -17,12 +17,6 @@ Braze Data Platform is a set of comprehensive, composable set of data capabiliti - [Data activation]({{site.baseurl}}/user_guide/data/activation) - [Data distribution]({{site.baseurl}}/user_guide/data/distribution) -### Deleting user profiles - -{% multi_lang_include release_type.md release="Early access" %} - -Now you can delete individual users or a segment of users directly through the Braze dashboard—instead of only relying on the Braze REST API. You'll need to contact your customer success manager if you'd like to participate in the early access. To get started, see [Deleting users]({{site.baseurl}}/user_guide/data/unification/user_data/delete_users/). - ### Custom Banner properties {% multi_lang_include release_type.md release="Early access" %} diff --git a/_docs/_releases/home.md b/_docs/_releases/home.md index 483c41f1d12..2f408cfa47e 100644 --- a/_docs/_releases/home.md +++ b/_docs/_releases/home.md @@ -467,12 +467,6 @@ Braze Data Platform is a set of comprehensive, composable set of data capabiliti - [Data activation]({{site.baseurl}}/user_guide/data/activation) - [Data distribution]({{site.baseurl}}/user_guide/data/distribution) -#### Deleting user profiles - -{% multi_lang_include release_type.md release="Early access" %} - -Now you can delete individual users or a segment of users directly through the Braze dashboard—instead of only relying on the Braze REST API. You'll need to contact your customer success manager if you'd like to participate in the early access. To get started, see [Deleting users]({{site.baseurl}}/user_guide/data/unification/user_data/delete_users/). - #### Custom Banner properties {% multi_lang_include release_type.md release="Early access" %} diff --git a/_docs/_user_guide/administrative/app_settings/company_settings/security_settings.md b/_docs/_user_guide/administrative/app_settings/company_settings/security_settings.md index 72982a3adb5..e0e99ff204e 100644 --- a/_docs/_user_guide/administrative/app_settings/company_settings/security_settings.md +++ b/_docs/_user_guide/administrative/app_settings/company_settings/security_settings.md @@ -287,7 +287,7 @@ The following attributes can be designated as PII and hidden from Braze users wh ### Limited areas -The following assumes that all fields are set as PII, and the users mentioned are those who use the Braze platform. Also, "preceding" attributes refer to those in the [Potential PII attributes](#potential-pii-attributes) table. +The following assumes that all fields are set as PII, and the users mentioned are those who use the Braze platform. Also, "preceding" attributes refer to those in the [Potential PII attributes](#potential-pii-attributes) table. Removing PII permissions from a user can impact usability beyond these listed areas. | Dashboard Navigation | Result | Notes | | -------------------- | ------ | ----- | diff --git a/_docs/_user_guide/data/activation/catalogs/create.md b/_docs/_user_guide/data/activation/catalogs/create.md index 5e456d10f26..a757af38979 100644 --- a/_docs/_user_guide/data/activation/catalogs/create.md +++ b/_docs/_user_guide/data/activation/catalogs/create.md @@ -192,6 +192,10 @@ As you build more catalogs, you can also use the [List catalogs endpoint]({{site Supported data types for using API include: string, integer, float, boolean, or datetime. You can also upload arrays and objects when managing your catalogs with the API. +### Using Cloud Data Ingestion + +You can maintain catalogs through [Cloud Data Ingestion]({{site.baseurl}}/user_guide/data/unification/cloud_ingestion/sync_catalogs_data/) by syncing catalog data directly from your data warehouse (such as Snowflake, Redshift, BigQuery, Databricks, Microsoft Fabric, or S3) on a scheduled basis. + ## Managing catalog items In addition to managing your catalogs, you can also use asynchronous and synchronous endpoints to manage the catalog items. This includes the ability to edit and delete catalog items, and to list catalog item details. diff --git a/_docs/_user_guide/data/unification/user_data.md b/_docs/_user_guide/data/unification/user_data.md index 16f4b159930..0a6962421e3 100644 --- a/_docs/_user_guide/data/unification/user_data.md +++ b/_docs/_user_guide/data/unification/user_data.md @@ -26,9 +26,6 @@ guide_featured_list: - name: Importing Users link: /docs/user_guide/data/unification/user_data_collection/user_import/ image: /assets/img/braze_icons/users-01.svg - - name: Delete Users - link: /docs/user_guide/data/unification/user_data/delete_users/ - image: /assets/img/braze_icons/users-01.svg - name: Anonymous Users link: /docs/user_guide/data/unification/user_data_collection/user_profile_lifecycle/anonymous_users/ image: /assets/img/braze_icons/user-circle.svg diff --git a/_docs/_user_guide/data/unification/user_data/delete_users.md b/_docs/_user_guide/data/unification/user_data/delete_users.md index fef5785f5a4..ec5d8f95b50 100644 --- a/_docs/_user_guide/data/unification/user_data/delete_users.md +++ b/_docs/_user_guide/data/unification/user_data/delete_users.md @@ -3,7 +3,9 @@ nav_title: Delete users article_title: Delete users page_order: 4.2 toc_headers: h2 -description: "Learn how to delete an individual user or a segment of users directly through the Braze dashboard." +description: "Learn how to delete an individual user or a segment of users directly through the Braze dashboard." +alias: /user_guide/data/unification/user_data/delete_users/ +hidden: true --- # Delete users diff --git a/_docs/_user_guide/engagement_tools/canvas/faqs.md b/_docs/_user_guide/engagement_tools/canvas/faqs.md index 2e79e076c85..75b6b83a8c9 100644 --- a/_docs/_user_guide/engagement_tools/canvas/faqs.md +++ b/_docs/_user_guide/engagement_tools/canvas/faqs.md @@ -68,6 +68,10 @@ For more information on what you can edit after launch, refer to [Changing your A user can only convert once per Canvas entry. Conversions are assigned to the most recent message received by the user for that entry. The summary block at the beginning of a Canvas reflects all conversions performed by users within that path, whether or not they received a message. Each subsequent step will only show conversions that happened while that was the most recent step the user received. +{% alert note %} +When a user re-enters a Canvas, conversion events are only tracked for the most recent entry. Conversion events are not logged for previous entries, even if the conversion event is backfilled. +{% endalert %} + {% details Expand for examples %} **Example 1** diff --git a/_docs/_user_guide/engagement_tools/segments/segmentation_filters.md b/_docs/_user_guide/engagement_tools/segments/segmentation_filters.md index d3f44e8ee60..0e470c60bc3 100644 --- a/_docs/_user_guide/engagement_tools/segments/segmentation_filters.md +++ b/_docs/_user_guide/engagement_tools/segments/segmentation_filters.md @@ -584,7 +584,7 @@ glossaries: tags: - Intelligence and predictive - name: Message Open Likelihood - description: Filters your users based on their likelihood to open a message on a specified channel on a scale of 0-100%. Users without sufficient data to measure a likelihood for a channel can be selected using "is blank." + description: Filters your users based on their likelihood to open a message on a specified channel on a scale of 0-100%. Users without sufficient data to measure a likelihood for a channel can be selected using "is blank."

For email, machine opens are excluded from the likelihood calculation. tags: - Intelligence and predictive - name: Number of Facebook Friends Using App diff --git a/_includes/decisioning_studio/building_agents.md b/_includes/decisioning_studio/building_agents.md index 02cb758acae..fc5ac978b08 100644 --- a/_includes/decisioning_studio/building_agents.md +++ b/_includes/decisioning_studio/building_agents.md @@ -1,4 +1,4 @@ -# Building agents +# Building AI decisioning agents > Learn how to build an agent for BrazeAI Decisioning Studio™, so you can automate personalized experimentation and optimize outcomes like conversions, retention, or revenue—without manual A/B testing. diff --git a/assets/img/crowdtwist_tools/Screenshot 2025-02-04 at 16.09.16.png b/assets/img/crowdtwist_tools/Screenshot 2025-02-04 at 16.09.16.png new file mode 100644 index 00000000000..a879c407a3e Binary files /dev/null and b/assets/img/crowdtwist_tools/Screenshot 2025-02-04 at 16.09.16.png differ diff --git a/assets/img/crowdtwist_tools/screenshot.png b/assets/img/crowdtwist_tools/screenshot.png new file mode 100644 index 00000000000..a879c407a3e Binary files /dev/null and b/assets/img/crowdtwist_tools/screenshot.png differ diff --git a/assets/img/fullstory/1.png b/assets/img/fullstory/1.png new file mode 100644 index 00000000000..22dc011e62f Binary files /dev/null and b/assets/img/fullstory/1.png differ diff --git a/assets/img/fullstory/2.png b/assets/img/fullstory/2.png new file mode 100644 index 00000000000..94e03b71b08 Binary files /dev/null and b/assets/img/fullstory/2.png differ diff --git a/assets/img/fullstory/3.png b/assets/img/fullstory/3.png new file mode 100644 index 00000000000..929d07af034 Binary files /dev/null and b/assets/img/fullstory/3.png differ diff --git a/assets/img/fullstory/4.png b/assets/img/fullstory/4.png new file mode 100644 index 00000000000..f0d90d58b22 Binary files /dev/null and b/assets/img/fullstory/4.png differ diff --git a/assets/img/fullstory/5.png b/assets/img/fullstory/5.png new file mode 100644 index 00000000000..20bc618e617 Binary files /dev/null and b/assets/img/fullstory/5.png differ