VisitorLoop Docs

Broadcasts

Broadcasts are one-time email blasts sent to a segment of your leads. Unlike automations, they are triggered manually — perfect for newsletters, announcements, and promotions.

Creating a broadcast

Go to Broadcasts → New broadcast.

Give the broadcast a name (internal only — not shown to recipients).

Select an email template. If you don't have one yet, create it in Library → My Emails — you can write it from scratch or generate it with AI there.

Select your audience. See below for the available audience types. The audience count ("X leads will receive this") updates automatically as you change the selection — it excludes unsubscribed leads.

Click Create broadcast. The broadcast is saved as a Draft.

On the broadcast card, click Send now and confirm. Sending begins immediately.

Previewing before you send

Two preview tools sit on the broadcast form so you can verify both the message and the audience before hitting send:

  • Preview email (next to the template selector) renders the email exactly as recipients will see it, with merge tags like {{lead.name}} resolved using a real lead from your org.
  • See recipients (next to the audience selector) opens a list of the actual leads that will receive the broadcast — names, emails, and the widget they came from.

Audience types

  • All leads — every lead in your org with a valid email address.
  • By widget — only leads from a specific widget/widget.
  • By site — all leads captured from any widget on a specific site.
  • By tag — leads that have been assigned a specific tag.

Unsubscribed leads are always excluded

Regardless of the audience filter, leads marked as unsubscribed (either manually or by clicking the unsubscribe link) are never included in a broadcast send.

Broadcast status

  • Draft — created but not yet sent. Can be edited, duplicated, or deleted.
  • Sending — currently being sent in batches. Cannot be cancelled once started.
  • Sent — all batches processed. Shows recipient count, delivered count, and failed count. Can be duplicated or deleted.
  • Failed — every email in the broadcast failed to send. Click Try again to retry the same audience, or check the inline failure reason.

Edit, duplicate, retry

  • Edit — update the name, template, or audience of a draft broadcast before sending. Sent broadcasts are immutable so the history stays honest.
  • Duplicate — copy any broadcast as a new draft with the same template + audience. Use this to recycle a successful blast.
  • Try again (failed only) — re-runs the send against the same audience. The previous failure reason and counts are reset before retrying.

How sending works

When you confirm a broadcast, the status atomically transitions to Sending so the same broadcast cannot be sent twice. Leads are fetched, personalised, and sent in batches of 100 via the Resend API. Each email includes the recipient's name and widget in the subject/body via template variables, plus a footer with an unsubscribe link.

The From address uses your organisation's name: Your Org Name <[email protected]>.

Trigger a broadcast via API

Any saved broadcast can be turned into a reusable webhook target. Each call clones the broadcast (template + audience), fires it immediately, and creates a new entry in your History — so every fire is logged with delivery counts and failure reasons.

Open the broadcast and click API trigger → Enable trigger.

Copy the generated webhook URL.

Generate an API key from API Keys.

POST to the URL from your own server with Authorization: Bearer YOUR_API_KEY.

curl -X POST https://your-domain.com/api/v1/broadcasts/btr_XXXX/send \
  -H "Authorization: Bearer YOUR_API_KEY"

The response includes the cloned broadcastId, plus recipientCount, sentCount, failedCount, and failureReason. Triggered fires appear in History with a via API badge. Click Regenerate URL to rotate the token (the old one stops working immediately).

Broadcasts vs the /api/v1/trigger endpoint

The per-broadcast trigger above sends to the audience configured on that broadcast. If you instead want to send to leads matching arbitrary data criteria from your own payload, use the stateless /api/v1/trigger endpoint documented in Integrations.

Bounce and complaint handling

When Resend reports a hard bounce or a spam complaint, VisitorLoop automatically marks the corresponding lead as unsubscribed. They will not receive future broadcasts or automation emails. No manual action is required.

Broadcasts cannot be unsent

Once you confirm sending there is no way to cancel or recall the emails. Use the audience size preview to double-check the recipient count before confirming.

Deleted templates

If the email template attached to a draft broadcast is deleted, the broadcast card will show Template deleted in red and the Send now button will be disabled. Create a new template and a new broadcast draft to proceed.