Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert changes from undoing config change PR #7355

Merged
merged 2 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _docs/_hidden/redirects/okta.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
nav_title: Okta Single Sign-On
permalink: /okta_single_sign_on/
layout: redirect
redirect_to: /docs/user_guide/administrative/logging_in_and_security/single_sign_on/okta_single_sign_on/#okta-single-sign-on
redirect_to: /docs/user_guide/administrative/access_braze/single_sign_on/okta/
---
2 changes: 2 additions & 0 deletions _docs/_partners/message_personalization.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,7 @@ valid_partner_list:
url: /docs/partners/message_personalization/location/tangerine/
- name: Stylitics
url: /docs/partners/message_personalization/dynamic_content/stylitics/
- name: NiftyImages
url: /docs/partners/message_personalization/dynamic_content/niftyimages/

---
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ To access the nested data in your custom event, generate a schema for each event

After generating a schema, you can reference the nested data during segmentation and personalization. Refer to the following sections for usage examples:

- API request body
- Liquid templating
- Message triggering
- Segmentation
- Personalization
- Event property segmentation
- [API request body](#api-request-body)
- [Liquid templating](#liquid-templating)
- [Message triggering](#message-triggering)
- [Segmentation](#segmentation)
- [Personalization](#personalization)

### API request body

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Braze Data Transformation may not yet support external platforms that require sp

## Step 4: Write transformation code

If you have little to no experience with JavaScript code or prefer more detailed instructions, follow the **Beginner - POST: Track users** or **Beginner - PUT: Update catalog item** tab for writing your transformation code.
If you have little to no experience with JavaScript code or prefer more detailed instructions, follow the **Beginner - POST: Track users** or **Beginner - PUT: Update multiple catalog items** tab for writing your transformation code.

If you're a developer or have significant experience with JavaScript code, follow the **Advanced - POST: Track users** tab for high-level instructions on writing your transformation code.

Expand Down Expand Up @@ -120,7 +120,7 @@ Here, you will write transformation code to define how you’d like to map vario
Your webhook integration is now complete!

{% endtab %}
{% tab Beginner - PUT: Update catalog item %}
{% tab Beginner - PUT: Update multiple catalog items %}

Here, you will write transformation code to define how you’d like to map various webhook values to Braze catalog item updates.

Expand All @@ -130,19 +130,42 @@ Here, you will write transformation code to define how you’d like to map vario
// Feel free to delete this entirely to start from scratch, or to edit specific components


// First, this code defines a variable, "brazecall", to build a PUT /catalogs/{catlalog_name}/items/{item_id} request
// First, this code defines a variable, "brazecall", to build a PUT /catalogs/{catalog_name}/items request
// Everything from the incoming webhook is accessible via the special variable "payload"
// As such, you can template in desired values in your request with JS dot notation, such as payload.x.y.z


let brazecall = {
// For Braze Data Transformations to update Catalog items, the special variables "catalog_name" and "item_id" are required
// These variables are used to specify the catalog name and item ID which would otherwise go in the request URL
// For Braze Data Transformation to update Catalog items, the special variable "catalog_name" is required
// This variable is used to specify the catalog name which would otherwise go in the request URL
"catalog_name": "catalog_name",
"item_id": payload.item_id,
// After the special variables, construct the Catalogs update request as usual below
// After defining "catalog name", construct the Update Multiple Catalog Items request as usual below
// Documentation for the destination endpoint: https://www.braze.com/docs/api/endpoints/catalogs/catalog_items/asynchronous/put_update_catalog_items/
"items": [
{
"id": payload.item_id_1,
"catalog_column1": "string",
"catalog_column2": 1,
"catalog_column3": true,
"catalog_column4": "2021-09-03T09:03:19.967+00:00",
"catalog_column5": {
"Latitude": 33.6112,
"Longitude": -117.8711
}
},
{
"id": payload.item_id_2,
"catalog_column1": "string",
"catalog_column2": 1,
"catalog_column3": true,
"catalog_column4": "2021-09-03T09:03:19.967+00:00",
"catalog_column5": {
"Latitude": 33.6112,
"Longitude": -117.8711
}
},
{
"id": payload.item_id_3,
"catalog_column1": "string",
"catalog_column2": 1,
"catalog_column3": true,
Expand All @@ -159,9 +182,9 @@ Here, you will write transformation code to define how you’d like to map vario
return brazecall;
```

2. Transformations for `/catalogs` destinations require a `catalog_name` and `item_id` to define the specific catalog and item that you’d like to update. You can hard code these values, or template in the value with a webhook value via a payload line. Use dot notation to access payload object properties.<br><br>
3. Define how to update the `item_id` (from Step 2 of this section) by modifying the items array. Again, you can hard code these values or template in a webhook value via a payload line. <br><br> If you're looking at the Braze catalog as a table, the `item_id` is a row in your catalog, and item objects (starting with “catalog_column1”) are column values for that row. Note that “catalog_column1” is a placeholder, so your catalog may not have this field. The item objects should only contain fields that exist in the catalog.<br><br>
4. Click Validate to return a preview of your code’s output and to check if it is an acceptable request for the Update catalog item endpoint.<br><br>
2. Transformations for `/catalogs` destinations require a `catalog_name` to define the specific catalog that you’d like to update. You can hard code this field, or template the field with a webhook field via a payload line. Use dot notation to access payload object properties.<br><br>
3. Define which items you’d like to update in the catalog with the `id` field(s) in the items array. You can hard code these fields, or template in a webhook field via a payload line. <br><br> Keep in mind, “catalog_column” is a placeholder value. Be sure item objects only contain fields that exist in the catalog.<br><br>
4. Click Validate to return a preview of your code’s output and to check if it is an acceptable request for the Update multiple catalog items endpoint.<br><br>
5. Activate your transformation. For additional help with your code before activating it, contact your Braze account manager.<br><br>
6. Make sure to check if your source platform has a setting to start sending webhooks. Your transformation code will run for each incoming webhook, and the catalog items will begin updating.

Expand Down
31 changes: 2 additions & 29 deletions _docs/_user_guide/data_and_analytics/query_builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ tool: Reports

# Query Builder

> With the Query Builder, you can generate reports using Braze data in Snowflake. The Query Builder comes with pre-built SQL [query templates](#query-templates) to get you started, or you can write your own custom SQL queries to unlock even more insights.
> With the Query Builder, you can generate reports using Braze data in Snowflake. The Query Builder comes with pre-built SQL [query templates]({{site.baseurl}}/user_guide/data_and_analytics/query_builder/query_templates/) to get you started, or you can write your own custom SQL queries to unlock even more insights.

## Who has access

Expand Down Expand Up @@ -73,34 +73,7 @@ If a report times out or runs into errors even after retrying, please contact su

All templates surface data from the last 60 days. You can access query templates by selecting **Create SQL Query** > **Query Template** when first creating a report.

<style>
table th:nth-child(1) {
width: 10%;
}
table th:nth-child(2) {
width: 25%;
}
table th:nth-child(3) {
width: 20%;
}
table th:nth-child(4) {
width: 45%;
}
table td {
word-break: break-word;
}
</style>

| Query name | Description | Metrics | Preview |
| --- | --- | --- | --- |
| Channel engagement and revenue | For each channel, you'll see all engagement metrics for that channel (opens, clicks, etc), revenue, number of transactions, and average price. | {::nomarkdown} <ul> <li> <b>Number of transactions:</b> number of purchase events </li> <li> <b>Average price:</b> revenue divided by transactions </li> </ul> {:/} | ![]({% image_buster /assets/img_archive/query_builder_q1.png %}) |
| Email bounces per domain | Number of bounces per email domain | | ![]({% image_buster /assets/img_archive/query_builder_q4.png %}) |
| Email performance by country | For each country, you'll see the following metrics: sends, indirect open rate, and direct open rate. Country is the country of the user at the time of push send. | | ![]({% image_buster /assets/img_archive/query_builder_q3.png %}) |
| Email subscription group opt-ins and opt-outs | For each week, you'll see the number of unique user opt-ins and opt-outs of any email subscription groups. | | ![]({% image_buster /assets/img_archive/query_builder_q2.png %}) |
| Email URLs clicked | This report shows the number of clicks each link in an email had. To run this report, you'll need to specify the API identifier for a campaign or Canvas. You can find a campaign's API identifier at the bottom of that campaign's details page, and you can find the Canvas API identifier under **Analyze Variants**. <br><br>For each de-personalized link, you'll see a count of clicks. Your CSV download will include the user IDs of all users that clicked, the link they clicked on, and a timestamp of when they clicked. | **De-personalized URLs:** URLs that are stripped of any Liquid tags | ![]({% image_buster /assets/img_archive/query_builder_q5.png %}) |
| Revenue by country | This report provides revenue per country for a specific campaign/Canvas. To run this report, you'll need to specify the API identifier for a campaign or Canvas. You can find a campaign's API identifier at the bottom of that campaign's details page, and you can find the Canvas API identifier under **Analyze Variants**.<br><br>For each country, you'll see the amount of revenue generated, number of orders, number of returns, net revenue, and gross revenue. | {::nomarkdown} <ul> <li> <b>Number of orders:</b> number of purchase events </li> <li> <b>Number of returns:</b> number of purchase events with negative revenue values </li> <li> <b>Net revenue:</b> revenue of all non-returns </li> <li> <b>Gross revenue:</b> revenue that includes the value of returns </li> </ul> {:/} | ![]({% image_buster /assets/img_archive/query_builder_q6.png %}) |
| Push performance by country | For each country, you'll see the following metrics: deliveries, open rate, and click rate. Country is the country of the user at the time of email send. | | ![]({% image_buster /assets/img_archive/query_builder_q7.png %}) |
{: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4}
See [Query templates]({{site.baseurl}}/user_guide/data_and_analytics/query_builder/query_templates/) for a list of available templates.

## Custom SQL

Expand Down
Loading