Skip to content

Commit

Permalink
Merge pull request #3934 from braze-inc/develop
Browse files Browse the repository at this point in the history
Deploy - August 16, 2022
  • Loading branch information
lydia-xie authored Aug 16, 2022
2 parents 471512a + 2e93d90 commit cc393c7
Show file tree
Hide file tree
Showing 32 changed files with 587 additions and 152 deletions.
3 changes: 2 additions & 1 deletion _docs/_api/identifier_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ You can find your campaign ID one of two ways:
- Grab high-level aggregate stats on campaign performance
- Grab details on a specific campaign
- With Currents to bring in user-level data for a "bigger picture" approach to campaigns
- With API trigger delivery in order to collect statistics for transactional messages
- With API-triggered delivery in order to collect statistics for transactional messages
- To [search for a specific campaign]({{site.baseurl}}/user_guide/engagement_tools/campaigns/managing_campaigns/search_campaigns/#search-syntax) on the **Campaigns** page using the filter `api_id:YOUR_API_ID`

<br>
{% endtab %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "actionable.me is a proprietary software and processes to help you
alias: /partners/actionableme/
page_type: partner
search_tag: Partner
hidden: true

---

# actionable.me
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "The Braze and Storyly integration enables app owners to target the
alias: /partners/storyly/
page_type: partner
search_tag: Partner
hidden: true

---

# Storyly
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "The Braze and DataGrail integration allows you to detect consumer
alias: /partners/datagrail/
page_type: partner
search_tag: Partner
hidden: true

---

# DataGrail
Expand Down
2 changes: 2 additions & 0 deletions _docs/_partners/home.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,8 @@ valid_partner_list:
url: /docs/partners/data_and_infrastructure_agility/customer_data_platform/dynamics_365_customer_insights/
- name: Heap
url: /docs/partners/data_and_infrastructure_agility/cohort_import/heap/
- name: Quikly
url: /docs/partners/message_orchestration/additional_channels/retargeting/quikly/
- name: actionable.me
url: /docs/partners/data_and_infrastructure_agility/analytics/actionableme/
- name: IAM Studio
Expand Down
3 changes: 3 additions & 0 deletions _docs/_partners/message_orchestration.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ valid_partner_list:
url: /docs/partners/message_orchestration/channel_extensions/loyalty/viralsweep/
- name: Survicate
url: /docs/partners/message_orchestration/channel_extensions/surveys/survicate/
- name: Quikly
url: /docs/partners/message_orchestration/additional_channels/retargeting/quikly/
- name: IAM Studio
url: /docs/partners/message_orchestration/channel_extensions/email_templates/iam_studio/

---
3 changes: 3 additions & 0 deletions _docs/_partners/message_orchestration/additional_channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,7 @@ valid_partner_list:
url: /docs/partners/message_orchestration/additional_channels/direct_mail/optilyz/
- name: LINE
url: /docs/partners/message_orchestration/additional_channels/messaging/line/
- name: Quikly
url: /docs/partners/message_orchestration/additional_channels/retargeting/quikly/

---
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,7 @@ valid_partner_list:
url: /docs/partners/message_orchestration/additional_channels/retargeting/remerge/
- name: Facebook
url: /docs/partners/message_orchestration/additional_channels/retargeting/facebook/

- name: Quikly
url: /docs/partners/message_orchestration/additional_channels/retargeting/quikly/

---
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
---
nav_title: Quikly
article_title: Quikly
description: "Quickly, a urgency marketing platform, allows you to accelerate conversions on events within a Braze customer journey."
alias: /partners/quikly/
page_type: partner
search_tag: Partner

---

# Quikly

> [Quikly][1], an urgency marketing platform, leverages psychology to motivate consumers, so brands can immediately increase response around their key marketing initiatives.
The Braze and Quikly partnership allows you to accelerate conversions on events within a Braze customer journey. Quikly does this by using urgency psychology to motivate consumers in fun — and instant — ways. For example, brands can use Quikly to immediately acquire new email and SMS subscribers directly into Braze or to motivate other key marketing objectives like downloading your mobile app.

## Prerequisites

| Requirement | Description |
| ----------- | ----------- |
| Quikly account | A [Quikly][1] brand partner account is required to take advantage of this partnership. |
| Braze REST API key | A Braze REST API key with `users.track` permissions. <br><br> This can be created within the **Braze Dashboard > Developer Console > REST API Key > Create New API Key**. |
| Braze REST endpoint | [Your REST endpoint URL][2]. Your endpoint will depend on the Braze URL for your instance. |
| Quikly API key | (Optional) A Quikly API key provided by your client success manager (webhook only) |
{: .reset-td-br-1 .reset-td-br-2}

## Use cases

Quikly allows brands to accelerate email or SMS acquisition and motivates subscribers to provide first-party data directly within Braze. You can also use Braze to target lapsed customers with a Quikly activation that will reactivate and retain that audience. Additionally, marketers can use this integration to incentivize specific customer journey events with unique reward structures.

For example:
- Build anticipation and engagement over days as consumers opt-in for a chance to claim exciting rewards with [Quikly Hype][3]. First-party data is automatically pushed to Braze.
- Accelerate acquisition of new email and SMS subscribers using unique, real-time offers based on a consumer's speed of response, rank against others, randomly, or before time or quantities run out with [Quikly Swap][4].
- Motivate specific steps in the customer journey with unique reward structures using webhooks.
- Apply custom attributes or events to the user's profile upon participating in a Quikly activation.

## Integration

Outlined below are four different integrations: email acquisition, SMS acquisition, custom attributes, and webhooks. The integration you choose will depend on your Quikly activation and use case.

{% tabs %}
{% tab Email Acquisition %}

### Email Acquisition

If your Quikly activations collect customer email addresses or profile data, the only required step is to provide Quikly with your REST API key and endpoint. Quikly will configure your brand account to pass this data to Braze. If there are additional user attributes you'd like included, mention this when you provide the API credentials to Quikly.

Here is an outline of how Quikly executes this workflow.
1. Upon participating in a Quikly activation, Quikly schedules a user lookup using the [export API]({{site.baseurl}}/api/endpoints/export/user_data/post_users_identifier/) to see if a user exists with a given `email_address`.
2. Log or update the user.
- If the user exists:
- Do not create a new profile.
- If desired, Quikly can log a custom attribute on the user's profile to indicate that the user participated in the activation.
- If the user does not exist:
- Quikly creates an alias-only profile via Braze's [/users/track]({{site.baseurl}}/api/endpoints/user_data/post_user_track/) endpoint, setting the user's email as the user alias to reference that user in the future (as the user won't have an `external_id`).
- If desired, Quikly can log custom events to indicate this profile participated in Quikly activation.

{% details /users/track request %}

#### Request headers
```
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
```

#### Request body
```
{
"attributes": [{
"_update_existing_only": false,
"user_alias:": {
"alias_name": "email@example.com",
"alias_label: "email"
},
"email": "email@example.com"
}]
}
```

{% enddetails %}

{% endtab %}
{% tab SMS Acquisition %}

### SMS subscriptions

Quikly activations can collect mobile phone numbers directly from customers and initiate a new SMS subscription. To enable this integration, provide your Quikly client success manager with the `subscription_group_id`. You can access a subscription group’s `subscription_group_id` by navigating to the **Subscription Group** page.

Quikly will perform a subscription lookup using the customer's phone number and automatically credit them in the activation if an SMS subscription already exists. Otherwise, a new subscription will be initiated, and once the subscription status is verified, the customer will be credited.

Here is the complete workflow when a customer provides their mobile number and consent via Quikly:
1. Quikly performs a subscription lookup using the [subscription group status]({{site.baseurl}}/api/endpoints/subscription_groups/get_list_user_subscription_group_status/) to see if a given `phone` is subscribed to a `subscription_group_id`. If a subscription exists, credit the user in the Quikly activation. No further action is necessary.
2. Quikly performs a user lookup using the [export API]({{site.baseurl}}/api/endpoints/export/user_data/post_users_identifier/) to see if a user profile exists with a given `email_address`. If no user exists, create an alias-only profile via Braze's [/users/track]({{site.baseurl}}/api/endpoints/user_data/post_user_track/) endpoint, setting the user's email as the user alias to reference that user in the future (as the user won't have an `external_id`).
3. Update the subscription status using the [update user subscription group status]({{site.baseurl}}/api/endpoints/subscription_groups/post_update_user_subscription_group_status/) endpoint.

To support existing double opt-in SMS subscription workflows, Quikly can send a custom event to Braze rather than the workflow above. In that case, rather than updating the subscription status directly, the [custom event triggers the double opt-in process]({{site.baseurl}}/user_guide/message_building_by_channel/sms/non_native/double_opt_in/) and the subscription status is periodically monitored to verify the user has fully opted-in before crediting them in the Quikly activation.

{% alert important %}
Braze advises that when creating new users via the /users/track endpoint, there should be a delay of about 2 minutes before adding users to the relevant subscription group to allow Braze time to fully create the user profile.
{% endalert %}

{% details Detailed /subscription/status/set request %}
#### Request headers
```
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
```

#### Request body
```
{
"subscription_group_id": "the-id-of-the-subscription-group",
"subscription_status": "subscribed",
"phone": "+13135551212"
}]
}
```

{% enddetails %}

{% endtab %}
{% tab Custom Attributes %}
### Custom attributes

Depending on your Braze implementation, you may want events within Quikly activation to cascade through Braze for further processing. For example, you may wish to apply a custom user attribute based on what level or incentive was achieved in Quikly activation, allowing you to display the relevant Content Card when they open your app or log in to your website. Quikly will work with you directly to implement these integrations.

{% endtab %}
{% tab Webhooks %}
### Webhooks
Use webhooks to trigger incentives for specific events in the customer journey. For example, if you have a Braze event for when a user logs into your app, turns on push notifications, or uses your store locator, you can use a webhook to trigger a custom offer to that user based on the configuration of a specific Quikly activation. Example tactics include rewarding the first X number of users who perform an action (i.e., logging into your app) with a custom offer or providing an offer that decreases in value as more time elapses to motivate an immediate response.

### Create a Quikly webhook in Braze

To create a Quikly webhook template for future campaigns or Canvases, navigate to the **Templates & Media** section in the Braze platform. If you would like to create a one-off Quikly webhook campaign or use an existing template, select **Webhook** in Braze when creating a new campaign.

Select **Blank Template**, and enter the following for the webhook URL and request body:
- **Webhook URL**: https://api.quikly.com/webhook/braze
- **Request body**: JSON key/value pairs

#### Request headers and method

Quikly requires an `HTTP Header` for authorization.

- **HTTP Method**: POST
- **Request Header**:
- **Authorization**: Bearer [PARTNER_AUTHORIZATION_HEADER]
- **Request Body**: application/json

#### Request body

Select ***JSON key/value pairs*** and add the following pairs:
{% raw %}
```
"q_scope": "your-activations-scope-id"
"event": "your-event-identifier"
"email": {{${email_address}}
```
{% endraw %}

### Preview your request

Preview your request in the **Preview** panel or navigate to the `Test` tab, where you can select a random user, an existing user, or customize your own to test your webhook.

{% alert important %}
Remember to save your template before leaving the page! <br>Updated webhook templates can be found in the **Saved Webhook Templates** list when creating a new [webhook campaign]({{site.baseurl}}/user_guide/message_building_by_channel/webhooks/creating_a_webhook/).
{% endalert %}

{% endtab %}
{% endtabs %}

## Support
Reach out to your client success manager at Quikly with any questions.

[1]: https://www.quikly.com
[2]: {{site.baseurl}}/developer_guide/rest_api/basics/#endpoints
[3]: https://www.quikly.com/urgency-marketing/platform/product-overview/hype
[4]: https://www.quikly.com/urgency-marketing/platform/product-overview/swap
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "This article outlines the partnership between Braze and IAM Studio
alias: /partners/iam_studio/
page_type: partner
search_tag: Partner
hidden: true

---

# IAM Studio
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "This article outlines the partnership between Braze and Lokalise,
alias: /partners/lokalise/
page_type: partner
search_tag: Partner
hidden: true

---

# Lokalise
Expand Down
29 changes: 24 additions & 5 deletions _docs/_user_guide/data_and_analytics/custom_data/custom_events.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,15 +111,34 @@ When making API calls and using the "is blank" filter, a specific custom event p

In regards to subscription usage, custom event properties enabled for segmentation with the filters `X Custom Event Property in Y Days` or `X Purchase Property in Y Days` are all counted as separate data points in addition to the data point counted by the custom event itself.

### Canvas guidelines
### Canvas entry properties and event properties

#### Original workflow
You can leverage `canvas_entry_properties` and `event_properties` in your Canvas user journeys. Check out [Canvas entry properties and event properties]({{site.baseurl}}/user_guide/engagement_tools/canvas/create_a_canvas/canvas_entry_properties_event_properties/) for more information and examples.

Event properties can only be used in an action-based Canvas step using the original workflow.
{% tabs local %}
{% tab Canvas Entry Properties %}

[Canvas entry properties]({{site.baseurl}}/api/objects_filters/canvas_entry_properties_object/) are the properties you map for Canvases that are action-based or API-triggered. Note that the `canvas_entry_properties` object has a maximum size limit of 50 KB.

#### Canvas Flow
For Canvas Flow messaging, `canvas_entry_properties` can be used in Liquid in any Message step. Use this Liquid when referencing these properties: ``{% raw %} canvas_entry_properties${property_name} {% endraw %}``. Note that the events must be custom events or purchase events to be used this way.

Custom event and purchase event properties can be used in Liquid in any [Message]({{site.baseurl}}/user_guide/engagement_tools/canvas/canvas_components/message_step/) step that follows an [Action Paths]({{site.baseurl}}/user_guide/engagement_tools/canvas/canvas_components/action_paths/) step. Make sure to use `` {% raw %} {{event_properties.${property_name}}} {% endraw %}`` if referencing these event properties in Canvas Flow. For more details, check out [Event properties in Message steps]({{site.baseurl}}/user_guide/engagement_tools/canvas/canvas_components/message_step/#event-properties).
{% raw %}
For example, consider the following request: `\"canvas_entry_properties\" : {\"product_name\" : \"shoes\", \"product_price\" : 79.99}`. You could add the word "shoes" to a message with the Liquid `{{canvas_entry_properties.${product_name}}}`.
{% endraw %}

For the Canvases built with the original editor, `canvas_entry_properties` can be referenced only in the first full step of a Canvas.

{% endtab %}

{% tab Event Properties %}
Event properties refer to the properties that you set for custom events and purchases. These `event_properties` can be used in campaigns with action-based delivery as well as Canvases.

In Canvas Flow, custom event and purchase event properties can be used in Liquid in any Message step that follows an Action Paths step. For Canvas Flow, make sure to use {% raw %} ``{{event_properties.${property_name}}}``{% endraw %} if referencing these `event_properties`. These events must be custom events or purchase events to be used this way in the Message component.

In the first Message step following an Action Path, you can use `event_properties` related to the event referenced in that Action Path. These `event_properties` can only be used if the user actually took the action (didn’t go to the Everyone Else group). You can have other steps (that are not another Action Paths or Message step) in between this Action Paths and the Message step.

{% endtab %}
{% endtabs %}

### Nested objects {#nested-objects}

Expand Down
Loading

2 comments on commit cc393c7

@vercel
Copy link

@vercel vercel bot commented on cc393c7 Aug 16, 2022

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-fr – ./

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

@vercel
Copy link

@vercel vercel bot commented on cc393c7 Aug 16, 2022

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-braze.vercel.app
braze-docs-en-git-master-braze.vercel.app
braze-docs-en.vercel.app

Please sign in to comment.