Skip to content

Commit

Permalink
Merge pull request #578 from voucherifyio/master
Browse files Browse the repository at this point in the history
Master to pw-key-concepts 20231129
  • Loading branch information
p-woznikowski authored Nov 29, 2023
2 parents d148c12 + 8da5573 commit 1a8696e
Show file tree
Hide file tree
Showing 25 changed files with 1,622 additions and 82 deletions.
13 changes: 13 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 20231128

- Data synchronization article added

## 20231128 – Fixes and minor updates

- Fixed to consistent title format (capital letters)
- Added excerpts
- Added green callouts in the Integration blueprint section
- Fixed an example email address in First Steps in Voucherify article
- Fixed image in the Integration Overview article
- Added link to the new article – Data Synchronization – in the Data Model article

## 20231123 - Campaigns API

**Added schemas**
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/campaign_recipes/Qualifications.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Qualification - Checking eligibility
title: Qualification Checking Eligibility
excerpt: null
categorySlug: campaigns-recipes
slug: checking-eligibility
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/development/Metadata-Mapping.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: Metadata Mapping
excerpt: Metadata mapping
excerpt: Custom attributes (metadata) and their use in Voucherify
categorySlug: development
slug: metadata-mapping
type: basic
hidden: false
order: 50
---

## Metadata (custom attributes)
## Custom attributes (metadata)

Custom attributes can be added to your project as metadata. A metadata attribute is a set of key/value pairs that you can use to customize your campaigns, vouchers, customers, SKUs, products, redemptions, publications, loyalty tiers, promotion tiers, and orders.

Expand Down
4 changes: 2 additions & 2 deletions docs/guides/development/Quickstart.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: First steps in Voucherify
title: First Steps in Voucherify
excerpt: Get started with Voucherify API and dashboard by redeeming your first coupon code.
categorySlug: development
slug: quickstart
Expand Down Expand Up @@ -128,7 +128,7 @@ Voucherify should reply with the [redemption](ref:get-redemption) details as in
"customer": {
"id": "cust_ANjd4MFsUPXDoHeoCQXmqgCJ",
"name": "Jack Jack",
"email": "[email protected]",
"email": "[email protected]",
"source_id": "16102023",
"metadata": {
"metadata_key": "metadata_value",
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/development/Test-Mode-Sandbox.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Test mode (Sandbox)
title: Test Mode (Sandbox)
excerpt: Run integration tests of your promotions before going to production
categorySlug: development
slug: testing
Expand Down
160 changes: 160 additions & 0 deletions docs/guides/development/data-synchronization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
---
title: Data synchronization
excerpt: Learn what kind of data you can synchronize with Voucherify and how you can do this
categorySlug: development
slug: data-synchronization
type: basic
hidden: false
order: 60
---

In Voucherify, you can synchronize the following data:
- [Customers](#customer-synchronization)
- [Products](#product-synchronization)
- [Orders](#order-synchronization)
<!-- - [Campaigns and vouchers](#campaigns-and-vouchers) -->

When you have [created your Voucherify account](doc:getting-started), you can import your existing data and then synchronize it for future use in campaigns.

> 📘 **Goals**:
>
> - Learn why data synchronization is important
> - Learn how to synchronize your data through data import and updates
> 👍 **Outcome**:
>
> Your data is synchronized with Voucherify.
## Customer synchronization

Voucherify can store and act on collected customer data. The most common customer data operation is to create customer segments based on customer attributes. Customer segments can be used to understand customer behavior, build promotion limits, or trigger automatic incentive delivery.

Voucherify uses the [customer object](ref:customer-object) for [validation](ref:validation-object), [redemption](ref:redemption-object), and [distribution](https://support.voucherify.io/article/19-how-does-the-distribution-manager-work "How does the distribution manager work?") purposes.

The customer data does not have to be stored in Voucherify before a validation or redemption request is made. Voucherify can use the customer data from the request to create a new customer with a unique `id` field.

However, the customer data must exist in Voucherify before a distribution is made. Also, distribution can be made on the basis of the customer's attributes and sent out to customers from a given segment. If the customer data is not up to date, the distribution messages sent manually can reach the wrong audience.

<!-- this bit must be moved someplace
Every customer has unique identification data in the `source_id` field. The `source_id` can be a customer ID or email from a CRM system, database, or a third-party service.It can be imported into Voucherify from your [CRM database]() or a CSV file <!-- link when ready! -->

> 🚧 Customer data synchronization and `source_id`
>
> If your data is to be synchronized based on the `source_id` of the customer, you need to import the `source_id` when the customer is uploaded for the first time. You will not be able to update `source_id` later on.
### Customer synchronization options

<!-- https://success.voucherify.io/article/430-crm-playbook
Adding customers
These are the ways you can add customer profiles to Voucherify:
API
Webhooks
The import with a CSV file.
You can integrate your CRM platform with Voucherify.
-->

#### Upserting customers

If the customer does not exist in Voucherify, they are created automatically in a request that includes the customer object. If the customer exists, their data will be upserted. In this case, the response also includes the `updated_at` object. <!-- these are objects, right? -->

The following actions upsert customer data:
- [Order creation](ref:create-order)
- [Stackable discount redemption](ref:redeem-stacked-discounts)
- [Stackable discount redemption (client side)](ref:redeem-stacked-discounts-client-side)
- [Track custom event](ref:track-custom-event)
- [Voucher publication](ref:create-publication)

#### Importing customers

You can import your customer database to Voucherify with a CSV file. If you use a CRM system, use its unique ID as a `source_id` field.

Read our [customer import guide](https://support.voucherify.io/article/67-how-to-import-my-customers#csv-import "How to import my customers?") to learn more.

#### Creating and updating customers with the API

If you want to keep your customers database up to date with Voucherify, create a customer in Voucherify every time a new user is added to your database. Use the [create customer](ref:create-customer) API endpoint to create customer data.

To update customer data, use [update customer](ref:update-customer) API endpoint. The [create customer](ref:create-customer) API endpoint can be also used to update customer data.

#### Synchronizing with connectors

Customer data can be upserted with integrated platforms that support outbound traffic:
- [Bloomreach Engagement](https://support.voucherify.io/article/613-bloomreach-engagement-integration "Voucherify-Bloomreach Engagement integration article")
- [Braze](https://support.voucherify.io/article/588-braze-integration "Voucherify-Braze integration article")
- [mParticle](https://support.voucherify.io/article/590-mparticle "Voucherify-mParticle integration article")
- [Salesforce](https://support.voucherify.io/article/140-salesforce "Voucherify-Salesforce integration article")
- [Segment](https://support.voucherify.io/article/272-segment "Voucherify-Segment integration article")
- [Zapier](https://support.voucherify.io/article/269-zapier "Voucherify-Zapier integration article")

### Customer API endpoints

Go to the API reference to see the [customer endpoints](ref:customer-object) that can be used to synchronize customer data.

## Product synchronization

Products can be stored in Voucherify but it is not required. The product validation takes place during the following actions:
- Qualification
- Validation
- Redemption

<!-- Links to key concepts once they're done -->

The product validation is based on the API payload and the data stored in Voucherify's product inventory.

However, if a product does not exist in Voucherify, the validation will use the product data included in the payload. Even if the product does exist in Voucherify, the payload data is used instead of those stored in the system. This method can be used to avoid frequent API calls to keep the product inventory up to date.

> 🚧 Product data in the request
>
> Unlike customer data, product data provided in the request payload alone do not create a new product in Voucherify. If you want to store products in Voucherify, they need to be created manually in the dashboard or imported with a CSV file.
>
> Also, even though Voucherify uses the payload data instead of the data stored in the system, the product data is not upserted through requests. Products can be updated through product edit function or by importing a CSV file.
>
> To enable product updates through the payload, use the [override attribute](#overriding-product-data).
The products in Voucherify can be grouped into static or dynamic collections based on their parameters. Collections can be used in validation rules to model product-specific limits and loyalty-earning rules.

### Product synchronization options

#### Importing products

You can [import your product database](https://support.voucherify.io/article/515-products#import-products-skus "Import Products and SKUs by CSV") to Voucherify with a CSV file. This method can be also used to update the names of existing products.

#### Creating and updating products with the API

You can create and update your products with the following API endpoints:
- [Create product](ref:create-product)
- [Update product](ref:update-product)

#### Overriding product data

In a request payload, you can add an attribute `override` with value `true` to the product object.

The `override` attribute is used to enable storing the product data in Voucherify. If the product does not exist, it will be created with a `source_id`. If the product does exist, the provided values for the name, price, and metadata will replace those already stored in Voucherify.

## Order synchronization

Orders are synchronized with Voucherify automatically during redemption. They can be viewed through the [Orders view](https://support.voucherify.io/article/263-how-can-i-track-customer-orders "How can I track customer orders?") in the dashboard.

If you want to synchronize the orders that have not been included in any redemption, you need to use the [import order](#import-orders) method.

### Order synchronization options

#### Create order

The [create order](ref:create-order) endpoint creates an [order object](ref:order-object) and triggers an order creation event.

The endpoint can be also used to upsert order data if the order `id` or `source_id` are provided.

#### Update order

The [update order](ref:update-order) endpoint updates the specified order with the values of the parameters in the payload.

#### Import orders

The [import orders](ref:import-orders) endpoint is used to import only historical orders into Voucherify. For on-going synchronization, the [create order](ref:create-order) and [update order](ref:update-order) endpoints should be used. Importing orders in bulk does not trigger distributions or earning rules.

<!-- ## Campaigns and vouchers -->
2 changes: 1 addition & 1 deletion docs/guides/development/implementation-checklist.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Development checklist
title: Development Checklist
excerpt: Get the documentation, sample code, and developer tools — everything you need to build digital promotions faster
categorySlug: development
slug: welcome
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/development/integration-connectors.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Integration and connectors
title: Integration And Connectors
excerpt:
categorySlug: development
slug: integration-connectors
Expand Down
9 changes: 5 additions & 4 deletions docs/guides/getting_started/Introduction.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Introduction
excerpt: Welcome to [Voucherify's](https://www.voucherify.io) Developer Hub.
excerpt: Welcome to [Voucherify's](https://www.voucherify.io) developer hub.
categorySlug: getting-started
slug: introduction
type: basic
Expand All @@ -12,13 +12,14 @@ order: 1

The documentation is divided into four main categories.

1. **[Getting started](doc:welcome-to-voucherify)** - Learn more about Voucherify and what’s possible with our platform. Take your first steps to set up your account and start testing. Recommended for everyone.
1. **[Getting started](doc:welcome-to-voucherify)** – Learn more about Voucherify and what’s possible with our platform. Take your first steps to set up your account and start testing. Recommended for everyone.

2. **[Integration Blueprint](doc:integration-overview)** – Discover how to seamlessly plan your integration and learn how to build advanced promotion limits to personalize your campaigns and prevent fraud. Recommended for architects and readers who want to know how to plan out the integration.

2. **[Integration Blueprint](doc:integration-overview)** - Discover how to seamlessly plan your integration and learn how to build advanced promotion limits to personalize your campaigns and prevent fraud. Recommended for architects and readers who want to know how to plan out the integration.

3. **[Development](doc:welcome)** - Dive into detailed development options, including example data mapping, processes, and more. Recommended for developers and integrators.

4. **[API Reference](doc:api-reference)** - Explore endpoints and attributes with request/response examples and error messages.
4. **[API Reference](doc:api-reference)** Explore endpoints and attributes with request/response examples and error messages.

&nbsp;
&nbsp;
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/getting_started/project-setup-guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Getting started
title: Getting Started
excerpt: Set up your Voucherify project
categorySlug: getting-started
slug: getting-started
Expand Down
12 changes: 5 additions & 7 deletions docs/guides/integration_blueprint/Campaign-reporting.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
---
title: Campaign reporting
excerpt:
title: Campaign Reporting
excerpt: Gain insights into campaigns with reports
categorySlug: integration-blueprint
slug: campaign-reporting
type: basic
hidden: false
order: 12
---

## Campaign reporting

> 📘 **Goals**
>
> * Identify key metrics of promotion effectiveness.
> * Learn Voucherify API and Dashboard reporting capabilities.

**Outcome**:

Connect Voucherify to external BI tools or prepare reports using built-in campaign analytics.
> 👍 **Outcome**:
>
> Connect Voucherify to external BI tools or prepare reports using built-in campaign analytics.
---

Expand Down
12 changes: 5 additions & 7 deletions docs/guides/integration_blueprint/Data-Model.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,14 @@ hidden: false
order: 8
---

## Data model

> 📘 **Goals**
>
> * Learn more about metadata.
> * Choose which attributes and events you would like to share with Voucherify.
**Outcome**:

Data model PoC that is based on your use cases and business model.
> 👍 **Outcome**:
>
> Data model PoC that is based on your use cases and business model.
---

Expand All @@ -41,11 +39,11 @@ For the initial data migration, use asynchronous bulk API import endpoints or up

> 📘 Data synchronization with Voucherify
>
> Voucherify gives you complete control over **how and when to sync data** needed for incentive validation and redemption. You can sync the data before the final stage of the checkout process or send us relevant customer, product, order, and other data right in the validation and redemption requests on the fly.
> Voucherify gives you complete control over **how and when to [synchronize data](doc:data-synchronization)** needed for incentive validation and redemption. You can sync the data before the final stage of the checkout process or send us relevant customer, product, order, and other data right in the validation and redemption requests on the fly.
### Customer story – TIER Mobility

TIER Mobility uses free unlocks and free minutes as incentives. The custom attributes
TIER Mobility uses free unlocks and free minutes as incentives. The custom attributes
(metadata) let TIER attach minutes and unlocks to a given customer for a predefined period of time.

[Discover the full story](https://voucherify.io/ebooks/tier-mobility-case-study "Tier mobility case study")
Expand Down
10 changes: 4 additions & 6 deletions docs/guides/integration_blueprint/Data-Volume-Estimation.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
---
title: Data Volume Estimation
excerpt:
excerpt: Estimate data volume used with Voucherify
categorySlug: integration-blueprint
slug: data-volume-estimation
type: basic
hidden: false
order: 15
---

## Data volume estimation

> 📘 **Goals**
>
> * Understand what API endpoints will be used to map your scenarios.
> * Estimate how many customers will be included in promotions and how often their data should be synced with Voucherify.
> * Think of what it takes to migrate promotions from your current system.
**Outcome**:

API usage forecast, including monthly and hourly API calls number and a Voucheify deployment plan.
> 👍 **Outcome**:
>
> API usage forecast, including monthly and hourly API calls number and a Voucheify deployment plan.
---

Expand Down
Loading

0 comments on commit 1a8696e

Please sign in to comment.