An email batch is four things: a list of rows, an agent task that drafts one email per row, a connected Resend account to send through, and a mapping that says which column carries the address, the subject and the body. Creating a batch only drafts. Sending is a separate act, over rows a person named one by one.
Five things to know before you create a batch.
  1. Resend’s terms prohibit unsolicited email. Their Acceptable Use Policy says you are “prohibited from sending unsolicited messages of any kind, including cold outreach, purchased lists, or scraped contact data” and that “all mail must be sent to recipients who have explicitly opted in to receive communications from you”, with opt-outs honoured within 7 days. This runs on your Resend account under your agreement with them. Read resend.com/legal/acceptable-use before you upload a list.
  2. Nothing is sent that you have not reviewed and selected. Creating a batch starts drafting and nothing else. No timer, no scheduler and no model ever sends an email on Talqing.
  3. Every row runs the task as it stands right now. A task has no versions. Editing one while a batch is drafting changes every row generated after that moment, and there is no way to get the old wording back.
  4. There is no spend cap on drafting. Every row runs the task and spends your model tokens — plus whatever the tools and MCP servers it calls charge — whether or not the draft is ever sent. A five-thousand-row batch costs five thousand task runs with zero emails sent.
  5. Talqing reports what it sent, not what landed. A row that reads Sent means Resend accepted it. Deliveries, bounces and spam complaints live in the Resend dashboard, and watching them there is how a sending domain survives.

Why it is built this way

The interesting work is the task. Looking a contact up, reading their last order, checking what they actually bought, and writing a paragraph that is true about them — that is an agent task with tools attached, and it is the same object you would run on its own. A batch is the machinery around one: run that task once per row, keep every result, and put the whole thing in front of a person as a spreadsheet before anything leaves the building. Drafting and sending are two separate jobs with a human decision between them, and that decision is the only safeguard this feature has.

The lifecycle

1

Create

You post the list, the task, the Resend account and the field map. Everything wrong with the combination comes back as one 400 listing every problem — a column the mapping names that does not exist, a task variable your list has no column for, a sending domain that is not verified. If it is accepted the batch is scheduled and a drafting job exists for it.See creating a batch.
2

Draft

Drafting starts at start_at or immediately, honours the batch’s hours, and runs max_concurrency rows at a time. Each row’s task output is written onto the row beside its uploaded columns. When the last row lands the batch becomes drafted — shown in the dashboard as Ready to review — and nothing about it is scheduled any more.See monitoring a batch.
3

Review

Read the drafts. Every cell is editable, and an edit sits on top of what the model wrote rather than replacing it. Rows you do not want go to skipped, which is reversible. Rows whose drafting failed can be retried.See reviewing and sending.
4

Send

Name at most 50 rows and send them. Each press is its own call, mails real people, and cannot be undone. A five-thousand-row batch takes a hundred presses.See reviewing and sending.

What it costs

Talqing charges no platform fee on an email batch. A task run has no duration to bill, and sending goes over your own Resend account. What a batch costs is your own provider spend: the model tokens each task run burns on your provider keys, plus anything the task’s tools and MCP servers charge per call. The batch page reports the model half of that as a running total. Nothing anywhere caps it.

Where it is

Email batches live under Email → Outbound in the dashboard, at https://app.talqing.com/email/outbound. Batches are regional, like everything else a workspace owns: a batch created against https://api.in.talqing.com does not exist in https://api.us.talqing.com. The same personal access token works in both — see regions. Two things must exist before the New batch button does anything: a connected Resend account, and at least one agent task.

Connect Resend

The integration, verified domains, and choosing what a batch sends from.

Create a batch

The merged column space, the field map, and everything refused at create.

Review and send

Editing rows, the 50-row cap, duplicates, skip, restore and retry.

Agent tasks

The thing that actually writes each email.