# Key concept overviews

{% hint style="info" %}

## Before you begin

If you’re new to XFlow or just getting to know how it works, feel free to start with this guide: [What is XFlow](/xflow-app/getting-started/what-is-xflow.md)

When you’re ready to start creating back-in-stock alerts with XFlow, check out our step-by-step guide here: [Quick start guide](/xflow-app/getting-started/quick-start-guide.md)
{% endhint %}

## How XFlow works

XFlow’s back-in-stock system is built around three core components:

<p align="center"><strong>Campaign → Workflow → Email template</strong></p>

They work together to create a complete automation flow.

Think of it like this:

* **Campaign** = What you’re running
* **Workflow** = What happens when restock occurs
* **Email template** = What customers receive

Together, they form one seamless automation.

{% stepper %}
{% step %}

### Campaign management

<figure><img src="/files/NRgNquMmegsbFoGNd2Ld" alt=""><figcaption></figcaption></figure>

A Campaign defines:

* Which products are included
* When it is active
* How it is prioritized
* How performance is tracked

Each campaign runs independently, meaning you can activate, pause, or modify one without affecting others.

{% hint style="info" %}
⭐ *Example:*

* A “Winter Collection Restock” campaign
* A “VIP Early Access Restock” campaign

Both can run at the same time, but each has its own rules and tracking.
{% endhint %}

#### Key elements

<table><thead><tr><th width="161.9505615234375">Key elements</th><th>Definition</th></tr></thead><tbody><tr><td>Scope</td><td>Defines which products or collections the campaign applies to</td></tr><tr><td>Schedule</td><td>Determines when the campaign becomes active and inactive</td></tr><tr><td>Priority</td><td>Resolves conflicts when multiple campaigns target the same product</td></tr><tr><td>Status</td><td>Controls whether the campaign is active or inactive</td></tr><tr><td>Workflow</td><td>Defines the automation logic associated with the campaign</td></tr></tbody></table>

*Learn more:*

{% content-ref url="/pages/G8EzNAjsFvzoOwBlg2ZD" %}
[Campaigns](/xflow-app/campaigns/overview.md)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Workflow builder

<figure><img src="/files/FKwO0FoboDIqPPiHKTDy" alt=""><figcaption></figcaption></figure>

A Workflow defines what happens when a product in a campaign is restocked.

When inventory updates:

* XFlow automatically triggers the workflow
* The workflow runs predefined actions (like sending emails)

Instead of manually notifying customers, everything runs automatically.

{% hint style="info" %}
⭐ *Example:*

When product restocks →

1. Send back-in-stock email
2. Wait 24 hours
3. Send a reminder

Workflows can be **reused** across **multiple campaigns**.
{% endhint %}

#### Key elements

<table><thead><tr><th width="159.7840576171875">Key elements</th><th>Definition</th></tr></thead><tbody><tr><td>Trigger</td><td>Defines when the workflow starts, such as when a product is restocked.</td></tr><tr><td>Conditions</td><td>Optional rules that determine whether the workflow should continue.</td></tr><tr><td>Actions</td><td>Define what the workflow does as an outcome.</td></tr><tr><td>Workflow flow</td><td>The sequence that connects triggers, conditions, and actions into a complete automation journey.</td></tr></tbody></table>

*Learn more*

{% content-ref url="/pages/iXt6mV3m8VlZbp1x6w2i" %}
[Workflows](/xflow-app/workflows/overview.md)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Email template builder

<figure><img src="/files/ShabBz0LK2iQQI9chvMA" alt=""><figcaption></figcaption></figure>

The Email template builder is where you design the actual email customers receive.

You can:

* Create branded restock emails
* Add dynamic product details
* Personalize with customer data
* Reuse the same template across campaigns

Templates are connected to workflows — when a workflow says “Send email,” it uses your selected template.

#### Key elements

<table><thead><tr><th width="190.5172119140625">Key elements</th><th>Definition</th></tr></thead><tbody><tr><td>Visual email editor</td><td>Build email layouts without writing code.</td></tr><tr><td>Dynamic content variables</td><td>Personalize emails by inserting dynamic product and customer data that automatically updates at send time.</td></tr><tr><td>Reusable templates</td><td>Create, save, and reuse email templates across multiple campaigns and workflows.</td></tr><tr><td>Preview &#x26; testing</td><td>Preview emails before sending to verify layout, content, and personalization.</td></tr></tbody></table>

*Learn more*

{% content-ref url="/pages/bM5fPNbEmCRIJ60OltFF" %}
[Email templates](/xflow-app/email-templates/overview.md)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Advanced analytics & attribution

<figure><img src="/files/yeG1GCupBN03hPHpLfty" alt=""><figcaption></figcaption></figure>

Once your flow is running, **Advanced analytics & attribution** help you:

* Track how many subscribers convert
* Measure revenue from restock emails
* Compare campaign performance
* Identify high-performing workflows

This allows you to optimize based on real data.

#### Key elements

<table><thead><tr><th width="210.2490234375">Key elements</th><th>Definition</th></tr></thead><tbody><tr><td>Restock subscription tracking</td><td>Monitor subscription statuses such as pending, queued, delivered, engaged, converted, completed, or cancelled.</td></tr><tr><td>Campaign-based attribution</td><td>Measure orders and revenue by linking conversions back to the campaigns that influenced them.</td></tr><tr><td>Performance metrics</td><td>View key metrics including attributed orders, attributed revenue, and average revenue per order.</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

## How everything connects in XFlow

Here’s what happens in real life:

{% stepper %}
{% step %}
The product is out of stock
{% endstep %}

{% step %}
A customer signs up via the “Notify me” button
{% endstep %}

{% step %}
The product gets restocked
{% endstep %}

{% step %}
The campaign detects the restock
{% endstep %}

{% step %}
The workflow is triggered
{% endstep %}

{% step %}
The email template is sent automatically to customers
{% endstep %}
{% endstepper %}

## Related articles

{% content-ref url="/pages/245sE35jKwuGdo2RydlX" %}
[What is XFLow](/xflow-app/getting-started/what-is-xflow.md)
{% endcontent-ref %}

{% content-ref url="/pages/G8EzNAjsFvzoOwBlg2ZD" %}
[Campaigns](/xflow-app/campaigns/overview.md)
{% endcontent-ref %}

{% content-ref url="/pages/iXt6mV3m8VlZbp1x6w2i" %}
[Workflows](/xflow-app/workflows/overview.md)
{% endcontent-ref %}

{% content-ref url="/pages/bM5fPNbEmCRIJ60OltFF" %}
[Email templates](/xflow-app/email-templates/overview.md)
{% endcontent-ref %}

***

#### 📩 **Need help?**

We’re here to make your XFlow experience smooth and successful.\
Our support team is always ready to assist you—no matter how big or small your question is.

<a href="https://admin.shopify.com/apps/xflow?chat=true&#x26;utm_source=foxecom&#x26;utm_medium=help_center_xflow_key_concept_overviews&#x26;utm_campaign=cta_button&#x26;utm_term=chat_now" class="button primary" data-icon="comment-lines">Chat now</a> <a href="mailto:contact@help.xflow.so" class="button secondary" data-icon="envelopes">Message us</a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.foxecom.com/xflow-app/getting-started/key-concept-overviews.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
