> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/platform/journeys/pushly-ai-curator.md).

# Pushly AI Curator

Pushly AI Curator picks the article for you. On the **Recommendation** step, it scores every article you have published inside a window you choose against what the targeted audience actually reads, and sends the single best one.

You do not upload a list of articles or pick a story. You describe what should be eligible and how it should be judged, and the Curator makes the choice each time the step runs.

{% hint style="warning" %}
Pushly AI Curator is currently in closed beta. Contact your account manager if you're interested in testing this feature.
{% endhint %}

### Adding a Curator step

<figure><img src="https://810756845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lry9Z27iWOZyQEGAgY7%2Fuploads%2F6XXTkBhXLzzdQ29LhcKd%2FScreenshot%202026-09-10%20at%2010.45.57%E2%80%AFAM.png?alt=media&amp;token=90177d4e-1134-4f73-8d58-048e457a6979" alt=""><figcaption></figcaption></figure>

1. Open a journey in the **Journey Builder** and add a **Recommendation** step.
2. Set **Source** to **Pushly AI Curator**.
3. Configure the recommendation (below), then write the notification itself.

On the journey canvas, a Curator step shows **Source: Pushly AI Curator** beneath its name.

> **Note:** Changing the source on a step discards its whole recommendation configuration. You will be asked to confirm before that happens.

### Configuring a recommendation

<figure><img src="https://810756845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lry9Z27iWOZyQEGAgY7%2Fuploads%2FjDNbuWoagznJ8WsRDo3J%2FScreenshot%202026-09-10%20at%2010.48.29%E2%80%AFAM.png?alt=media&amp;token=999282c8-1949-4897-b7a4-a69bb2f4218b" alt=""><figcaption></figcaption></figure>

Each configuration has four parts:

* Strategy
* Ranking Weights
* Content Window
* What to Recommend

#### Strategy

Strategy sets how the two ranking signals are balanced. Pick a named strategy, or move the dials yourself and the selection becomes **Custom**.

| Strategy         | Best for                                                                                      |
| ---------------- | --------------------------------------------------------------------------------------------- |
| **Personalized** | Matching the audience's demonstrated interests, largely regardless of how new the article is. |
| **Recent**       | Getting the newest qualifying article out.                                                    |
| **Trending**     | Recency-led, lightly shaped by what the audience reads.                                       |
| **Balanced**     | Interest and freshness weighted the same. This is the default for a new configuration.        |

#### Ranking Weights

Two dials sit under the strategy, each with five positions from **Off** to **Max**:

* **Personalized**, how much the audience's reading history counts.
* **Recent**, how much publication recency counts.

Setting **Personalized** to **Off** turns off interest matching entirely; the ranking then works from recency and your conditions alone.

Moving the dials to a combination that matches a named strategy re-selects that strategy. Any other combination shows **Custom**.

#### Content Window

**Content Window** decides what is eligible: only content published inside the window can be recommended. Choose a preset, the last 6 hours, 12 hours, 24 hours, 7 days or 30 days, or enter your own number of hours, days or weeks.

Content Window is required on every configuration. A new configuration starts at 12 hours.

> **Tip, choosing a window:** Set it against how much you actually publish in that time, not against how fresh you would like the article to be. A window shorter than your publishing cadence can leave nothing eligible, and the step sends nothing. Sites that stamp articles with a date but no time of day need a window of at least a day for the same reason.
>
> Widening the window past a couple of days makes more articles eligible but does not make the ranking better at telling old from new; beyond roughly two days, everything reads as equally old to the Recent signal. Widen the window to reach more content, not to improve the choice.

#### What to Recommend

Conditions narrow what is eligible, on top of the Content Window. Add up to **20 conditions** per configuration. All of them must hold.

| Field           | Operators                                                       |
| --------------- | --------------------------------------------------------------- |
| **Keywords**    | is any of, matches all of, is not any of, does not match all of |
| **Title**       | is, is not, contains, does not contain                          |
| **Description** | is, is not, contains, does not contain                          |

Leave this empty to consider everything inside the Content Window.

Publication date is not available here. The Content Window is the only date control, so there is never a question of which one wins.

#### Recommendation Summary

Every configuration shows a **Recommendation Summary**: a plain sentence describing what that configuration will send. For example:

> Send each reader the single best Chiefs story from the last 12 hours, personalized to what they read. Never Politics or Ads.

The summary updates as you change the configuration, and it is what you see in the card header when the card is collapsed. Read it before saving. It is the fastest way to catch a condition that says something other than what you meant.

### Using more than one configuration

A step can hold up to **six** configurations.

They are not a fallback chain. Every configuration scores all eligible content at the same time, and the audience receives whichever article scores highest across all of them. The connector between cards says **Also scored in parallel** as a reminder.

Use several configurations when one set of rules cannot express what you want. For example, one Personalized configuration over your main sections and one Recent configuration over breaking news, so a genuinely new story can win on recency while everything else is chosen on interest.

Use **Duplicate** on a card to copy all of its settings, then adjust the copy.

### Writing the notification

Compose the notification as you would on any journey step. Because the article is not known until the step runs, refer to it with macros:

| Macro                     | Inserts                   |
| ------------------------- | ------------------------- |
| `{{article.title}}`       | The article's title       |
| `{{article.description}}` | The article's description |
| `{{article.url}}`         | The article's URL         |
| `{{article.image}}`       | The article's image       |
| `{{article.id}}`          | The article's identifier  |

{% hint style="info" %}
Macros are built using liquid templates and are highly customizable. See our [macro documentation](/platform/notifications/macros.md) on how to further customize the properties of your notification.
{% endhint %}

### How the article is chosen

When a subscriber reaches the step:

1. Content published inside the **Content Window** that satisfies your conditions forms the eligible set.
2. Anything already sent to that audience from this journey is removed, so the same article is not sent twice.
3. Every configuration scores the eligible set using its strategy and dials.
4. The highest-scoring article across all configurations is sent.

Recommendations are chosen per audience segment. Everyone matched to the same segment in the same run receives the same article.

### Limits

|                              |                               |
| ---------------------------- | ----------------------------- |
| Configurations per step      | 6                             |
| Conditions per configuration | 20                            |
| Articles sent per step run   | 1                             |
| Content Window               | 1 to 999 hours, days or weeks |

### Reporting

Each recommended article that goes out is tracked on its own. Per-article performance appears in **Insights > Notifications** once the journey starts sending.

### Troubleshooting

**The step is not sending anything.** The most common cause is an empty eligible set. Widen the Content Window, or remove conditions, and check the Recommendation Summary to confirm the configuration says what you intended.

**Pushly AI Curator is not in the source list.** It is enabled per domain. Contact your Pushly representative.

**Everyone in a segment got the same article.** That is expected. The Curator chooses per segment, not per subscriber.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.pushly.com/platform/journeys/pushly-ai-curator.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
