Skip to content

Email (Loops)

rollout writes each announcement’s email as a campaign draft in Loops and keeps it up to date as you publish. You review and send it in Loops. Loops’ API can prepare campaigns but not send them, so the last step stays with you.

  1. In Loops, create an API key under Settings → API.
  2. In rollout, open Settings → Email, paste the key and connect. rollout checks it with Loops and stores it encrypted.
  3. Under Sending, pick the default audience (a mailing list or segment), the sender name and address, and optionally a reply-to, a Loops theme, and saved components for the header and footer (for example your logo and the unsubscribe link).

The sender address is only the part before the @; Loops adds your sending domain.

Turn on Email in an announcement’s details panel. You can set:

  • To: a list or segment for this email; defaults to the one in settings.
  • Subject: defaults to the title.
  • Preview text: defaults to the announcement’s summary.

Publishing or scheduling creates the draft in Loops, with the send time pre-filled for scheduled announcements. Uploaded images are copied to Loops, because Loops only sends images it hosts. Images linked from other websites are left out. Snippet titles become bold headings; the New/Improved/Fixed labels stay in the app.

Each publish, and each change to the title, summary or email settings, updates the draft. rollout leaves a draft alone when:

  • It was edited in Loops. The announcement shows “Edited in Loops”. Use Overwrite with rollout’s version to replace the edits, or keep them.
  • It was scheduled or sent in Loops. Its content is frozen from then on.
  • It was deleted in Loops. The email shows as cancelled; Create a new draft makes a new one.

Loops has no webhooks for drafts being edited, scheduled or deleted, so rollout checks each unsent campaign: every 2 minutes for the first hour after a sync, then every 15 minutes, hourly after a day, and daily after a week. While an announcement is open in the dashboard, it checks every 30 seconds.

With a webhook, rollout marks the email sent the moment Loops sends it and counts deliveries, opens, clicks, bounces, unsubscribes and spam reports.

  1. In rollout, copy the endpoint URL from Settings → Email → Events from Loops. It looks like https://api.rollout.so/v1/webhooks/loops/prj_….
  2. In Loops, open Settings → Webhooks and add that endpoint.
  3. Turn on Campaign email sent and the email events: delivered, opened, clicked, hard bounced, unsubscribed and spam reported.
  4. Copy the endpoint’s signing secret (it starts with whsec_) into rollout under Settings → Email → Events from Loops.
  5. Send a test event from Loops. rollout shows when the last event arrived.

rollout checks every delivery’s signature (webhook-id, webhook-timestamp, webhook-signature), rejects deliveries older than five minutes, and counts each event once even when Loops retries it. Opens and clicks are totals, not unique people. Events for other campaigns, workflows and transactional emails are ignored.