An email batch runs an agent task once per row of a list, keeps every draft for review, and sends only the rows a person chooses, through your own connected Resend account. Use it for follow-ups and notifications to people who opted in. It lives under Email → Outbound in the dashboard and at /v1/email/batches in the API.
Resend’s Acceptable Use Policy forbids unsolicited email: no cold outreach, purchased lists or scraped contact data. Every recipient must have opted in, and opt-outs must be honoured within 7 days. Batches send on your Resend account under your agreement with Resend. Read resend.com/legal/acceptable-use before you upload a list.

How a batch works

  1. Create. POST /v1/email/batches takes the rows, the task, the Resend integration, the sender and a field_map naming which columns carry to, subject and body. Nothing is sent.
  2. Draft. Starting at start_at, or immediately, the published version of the task runs on each row (draft_concurrency at a time). Its output is written onto the row. When every row has finished, the batch is drafted (Ready to review in the dashboard).
  3. Review. You can edit any cell, delete rows, and redraft rows after improving the task.
  4. Send. POST /v1/email/batches/{batch_id}/sends creates a send over selected rows, or over every row as it drafts. A send has a start time, business hours, a gap between emails and a daily cap. You can pause, re-steer or cancel it.
Things to know before you start:
  • Only a send emails anyone. Creating a batch, drafting and redrafting never do.
  • Every row runs the task’s current published version. A publish during drafting changes every row drafted after it. drafted_versions shows which version wrote which rows.
  • Nothing caps drafting spend. Every row is a task run on your provider keys, plus whatever the task’s tools and MCP servers charge, whether or not the draft is sent. Sending is capped by send_daily_cap, which defaults to 200 a day.
  • sent means Resend accepted the email. Deliveries, bounces and complaints are only in your Resend dashboard. Talqing does not read replies.
  • Talqing charges no platform fee on email batches. See monitoring for what is reported.
Creating a batch takes the EDITOR or ADMIN role, a connected Resend integration and a published agent task.

Connect Resend

Create a sending key at resend.com/api-keys (it starts re_) and connect it as an integration. The key is stored as a workspace secret (default name RESEND_API_KEY). The integration keeps a {{secrets.NAME}} reference to it. Resend checks the key before the integration is saved.
A batch accepts only an integration with provider: "resend" and status: "active". The batch’s integration_id and task_id are fixed for its life. If the integration is deleted, integration_id becomes null and the next send fails. The same integration can be attached to an agent as an MCP server. That is unrelated to batches: a batch never asks a model to send email. See integrations.

Verified sending domains

Resend verifies domains, not addresses. Any local part on a verified domain can send. GET /v1/email/senders lists the domains you can send from right now. The list is read live from Resend each time.
Only domains Resend reports as verified, with sending not disabled, are listed. pending, partially_verified, failed and temporary_failure domains are not. A revoked key returns a 400 instead of an empty list. A from_email whose domain is not on that list is refused with a 400 on batch create, on a PATCH that changes from_email, and on a send that overrides it. A domain whose DNS stops resolving drops off the list without any change in Talqing. When that happens, a running send fails on its next email.

Sender fields

A send can override all three for itself alone. The Resend account cannot be overridden per send. Every email carries List-Unsubscribe: <mailto:ADDRESS?subject=unsubscribe>, where ADDRESS is the send’s reply_to, or its from_email when there is none. There is no one-click unsubscribe and no suppression list in Talqing. Opt-outs arrive as replies, and you must honour them yourself. Resend suppresses hard bounces and complaints on its side.

Next

Create, review and send

The column space, the field map, editing and redrafting rows, and creating a send.

Monitoring

Statuses, counts, why a batch or send stops itself, webhooks and cost.