> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aipower.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Automations

> Create, schedule, and monitor AI Puffer automations.

## Overview

Use Automations to create content, rewrite published WordPress content, keep a knowledge base current, or reply to new comments in the background.

In WordPress admin, go to **AI Puffer > Automations**.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/automations.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=a008b0ad894b1bca82f1c202d14c7d2a" alt="Quick create automation" width="2594" height="1392" data-path="images/screenshots/automations/automations.png" />
</Frame>

Before you begin, configure the AI provider, image provider, vector store, or source connection required by the automation. If the Automations menu is not visible, check **AI Puffer > Settings > Modules** and confirm that your WordPress role has access to it.

<Columns cols={2}>
  <Card title="Create Content" icon="file-plus" href="#create-content" horizontal>
    Create posts from topics, CSV files, RSS feeds, URLs, or Google Sheets.
  </Card>

  <Card title="Optimize" icon="wand-sparkles" href="#optimize" horizontal>
    Rewrite selected fields in published WordPress content.
  </Card>

  <Card title="Content Indexing" icon="database" href="#content-indexing" horizontal>
    Add WordPress content to a vector store and keep it current.
  </Card>

  <Card title="Comment Replies" icon="comment" href="#comment-replies" horizontal>
    Generate replies for matching approved comments.
  </Card>

  <Card title="Settings" icon="gear" href="#settings" horizontal>
    Configure AI, prompts, SEO, publishing, images, and knowledge.
  </Card>

  <Card title="Queue" icon="list" href="#queue" horizontal>
    Review pending, completed, and failed work.
  </Card>
</Columns>

To create an automation:

1. Click **Create automation** on the welcome screen, or **New automation** above the task list.
2. Select what you want to automate.
3. Complete **Setup** for that automation type.
4. Click **Untitled** at the top if you want to name the task.
5. Continue through the settings shown for the selected automation.
6. Review **Finish** and click **Save task**.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/new-task.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=8766182a23ce5ee1b3d2242c9ef45664" alt="Create a new automation" width="1644" height="748" data-path="images/screenshots/automations/new-task.png" />
</Frame>

The progress bar shows your position. Use **Previous** to return to an earlier setting. Completed settings show a summary of their values.

After the required setup fields are complete, click **Quick create** to save with recommended defaults for everything else. If required information is missing, AI Puffer shows it near the setting that needs attention. You can edit the task later to customize any saved default.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/quick-create.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=a3b608a2fb9b44752a59ad1a2edd768e" alt="Quick create automation" width="1620" height="1526" data-path="images/screenshots/automations/quick-create.png" />
</Frame>

The **Tasks** table shows each automation's name, type, frequency, status, last run, next run, and actions.

| Action      | What it does                                              |
| ----------- | --------------------------------------------------------- |
| **Edit**    | Opens the task with its saved settings.                   |
| **Pause**   | Stops future scheduled runs. Existing queue items remain. |
| **Resume**  | Schedules a paused task again.                            |
| **Run now** | Checks an active, configured task immediately.            |
| **Delete**  | Permanently deletes the task after confirmation.          |

To edit a task, click its edit icon, open any setting you want to change, then open **Finish** and click **Save changes**.

## How Automations Run

Automations use <Tooltip headline="WordPress cron" tip="WordPress' scheduled task system. It runs when WordPress receives traffic unless a real server cron calls it.">WordPress cron</Tooltip>.

1. The saved task runs at its selected frequency.
2. It finds eligible work and adds queue items.
3. The queue processor handles pending items in batches.
4. Each item becomes **Completed** or **Failed**.

<Info>
  The queue processor handles up to 5 pending items per run. If more items remain, AI Puffer schedules another queue run about 30 seconds later.
</Info>

<Warning>
  WordPress cron depends on site traffic unless you run a real server cron. If traffic is low, tasks can run late. If `DISABLE_WP_CRON` is enabled, configure a server cron for WordPress.
</Warning>

## Create Content

Select **Create new content** in **Setup** to create posts, pages, products, or other supported post types.

The available settings are **Setup**, **AI**, **Content**, **Images**, **SEO**, **Knowledge**, and **Finish**. Use **Quick create** after entering a valid source when you want to keep the recommended defaults.

Choose one source under **Content source**:

| Source control   | Use it for                               | Availability |
| ---------------- | ---------------------------------------- | ------------ |
| **Batch editor** | Enter and fine-tune topics in rows.      | Free         |
| **Quick paste**  | Paste several topics at once.            | Free         |
| **Import CSV**   | Upload a structured topic list.          | Free         |
| **RSS feed**     | Watch feeds for new items.               | Pro          |
| **URL**          | Create content from extracted web pages. | Pro          |
| **Spreadsheet**  | Read rows from Google Sheets.            | Pro          |

Each saved automation uses the source selected when you save it. **Batch editor** and **Quick paste** are synchronized views of the same Manual Entry topic list.

### Manual Entry

Use **Batch editor** or **Quick paste** for manual entry.

Use **Batch editor** when you want to review each item as a row:

1. Select **Create new content**.
2. Select **Batch editor** under **Content source**.
3. Enter a topic and, if needed, keywords.
4. Click **Details** to set a category, author, post type, or schedule for that row.
5. Click **Add another topic** for more rows.
6. Continue to **AI**, or click **Quick create**.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/manual-entry.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=6df77ad67e8404678949bc6b16b69b59" alt="Batch editor for Manual Entry" width="1562" height="1564" data-path="images/screenshots/automations/manual-entry.png" />
</Frame>

Use **Quick paste** when you want to paste several items at once. Enter one item per line, then switch to **Batch editor** if you want to review or edit the parsed rows.

Basic format:

```text theme={null}
Topic
```

Extended format:

```text theme={null}
Topic | Keywords | Category ID | Author Login | Post Type | Schedule
```

Example:

```text theme={null}
How to clean leather boots | leather care, boots | 12 | editor | post | 2026-05-01 09:00
```

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/quick-paste.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=e1e3131a5b9ede115bc39fac05dae0d2" alt="Quick paste for Manual Entry" width="1562" height="1576" data-path="images/screenshots/automations/quick-paste.png" />
</Frame>

### CSV

Use **Import CSV** to upload a structured topic list.

[Download the sample CSV](https://docs.google.com/spreadsheets/d/1WOnO_UKkbRCoyjRxQnDDTy0i-RsnrY_MDKD3Ks09JJk/export?format=csv\&gid=0)

1. Select **Import CSV**.
2. Drop a `.csv` file into the upload area, or click to browse.
3. Wait for AI Puffer to show how many topics were found.
4. Continue to **AI**, or click **Quick create**.

| Column | Field        | Required |
| ------ | ------------ | -------- |
| 1      | Topic        | Yes      |
| 2      | Keywords     | No       |
| 3      | Category ID  | No       |
| 4      | Author Login | No       |
| 5      | Post Type    | No       |
| 6      | Schedule     | No       |

Do not include a header row unless you want it treated as a topic.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/csv.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=64d775e0c662e19cdfb056aecdccb8ed" alt="Import CSV source" width="1562" height="1576" data-path="images/screenshots/automations/csv.png" />
</Frame>

### RSS Feed

RSS Feed is a Pro feature. Select **RSS feed** under **Content source**.

1. Enter one feed URL per line.
2. Add **Only titles containing** keywords if only matching titles should be used.
3. Add **Skip titles containing** keywords if matching titles should be ignored.
4. Click **Fetch Feeds** to check the sources.
5. Continue through the remaining settings.
6. In **Finish**, choose how often the task should check the feeds.

The task records processed feed items to avoid using the same item again. **Run now** checks recent items but still skips items already in the task history.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/rss.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=d2f0f2e993b65a1205e59b248c9a1c9a" alt="RSS Feed source" width="1562" height="1576" data-path="images/screenshots/automations/rss.png" />
</Frame>

### Web Page

Web Page is a Pro feature. Select **URL** under **Content source**.

1. Enter one page URL per line.
2. Click **Test First URL** to preview the first page's extracted content.
3. Continue through the remaining settings.
4. In **Finish**, choose how often the task should check the URLs.

AI Puffer extracts readable page text and makes it available to the content instructions.

| Placeholder     | Value                |
| --------------- | -------------------- |
| `{url_content}` | Extracted page text. |
| `{source_url}`  | Source URL.          |

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/url.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=46996857903b7b3a264380d416247075" alt="Web Page URL source" width="1562" height="1552" data-path="images/screenshots/automations/url.png" />
</Frame>

### Google Sheets

Google Sheets is a Pro feature. Select **Spreadsheet** under **Content source**.

[Open the sample Google Sheet](https://docs.google.com/spreadsheets/d/18QIWggMmbTVTb-nztTo7SFdGJTUC6kwRxgc841xq4x0/edit?gid=0#gid=0), make a copy, and keep the same column order.

| Column | Field        | Notes                                          |
| ------ | ------------ | ---------------------------------------------- |
| A      | Topic        | Required.                                      |
| B      | Keywords     | Optional.                                      |
| C      | Category ID  | Optional.                                      |
| D      | Author Login | Optional.                                      |
| E      | Post Type    | Optional.                                      |
| F      | Schedule     | Optional.                                      |
| G      | Status       | Leave empty for rows that should be processed. |

AI Puffer processes a row only when column A has a topic and column G is empty. After creating the post, it writes `Processed on ...` to column G.

<Warning>
  If you use a header row, put a value such as `Status` in column G for that row so AI Puffer skips it.
</Warning>

To connect the sheet:

1. Paste the **Sheet ID**. It is the value between `/d/` and `/edit` in the sheet URL.
2. Upload the Google service-account JSON file under **Credentials**.
3. Share the sheet with the JSON file's `client_email` as an **Editor**.
4. Confirm that the sheet and credentials are detected.
5. Use **Lock** when you want to keep the saved values visible but read-only.
6. Continue through the remaining settings.

<Danger>
  Keep the service-account JSON file private. Anyone with this file can use the permissions granted to that service account.
</Danger>

For the complete Google Cloud setup, see [Google Sheets in Content Writer](/content-writer#google-sheets).

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/sheets.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=dafb45d8713e91faca9e54bc71ab65f1" alt="Google Sheets source" width="1562" height="1630" data-path="images/screenshots/automations/sheets.png" />
</Frame>

## Optimize

Select **Rewrite existing content** in **Setup** to update selected fields in published WordPress content. This is a Pro feature.

<Warning>
  Rewrite automations update WordPress content directly. Start with a narrow selection and a small test before enabling a broad rewrite.
</Warning>

### Rewrite Posts and Pages

The available settings are **Setup**, **AI**, **Content**, optional **Knowledge**, and **Finish**.

1. Select one or more **Content types**.
2. Optionally limit the task with **Categories** or **Authors**. Use search when an expanded list is long.
3. Turn on **Include existing content** if current matches should be queued when the task is saved.
4. In **AI**, select the model, writing style, maximum rewrite length, and supported reasoning level.
5. In **Content**, enable at least one field and review its **Instructions**.
6. Optionally configure **Knowledge**.
7. In **Finish**, set the task frequency and save the task.

Rewrite automations process published content only. When **Include existing content** is off, scheduled runs process content that becomes eligible later.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/rewrite-posts-pages.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=72dd3eacaed5ee9aa7f9e232929e0ca5" alt="Rewrite Posts and Pages setup" width="1566" height="1540" data-path="images/screenshots/automations/rewrite-posts-pages.png" />
</Frame>

| Field                | What AI Puffer updates                         |
| -------------------- | ---------------------------------------------- |
| **Title**            | WordPress post title.                          |
| **Content**          | WordPress post content.                        |
| **Excerpt**          | WordPress post excerpt.                        |
| **Meta Description** | SEO meta description in supported SEO plugins. |

Click **Instructions** and the pencil icon beside an enabled field to edit its rewrite instructions.

Common rewrite placeholders:

| Placeholder                   | Value                                              |
| ----------------------------- | -------------------------------------------------- |
| `{original_title}`            | Existing post title.                               |
| `{original_content}`          | Existing post content without shortcodes and HTML. |
| `{original_excerpt}`          | Existing excerpt.                                  |
| `{original_meta_description}` | Existing meta description or excerpt fallback.     |
| `{original_focus_keyword}`    | Existing focus keyword when available.             |
| `{original_tags}`             | Existing tags.                                     |
| `{categories}`                | Existing categories.                               |

### WooCommerce Products

Select `product` under **Content types** to rewrite WooCommerce product titles, main descriptions, short descriptions, or SEO meta descriptions.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/woocommerce-products.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=0fd32a940a353456c85b187f4337b28d" alt="WooCommerce product rewrite automation" width="1566" height="1540" data-path="images/screenshots/automations/woocommerce-products.png" />
</Frame>

Product prompts can use the normal rewrite placeholders and these WooCommerce values:

| Placeholder            | Value               |
| ---------------------- | ------------------- |
| `{price}`              | Product price.      |
| `{regular_price}`      | Regular price.      |
| `{sku}`                | SKU.                |
| `{attributes}`         | Product attributes. |
| `{stock_quantity}`     | Stock quantity.     |
| `{stock_status}`       | Stock status.       |
| `{weight}`             | Product weight.     |
| `{length}`             | Product length.     |
| `{width}`              | Product width.      |
| `{height}`             | Product height.     |
| `{purchase_note}`      | Purchase note.      |
| `{product_categories}` | Product categories. |

AI Puffer uses those values as source data. The rewrite task does not change price, SKU, stock, dimensions, purchase note, categories, or attributes.

## Content Indexing

Select **Build a knowledge base** in **Setup** to add published WordPress content to OpenAI, Pinecone, Qdrant, or Chroma and keep it current.

1. Select a **Provider**.
2. Select the destination **Store / Index**.
3. Select the **Embedding Model**. The picker includes the embedding provider and model.
4. Select one or more **Content types**.
5. Leave **Queue all existing content now** on to build the initial knowledge base.
6. Leave **Auto-index new and updated content** on to keep it current.
7. Continue to **Finish**, choose how often the task should run, and click **Save task**.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/content-indexing.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=b2525b93e4b2312f72a491c6c067ea7e" alt="Content Indexing automation" width="1566" height="1644" data-path="images/screenshots/automations/content-indexing.png" />
</Frame>

| Setting                                | What it does                                             |
| -------------------------------------- | -------------------------------------------------------- |
| **Queue all existing content now**     | Queues current published content, then turns itself off. |
| **Auto-index new and updated content** | Checks for selected content changed after the last run.  |

AI Puffer queues existing content in batches. **Run now** queues matching published content again.

<Warning>
  For Pinecone, Qdrant, and Chroma, the destination vector dimension must match the selected embedding model.
</Warning>

## Comment Replies

Select **Reply to comments** in **Setup** to generate replies for matching approved WordPress comments.

1. Under **Content types**, select the post types to monitor.
2. Under **Action on reply**, choose **Approve** or **Hold for moderation**.
3. Select **Top-level comments only** if AI Puffer should not reply to other replies.
4. Optionally complete **Only reply if comment contains** and **Do not reply if comment contains**.
5. Click **Instructions** beside **Reply Prompt** to review or change the prompt.
6. Continue to **AI** and select the text model.
7. In **Finish**, choose the task frequency and save the task.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/comment-replies.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=36b1720a5d952987abc942e4dc92ade8" alt="Comment Replies automation" width="1566" height="1634" data-path="images/screenshots/automations/comment-replies.png" />
</Frame>

| Placeholder         | Value                        |
| ------------------- | ---------------------------- |
| `{comment_content}` | Original comment text.       |
| `{comment_author}`  | Original comment author.     |
| `{post_title}`      | Title of the commented post. |

Scheduled runs avoid queueing a comment that the same task already queued or replied to. Replies are inserted as child comments. AI Puffer uses the post author when possible and falls back to the site administrator.

## Settings

The available settings depend on the selected automation type.

### Task Schedule

Open **Finish** to configure the task schedule.

| Setting                      | What it does                                  |
| ---------------------------- | --------------------------------------------- |
| **Schedule**                 | Starts the automation after it is saved.      |
| **How often should it run?** | Sets how often a recurring source is checked. |

**Batch editor** and **Import CSV** are one-time sources, so their frequency row is hidden. Recurring sources and task types can use One-time, Every 5 Minutes, Every 15 Minutes, Every 30 Minutes, Hourly, Twice Daily, Daily, or Weekly.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/frequency.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=3940ee36a1726c3857f25155fdf94620" alt="Task Schedule settings" width="1566" height="1572" data-path="images/screenshots/automations/frequency.png" />
</Frame>

### AI

Use **AI** to configure tasks that generate or rewrite text.

| Setting                    | What it does                                          |
| -------------------------- | ----------------------------------------------------- |
| **Model**                  | Selects the provider and model in one list.           |
| **Content length**         | Uses a Short, Medium, or Long target for new content. |
| **Writing style**          | Moves between focused, balanced, and creative output. |
| **Maximum rewrite length** | Sets the maximum output tokens for rewrite tasks.     |
| **Reasoning level**        | Sets reasoning effort for supported models.           |

The model picker prefers a configured provider when one is available. If the selected provider needs setup, AI Puffer shows a warning and a link to settings.

**Reasoning level** appears only when the selected provider and model support it.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/model.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=9146601d149eea72a755ea673ae74019" alt="AI settings" width="1562" height="916" data-path="images/screenshots/automations/model.png" />
</Frame>

### Prompts

Use **Content** to control which fields AI Puffer writes and how each one is generated.

For new content, **Title** and **Article content** are always included. **Meta description**, **Focus keyword**, **Excerpt**, and **Tags** are optional.

To customize a field:

1. Turn on an optional field if needed.
2. Click **Instructions** and the pencil icon beside the field.
3. Select a saved prompt or edit the instructions.
4. Use the placeholders shown in the editor.
5. Click **Save**.

The label changes to **Custom instructions** when the built-in instructions have been changed.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/prompts.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=2281423936842790d8f8ad3a2a1f3812" alt="Automation prompts" width="1562" height="1508" data-path="images/screenshots/automations/prompts.png" />
</Frame>

| Source                                 | Common placeholders                |
| -------------------------------------- | ---------------------------------- |
| Manual Entry, CSV, Google Sheets       | `{topic}` and `{keywords}`         |
| RSS Feed                               | `{description}` and `{source_url}` |
| Web Page                               | `{url_content}` and `{source_url}` |
| Outputs based on the generated article | `{content_summary}`                |

Rewrite prompts are also edited through **Instructions** in **Content**. The Comment Replies prompt is edited through **Instructions** beside **Reply Prompt** in **Setup**.

<Warning>
  AI Puffer validates required placeholders before generation. Fix a missing required placeholder before running the task again.
</Warning>

### SEO

Use **SEO** in a Create Content automation to configure search optimization.

| Setting                         | What it does                                        |
| ------------------------------- | --------------------------------------------------- |
| **Optimize each post for SEO?** | Enables Smart SEO for generated posts. Pro feature. |
| **How should we optimize it?**  | Opens the SEO approach dialog.                      |
| **Optimize URL**                | Creates a concise, search-friendly post slug.       |
| **Table of contents**           | Adds navigation links to the post.                  |

If a supported SEO plugin is active, AI Puffer shows its name in the first row.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/seo.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=45a2b96b94e411417a0727b6b438e1bd" alt="Automation SEO settings" width="1552" height="1428" data-path="images/screenshots/automations/seo.png" />
</Frame>

#### Smart SEO

Smart SEO is a Pro feature. It checks each generated post against the active SEO plugin profile and can revise the draft before the queue item completes.

Choose an approach:

| Approach          | Use it when                                                         |
| ----------------- | ------------------------------------------------------------------- |
| **Strict score**  | Matching every available SEO check matters most.                    |
| **Balanced**      | You want the recommended balance of SEO checks and natural writing. |
| **Content first** | Natural writing matters more than maximizing a plugin score.        |

Click **Manage checks** to enable or disable individual rules. If Smart SEO cannot reach the target score, AI Puffer keeps the best revision.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/smart-seo-task.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=6c87d1cbd59c4624c3f9d6408f4c8745" alt="Smart SEO automation settings" width="1458" height="1064" data-path="images/screenshots/automations/smart-seo-task.png" />
</Frame>

For the complete rule reference, see [Smart SEO in Content Writer](/content-writer#smart-seo).

#### Yoast SEO

AI Puffer saves the generated meta description to the Yoast description field and the generated focus keyword to the Yoast focus keyphrase field. Smart SEO uses Yoast analysis and readability checks.

#### Rank Math

AI Puffer saves the generated meta description and focus keyword to Rank Math. Smart SEO uses Rank Math's Basic SEO, Additional SEO, Title Readability, and Content Readability checks.

#### All in One SEO

AI Puffer saves the generated meta description and focus keyphrase data to All in One SEO. Smart SEO uses TruSEO, keyphrase, readability, and headline checks.

#### The SEO Framework

AI Puffer saves the generated meta description to The SEO Framework. The SEO Framework does not provide a native focus keyword field, so AI Puffer does not save one for this profile.

If no supported SEO plugin is active, AI Puffer still saves fallback meta description data. WordPress tags and optimized URL slugs continue to work.

### Publishing

Use **Finish** to configure how generated WordPress posts are saved.

| Setting        | What it does                                                                 |
| -------------- | ---------------------------------------------------------------------------- |
| **Status**     | Saves as draft, publishes immediately, holds for review, or saves privately. |
| **Post Type**  | Selects the destination public WordPress post type.                          |
| **Author**     | Selects the WordPress author.                                                |
| **Categories** | Assigns supported categories.                                                |

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/publishing.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=28bbf6d49e482aadaf52c45ed1a1c7e1" alt="Publishing settings" width="1542" height="1490" data-path="images/screenshots/automations/publishing.png" />
</Frame>

#### Schedule

When **Status** is **Publish immediately**, choose a publishing mode:

| Publishing mode    | What it does                                                                           |
| ------------------ | -------------------------------------------------------------------------------------- |
| **Immediately**    | Publishes each completed post as soon as it is ready.                                  |
| **Smart schedule** | Starts at a selected date and publishes one post every chosen number of hours or days. |
| **Input dates**    | Uses the schedule supplied by Manual Entry, CSV, or Google Sheets.                     |

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/schedule.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=c95898f98c536abaaa7054a602031988" alt="Publishing Schedule settings" width="1542" height="1284" data-path="images/screenshots/automations/schedule.png" />
</Frame>

Supported input date examples:

```text theme={null}
2026-05-01 09:00
2026-05-01 09:00:30
2026/05/01 09:00
05/01/2026 09:00
01/05/2026 09:00
2026-05-01T09:00:00Z
2026-05-01T09:00:00+02:00
```

Dates without a timezone are interpreted using the WordPress site timezone.

### Images

Use **Images** in a Create Content automation to configure content images, a featured image, or both. Each image type has its own **Instructions** control.

When either image type is enabled, choose **AI generated** or **Stock photos**.

| Source           | Options                                                                             |
| ---------------- | ----------------------------------------------------------------------------------- |
| **AI generated** | Select an image model. Available aspect ratios change with the model.               |
| **Stock photos** | Select **Pexels** or **Pixabay**. Orientation and filters change with the provider. |

Content-image-only settings include **Images per article**, **Placement**, **Display size**, and **Align**. When an interval placement such as **Every X H2s** is selected, use the minus and plus controls beside **Placement** to set the interval.

Open **Advanced settings** for provider-specific controls.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/images.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=a82026bb0eda8b06e5e72aaa39569480" alt="Automation image settings" width="1562" height="1570" data-path="images/screenshots/automations/images.png" />
</Frame>

#### OpenAI

Add the OpenAI API key in **AI Puffer > Settings > AI** and sync image models. In **Images**, enable an image type, select **AI generated**, and choose an OpenAI image model.

#### Google

Add the Google API key in **AI Puffer > Settings > AI** and sync image models. In **Images**, enable an image type, select **AI generated**, and choose a Google image model.

#### OpenRouter

Add the OpenRouter API key in **AI Puffer > Settings > AI** and sync image-capable models. If a selected model does not return images, choose another image-capable model.

#### Azure

Add the Azure endpoint, API key, API version, and image deployment in **AI Puffer > Settings > AI**. Select that deployment after choosing **AI generated**.

#### xAI

Add the xAI API key in **AI Puffer > Settings > AI** and sync image models. xAI image generation uses supported models such as `grok-imagine-image`.

#### Replicate

Add the Replicate API key in **AI Puffer > Settings > Integrations** and sync text-to-image models. Select the required model after choosing **AI generated**.

#### Pexels

Add the Pexels API key in **AI Puffer > Settings > Integrations**. In **Images**, select **Stock photos**, then select the **Pexels** provider chip. Pexels supports orientation, size, and color filters.

#### Pixabay

Add the Pixabay API key in **AI Puffer > Settings > Integrations**. In **Images**, select **Stock photos**, then select the **Pixabay** provider chip. Pixabay supports orientation, type, and category filters.

#### Provider Options

Only options supported by the selected source, provider, and model appear.

| Provider       | Available options                                                           |
| -------------- | --------------------------------------------------------------------------- |
| **OpenAI**     | Canvas size, quality, output format, compression, background, moderation.   |
| **Azure**      | Canvas size, quality, output format, compression, background.               |
| **Google**     | Aspect ratio, image resolution, and person generation for supported models. |
| **OpenRouter** | Aspect ratio and image resolution when supported.                           |
| **xAI**        | Aspect ratio and image resolution.                                          |
| **Replicate**  | Model-specific options from synced model schemas.                           |
| **Pexels**     | Orientation, size, and color.                                               |
| **Pixabay**    | Orientation, type, and category.                                            |

AI-generated aspect-ratio choices change with the selected model. Stock-photo orientation choices change with the selected provider.

#### Image Prompts

Click **Instructions** and the pencil icon beside **Content images** or **Featured image** to customize what AI Puffer should create. The two image types keep separate instructions.

Common placeholders include `{topic}`, `{keywords}`, `{post_title}`, and `{excerpt}`.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/image-prompts.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=7bef183321985236fa758b7a7de1577c" alt="Image instructions" width="1542" height="1136" data-path="images/screenshots/automations/image-prompts.png" />
</Frame>

### Knowledge Base

Use optional **Knowledge** settings when generated or rewritten text should include information from a vector database.

1. Select a **Knowledge source**.
2. Select the provider's vector stores, index, or collection.
3. For Pinecone, Qdrant, or Chroma, select the **Embedding model** used to index the data.
4. Set **Results limit**.
5. Adjust **Confidence threshold** only when needed.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/kb.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=148fab9f45b11b6ec4fc01a13c4519e6" alt="Knowledge Base settings" width="1542" height="918" data-path="images/screenshots/automations/kb.png" />
</Frame>

#### OpenAI

OpenAI uses OpenAI Vector Stores. Add data in **AI Puffer > Knowledge Base > Data**, select **OpenAI** under **Knowledge source**, then select one or more **Vector stores**.

#### Pinecone

Add Pinecone credentials in **AI Puffer > Settings > Integrations**. Select the Pinecone index and the same embedding model used when the data was added.

The index dimension must match the embedding model.

#### Qdrant

Add the Qdrant URL and API key in **AI Puffer > Settings > Integrations**. Select the Qdrant collection and the same embedding model used when the data was added.

The collection vector size must match the embedding model.

#### Chroma

Add the Chroma endpoint, tenant, database, and API key in **AI Puffer > Settings > Integrations**. Select the Chroma collection and the same embedding model used when the data was added.

#### Limit and Threshold

| Setting                  | How it works                                                            |
| ------------------------ | ----------------------------------------------------------------------- |
| **Results limit**        | Sets the maximum number of matching knowledge pieces AI Puffer can use. |
| **Confidence threshold** | Sets the minimum confidence required before a match is included.        |

Use the default threshold until you have tested retrieval quality. A very high value can return few or no results. A very low value can include weak matches. AI Puffer warns when you move away from the recommended value.

For complete provider setup, see [Knowledge Base](/knowledge-base).

## Queue

The queue shows work created by saved tasks and **Run now** actions.

<Frame>
  <img src="https://mintcdn.com/aipuffer-a96fe641/_q_VKXqYHJ61UIt5/images/screenshots/automations/queue.png?fit=max&auto=format&n=_q_VKXqYHJ61UIt5&q=85&s=55c93c038b8628c9da538926b9c03c2c" alt="Automation queue" width="2594" height="938" data-path="images/screenshots/automations/queue.png" />
</Frame>

| Status         | Meaning                  |
| -------------- | ------------------------ |
| **Pending**    | Waiting to be processed. |
| **Processing** | Currently being handled. |
| **Completed**  | Finished successfully.   |
| **Failed**     | Stopped with an error.   |

Click the queue menu to open **Queue tools**. Search item or task names, filter by status, or delete the currently filtered items. A failed item also has a retry action.

The **Cron** badge opens the cron status panel. Use it to check whether WordPress cron is healthy, disabled, or delayed. Click the refresh icon to reload the queue.

Deleting a task, queue item, or filtered queue set opens a destructive confirmation dialog that names what will be removed. Review it before clicking **Delete**. The action cannot be undone.

Completed content-creation items can link to the generated post when a WordPress post ID is available.

## Connected Apps

Automations can send results to Connected Apps and webhooks.

| Event                 | When it fires                               |
| --------------------- | ------------------------------------------- |
| `content.generated`   | After a Create Content task creates a post. |
| `task.item_completed` | After a queue item finishes successfully.   |

Use these events when another system needs the generated post, task result, or queue item details. See [Event Webhooks](/event-webhooks) for event payloads and delivery setup.

## Logs

Automation activity can appear in AI Puffer logs.

| Task area       | Log module                  |
| --------------- | --------------------------- |
| Create Content  | `content_writer_automation` |
| Comment Replies | `community_reply_comments`  |

Queue status and error messages also remain visible in the Automations queue.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Task did not run">
    1. Confirm the task status is **Active**.
    2. Check **Last** and **Next** in the Tasks table.
    3. Open the **Cron** status panel and confirm WordPress cron is healthy.
    4. If `DISABLE_WP_CRON` is enabled, configure a server cron job.
    5. Check whether the task already has pending or processing queue items.
    6. Edit the task and confirm that its provider, model, source, and destination are still configured.

    Create Content tasks do not queue another scheduled batch while the same task already has pending or processing items.
  </Accordion>

  <Accordion title="No items were queued">
    | Automation              | Check                                                                         |
    | ----------------------- | ----------------------------------------------------------------------------- |
    | Manual Entry            | At least one Batch editor or Quick paste row must have a topic.               |
    | CSV                     | The parsed CSV must contain at least one topic.                               |
    | RSS Feed                | The feed must contain a new item that passes the filters.                     |
    | Web Page                | The URL must be reachable and contain extractable text.                       |
    | Google Sheets           | Column A must contain a topic and column G must be empty.                     |
    | Rewrite Posts and Pages | Selected content types, categories, and authors must match published content. |
    | Content Indexing        | Selected content types must contain published content.                        |
    | Comment Replies         | The task must find an approved comment that passes its filters.               |
  </Accordion>

  <Accordion title="Queue item failed">
    1. Read the error shown for the queue item.
    2. Fix the provider, model, source, prompt, or destination setting.
    3. Use the retry icon on the failed item.
  </Accordion>

  <Accordion title="Google Sheets rows are not processed">
    1. Confirm the **Sheet ID** is correct.
    2. Confirm the service-account JSON file is valid.
    3. Share the sheet with the service-account email as an **Editor**.
    4. Put the topic in column A.
    5. Leave column G empty until AI Puffer processes the row.
  </Accordion>

  <Accordion title="Content indexing fails">
    1. Confirm the selected store, index, or collection still exists.
    2. For Pinecone, Qdrant, and Chroma, select an embedding model.
    3. Confirm the destination dimension matches the embedding model.
    4. Confirm the selected content types contain published content.
    5. Check the provider connection in [AI Providers](/ai-providers).
  </Accordion>

  <Accordion title="Comment replies are not created">
    1. Confirm the original comment is approved.
    2. Check the selected content types.
    3. Review the include and exclude keyword filters.
    4. Confirm the comment was not already queued or replied to by the task.
    5. Check the selected AI provider and model.
  </Accordion>
</AccordionGroup>
