Skip to content

Commit

Permalink
Merge pull request #5476 from braze-inc/develop
Browse files Browse the repository at this point in the history
Deploy - May 23, 2023
  • Loading branch information
josh-mccrowell-braze authored May 23, 2023
2 parents 2085a27 + 641ee1e commit 85a6849
Show file tree
Hide file tree
Showing 17 changed files with 110 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Each request can support up to 50 items. This endpoint is asynchronous.
| `items` | Required | Array | An array that contains item objects. The item objects should contain all of the fields in the catalog. Up to 50 item objects are allowed per request. |
{: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4}

## Example Request
## Example request

```
curl --location --request POST 'https://rest.iad-03.braze.com/catalogs/restaurants/items' \
Expand Down Expand Up @@ -147,4 +147,4 @@ The following table lists possible returned errors and their associated troubles
| `too-deep-nesting-in-value-object` | Item objects can't have more than 50 levels of nesting. |
{: .reset-td-br-1 .reset-td-br-2}

{% endapi %}
{% endapi %}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ description: "This article outlines details about the List catalogs Braze endpoi

> Use this endpoint to return a list of catalogs in a workspace.
{% multi_lang_include rate_limits.md endpoint='delete dashboard user' %}

{% apiref postman %}https://documenter.getpostman.com/view/4689407/SVYrsdsG?version=latest#7d65fb86-ccf7-423f-9eb2-f68ab36df824 {% endapiref %}

## Rate limit
Expand All @@ -29,7 +27,7 @@ description: "This article outlines details about the List catalogs Braze endpoi

There are no path or request parameters for this endpoint.

### Example request
## Example request

```
curl --location --request GET 'https://rest.iad-03.braze.com/catalogs' \
Expand Down Expand Up @@ -115,4 +113,4 @@ The status code `200` could return the following response body.
}
```

{% endapi %}
{% endapi %}
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ description: "This article outlines details about the Create catalog Braze endpo
| `fields` | Required | Array | An array of objects where the object contains keys `name` and `type`. |
{: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4}

## Example Request

## Example request
```
curl --location --request POST 'https://rest.iad-03.braze.com/catalogs' \
--header 'Content-Type: application/json' \
Expand Down Expand Up @@ -189,4 +188,4 @@ The following table lists possible returned errors and their associated troubles
| `description-too-long` | Character limit for description is 250. |
{: .reset-td-br-1 .reset-td-br-2}

{% endapi %}
{% endapi %}
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,6 @@ This event occurs when one of your users sends a WhatsApp message to a phone num
"company_id": (optional, string) ID of the sending Company,
"dispatch_id": (optional, string) ID of the dispatch this message belongs to,
"external_user_id": (optional, string) External user ID of the user,
"in_reply_to": (optional, string) WhatsApp message ID for the sent message for an inbound reply,
"inbound_phone_number": (optional, string)the inbound number that the message was sent to,
"medial_urls": (optional, string[]) media urls from the user,
"message_body": (optional, string) typed response from the user,
Expand Down Expand Up @@ -2037,4 +2036,4 @@ This event is not fired when the user actually uninstalls the app, as that's imp
}
```

{% endapi %}
{% endapi %}
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,14 @@ braze.getUser().setCustomUserAttribute("most_played_song", null);
{% endtab %}
{% endtabs %}

#### Capturing dates as object properties
## Capturing dates as object properties

To capture dates as object properties, you must use the `$time` key. In the following example, an "Important Dates" object is used to capture the set of object properties, `birthday` and `wedding_anniversary`. The value for these dates is an object with a `$time` key.

{% alert note %}
If you haven't captured dates as object properties initially, we recommend resending this data using the `$time` key for all users. Otherwise, this may result in incomplete segments when using the `$time` attribute.
{% endalert %}

```json
{
"attributes": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ If you are using our [updated navigation]({{site.baseurl}}/navigation), you can
Looking for more ways to get revenue data? Try adding purchase behavior (as well as purchase of a product) to campaigns or Canvases as [conversion events]({{site.baseurl}}/user_guide/engagement_tools/campaigns/building_campaigns/conversion_events/).
{% endalert %}

To export your revenue data, click <i class="fas fa-bars" title="Chart context menu"></i> in the **Detailed Statistics** graph and select your export option.

## Detailed statistics graph

The following data can be accessed via the **Detailed Statistics** graph:
Expand All @@ -43,7 +45,7 @@ The following data can be accessed via the **Detailed Statistics** graph:
You can view revenue statistics on a case-by-case basis on the [Campaign Analytics]({{site.baseurl}}/user_guide/data_and_analytics/reporting/campaign_analytics/) or [Canvas Analytics]({{site.baseurl}}/user_guide/engagement_tools/canvas/testing_canvases/measuring_and_testing_with_canvas_analytics/) pages. The Total Revenue statistic is generated from campaign recipients who have made a purchase within the campaign's primary conversion period.

{% alert tip %}
For help with CSV and API exports, refer to [export troubleshooting]({{site.baseurl}}/user_guide/data_and_analytics/export_braze_data/export_troubleshooting/).
Revenue reports cannot be exported via API. For help with CSV exports, refer to [export troubleshooting]({{site.baseurl}}/user_guide/data_and_analytics/export_braze_data/export_troubleshooting/).
{% endalert %}

{% comment %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ Below are references of the JSON payload delivered to your S3 bucket each time a
}
```

Refer to our code example repository for [message archive sample files](https://github.com/braze-inc/braze-examples/tree/main/message-archiving).

## Frequently asked questions

### What templating is not included in the payload?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ description: "This reference article covers the Targeting options found in the t

# Targeting users

> Once you have [composed your campaign][1] and determined your [delivery schedule][2], you can set the target recipients of your campaign on the **Target Users** step. Only the users who match your defined criteria will receive the campaign. Keep in mind that exact segment membership is always calculated just before the message is sent.
> Once you have [composed your campaign][1] and determined your [delivery schedule][2], you can set the target recipients of your campaign on the **Target Users** step.
## Targeting options

Under the **Targeting Options** section, you'll find a few options for who you can send your campaign to.

{% alert note %}
Only the users who match your defined criteria will receive the campaign. Keep in mind that exact segment membership is always calculated just before the message is sent.
{% endalert %}

### Target users in an existing segment {#existing-segment}

To target members of a previously created segment, select one segment from the dropdown under **Target Users by Segment**.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ If your Canvas has multiple variants or a Control Group, Braze will use this con

### Step 2b: Set your Canvas entry schedule

You can choose one of three ways in which users can enter your Canvas.
You can choose one of three ways in which users can enter your Canvas.

#### Entry schedule types

Expand Down Expand Up @@ -130,7 +130,7 @@ After you choose your delivery method, adjust those settings appropriately, and

### Step 2c: Set your target entry audience

You can set the target audience for your Canvas on the **Target Audience** step. Only the users who match your defined criteria can enter the journey.
You can set the target audience for your Canvas on the **Target Audience** step. Only the users who match your defined criteria can enter the journey, meaning Braze evaluates the target audience for eligibility first before users enter the Canvas journey.

For example, if you want to target new users, you can limit a particular journey to users who first used your app less than 3 weeks ago. You can also control settings such as whether messages should be sent to users who are subscribed or opted-in to your notifications.

Expand Down
7 changes: 6 additions & 1 deletion _docs/_user_guide/intelligence.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,12 @@ guide_menu_list:
- name: AI Image Generator
link: /docs/user_guide/engagement_tools/templates_and_media/media_library/#generate-ai
fa_icon: fas fa-wand-magic-sparkles

---

<!---
- name: Content QA with AI
link: /docs/user_guide/intelligence/ai_content_qa/
fa_icon: fas fa-list-check
---->

<br>
45 changes: 45 additions & 0 deletions _docs/_user_guide/intelligence/ai_content_qa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
nav_title: Content QA with AI
article_title: Content QA with AI
hidden: true
description: "This reference article covers how to QA your message content with AI directly from the message composer."
layout: dev_guide
---

# Content QA with AI

> Learn how to QA your message content with AI directly from the message composer.
Content QA with AI uses the capabilities of ChatGPT and OpenAI to perform checks on the content of your message, ensuring it adheres to quality standards by identifying ineffective elements such as spelling errors, grammar issues, inappropriate tone, and offensive language. You can access this feature from the **Test** tab when composing a message in a campaign or Canvas.

{% alert important %}
Content QA with AI is currently in early access. Contact your Braze customer success manager if you’re interested in participating in the early access.
{% endalert %}

## Key features

Content QA with AI offers the following key features to enhance the quality of your message content:

- **Spelling and grammar check:** The AI-powered model automatically checks for spelling and grammar mistakes in your message. It suggests corrections and provides recommendations to improve the overall readability and accuracy of the content.
- **Tone analysis:** The feature evaluates the tone of the message to identify any potential issues. It helps ensure that the intended tone aligns with the desired communication style and helps avoid misunderstandings or unintended offenses.
- **Offensive language detection:** This feature scans your message for any potentially offensive or inappropriate language, allowing you to revise your content and maintain respectful communication.

## Accessing Content QA with AI

To access the content checker, follow these steps:

1. After composing a message, navigate to the **Test** tab.
2. Locate the **Content QA with AI** section.
3. Click **Test Content**.

![Content QA with AI section of the Test tab.][1]{: style="max-width:60%"}

## Tips for effective use

Consider the following tips to make the most of the Content QA with AI feature:

- **Proofread your message:** Although the content checker can help identify errors, it is still essential to proofread your content manually. Rely on the AI-generated suggestions as a helpful guide, but use your judgment to ensure accuracy.
- **Understand the tone analysis:** The tone analysis results are subjective and based on the AI model's understanding. While they can provide useful insights, consider your intended tone and the conversation context to make appropriate adjustments.
- **Double-check flagged offensive language:** Offensive language detection is designed to be robust, but it may occasionally flag false positives. Review flagged sections carefully and make appropriate changes as necessary.

[1]: {% image_buster /assets/img/content_qa_ai.png %}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ tool: in-app messages
> This article provides answers to some frequently asked questions about in-app messages.
### What is an in-browser message and how does it differ from an in-app message?

In-browser messages are in-app messages sent to web browsers. To create an in-browser message, make sure to select **Web Browser** under the **Send To** field when creating your in-app message campaign or Canvas.

### Will an in-app message display if a device is offline?
Expand Down Expand Up @@ -44,6 +45,22 @@ Eligibility for an in-app message is calculated at the time of delivery. If an i

Once the in-app message is displayed, the eligibility will depend on when the in-app message is downloaded and triggered.

### What are templated in-app messages?

In-app messages will be delivered as templated in-app messages when **Re-evaluate campaign eligibility before displaying** is selected or if any of the following Liquid tags exist in the message:

- `canvas_entry_properties`
- `connected_content`
- SMS variables such as {% raw %}`{sms.${*}}`{% endraw %}
- `catalog_items`
- `catalog_selection_items`

This means during session start, the device will receive the trigger of that in-app message instead of the entire message. When the user triggers the in-app message, the user's device will make a network request to fetch the actual message.

{% alert note %}
The message will not deliver if the device doesn't have access to the internet. The message might not deliver if the Liquid logic takes too long to resolve.
{% endalert %}

### Why is my archived in-app message campaign still delivering in-app message impressions?

This can occur for users who met the segment criteria when the in-app message campaign was active.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,13 @@ You can then create a segment for users with `Promotions Topic = true` to make s
When custom attribute collection is enabled, choices that share the same custom attribute name will be combined into an array.
{% endalert %}

#### Custom attribute data types

The data type of your custom attributes matters depending on how you've set up your survey.

- **Multiple-choice selection:** The data type of the custom attribute must be an array. If the custom attribute is set to a different data type, responses will not be logged.
- **Single-choice selection:** The data type of the custom attribute _must not_ be an array. Responses will not be logged if the attribute is an array.

#### Logging responses only

Alternatively, you can choose to **Log responses only (no attributes)**. When this option is selected, survey responses are logged as button clicks, but custom attributes are not logged to a user's profile. This means you can still view the click metrics for each survey option (see [Analytics](#analytics)), but that choice won't be reflected on their user profile.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ A declared use case means you have chosen one specific non-marketing use case (f
| Trust Score | Total throughput toward major US networks | AT&T | T-Mobile | Verizon |
| --- | ----------- | ---- | -------- | ------- |
| 75-100 | 225 MPS | 75 MPS | 75 MPS | 75 MPS |
| 51-75 | 120 MPS | 40 MPS | 40 MPS | 40 MPS |
| 50-74 | 120 MPS | 40 MPS | 40 MPS | 40 MPS |
| 1-49 | 12 MPS | 4 MPS | 4 MPS | 4 MPS|
{: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,27 @@ alias: "/message_extras_tag/"

> Using the `message_extras` Liquid tag, you can annotate your send events with dynamic data from Connected Content, Catalogs, custom attributes (such as language, country), Canvas entry properties, or other data sources.
The `message_extras` Liquid tag appends key-value pairs to the corresponding send event in Currents. This is supported for all message types with a send event.
The `message_extras` Liquid tag appends key-value pairs to the corresponding send event in Currents and Snowflake Data Sharing. This is supported for all message types with a send event.

To send dynamic or extra data back to your Currents send event, insert the proper Liquid tag into your message body. The following is an example of the standard Liquid tag format for `message_extras`:
To send dynamic or extra data back to your Currents or Snowflake Data Sharing send event, insert the proper Liquid tag into your message body. The following is an example of the standard Liquid tag format for `message_extras`:

{% raw %}
```
{% message_extras :key test :value 123 %}
```
{% endraw %}

You can add these tags as needed for your key-value pairs in the message body. However, the length of all keys and values should not exceed 1&nbsp;KB. In Currents, you'll see a new event field called `message_extras` for your send events. This will generate a JSON serialized string in one field.
You can add these tags as needed for your key-value pairs in the message body. However, the length of all keys and values should not exceed 1&nbsp;KB. In Currents and Snowflake Data Sharing, you'll see a new event field called `message_extras` for your send events. This will generate a JSON serialized string in one field.

## How to use

1. In the message body for the channel, input the `message_extras` Liquid tag. Or, you can use the **Add Personalization** modal and select **Message Extras** for the personalization type. <br>![The Add Personalization modal with Message Extras selected as the personalization type.][1]{: style="max-width:70%;"}
2. Enter the [key-value pair]({{site.baseurl}}/user_guide/personalization_and_dynamic_content/key_value_pairs/) for each `message_extras` tag. <br>![An example of key-value pairs for the message extras tag. The title field reads "Your New Favorites." The message reads key-value pairs for the message extras tag and the following sentence: "We're excited to bring you a side selection of fresh and exciting products that are sure to become your new go-to favorites"][2]{: style="max-width:70%;"}
3. After your campaign or Canvas has been sent, Braze will attach the dynamic data at the send time via the Currents send events to the `message_extras` field.
3. After your campaign or Canvas has been sent, Braze will attach the dynamic data at the send time via the Currents or Snowflake Data Sharing send events to the `message_extras` field.

## Checking syntax

Any other input that doesn't match the aforementioned tag standard may fail to pass to Currents. Check that your syntax or formatting doesn't include any of the following:
Any other input that doesn't match the aforementioned tag standard may fail to pass to Currents or Snowflake. Check that your syntax or formatting doesn't include any of the following:

- Non-existent, empty, or mistyped delimiters
- Duplicate keys (Braze will default to sending the key-value pair that is encountered first)
Expand Down
5 changes: 5 additions & 0 deletions assets/css/_content.scss
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,11 @@
}
}
}
@for $oli from 1 through 5 {
ol[start="#{$oli}"] {
counter-reset: li #{$oli - 1};
}
}
img {
border: 1px solid $grey-ghost;
border-width: 1px;
Expand Down
Binary file added assets/img/content_qa_ai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

1 comment on commit 85a6849

@vercel
Copy link

@vercel vercel bot commented on 85a6849 May 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

braze-docs-en – ./

braze-docs-en-git-master-braze.vercel.app
braze-docs-en-braze.vercel.app
braze-docs-en.vercel.app

Please sign in to comment.