# What are campaigns

<figure><img src="/files/2IpNEi6VLzzQpnuhAx59" alt=""><figcaption></figcaption></figure>

**Campaigns** are the control layer that decides **who gets notified, when, and with which workflow** when a product is back in stock.

Think of a campaign as the *manager* that connects your products, workflows, and emails into one targeted restock strategy.

***

## Definition

A campaign defines:

* **Which products or collections** are included
* **Which workflow** runs when they’re restocked
* Whether the campaign is **active or paused**

You can run multiple campaigns at the same time, each with its own logic.

## How campaigns work

{% hint style="info" %}

1. A customer subscribes via the ["Notify me" widget](/xflow-app/notify-me-widget/customize-notify-me-form-and-messages.md).
2. The product or variant is restocked
3. XFlow checks which **campaign** the product belongs to
4. The campaign triggers its assigned **workflow**
5. Emails are sent based on your workflow rules (timing, conditions, follow-ups).
   {% endhint %}

> In short: **Campaign = scope + control**, **Workflow = logic + actions**

## Benefits of using campaigns

:white\_check\_mark: **Targeted messaging**: Run different restock strategies for bestsellers, seasonal items, or limited drops.

:white\_check\_mark: **Better control:** Pause, edit, or replace workflows without touching your widget or emails.

:white\_check\_mark: **Scales with your store:** Start with one global campaign, then add product- or collection-specific campaigns as you grow.

:white\_check\_mark: **Cleaner reporting:** Track performance by campaign instead of mixing all restock alerts together.

## Best practices

* Start with **one global campaign.** *Learn more:* [Global restock campaign](/xflow-app/getting-started/quick-start-guide/global-restock-campaign.md)
* Create separate campaigns only when products need **different workflows.** *Learn more:* [Advanced restock campaign](/xflow-app/getting-started/quick-start-guide/advanced-restock-campaign.md)
* Avoid overlapping scopes unless you intentionally manage priority.

## Related articles

{% content-ref url="/pages/tebcwaMIILdhj9EY0qrJ" %}
[Create and launch a Restock campaign](/xflow-app/campaigns/create-and-launch-a-restock-campaign.md)
{% endcontent-ref %}

{% content-ref url="/pages/lLOAJYI7tEltTV8Nxsuk" %}
[Test an email campaign](/xflow-app/campaigns/test-an-email-campaign.md)
{% endcontent-ref %}

{% content-ref url="/pages/95rbgFu8mYIAcHMimSPV" %}
[Manage campaigns](/xflow-app/campaigns/manage-campaigns.md)
{% endcontent-ref %}

{% content-ref url="/pages/bCi4U7usdliKcmj9rxnd" %}
[Campaigns: FAQs](/xflow-app/campaigns/campaigns-faqs.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_what_are_campaigns&#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/campaigns/what-are-campaigns.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.
