Dhanur AI
Docs menu· Run an agent in bulk

Run an agent in bulk

Live

Upload a CSV and send your agent one message for each row, as a test or for real, then download the replies.

A bulk run sends one of your agents a message for every row of a spreadsheet. Use it to check how your agent answers a long list of customer questions, or to get a reply for each item in a list, such as a draft message for every customer.

Every row becomes a task. When the run is done, you can download all the replies as a CSV file.

You need the Owner, Admin or Builder role to start or cancel a run. Viewers can follow runs and download the results.

Prepare your file

  • Save your sheet as CSV. In Excel, choose File, then Save as, then CSV UTF-8. In Google Sheets, choose File, then Download, then Comma-separated values.
  • The first row must hold the column names, such as Question or Customer name.
  • A file can have up to 500 rows and be up to 2 MB. Split bigger files and run each part.
  • Empty rows are skipped. Row numbers in the results match the rows in your spreadsheet, so the first row under the headings is row 2.

Start a run

  1. Open the agent in Agents.
  2. Above the test chat, select Run in bulk. On a phone, open the Test view first.
  3. Under Upload a CSV, choose your file or drop it on the page.
  4. Choose where each message comes from:
    • Use a column: each row's cell in that column is sent as it is.
    • Write a message: type the message and insert columns as fields, like Write a polite payment reminder for {{Customer name}}, who owes Rs {{Amount}}. Each field is replaced by that row's value. Select a column name under the box to insert it.
  5. Choose Test or Real run. See Test or real below.
  6. Check the preview. It shows the first 5 messages, how many rows will run, any rows that will be skipped, and an estimated cost.
  7. Tick the box to confirm, then select Start test run or Start real run.

Rows are skipped when their message is empty or longer than 4,000 characters. If a template uses a field that isn't a column in your file, the preview tells you which one.

Test or real

Test (nothing is sent) Real run
Uses Your latest saved draft The published version
Tools Simulated, as in the test chat Act under their approval settings
Needs a published agent No Yes, and it must not be paused
Shows in Tasks as A test task, channel Bulk run A task, channel Bulk run

In both modes, the agent's reply is saved in the results for you. It is not sent to anyone, so replies never wait for approval in a bulk run.

In a real run, other tools do act. Tools set to Runs freely, such as Save a lead or Notify your team, act for every row that needs them. Tools set to Ask first create a request in Tasks for each row. Try a test run first, and check your tool settings before a real run.

Follow a run

After you start, the page shows the run's progress: how many rows are done, failed or skipped, and what it has cost so far. The table lists every row with its status and reply. Select the link at the end of a row to open its task.

Rows run a few at a time, so a big file takes a while. You can leave the page; the run carries on. Earlier runs for the agent are listed beside the run, and you can open any of them later.

A row can end as:

  • Done: the agent replied.
  • Needs approval: the agent replied, and another action waits for approval in Tasks.
  • Handed to your team: the agent escalated the row.
  • Failed: something went wrong. The note says what.
  • Skipped, Cancelled or Not started: the row didn't run.

Cancel a run

Select Cancel run and confirm. Rows that haven't started are cancelled and won't run. Rows that are already running finish, and their results stay.

Download the results

Select Download results (CSV) at any time, during or after the run. The file has these columns: Row, Message, Status, Reply, Cost (INR), Task link and Note.

Cells that a spreadsheet could treat as a formula, such as ones starting with =, +, - or @, start with an apostrophe in the file, so opening it never runs anything.

Costs and limits

  • The estimate before you start uses the average cost of the agent's recent tasks. For a new agent, it is a rough guess from the model's prices. The real cost depends on how much work each message takes.
  • A project can have 2 bulk runs going at the same time.
  • If AI work is paused on the platform or the daily spending limit is reached, new runs can't start, and a running one stops: rows that haven't started are marked Not started. A real run also stops if you pause the agent.

See Limits and costs.

Last updated 24 September 2026

Something unclear or wrong? Tell us