<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>SendBeam blog</title><description>Notes on running email for small sites, from a team that runs five of its own sites on SendBeam.</description><link>https://sendbeam.io</link><language>en-gb</language><item><title>Automations that listen to your other tools, and answer back</title><link>https://sendbeam.io/blog/automations-that-listen-and-answer-back</link><guid isPermaLink="true">https://sendbeam.io/blog/automations-that-listen-and-answer-back</guid><description>A named event starts an automation from anything that can make an HTTP request, and a new step tells your own systems when a contact reaches a point in a flow.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Most small email platforms have the same shape of integration story. There is a list of logos, and behind each logo is a recipe that creates a subscriber. Data goes one way: into the tool. If you want the tool to tell something else what happened — a CRM, a helpdesk, your own application — you are usually told to poll an API on a schedule, or to wait for the vendor to build a partnership.&lt;/p&gt;
&lt;p&gt;We have just shipped the two halves that remove that. Anything that can make an HTTP request can now start a SendBeam automation by saying &lt;strong&gt;what happened&lt;/strong&gt;, and an automation can now tell your systems that a contact has &lt;strong&gt;reached a point in a flow&lt;/strong&gt;. Neither needs a partnership, an app review or a marketplace listing.&lt;/p&gt;
&lt;h2 id=&quot;the-inbound-half-say-what-happened-by-name&quot;&gt;The inbound half: say what happened, by name&lt;/h2&gt;
&lt;p&gt;There is a new endpoint. You post an event name and an email address:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;http&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;POST&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; /api/v1/events&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;x-api-key&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sb_live_...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;Content-Type&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; application/json&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{ &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;event&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;deal_won&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;email&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;sam@example.com&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the automation builder there is a matching trigger, &lt;strong&gt;Something happened elsewhere&lt;/strong&gt;, where you type the same name: &lt;code&gt;deal_won&lt;/code&gt;. Every active automation listening for that name runs for that contact.&lt;/p&gt;
&lt;p&gt;That sounds small. The design decision inside it is not, and it is worth explaining because it is the reason this works without us calling anyone.&lt;/p&gt;
&lt;p&gt;SendBeam already had a way to start an automation from outside — &lt;code&gt;POST /api/v1/automations/{id}/trigger&lt;/code&gt; — and it has a flaw that only shows up in practice. It names &lt;strong&gt;one automation, by id&lt;/strong&gt;. So the integration has to know that id, which means somebody has to copy it out of our UI and paste it into theirs, and it breaks the day the workspace rebuilds the automation. Worse, a partner cannot ship a recipe that works for anybody but the person who configured it, because every customer’s id is different. That is exactly the coupling that turns a five-minute job into a business-development conversation.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;name&lt;/strong&gt; inverts the dependency. The sending system says what happened; the workspace decides what that should mean; either side can change without telling the other. &lt;code&gt;deal_won&lt;/code&gt; is the same string in every workspace on the planet, so a recipe built once works for everyone — and it is a string a person can guess, which matters more than it sounds when you are debugging at eleven at night.&lt;/p&gt;
&lt;p&gt;In practice that means a &lt;a href=&quot;https://developer.pipedrive.com/docs/api/v1/Webhooks&quot;&gt;Pipedrive webhook&lt;/a&gt; for a deal moving to Won, a Typeform partial submission, a Calendly booking, or a row changing in a spreadsheet, each becomes a &lt;a href=&quot;https://zapier.com/apps/webhook/integrations&quot;&gt;Zapier webhook step&lt;/a&gt; or an &lt;a href=&quot;https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/&quot;&gt;n8n HTTP Request node&lt;/a&gt; pointing at one URL. No app review anywhere.&lt;/p&gt;
&lt;h3 id=&quot;what-it-deliberately-will-not-do&quot;&gt;What it deliberately will not do&lt;/h3&gt;
&lt;p&gt;An event &lt;strong&gt;never creates a contact&lt;/strong&gt;. Somebody else’s system mentioning an address is not consent to email that address, and we are not going to launder a purchased list through an integration endpoint. If we do not already hold the contact, the response says so:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{ &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;ok&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;event&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;deal_won&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;matched&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;enrolled&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that it is a &lt;code&gt;200&lt;/code&gt;, not a &lt;code&gt;404&lt;/code&gt;. An unknown address is a completely normal thing for a busy CRM to send, and returning an error for it would have every sending system treat a non-event as a failure and &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9110.html&quot;&gt;retry it for ever&lt;/a&gt;. It is accepted, it is not acted on, and it says which.&lt;/p&gt;
&lt;p&gt;Two other limits worth knowing before you build on it: the event carries a name and an address and nothing else — there is no custom payload to read inside the automation yet — and a contact who has unsubscribed or been suppressed is not enrolled by one, the same as every other trigger.&lt;/p&gt;
&lt;h2 id=&quot;the-outbound-half-a-step-that-calls-your-systems&quot;&gt;The outbound half: a step that calls your systems&lt;/h2&gt;
&lt;p&gt;The other direction is a new automation step, &lt;strong&gt;Call Webhook&lt;/strong&gt;. Drop it anywhere in a flow and, when a contact reaches it, your systems hear about it: a CRM to update, a task to raise, an order to check.&lt;/p&gt;
&lt;p&gt;The interesting part is what the step does &lt;em&gt;not&lt;/em&gt; have: a URL field.&lt;/p&gt;
&lt;p&gt;We could have put a box on the step and posted to whatever you typed. Every one of those requests would then be an unvalidated outbound call from our infrastructure, and we would need to build signing, retries, timeouts and failure handling for a second time — a worse copy of what our &lt;a href=&quot;/docs/api/webhooks&quot;&gt;webhook endpoints&lt;/a&gt; already do.&lt;/p&gt;
&lt;p&gt;So the step sends an event, &lt;code&gt;automation.step_reached&lt;/code&gt;, and the endpoints you have already set up deliver it: signed, retried, and switched off automatically if your server goes away. One endpoint serves every automation you ever build, and a URL that changes is changed in one place rather than hunted through a dozen flows.&lt;/p&gt;
&lt;p&gt;You give the step a &lt;strong&gt;label&lt;/strong&gt; — &lt;code&gt;notify-crm&lt;/code&gt;, say — and that is what arrives:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;event&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;automation.step_reached&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;data&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;contact&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;email&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;sam@example.com&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;first_name&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Sam&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;automation&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Trial day 3&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;step&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;label&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;notify-crm&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Branch on the label, not on the automation’s name: names get edited, and step ids change when a flow is rebuilt. The label is the bit you control and nobody else will touch by accident.&lt;/p&gt;
&lt;p&gt;Because an endpoint has to be subscribed for any of this to happen, the step tells you whether one is. If nothing in the workspace is listening for &lt;code&gt;automation.step_reached&lt;/code&gt;, the step says so while you are building it and links straight to the form with the event already ticked — and the pre-flight check warns you again if you try to activate an automation containing a step nothing would hear. A step that silently does nothing is the worst possible outcome for a feature like this, so we spent the effort on making that state impossible to miss rather than on a cleverer builder.&lt;/p&gt;
&lt;h2 id=&quot;if-you-run-more-than-one-site&quot;&gt;If you run more than one site&lt;/h2&gt;
&lt;p&gt;Because the trigger matches on a name rather than an id, one recipe covers every workspace you run. An agency with fifteen client workspaces writes the &lt;code&gt;deal_won&lt;/code&gt; automation once and copies it into the rest with a workspace blueprint, and the same integration, pointed at the right API key, feeds all of them. Nothing in the sending system needs to know which workspace it is talking to beyond the key.&lt;/p&gt;
&lt;h2 id=&quot;try-it-in-five-minutes&quot;&gt;Try it in five minutes&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Build an automation, give it the &lt;strong&gt;Something happened elsewhere&lt;/strong&gt; trigger, and type an event name.&lt;/li&gt;
&lt;li&gt;Activate it — only active automations enrol.&lt;/li&gt;
&lt;li&gt;Send yourself one event with &lt;code&gt;curl&lt;/code&gt;, using an API key that has &lt;code&gt;contacts:write&lt;/code&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -X&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; POST&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; https://sendbeam.io/api/v1/events&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  -H&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;x-api-key: &lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$SENDBEAM_API_KEY&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  -H&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;Content-Type: application/json&quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  -d&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;{&quot;event&quot;:&quot;deal_won&quot;,&quot;email&quot;:&quot;you@example.com&quot;}&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;For the return path, add a &lt;strong&gt;Call Webhook&lt;/strong&gt; step, give it a label, and make sure an endpoint subscribes to &lt;code&gt;automation.step_reached&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The full reference is in the docs: &lt;a href=&quot;/docs/automations/triggers&quot;&gt;triggers&lt;/a&gt;, &lt;a href=&quot;/docs/automations/steps&quot;&gt;step types&lt;/a&gt; and &lt;a href=&quot;/docs/api/webhooks&quot;&gt;webhooks&lt;/a&gt;. If your store sends order events, the same machinery already carries &lt;a href=&quot;/docs/ecommerce&quot;&gt;cart, product and order triggers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Both halves are live on every plan now. If you build something with them that we did not think of, we would like to hear about it — that is rather the point of not requiring a partnership.&lt;/p&gt;
</content:encoded><category>Product</category><category>Compliance</category><category>Multi-site</category><author>SendBeam team</author></item><item><title>UK email marketing rules in 2026: PECR, UK GDPR consent, and what changing provider actually requires</title><link>https://sendbeam.io/blog/uk-email-marketing-rules-pecr-gdpr-2026</link><guid isPermaLink="true">https://sendbeam.io/blog/uk-email-marketing-rules-pecr-gdpr-2026</guid><description>PECR&apos;s soft opt-in, the UK GDPR consent evidence you must keep, the ICO&apos;s re-permission fines, and a checklist for moving a list to a new platform.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;This post explains the rules as we understand them, with links to the legislation and the regulator’s guidance. It is not legal advice. If a decision turns on it, ask a solicitor.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Two pieces of UK law govern a marketing email: the Privacy and Electronic Communications Regulations, which say &lt;strong&gt;whether you may send it&lt;/strong&gt;, and the UK GDPR, which governs the personal data you hold to send it. People tend to know the second exists and forget the first, which is unfortunate, because most of the enforcement action for email has been under the first.&lt;/p&gt;
&lt;p&gt;This post covers what each law requires of a small site, what the regulator has actually fined people for, what changing your email provider does and does not oblige you to do, and a checklist you can work through in an afternoon.&lt;/p&gt;
&lt;h2 id=&quot;pecr-regulation-22-the-consent-rule&quot;&gt;PECR regulation 22: the consent rule&lt;/h2&gt;
&lt;p&gt;The Privacy and Electronic Communications (EC Directive) Regulations 2003 apply to marketing by electronic mail, which covers email, SMS and similar messaging. &lt;a href=&quot;https://www.legislation.gov.uk/uksi/2003/2426/regulation/22&quot;&gt;Regulation 22&lt;/a&gt; is the operative rule. In summary:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You must not send unsolicited marketing by electronic mail to an &lt;strong&gt;individual subscriber&lt;/strong&gt; unless they have previously notified you that they consent to receiving it (reg. 22(2)).&lt;/li&gt;
&lt;li&gt;There is one exception, usually called the &lt;strong&gt;soft opt-in&lt;/strong&gt; (reg. 22(3)). You may email someone without prior consent if you obtained their details &lt;strong&gt;in the course of a sale or negotiations for a sale&lt;/strong&gt; of a product or service, the marketing is for &lt;strong&gt;your own similar products or services&lt;/strong&gt;, and they were given a simple means of refusing, free of charge, &lt;strong&gt;at the time their details were collected and in every message since&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;“Individual subscriber” means individuals, sole traders and, in most of the UK, partnerships. Corporate subscribers (limited companies, LLPs, public bodies) are outside reg. 22, though the UK GDPR still applies to the named person you are emailing, and &lt;a href=&quot;https://www.legislation.gov.uk/uksi/2003/2426/regulation/23&quot;&gt;regulation 23&lt;/a&gt; applies to everyone: you must not disguise or conceal who the message is from, and you must provide a valid address at which the recipient can ask you to stop.&lt;/p&gt;
&lt;p&gt;For a small site the practical reading is simple. A newsletter signup form is consent. A contact form is not consent to marketing, because writing to ask a question is not “negotiations for a sale” of anything. A customer who bought something from you may fall under the soft opt-in for similar things, provided you offered an opt-out at the checkout and offer one in every email. And a list you bought, scraped or were given is none of these.&lt;/p&gt;
&lt;p&gt;The ICO’s &lt;a href=&quot;https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/&quot;&gt;Guide to PECR&lt;/a&gt; covers each of these points in plain language, and its direct-marketing guidance goes into the edge cases.&lt;/p&gt;
&lt;h2 id=&quot;uk-gdpr-what-consent-has-to-look-like-and-what-you-must-be-able-to-show&quot;&gt;UK GDPR: what consent has to look like, and what you must be able to show&lt;/h2&gt;
&lt;p&gt;PECR says you need consent; the UK GDPR says what consent is. &lt;a href=&quot;https://www.legislation.gov.uk/eur/2016/679/article/4&quot;&gt;Article 4(11)&lt;/a&gt; defines it as a freely given, specific, informed and unambiguous indication of the person’s wishes by a statement or a clear affirmative action. &lt;a href=&quot;https://www.legislation.gov.uk/eur/2016/679/article/7&quot;&gt;Article 7&lt;/a&gt; adds three obligations that bite in practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You must be able to &lt;strong&gt;demonstrate&lt;/strong&gt; that the person consented (Art. 7(1)).&lt;/li&gt;
&lt;li&gt;If consent is bundled into something else, the request must be clearly distinguishable and in plain language (Art. 7(2)).&lt;/li&gt;
&lt;li&gt;Withdrawing consent must be &lt;strong&gt;as easy as giving it&lt;/strong&gt; (Art. 7(3)).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Recital 32 rules out pre-ticked boxes and silence. A checkbox that is ticked by default is not consent. A visitor who fills in a form to download something and is quietly added to the newsletter has not consented to the newsletter.&lt;/p&gt;
&lt;p&gt;The ICO’s &lt;a href=&quot;https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/consent/&quot;&gt;consent guidance&lt;/a&gt; sets out what a record of consent should contain, and it is worth quoting the shape of it because it is exactly what you will be asked for if anyone ever complains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Who&lt;/strong&gt; consented: the name or other identifier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; they consented: a timestamp, or a dated copy of a paper form.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt; they consented: the form or page and the method (a ticked box, a double opt-in confirmation).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What they were told&lt;/strong&gt; at the time: the wording of the consent statement and the privacy information shown, as it was then.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Whether they have withdrawn&lt;/strong&gt; consent, and when.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Double opt-in is not required by UK law. It is, however, the easiest way to produce a record that satisfies all five points, because the confirmation click is dated, tied to an address the person controls, and unambiguous. It also keeps other people’s addresses off your list, which is the main cause of spam complaints, so the deliverability case and the compliance case point the same way.&lt;/p&gt;
&lt;h2 id=&quot;the-flybe-and-honda-fines-asking-for-consent-is-marketing&quot;&gt;The Flybe and Honda fines: asking for consent is marketing&lt;/h2&gt;
&lt;p&gt;In March 2017 the ICO fined two companies for sending emails that asked people about their marketing preferences.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flybe&lt;/strong&gt; was fined &lt;strong&gt;£70,000&lt;/strong&gt; for sending about 3.3 million emails in August 2016 to people who had opted out of marketing, with the subject line asking them to update their details and preferences and the chance to win a prize. The ICO’s finding was that an email asking whether someone wants marketing is itself a marketing email, and those people had already said no.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Honda Motor Europe&lt;/strong&gt; was fined &lt;strong&gt;£13,000&lt;/strong&gt; for sending 289,790 emails asking whether customers wanted to hear from the company, on the basis that Honda could not show it had consent to send marketing to those people in the first place. Honda argued the emails were customer service, not marketing; the ICO disagreed.&lt;/p&gt;
&lt;p&gt;The ICO’s monetary penalty notices for &lt;a href=&quot;https://ico.org.uk/action-weve-taken/enforcement/flybe-limited/&quot;&gt;Flybe&lt;/a&gt; and &lt;a href=&quot;https://ico.org.uk/action-weve-taken/enforcement/honda-motor-europe-ltd/&quot;&gt;Honda Motor Europe&lt;/a&gt; set out the reasoning. The lesson for a small site is not about the size of the fines; it is the principle. You cannot fix a list with no consent by emailing it to ask for consent. If you do not have evidence that someone agreed to hear from you, the lawful options are to obtain consent through some channel that is not a marketing email, or not to email them.&lt;/p&gt;
&lt;p&gt;The maximum penalty under PECR was £500,000 at the time. The &lt;a href=&quot;https://www.legislation.gov.uk/ukpga/2025/18/contents&quot;&gt;Data (Use and Access) Act 2025&lt;/a&gt; provides for PECR penalties to rise to the UK GDPR maximum (up to £17.5 million or 4% of worldwide turnover) and extends the soft opt-in to charities; those provisions come into force by commencement regulations, so check the ICO’s site for the current position.&lt;/p&gt;
&lt;h2 id=&quot;what-changing-provider-does-and-does-not-require&quot;&gt;What changing provider does and does not require&lt;/h2&gt;
&lt;p&gt;This is the question we are asked most often when someone is considering &lt;a href=&quot;/move-in&quot;&gt;moving to SendBeam&lt;/a&gt;, so it deserves a straight answer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consent is given to you, not to your software.&lt;/strong&gt; Under the UK GDPR you are the controller; the email platform is a processor acting on your instructions. Moving from one processor to another does not change what your subscribers agreed to, so &lt;strong&gt;you do not need to ask them to consent again&lt;/strong&gt;. Sending a “please confirm you still want to hear from us” email to a list that already has consent is unnecessary, and sending it to a list that does not have consent is the Honda problem.&lt;/p&gt;
&lt;p&gt;What a change of provider does require:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A contract with the new processor&lt;/strong&gt; covering the points in &lt;a href=&quot;https://www.legislation.gov.uk/eur/2016/679/article/28&quot;&gt;Article 28(3)&lt;/a&gt;: acting only on your instructions, confidentiality, security, sub-processors, assistance with rights requests, deletion or return at the end, and audit. Platforms usually publish this as a data processing agreement; SendBeam’s is at &lt;a href=&quot;/legal/dpa&quot;&gt;/legal/dpa&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The evidence comes with the data.&lt;/strong&gt; Export the consent record, not just the addresses: source, timestamp, IP where held, and the double opt-in status. If the old platform never kept it, you cannot invent it; those contacts should be left out rather than emailed, and you should decide what to do about them separately.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The suppression list moves first.&lt;/strong&gt; Unsubscribes, bounces and complaints must be loaded into the new platform &lt;strong&gt;before&lt;/strong&gt; a single address is imported, so that nobody who opted out on the old system is emailed by the new one. Then keep the old platform’s unsubscribes syncing for a period after cutover, because emails already delivered still carry the old unsubscribe links.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update your privacy notice&lt;/strong&gt; if it names the provider, describes where data is stored, or lists international transfers, and the new arrangement differs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check the lawful basis for anything that is not a newsletter.&lt;/strong&gt; Transactional email (receipts, sign-in links) is not marketing and does not need consent, but it should not carry marketing content either, or it becomes marketing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What it does not require: fresh consent, a re-permission campaign, or a gap in sending. If someone tells you otherwise, ask them which regulation they are relying on.&lt;/p&gt;
&lt;h2 id=&quot;a-practical-checklist&quot;&gt;A practical checklist&lt;/h2&gt;
&lt;p&gt;Work through this once, and again whenever a form or a list changes.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Every list has a source.&lt;/strong&gt; For each list you can say where the addresses came from: which form, which purchase flow, or which import, and the consent basis for each.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forms are unambiguous.&lt;/strong&gt; No pre-ticked boxes. The newsletter checkbox is separate from the terms checkbox. The wording says what people will receive and how often.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contact forms do not subscribe.&lt;/strong&gt; A message from a visitor creates a conversation, not a marketing contact.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Double opt-in is on&lt;/strong&gt; for any list that collects addresses from a public page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You can produce the record.&lt;/strong&gt; For any contact, you can show who, when, how and what they were told.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Every email says who it is from and how to stop.&lt;/strong&gt; A real sender name and address, a working unsubscribe link, and one-click unsubscribe headers for Gmail and Yahoo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unsubscribes are processed at once&lt;/strong&gt;, and suppressed addresses stay suppressed through imports.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soft opt-in customers were offered an opt-out at the point of sale&lt;/strong&gt; and are only emailed about similar products.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nobody is emailed to ask for consent.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When you change provider,&lt;/strong&gt; the DPA is in place, the suppression list goes first, the consent evidence travels with each contact, and your privacy notice is updated.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Most of this is how a well-run small site behaves anyway. The value of writing it down is that when a complaint arrives, and eventually one will, you answer it in ten minutes with a record rather than in a week with an apology.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Again: this is a summary, not legal advice. The legislation is linked above and the ICO’s guidance is free; when the stakes are real, read both and take advice.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Compliance</category><category>UK</category><category>Migration</category><category>Forms</category><author>SendBeam team</author></item><item><title>One-click unsubscribe and the bulk-sender rules: what Gmail, Yahoo and Microsoft check in 2026</title><link>https://sendbeam.io/blog/one-click-unsubscribe-google-yahoo-2026</link><guid isPermaLink="true">https://sendbeam.io/blog/one-click-unsubscribe-google-yahoo-2026</guid><description>What Gmail, Yahoo and Microsoft check on bulk mail in 2026, how to read your own headers, and which of those headers SendBeam sets for you.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In February 2024 Google and Yahoo started enforcing a shared set of requirements for anyone sending bulk email to their users. Microsoft followed in May 2025 with matching rules for Outlook.com, Hotmail and Live addresses. The rules are not long, but they are checked by machines, and mail that fails them is junked or rejected without anyone telling you.&lt;/p&gt;
&lt;p&gt;This post lists what the three providers actually require, shows you how to look at the headers of your own email to see whether you meet them, and then says exactly what SendBeam sets for you and what it does not. The last part matters: a platform that says “deliverability handled” without saying which headers it emits is asking you to take it on trust.&lt;/p&gt;
&lt;h2 id=&quot;who-the-rules-apply-to&quot;&gt;Who the rules apply to&lt;/h2&gt;
&lt;p&gt;Google’s requirements have two tiers. Every sender to Gmail must authenticate with SPF or DKIM, keep spam rates low and not impersonate Gmail in the From header. Senders of &lt;strong&gt;5,000 or more messages a day&lt;/strong&gt; to Gmail addresses must meet the full list below. Google’s own page is the reference: &lt;a href=&quot;https://support.google.com/a/answer/81126&quot;&gt;Email sender guidelines&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Yahoo published the same requirements for bulk senders at the same time; its &lt;a href=&quot;https://senders.yahooinc.com/best-practices/&quot;&gt;Sender Best Practices&lt;/a&gt; page is the source. Microsoft announced in April 2025 that domains sending more than 5,000 messages a day to consumer Outlook addresses must have SPF, DKIM and DMARC in place, with non-compliant mail routed to junk from 5 May 2025 and rejected later; the announcement is on the &lt;a href=&quot;https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/strengthening-email-ecosystem-outlook%E2%80%99s-new-requirements-for-high%E2%80%90volume-senders/4399730&quot;&gt;Microsoft Tech Community&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Two practical points about the threshold. It is measured per sending domain, and Google counts across all your mail streams, so a site that sends 4,000 newsletter emails and 1,500 transactional emails on a busy day is a bulk sender for that day. And there is no benefit in staying under it: the requirements are also simply what a well-configured domain looks like, and the cheapest time to meet them is before you have a reputation problem.&lt;/p&gt;
&lt;h2 id=&quot;the-requirements-one-by-one&quot;&gt;The requirements, one by one&lt;/h2&gt;
&lt;h3 id=&quot;1-spf-and-dkim-both&quot;&gt;1. SPF and DKIM, both&lt;/h3&gt;
&lt;p&gt;SPF (&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc7208&quot;&gt;RFC 7208&lt;/a&gt;) is a DNS record on the domain in the message’s return path that lists the servers allowed to send for it. DKIM (&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc6376&quot;&gt;RFC 6376&lt;/a&gt;) is a cryptographic signature added to each message, verified against a public key in DNS under &lt;code&gt;&amp;lt;selector&amp;gt;._domainkey.&amp;lt;domain&amp;gt;&lt;/code&gt;. Bulk senders need both to pass. When you send through any platform, the platform’s servers do the signing and the sending; what you control is whether the keys and the return path are set up on &lt;strong&gt;your&lt;/strong&gt; domain rather than the platform’s.&lt;/p&gt;
&lt;h3 id=&quot;2-a-dmarc-record-and-alignment&quot;&gt;2. A DMARC record, and alignment&lt;/h3&gt;
&lt;p&gt;DMARC (&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc7489&quot;&gt;RFC 7489&lt;/a&gt;) is a TXT record at &lt;code&gt;_dmarc.&amp;lt;your domain&amp;gt;&lt;/code&gt;. The minimum the providers ask for is &lt;code&gt;v=DMARC1; p=none&lt;/code&gt;, which changes nothing about delivery but declares a policy and lets you receive reports. The part people miss is &lt;strong&gt;alignment&lt;/strong&gt;: the domain in the visible From header must match the domain that SPF or DKIM authenticated. If your From address is &lt;code&gt;news@example.com&lt;/code&gt; but the DKIM signature is for the platform’s own domain and the return path is the platform’s too, DMARC fails even though SPF and DKIM individually passed. For email sent through a platform, DKIM alignment (a signature whose &lt;code&gt;d=&lt;/code&gt; is your domain) is the one to get right; an aligned return path gives you SPF alignment as well.&lt;/p&gt;
&lt;h3 id=&quot;3-one-click-unsubscribe-rfc-8058&quot;&gt;3. One-click unsubscribe, RFC 8058&lt;/h3&gt;
&lt;p&gt;For marketing and subscribed mail, bulk senders must include two headers:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;List-Unsubscribe: &amp;lt;https://example.com/unsubscribe?token=...&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;List-Unsubscribe-Post: List-Unsubscribe=One-Click&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc8058&quot;&gt;RFC 8058&lt;/a&gt; defines how this works: the mailbox provider shows an unsubscribe button next to the sender’s name, and when the reader clicks it the provider sends an HTTP POST to that URL with the body &lt;code&gt;List-Unsubscribe=One-Click&lt;/code&gt;. No page is shown to the reader, so the URL has to do the job on that POST alone, and it has to be safe against link scanners and prefetchers that follow every URL in a message with a GET. That is why the URL should carry a signed token and change state only on POST. There must also be a clearly visible unsubscribe link in the message body, and requests must be honoured &lt;strong&gt;within two days&lt;/strong&gt;. A &lt;code&gt;mailto:&lt;/code&gt; form of the header is allowed as well, but it is the HTTPS form together with &lt;code&gt;List-Unsubscribe-Post&lt;/code&gt; that satisfies the one-click requirement.&lt;/p&gt;
&lt;h3 id=&quot;4-spam-rate-below-010-never-at-or-above-030&quot;&gt;4. Spam rate below 0.10%, never at or above 0.30%&lt;/h3&gt;
&lt;p&gt;Google measures the rate of user-reported spam per domain in &lt;a href=&quot;https://postmaster.google.com/&quot;&gt;Postmaster Tools&lt;/a&gt; and asks senders to stay below 0.10%, and never to reach 0.30%. Yahoo’s guidance is to keep complaints under 0.3%. These are low numbers. Three complaints in a thousand messages is enough to put you over the line, and the usual cause is not malice but an old list, a purchased list, or a signup form with no confirmation step that has been collecting other people’s addresses.&lt;/p&gt;
&lt;h3 id=&quot;5-the-rest&quot;&gt;5. The rest&lt;/h3&gt;
&lt;p&gt;The remaining items are infrastructure: valid forward and reverse DNS (PTR records) for sending IPs, TLS for the connection, a From header that does not imitate &lt;code&gt;gmail.com&lt;/code&gt; or &lt;code&gt;yahoo.com&lt;/code&gt;, ARC headers if you forward mail on behalf of others, and standard formatting under RFC 5322. On a platform these are the platform’s responsibility. On your own server they are yours, and PTR records in particular are where self-hosted senders on cheap VMs fall down.&lt;/p&gt;
&lt;h2 id=&quot;how-to-check-your-own-headers&quot;&gt;How to check your own headers&lt;/h2&gt;
&lt;p&gt;You do not need a tool to see most of this. Send yourself a campaign and look at the raw message.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gmail:&lt;/strong&gt; open the message, click the three-dot menu, then &lt;strong&gt;Show original&lt;/strong&gt;. The summary at the top shows SPF, DKIM and DMARC as PASS or FAIL, with the domain each was checked against. Below, search the headers for &lt;code&gt;List-Unsubscribe&lt;/code&gt; and &lt;code&gt;List-Unsubscribe-Post&lt;/code&gt;. If the DKIM domain is not yours, alignment is your problem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outlook.com:&lt;/strong&gt; open the message, click the three dots, then &lt;strong&gt;View&lt;/strong&gt; &amp;gt; &lt;strong&gt;View message source&lt;/strong&gt;. Look for &lt;code&gt;Authentication-Results:&lt;/code&gt; near the top; it lists &lt;code&gt;spf=&lt;/code&gt;, &lt;code&gt;dkim=&lt;/code&gt; and &lt;code&gt;dmarc=&lt;/code&gt; with the domains.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apple Mail:&lt;/strong&gt; &lt;strong&gt;View&lt;/strong&gt; &amp;gt; &lt;strong&gt;Message&lt;/strong&gt; &amp;gt; &lt;strong&gt;All Headers&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then check DNS directly. From a terminal, &lt;code&gt;dig TXT _dmarc.example.com&lt;/code&gt; shows your DMARC record, or its absence, and &lt;code&gt;dig CNAME &amp;lt;selector&amp;gt;._domainkey.example.com&lt;/code&gt; shows whether the DKIM key is published. If you would rather not use a terminal, we are building a &lt;a href=&quot;/tools/sender-check&quot;&gt;sender check&lt;/a&gt; that runs these lookups from a browser and reports alignment against a test message.&lt;/p&gt;
&lt;p&gt;Finally, if you send to Gmail in any volume, register your domain in Postmaster Tools. It is free and it is the only place you can see the spam-rate figure Google is actually using.&lt;/p&gt;
&lt;h2 id=&quot;what-sendbeam-sets-automatically-and-what-it-does-not&quot;&gt;What SendBeam sets automatically, and what it does not&lt;/h2&gt;
&lt;p&gt;Here is what a campaign or automation email sent from SendBeam carries, based on the code that sends it rather than on a feature list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DKIM and an aligned return path for your domain.&lt;/strong&gt; When you add a domain, SendBeam shows CNAME records: DKIM signing records and a return-path record on your domain. Once they resolve, mail is signed with &lt;code&gt;d=&lt;/code&gt; your domain and the return path is on your domain, so both DKIM and SPF align with your From address. If your DNS is on Cloudflare, SendBeam writes the records for you from a one-time API token. See &lt;a href=&quot;/docs/getting-started/sending-domain&quot;&gt;Sending domain&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Both RFC 8058 headers on every campaign and automation email.&lt;/strong&gt; &lt;code&gt;List-Unsubscribe&lt;/code&gt; points at a URL carrying a signed token bound to the contact and the campaign, and &lt;code&gt;List-Unsubscribe-Post: List-Unsubscribe=One-Click&lt;/code&gt; is set alongside it. The unsubscribe URL changes state only on POST; a GET shows a confirmation page with a button, so link scanners cannot unsubscribe your readers by prefetching. The one-click POST is processed immediately, not queued, which is comfortably inside the two-day requirement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A visible unsubscribe link.&lt;/strong&gt; If a template does not include one, SendBeam adds one to the message body before sending. The same signed URL is used for the visible link and the header.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bounces and complaints suppressed automatically.&lt;/strong&gt; A hard bounce or a spam complaint adds the address to the workspace’s suppression list and it is not sent to again, including after a re-import. Only a hash of the address is kept once the contact is deleted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guardrails on your complaint and bounce rates.&lt;/strong&gt; Over a rolling 30 days, SendBeam warns workspace admins when the complaint rate reaches 0.3% or the bounce rate reaches 5%, and pauses sending when complaints exceed 0.5% (once there is a meaningful sample) or bounces exceed 10%. The warning line is set at Google’s “never exceed” figure on purpose: by the time Gmail is unhappy, you should already have heard from us.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Double opt-in available on every list, and compulsory on Free.&lt;/strong&gt; Confirmation is the single most effective thing you can do for your spam rate, because it stops other people’s addresses ever reaching your list.&lt;/p&gt;
&lt;p&gt;Now the things SendBeam does &lt;strong&gt;not&lt;/strong&gt; do, so you are not surprised.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It does not publish your DMARC record.&lt;/strong&gt; DMARC belongs to your domain as a whole, covering your ordinary mail as well as SendBeam, so you add the &lt;code&gt;_dmarc&lt;/code&gt; TXT record yourself. We recommend starting at &lt;code&gt;p=none&lt;/code&gt; with a reporting address, moving to &lt;code&gt;p=quarantine&lt;/code&gt; once you have confirmed everything aligns, and going to &lt;code&gt;p=reject&lt;/code&gt; when you are confident. The docs page above has the record format.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On the Free plan, and before a domain is verified, mail goes from a shared SendBeam address.&lt;/strong&gt; It is fully authenticated, so it meets the rules, but the reputation it builds is ours rather than yours, and the From address is not your domain. Verify your own domain before you send to a real audience.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Owner-notification emails from contact forms&lt;/strong&gt; (the message a visitor writes to you) carry no unsubscribe headers, because they are not bulk mail and there is nothing to unsubscribe from.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;a-short-checklist&quot;&gt;A short checklist&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Own domain verified, DKIM and return path resolving, From address on that domain.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_dmarc&lt;/code&gt; TXT record published, at least &lt;code&gt;p=none&lt;/code&gt; with &lt;code&gt;rua=&lt;/code&gt; so you receive reports.&lt;/li&gt;
&lt;li&gt;Send yourself a campaign and confirm SPF, DKIM and DMARC all show PASS against &lt;strong&gt;your&lt;/strong&gt; domain in Show original.&lt;/li&gt;
&lt;li&gt;Confirm both &lt;code&gt;List-Unsubscribe&lt;/code&gt; headers are present and that the visible link works.&lt;/li&gt;
&lt;li&gt;Register in Google Postmaster Tools and look at the spam-rate graph once a month.&lt;/li&gt;
&lt;li&gt;Switch on double opt-in for any list that collects addresses from a public form.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;None of this is difficult, but all of it is invisible until something goes wrong. Ten minutes with Show original now is worth a great deal more than a week of wondering why open rates fell.&lt;/p&gt;
</content:encoded><category>Deliverability</category><category>Compliance</category><category>Product</category><author>SendBeam team</author></item><item><title>What Mailchimp, Kit, beehiiv, MailerLite and EmailOctopus cost when you run three sites</title><link>https://sendbeam.io/blog/mailchimp-pricing-for-several-sites</link><guid isPermaLink="true">https://sendbeam.io/blog/mailchimp-pricing-for-several-sites</guid><description>How per-audience billing works on five popular email platforms, with a worked example at 1,000 contacts per site. Prices checked 3 September 2026.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Email pricing pages are written for one brand with one list. If you run three sites, the number you need is not on the page; you have to work out how the platform treats a second and third audience, and then multiply. This post does that for five platforms people ask us about, with a worked example at 1,000 contacts per site.&lt;/p&gt;
&lt;p&gt;Two ground rules. First, every figure here comes from the platform’s own pricing page and was &lt;strong&gt;checked on 3 September 2026&lt;/strong&gt;; pricing pages change, so treat this as a snapshot and use the links to verify. Second, we compare the cheapest plan that removes the platform’s branding from your emails, because that is the plan most people running a real site end up on. Where a free tier would genuinely do the job, we say so. Prices are in US dollars, billed monthly.&lt;/p&gt;
&lt;p&gt;If you would rather put in your own numbers, the &lt;a href=&quot;/tools/cost-calculator&quot;&gt;cost calculator&lt;/a&gt; uses exactly the same figures and rules, and the &lt;a href=&quot;/alternatives&quot;&gt;alternatives pages&lt;/a&gt; go platform by platform.&lt;/p&gt;
&lt;h2 id=&quot;the-unit-of-billing-is-the-whole-story&quot;&gt;The unit of billing is the whole story&lt;/h2&gt;
&lt;p&gt;Every platform prices by list size in some form, but they differ on what a “list” is and whether you may have more than one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mailchimp&lt;/strong&gt; organises contacts into &lt;em&gt;audiences&lt;/em&gt;. The Free plan allows one audience of up to 500 contacts and 1,000 emails a month, with Mailchimp branding. On the plans we checked, running several sites in one account means several audiences, and each audience adds to the contact count you pay for; a person who subscribes to two of your sites is counted twice. Mailchimp also counts unsubscribed and cleaned contacts towards your total, which is unusual and worth knowing before you import a list with a long history. Automations are no longer on the free plan. The ladder we checked: 500 contacts at $13 (Essentials), 2,500 at $45 (Standard), 10,000 at $100, 25,000 at $270. &lt;a href=&quot;https://mailchimp.com/pricing/marketing/&quot;&gt;Mailchimp pricing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kit&lt;/strong&gt; (formerly ConvertKit) is built around one creator. An account is one identity with one subscriber list, so separate sites with separate brands need separate accounts. The free Newsletter plan is generous on size, up to 10,000 subscribers, but it carries Kit branding and allows one basic automation. The Creator plan removes both limits: $29 at 500 subscribers, $49 at 2,500, $119 at 10,000, $199 at 25,000. &lt;a href=&quot;https://kit.com/pricing&quot;&gt;Kit pricing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;beehiiv&lt;/strong&gt; organises everything around a &lt;em&gt;publication&lt;/em&gt;. The Launch plan is free up to 2,500 subscribers with beehiiv branding. The Scale plan is $39 at both 500 and 2,500 subscribers, $79 at 10,000 and $129 at 25,000. Extra publications cost extra on most plans, so three sites generally means three lots of Scale or three separate free accounts. beehiiv is a newsletter product with a website, an ad network and paid subscriptions built in; it is not designed to handle contact forms or transactional mail for a site. &lt;a href=&quot;https://www.beehiiv.com/pricing&quot;&gt;beehiiv pricing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MailerLite&lt;/strong&gt; is the friendliest of the five to more than one site: one account can hold several websites and domains, and pricing is per account. The Free plan covers 1,000 subscribers and 12,000 emails a month with MailerLite branding and one user. Growing Business, which removes the branding, is $10 at 500 subscribers, $20 at 2,500, $54 at 10,000 and $130 at 25,000. Every subscriber is counted once across all your sites, which is exactly what you want, though the ladder steps up quickly once three modest lists are added together. New accounts go through an approval process before they can send. &lt;a href=&quot;https://www.mailerlite.com/pricing&quot;&gt;MailerLite pricing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EmailOctopus&lt;/strong&gt; is the cheapest per contact at scale and keeps things simple. The free plan covers 2,500 subscribers and 10,000 emails a month with EmailOctopus branding, 30-day reporting, one form and one landing page. Pro removes those limits: $10 at 500 subscribers, $16 at 2,500, $36 at 10,000 and $68 at 25,000. One account is one sender identity, so several sites means several accounts, and there is no transactional email or contact-form handling. &lt;a href=&quot;https://emailoctopus.com/pricing&quot;&gt;EmailOctopus pricing&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;worked-example-three-sites-1000-contacts-each&quot;&gt;Worked example: three sites, 1,000 contacts each&lt;/h2&gt;
&lt;p&gt;Assume three sites with about 1,000 contacts each, 3,000 in total, sending a newsletter a month or so to each. You want your own branding on the emails.&lt;/p&gt;
&lt;p&gt;One method note, so the table is fair. Platforms publish prices at steps (500, 2,500, 10,000 and so on). Where 1,000 contacts falls between steps, the figure shown is the next rung up on the ladder we recorded, which is how the &lt;a href=&quot;/tools/cost-calculator&quot;&gt;cost calculator&lt;/a&gt; works too. Some platforms have finer bands in their own calculator and will quote a little less for exactly 1,000; the shape of the result does not change.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;How you have to buy it for three sites&lt;/th&gt;
&lt;th&gt;Free option that fits?&lt;/th&gt;
&lt;th&gt;Monthly, branding removed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mailchimp&lt;/td&gt;
&lt;td&gt;One account, three audiences, 3,000 contacts (10,000 rung); or three accounts at the 2,500 rung&lt;/td&gt;
&lt;td&gt;No (Free is one audience of 500)&lt;/td&gt;
&lt;td&gt;$100 as one account, or 3 × $45 = $135 as three&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kit&lt;/td&gt;
&lt;td&gt;Three accounts, one per site&lt;/td&gt;
&lt;td&gt;Yes, with Kit branding and one automation each&lt;/td&gt;
&lt;td&gt;3 × $49 = $147&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;beehiiv&lt;/td&gt;
&lt;td&gt;Three publications; extra publications cost extra on most plans&lt;/td&gt;
&lt;td&gt;Yes, with beehiiv branding&lt;/td&gt;
&lt;td&gt;3 × $39 = $117&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MailerLite&lt;/td&gt;
&lt;td&gt;One account, 3,000 subscribers (10,000 rung)&lt;/td&gt;
&lt;td&gt;No (Free stops at 1,000 in total)&lt;/td&gt;
&lt;td&gt;$54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EmailOctopus&lt;/td&gt;
&lt;td&gt;One account, three lists, 3,000 subscribers pooled&lt;/td&gt;
&lt;td&gt;Yes, with EmailOctopus branding (free to 2,500)&lt;/td&gt;
&lt;td&gt;$31.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SendBeam&lt;/td&gt;
&lt;td&gt;One account, three workspaces, 3,000 contacts pooled&lt;/td&gt;
&lt;td&gt;No (Free is 500 contacts, two workspaces)&lt;/td&gt;
&lt;td&gt;$29 (Pro)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Prices checked 3 September 2026 (EmailOctopus re-read from its live slider on 4 September). USD, billed monthly.&lt;/p&gt;
&lt;p&gt;Three things stand out.&lt;/p&gt;
&lt;p&gt;First, the platforms that treat a second site as a second account (Kit, beehiiv, EmailOctopus) turn a small audience into a medium bill, or push you onto a free tier with their branding on every email you send. If you are comfortable with that branding, Kit, beehiiv and EmailOctopus will all run three 1,000-contact lists for nothing, and that is a perfectly reasonable choice for a hobby project.&lt;/p&gt;
&lt;p&gt;Second, the per-account platforms (MailerLite, and Mailchimp if you accept multiple audiences in one account) do better, but their ladders step steeply once you add lists together. 3,000 contacts is priced on the 10,000 rung on both.&lt;/p&gt;
&lt;p&gt;Third, the SendBeam figure is not the cheapest possible in every scenario, and we would rather you saw where. At exactly 3,000 pooled contacts you need Pro at $29, because Starter caps at 2,500 contacts (Starter does allow five workspaces, so three sites of 800 contacts each would be $9). At the other end, our largest plan is 50,000 pooled contacts; three sites of 25,000 would exceed it, and at that scale EmailOctopus at 3 × $94.50 = $283.50 a month is a real option we cannot currently match with a listed plan. And if what you actually run is a single newsletter that you want to monetise with ads or paid tiers, beehiiv’s price buys you tools we do not have.&lt;/p&gt;
&lt;h2 id=&quot;the-costs-that-are-not-on-the-pricing-page&quot;&gt;The costs that are not on the pricing page&lt;/h2&gt;
&lt;p&gt;Three things tend to be missed when people compare on price alone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Duplicate contacts.&lt;/strong&gt; On any platform that counts per audience or per account, someone who signs up to two of your sites is paid for twice. For a portfolio of related sites the overlap is rarely zero. SendBeam also keeps contacts separate per workspace (a signup on one site is not a signup on another), so the same person on two of your sites is two contacts against your pool as well. The difference is that the pool is one number on one plan, not two invoices.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unsubscribed and bounced contacts.&lt;/strong&gt; Mailchimp counts unsubscribed and cleaned contacts towards the total you are billed on. If a list is old, a meaningful share of it may be people you can no longer email but are still paying for. Check how each platform treats suppressed addresses before you import.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your time.&lt;/strong&gt; Three accounts means three domain set-ups, three sets of DKIM records, three suppression lists that do not talk to each other, and three places to check when a subscriber complains. That is not a line on an invoice, but it is why small sites so often end up with no newsletter at all. We wrote about our own version of this in &lt;a href=&quot;/blog/why-one-account-for-every-site&quot;&gt;why we built SendBeam around one account for every site&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-to-do-with-this&quot;&gt;What to do with this&lt;/h2&gt;
&lt;p&gt;If you are choosing a platform for several sites, decide three things before you look at a single price: whether you can live with the platform’s branding on your email, how many contacts you have across all sites once duplicates are counted, and whether you need contact forms and transactional email or only a newsletter. Then put your real numbers into the &lt;a href=&quot;/tools/cost-calculator&quot;&gt;cost calculator&lt;/a&gt;, which uses the same ladders as this post and will show you the plan on each platform, including ours.&lt;/p&gt;
&lt;p&gt;And if you are already paying three times over, &lt;a href=&quot;/move-in&quot;&gt;Move-in&lt;/a&gt; carries subscribers, suppressions and the consent evidence your old platform kept across into one account, workspace by workspace, and it is included on Pro and Business.&lt;/p&gt;
</content:encoded><category>Pricing</category><category>Multi-site</category><category>UK</category><author>SendBeam team</author></item><item><title>Why we built SendBeam around one account for every site you run</title><link>https://sendbeam.io/blog/why-one-account-for-every-site</link><guid isPermaLink="true">https://sendbeam.io/blog/why-one-account-for-every-site</guid><description>We run five small sites. Here is what their email looked like on separate tools, why that shape was wrong, and the product decisions that followed.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We run five websites. None of them is big. There is a UK salary calculator, a UK house-price site, a directory of UK companies, a site of small image tools and a bidding SaaS used by a handful of businesses. Between them they have contact forms, newsletter signups, three weekly newsletters generated from live data, and the usual transactional email a SaaS needs: sign-in links, invoices, “your bid was accepted”.&lt;/p&gt;
&lt;p&gt;That is not an unusual situation. Plenty of people run a portfolio of small sites: a freelancer with three client-facing brands, a developer with two side projects and a blog, a local business with a shop and a separate site for its trade customers. Every one of those sites needs email, and every one of them is too small to justify its own email budget.&lt;/p&gt;
&lt;p&gt;SendBeam exists because the tools we tried were shaped for one brand with one list. This post is about what that shape cost us, and which decisions we made differently. It is the positioning post, so it is opinionated, but every claim about the product is something you can check in the &lt;a href=&quot;/docs&quot;&gt;docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-five-sites-email-looks-like-on-ordinary-tools&quot;&gt;What five sites’ email looks like on ordinary tools&lt;/h2&gt;
&lt;p&gt;Most email platforms are built around one identity. On some it is called an audience, on others a publication or a creator account. The name varies; the consequence does not. A second site means a second one of those, and a second one of those is either a second bill or a second account.&lt;/p&gt;
&lt;p&gt;Here is what that turned into for us.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Five logins.&lt;/strong&gt; Five dashboards, five sets of API keys, five webhook formats to handle bounces, five places to check when something looked wrong. When anything looks wrong, the first job is working out which account it happened in.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Costs that multiply instead of add.&lt;/strong&gt; Per-audience billing means the price of email is roughly the price of one list times the number of sites, even when each list is tiny. A thousand contacts is a rounding error for any platform. Three lots of a thousand contacts, billed separately, is a real monthly cost. We have laid out the numbers platform by platform in &lt;a href=&quot;/blog/mailchimp-pricing-for-several-sites&quot;&gt;what Mailchimp, Kit, beehiiv, MailerLite and EmailOctopus cost when you run three sites&lt;/a&gt;; the short version is that most of them charge you three times for what is, from your point of view, one small audience. You can check the two we quote most often yourself: &lt;a href=&quot;https://mailchimp.com/pricing/marketing/&quot;&gt;Mailchimp’s pricing&lt;/a&gt; counts every contact in every audience, and &lt;a href=&quot;https://kit.com/pricing&quot;&gt;Kit’s&lt;/a&gt; is one list per account.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Authentication set up five times, five different ways.&lt;/strong&gt; Every domain needs its own DKIM keys and an aligned return path so that Gmail, Yahoo and Microsoft trust the mail. That part is unavoidable and correct. What is avoidable is doing it in five dashboards that each hand you a slightly different set of records, some as CNAMEs, some as TXT, some with a shared return path you cannot align to your own domain. DMARC, which you publish once per domain, then has to be checked against five different sending set-ups.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Suppression lists that never meet.&lt;/strong&gt; When someone’s address bounces on one tool, the other four keep trying. When someone unsubscribes from a newsletter, the transactional tool for the same site has no idea. And when you move a list between tools, the unsubscribes are the thing most likely to get left behind, which is precisely the thing you must not leave behind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Automation glued together by hand.&lt;/strong&gt; Three of our newsletters are built from data. The house-price site emails each subscriber the sold prices in their own district when the Land Registry publishes a new month; the companies directory sends a weekly digest of newly incorporated companies; the salary site sends a weekly issue of pay and tax news. Each of those is a script that assembles an issue and calls an API. Five different SDKs and five different rate limits is a lot of surface area for what should be one job.&lt;/p&gt;
&lt;p&gt;None of these problems is dramatic. Together they are the reason small sites end up with no email at all, or with a contact form that goes to a personal inbox and a newsletter that was going to launch next quarter for the last three years.&lt;/p&gt;
&lt;h2 id=&quot;the-shape-we-wanted&quot;&gt;The shape we wanted&lt;/h2&gt;
&lt;p&gt;We wanted one account, one login, one bill, and inside it a clean separation per site. Not one giant list with tags for each site: that muddles consent, muddles reporting and means a mistake on one site is visible to subscribers of another. Each site should have its own contacts, its own lists, its own forms, its own automations, its own sending domain and its own team seats, while the plan and the money sit above all of them.&lt;/p&gt;
&lt;p&gt;That is what a SendBeam &lt;strong&gt;account&lt;/strong&gt; and its &lt;strong&gt;workspaces&lt;/strong&gt; are. The account is the billed unit. Workspaces are the sites. Contacts and monthly emails pool across the account, so a site with 300 subscribers and a site with 3,000 share one allowance instead of each buying its own.&lt;/p&gt;
&lt;h2 id=&quot;the-decisions-that-followed&quot;&gt;The decisions that followed&lt;/h2&gt;
&lt;p&gt;Once you commit to that shape, a number of product decisions make themselves.&lt;/p&gt;
&lt;h3 id=&quot;pooled-plans-priced-by-contacts-and-never-by-domain&quot;&gt;Pooled plans, priced by contacts and never by domain&lt;/h3&gt;
&lt;p&gt;There are four plans: Free at $0, Starter at $9, Pro at $29 and Business at $79 a month. They are priced on total contacts across the account (500, 2,500, 10,000 and 50,000) and monthly emails (2,000, 15,000, 60,000 and 250,000). Free is two workspaces, Starter is five, and Pro and Business have no limit on workspaces. Adding a site never adds to the bill; only growing your audience does. The full table is on the &lt;a href=&quot;/pricing&quot;&gt;pricing page&lt;/a&gt;, and we do not intend to add a per-domain or per-workspace charge later.&lt;/p&gt;
&lt;h3 id=&quot;one-workspace-per-site-and-separation-on-purpose&quot;&gt;One workspace per site, and separation on purpose&lt;/h3&gt;
&lt;p&gt;A workspace is a hard boundary. Its contacts, suppression list, forms and domains belong to it alone. The obvious question is whether unsubscribes should sync across workspaces, and our answer is no: someone who unsubscribes from the house-price newsletter has not unsubscribed from the salary newsletter, because those are two different consents given on two different sites. Treating them as one would be wrong in law and rude in practice.&lt;/p&gt;
&lt;p&gt;We should be equally clear about what that means in the other direction. A hard bounce recorded in one workspace does not currently suppress the same address in your other workspaces. That is a gap we know about and may close with an account-wide bounce list that you can switch on; complaints and unsubscribes will stay per site.&lt;/p&gt;
&lt;h3 id=&quot;delivery-that-is-managed-not-configured&quot;&gt;Delivery that is managed, not configured&lt;/h3&gt;
&lt;p&gt;You do not connect a delivery provider or paste an API key. Every workspace can send immediately from a shared platform address, and when you add your own domain, SendBeam shows you the CNAME records for DKIM signing and an aligned return path. If your DNS is on Cloudflare, it writes them for you from a one-time token. Bounces and complaints are handled automatically, every campaign and automation email carries an RFC 8058 one-click unsubscribe header, and there are guardrails that warn and then pause sending if complaint or bounce rates climb, so a bad import cannot quietly ruin the reputation of your other sites. The details are in &lt;a href=&quot;/blog/one-click-unsubscribe-google-yahoo-2026&quot;&gt;the deliverability post&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;forms-that-do-the-two-jobs-small-sites-actually-need&quot;&gt;Forms that do the two jobs small sites actually need&lt;/h3&gt;
&lt;p&gt;Two kinds of form: a signup form that creates a contact, with double opt-in available per list and compulsory on the Free plan, and a contact form that emails you the message with the visitor as reply-to and never creates a contact. Filling in a contact form is not subscribing, and the product should not pretend otherwise. Both kinds have an origin allow-list, rate limits and optional Cloudflare Turnstile.&lt;/p&gt;
&lt;h3 id=&quot;an-api-and-a-scheduler-because-newsletters-from-data-are-normal&quot;&gt;An API and a scheduler, because newsletters from data are normal&lt;/h3&gt;
&lt;p&gt;Reads and writes through the API are on every plan; writes are metered per hour rather than gated. That is what lets a script assemble this week’s issue from live data and hand it to a template. There is nothing special about our five sites here. If you publish anything that changes weekly, you can do the same.&lt;/p&gt;
&lt;h3 id=&quot;move-in-because-the-hardest-part-is-leaving&quot;&gt;Move-in, because the hardest part is leaving&lt;/h3&gt;
&lt;p&gt;Most people who want this shape already have email running somewhere else, often in several places. &lt;a href=&quot;/move-in&quot;&gt;Move-in&lt;/a&gt; is a migration service: suppressions go across first, then subscribers with whatever consent evidence your old platform kept, then forms and domains, then a parallel run, and unsubscribes on the old platform are synced for 30 days after cutover. It is included on Pro and Business. Contacts with no consent evidence at all are left out rather than emailed, and you are told who they were.&lt;/p&gt;
&lt;h2 id=&quot;what-sendbeam-does-not-do&quot;&gt;What SendBeam does not do&lt;/h2&gt;
&lt;p&gt;Positioning is as much about what you leave out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No ad network.&lt;/strong&gt; We do not sell ads into your newsletter or take a cut of sponsorships.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No paid subscriptions.&lt;/strong&gt; There is no built-in paywall or reader billing. If your newsletter is the product and you want to charge for it, Substack or beehiiv will serve you better, and we say so on the &lt;a href=&quot;/alternatives&quot;&gt;alternatives pages&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No SMS.&lt;/strong&gt; Email only.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No website hosting or landing-page builder.&lt;/strong&gt; You bring the site; we handle the email.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No bring-your-own delivery keys.&lt;/strong&gt; Delivery is platform-managed for everyone, which is how the guardrails and the deliverability defaults can be guaranteed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If any of those is essential to you, we are the wrong choice, and it is better to know that now than after a migration.&lt;/p&gt;
&lt;h2 id=&quot;what-this-blog-is-for&quot;&gt;What this blog is for&lt;/h2&gt;
&lt;p&gt;We are going to write about running email for small sites, honestly. That means the actual prices other platforms charge, checked on a stated date; what the mailbox providers now require and how to see whether you meet it; what UK law says about consent and about changing provider; and what we learn from sending three data-driven newsletters a week from our own sites. It will not become a list of subject-line tips.&lt;/p&gt;
&lt;p&gt;If you run more than one site and email has been the thing you keep putting off, the &lt;a href=&quot;/signup&quot;&gt;Free plan&lt;/a&gt; covers 500 contacts and two workspaces, and Starter gives you five workspaces for $9 a month. Start with the site that most needs it.&lt;/p&gt;
</content:encoded><category>Multi-site</category><category>Product</category><category>Pricing</category><category>Migration</category><author>SendBeam team</author></item></channel></rss>