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

# Sheets: run AI workflows across thousands of rows in bulk

> Use Sheets to run AI workflows across your data in bulk. Each row is a unit of work, each column executes a workflow, and outputs populate in real time.

VeluraHQ Sheets brings the familiarity of a spreadsheet to AI-powered content operations. Each row represents a piece of content — a URL, a keyword, a brief — and each column can execute a workflow against it. You can run one row, a selection, or the entire dataset in one click, and outputs populate in real time. Inputs and results live in the same place, so there's no exporting data between tools or losing context mid-operation.

## Column types

Sheets support five column types, each serving a distinct role in your content operation:

| Column type    | What it does                                                                                 |
| -------------- | -------------------------------------------------------------------------------------------- |
| **Text**       | Plain text input or static data — your keywords, URLs, slugs, and other source values        |
| **Number**     | Numeric values such as rankings, traffic figures, and quality scores                         |
| **Markdown**   | Rich text output from workflow runs — drafts, refreshed content, meta descriptions           |
| **Workflow**   | Executes a saved workflow against the row data — this is the core column type for automation |
| **SuperBlock** | Executes a pre-built SuperBlock component, such as a quality scorer or link auditor          |

<Tip>
  Combine multiple Workflow columns in a single Sheet to chain operations across the same dataset. For example, add one column for research, a second for drafting, and a third for quality scoring — each row moves through the full pipeline automatically.
</Tip>

## Adding data to a Sheet

<Steps>
  <Step title="Create a new Sheet in your workspace">
    Navigate to Sheets in your workspace sidebar and click **New Sheet**. Give it a name that describes the operation — for example, "Archive refresh · Q3".
  </Step>

  <Step title="Add your data">
    Populate the Sheet using any of the following methods:

    * **Type manually** — Enter rows directly for small datasets.
    * **Paste from clipboard** — Copy from any spreadsheet and paste directly into Sheets.
    * **Import a CSV** — Upload a CSV file to bulk-load structured data.
    * **Connect to Pages** — Pull in URLs with their live performance data from your Pages library.
    * **Use the API** — Push rows programmatically from external tools or data pipelines.
  </Step>

  <Step title="Add a Workflow column">
    Click the **+** column header at the right edge of your Sheet and select **Workflow** as the column type.
  </Step>

  <Step title="Choose a workflow and map your inputs">
    Select the workflow you want to run from your saved workflows library. Then map the workflow's input variables to the corresponding columns in your Sheet — for example, map the URL column to the workflow's `page_url` input.
  </Step>

  <Step title="Run your Sheet">
    Choose your execution scope:

    * **Run all** — Executes the workflow for every row in the Sheet.
    * **Run selection** — Highlight specific rows and run only those.
    * **Run a single cell** — Click an individual workflow cell to run that one row.
  </Step>
</Steps>

## Monitoring a run

While a batch is running, every row displays a live status so you can track progress without leaving the Sheet:

| Status       | Meaning                                                                |
| ------------ | ---------------------------------------------------------------------- |
| **Queued**   | The row is waiting to be picked up                                     |
| **Running**  | The workflow is actively executing for this row                        |
| **Review**   | The row passed execution but requires human approval before proceeding |
| **Complete** | The workflow finished successfully and outputs are ready               |
| **Failed**   | The workflow encountered an error on this row                          |

The **Run activity** panel on the right displays real-time logs per workflow step as each row executes. A progress bar at the top of the Sheet shows overall batch completion. To focus only on rows requiring your attention, use the **Needs review** filter in the Views panel — this surfaces only the rows sitting behind a human review gate.

VeluraHQ Sheets processed 1,892 rows across 14 Sheets at a 94.6% success rate in a recent seven-day window, giving your team a consistent operating baseline to plan around.

## Scheduling Sheet runs

Open the **Automation** panel in your Sheet to configure a recurring schedule. Set the cadence — for example, every Monday at 08:00 — and Sheets will run the batch unattended on that schedule. Results populate automatically, ready for your review when you arrive. Scheduled Sheets are ideal for recurring operations like weekly archive refreshes or monthly meta audits.

## Handling failures

Failed rows never stop the overall batch. The rest of the Sheet continues running while failed rows are captured separately. After the batch completes:

1. Use the **Failed runs** filter in the Views panel to isolate failed rows.
2. Click any failed row to open its per-row error log and see exactly which workflow step produced the failure.
3. Fix the underlying issue — update the row data, adjust the workflow configuration, or correct a mapping.
4. Re-run the failed row individually using the single-cell run.

This design keeps batch throughput high while giving you a precise recovery path for exceptions.

## Common Sheet use cases

<AccordionGroup>
  <Accordion title="Bulk content refresh">
    Import decaying URLs directly from Pages using the "Decaying traffic" filter and send them to a new Sheet. Attach a Deep Refresh workflow column, map the URL column as input, and add a CMS Output column to receive approved drafts. Run the batch, review flagged rows in the Needs Review filter, and publish clean rows in bulk. The entire refresh cycle — from URL selection to CMS publication — runs inside a single Sheet without switching tools.
  </Accordion>

  <Accordion title="Programmatic page generation">
    Lay out your structured inputs in columns — topic, target keyword, template type, and target URL slug. Attach a page generation workflow column and map each input field. Run all rows to generate every page in one operation, then review outputs above your quality threshold in bulk and inspect lower-scoring rows individually before publishing to your CMS.
  </Accordion>

  <Accordion title="Meta description optimization">
    Add a Workflow column configured to generate meta descriptions and run it across your entire URL set. The column outputs a fresh, on-brand meta for every row simultaneously. Review, approve, and push the updates to your CMS to clear stale metas at scale without touching each page manually.
  </Accordion>

  <Accordion title="Internal link audit">
    Run a linking-pass SuperBlock column across every page in your library. The SuperBlock surfaces internal linking gaps — pages that could link to each other but don't — and generates the recommended anchor text and target URL for each. Work through the suggestions row by row or bulk-approve the high-confidence matches.
  </Accordion>
</AccordionGroup>
