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

# Lead Lists

> Import up to 100,000 leads, verify their emails, and send them to your CRM and campaigns with workflows

A lead list is a spreadsheet of leads that your workflows work through. Each row is a lead. The first columns hold your data (imported from a CSV, pasted from a spreadsheet, or typed in), and after them comes a column for each step of the workflows you add to the list. You run a step column on the rows you choose, and each cell shows what that step did for that lead.

Find your lists at **Outbound → Lead lists**. You can also open a list from a workflow: switch the workflow editor from **Canvas** to **Grid** and open the **Lead list** tab.

> [!NOTE]
>
> Lead lists come with the Outbound add-on. An account owner can add it in Billing. Nothing on a list runs by itself: a step runs only when someone starts it.

## Make a list and import leads

**1. Make the list**

On **Outbound → Lead lists**, click **New list**, name it, and click **Create list**.

**2. Import a CSV**

Click **Import CSV** and choose your file. Export it from your spreadsheet as CSV, with the column names in the first row.

**3. Choose where each column goes**

For each column in the file, pick one of the list's columns, **New column**, or **Don't import**. Then click **Import** (the button shows how many columns you chose).

**4. Let it run**

You can close the dialog: the import keeps going, and rows appear in the grid as they land. **Stop the import** keeps the rows added so far.

You can also paste rows from a spreadsheet straight into the grid, or click **Add a lead** to type one in.

| Limit | Amount |
| - | - |
| One CSV file | 50 MB (split a bigger file and import the parts) |
| Leads in one list | 100,000 |
| Leads across all your lists | 250,000 |
| Columns in one list | 50 |
| One cell | 1,000 characters (a longer value is cut) |

### Duplicates and marks

A row whose email is already in the list is skipped. Duplicates are spotted by email, so if no column in the file is an email, every row is added.

Each lead is also checked as it comes in. A colored dot next to its row number marks it, and the tabs above the grid show only the leads with that mark:

| Tab | What it means |
| - | - |
| **In CRM** | Already a contact in your CRM |
| **Do not email** | Unsubscribed, bounced or marked do not contact |
| **Bad email** | Not a valid email address |
| **Held** | No step runs on this row until it is released |
| **Ready** | None of the marks above |

Marked leads stay in the list. Use **Search**, **Filter** (on any column, or on what a step did) and the tabs to narrow the grid. **Save view** keeps the result as a tab above the grid, and **Export** downloads what the grid shows as a CSV.

## Add workflows: the step columns

The step columns come from the workflows you add to the list. On the list's page, click **Add a workflow** and pick one: its steps become columns after your data. A list can run several workflows, but a workflow runs on one list at a time (moving one from another list asks first). From inside a workflow, open **Grid** and click **Start a lead list** or **Use an existing list**.

These steps can run on a list:

| Step | What it does for each lead |
| - | - |
| **Verify Email** | Checks the email: Valid, Invalid, Risky (accepts all), Disposable or Unknown. Paid per check. |
| **Create Contact** or **Upsert Contact** | Adds the lead to your CRM as a contact, or updates the contact with that email. No "contact created" automations start. |
| **AI Agent** | Runs the AI step once per lead, with the lead's values in its merge tags. It only answers: nothing is sent or saved. Charged to your AI credits. |
| **Add to Outbound Campaign** | Adds the lead to an Outbound campaign, with custom fields such as an AI step's opener. |
| **Update Outbound Lead** | Sets fields on a lead already in an Outbound campaign. |

Every other step still shows as a column, marked **Normal runs only**. That includes conditions: to work only some rows, run a column with a filter instead. An AI step with sub-agents, or one that writes for the CMS, also runs in normal runs only.

> [!NOTE]
>
> Verify Email and the two Outbound steps work only on lead lists. In a normal workflow run they stop with a message, and nothing is charged or sent.

## Run a column safely

**1. Run 10 rows first**

Click **Run** on the column's header. The run dialog starts on **Run 10 rows**: the next 10 rows the column has not run on. Check their cells before you go on.

**2. Run the rest**

Click **Run** again and choose which rows. Until a 10-row run has finished with the column's current settings, a bigger run is refused with "Run 10 rows first and check the results, then run the rest." Changing the step's settings needs a new 10-row run. (A run of 10 rows or fewer, or a list that small, skips this.)

**3. Check the count and the cost, then confirm**

The dialog shows how many rows the run covers and, for a paid step, the most it can cost. The button repeats both, for example **Run 1,000 rows · up to \$5.00**. If the cost changes before you click, the dialog shows the new one and asks again.

| Which rows | What the run covers |
| - | - |
| **Run 10 rows** | The next 10 rows not run yet |
| **Rows not run yet** | Every row this column has not run on |
| **Rows that changed** | Rows edited since this column ran, or run with its old settings (shown when there are some) |
| **Retry errors** | Rows where this column ended with an error |
| **All rows** | Every row, including the ones it already ran on |
| **The N selected rows** | Only the rows ticked in the grid (up to 1,000) |

Under **How many**, choose **The first 100**, **The first 1,000**, **The first 10,000** or type a number to run a big list in batches. With **Rows not run yet**, each batch carries on where the last one ended. If a search or filter narrows the grid, the run covers only the rows in view (untick the box to run on the whole list). For a step that comes after a Verify Email step in the same workflow, **Which leads** can limit the run to leads whose email checked Valid, or Valid or Risky.

### While a run is going

* **Watch it.** Each run shows in a bar above the grid: rows done out of the total, errors, and the cost so far, with **Pause**, **Resume** and **Cancel**. Cancelling keeps the rows already run (and anything already charged); the rest are not run.
* **Stop everything.** **Stop all** in that bar pauses every run on the list. **Stop all runs** on the Lead lists page (shown while runs are going) pauses every run on every list. Runs pause after the rows already in progress, and each one carries on with its own **Resume**.
* **Hold rows.** Tick rows and click **Hold**, or right-click a row and choose **Hold this row**. Every run skips held rows until you **Release** them (rows a run is working on right now still finish).
* **One at a time.** A column has one run going at a time, and an account can have 2 runs going at once. A run covers only the rows the list had when it started.
* **Re-run what changed.** A cell is tagged **Edited** when its row was edited after the step ran, and **Outdated** when the step's settings changed since. The column's header then shows **N changed · Re-run**, which opens the run dialog on **Rows that changed**. Nothing re-runs by itself.

To run one row, hover over a step cell and click its play button, or right-click the row and pick the step's item, such as **Run Verify Email on this row**. A paid step or an Outbound step opens the run dialog first, so you see the cost or the campaign.

## The step panel

Click the gear on a step column's header (**Settings and merge tags**), or click a step cell a second time, to open the step panel on that row. Use its arrows to move to the previous or next row.

* **What it did** shows the step's result for this row, with **Run this row** (or **Run this row again**).
* **Its settings** shows the step's settings, with a **Merge tags | This row** switch. **This row** puts the row's real values in place of the merge tags, highlighted, as a run would send them; a value that is empty for this row shows in amber, so you can spot a blank before you run. **Merge tags** shows each tag as a pill instead, such as **Lead: Email**.
* **Merge tags it gives later steps** shows what later steps can use, filled in once the row has run.

To change the step, click **Edit step** (in that workflow's own Grid view) or **Open workflow** (anywhere else).

## Outbound steps

**Add to Outbound Campaign** adds leads to the campaign chosen in the step's settings, with their custom fields. **Update Outbound Lead** sets fields on leads already in a campaign: custom fields merge, and the change applies to the lead in every campaign it is in.

Every row is checked before anything is sent. A row that fails is skipped with the reason in its cell, such as "Email not checked yet (run Verify email first)" or "On your do-not-email list", and nothing bypasses your do-not-email lists. The step's **Only add when** (or **Only update when**) settings decide the rest:

| Setting | What it does |
| - | - |
| **Also add leads whose email was not checked Valid** (or **Also update leads...**) | Off by default: with a Verify Email step before this one, only leads with a Valid email are added or updated |
| **Also add leads missing a merge field the campaign's emails use** | Off by default: a lead with an empty field the emails use (say `{{opener}}`) is skipped, so no email goes out with a blank (Add only) |
| **Also add leads already in another campaign** | Off by default: leads already in another campaign are not added (Add only) |
| **Also require a value in** | Fields you list, comma-separated: a row missing one is skipped |
| **Only when this**, **Is**, **Value** | One comparison a row must pass, such as a job title that contains "Owner" |

The run dialog names the campaign and its status, lists the merge fields its emails use, and says about how long the run takes at Outbound's pace.

> [!WARNING]
>
> **A sending campaign needs your yes.** If the campaign is sending, the run dialog shows "This campaign is sending. The leads added start getting its emails on its schedule." and the run cannot start until you tick it. Resuming a paused run into a campaign that has started sending asks again.

## What it costs

The run dialog shows a cost only for Verify Email and AI steps.

**Verify Email**

* \$5 per 1,000 checks past the 1,000 included each month.
* An email checked in the last 30 days is reused for free.
* Unknown results and checks that fail are not charged. Rows with no email, and leads on your do-not-email list, are skipped and not charged.
* A monthly cap starts at $100. An account owner can change it in **Billing** under **Outbound email checks** (**Change cap**), up to $1,000; contact support to go higher. A run that reaches the cap pauses: raise the cap, then click **Resume**.
* Without a card on file (or during a trial), only the included checks run.
* Charges show on your Hiveku invoice as "Outbound: email verification".

**AI steps**

* Charged to your AI credits at the model's price. A row the AI gave no answer for is not charged. An answer the step cannot use (not JSON, the wrong format, or too long) is charged, and its cell says so.
* An AI step runs on Hiveku Lite (fast and low cost, made for lead lists of thousands of rows) unless you choose Hiveku Mini, Hiveku Max or Hiveku Ultra in its settings, where each model's price is shown.
* The run dialog shows the model, its thinking level and the expected cost: from the rows the column already ran, or from a typical row before any have run. The run pauses if it reaches the most it can cost; run the column again to see the new cost and continue.

## Ask the Outbound agent

The Outbound agent can find your lists, read their rows and step results, make a list, add leads (up to 500 at a time; import big files yourself with **Import CSV**), add a workflow to a list, and pause, resume or stop runs.

Starting a run is an approval card. It shows the rows the run covers, the most it can cost, an AI step's model, and an Outbound step's campaign and whether it is sending. Nothing starts until you approve it, and the agent follows the grid's rules: 10 rows first, and held rows skipped. A run into a campaign that has started sending is resumed from the grid, where you confirm.

AI tools you connect to Hiveku through MCP get the same actions: `outbound_lead_lists_list` and the `outbound_lead_list_*` tools.

## Troubleshooting

> **Run 10 rows first and check the results**
>
> A bigger run needs a finished 10-row run of the column with its current settings. Run 10 rows, check the cells, then run the rest. If you changed the step since, run 10 rows again.

> **An account can have 2 runs going at once**
>
> Wait for a run to finish, or pause one. A column with a run already going says "This column already has a run going. Pause or cancel it first."

> **A run paused by itself**
>
> The reason shows in the run bar. "This month's cap on email checks is reached" means raise the cap in Billing, then click **Resume**. "This run reached the cost you confirmed" means run the column again to see the new cost. A campaign that started sending needs your yes before the run goes on.

> **An Outbound step skipped rows**
>
> Each skipped cell says why. "Email not checked yet (run Verify email first)": run Verify Email on those rows first. "Missing opener (the campaign's emails use it)": fill that column first, for example with an AI step. "On your do-not-email list": that lead is never sent.

> **A column says Normal runs only**
>
> That step cannot run on a lead list. Open its step panel to see why. Only the steps in the table above run on lists.

## Next steps

> **[Cold Email](https://docs.hiveku.com/how-tos/cold-email.md)**
>
> Set up the Outbound campaigns your lists feed.

> **[Outbound Lead Pipeline](https://docs.hiveku.com/sales/outbound-pipeline.md)**
>
> Turn replies into CRM contacts and deals.

> **[Add workflow steps](https://docs.hiveku.com/how-tos/workflows/build-a-workflow-by-hand.md)**
>
> Build the workflow whose steps become your columns.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.