Sending through Mailchimp, Iterable, Braze and other services
Edit in CMSYou can create and edit newsletters in Letterhead while sending them through the email service you already use, such as Iterable, Mailchimp or Braze. Letterhead is the editor and your email service stays the sender, so you don’t have to move your audience, your sending setup or your existing workflows.
Iterable, Mailchimp and Braze each have a section below. Letterhead connects to other services as well, including SendGrid, Constant Contact and Sailthru. The Sending settings page always shows the services available to your account, with a comparison of what each one supports, so check there rather than relying on a list in this article. You can connect more than one service at a time and assign different connections to different newsletters.
Jump to: Iterable · Mailchimp · Braze · Other services · Personalized images and links · What works differently
Connect a sending service
Section titled “Connect a sending service”Go to Settings → Sending at the company level. If your company has no connections yet, pick a service from the cards on the page; once you have one, choose + Add connection at the top right and pick the service in the panel that slides in. Connecting a service is usually a company administrator’s job. Every connection walks through the same steps: enter the service’s credentials, select the Letterhead newsletters that will use the connection, then choose the audience each newsletter sends to.
Once the connection is saved, Letterhead sends those newsletters through that service. Sending and deliverability are then managed by the service.
Moving a newsletter from one company-level connection to another doesn’t switch anything off. It only changes which connection sends its newsletters from then on. Existing templates and automations stay as they are, and any newsletter you’ve already scheduled keeps its scheduled time.
Find a connection when you have many
Section titled “Find a connection when you have many”The Sending page lists every connection as a card. Each card shows the connection’s name and service, names the newsletters it sends (or says none are assigned), and is marked Disabled when the connection is switched off. If you run one connection per brand, that list gets long fast, so you don’t have to scan it by eye:
- Search. The search box at the top matches a connection’s name, its service, or the name of any newsletter it sends. If you know which newsletter you want to change but not which connection sends it, type the newsletter’s name.
- Filter. Open Filters to narrow the list to one service, or to just your Active or Disabled connections. Each shows how many connections it holds. While a search or filter is on, a line above the cards says how many you’re seeing out of the total, with a link to clear them.
- Open a connection. Click a card and its settings slide in from the right, over the list. Close the panel and you’re back where you were, with your search and filters still in place. While it’s open, the page’s web address points at that connection, so you can reload the page or send the link to a teammate and it opens on the same connection.
- Rename, disable, or delete. Each card has a ⋮ menu with Rename, Disable (or Enable), and Delete. The same menu sits at the top of an open connection.
Iterable
Section titled “Iterable”Connect Iterable
Section titled “Connect Iterable”Set these once on the connection:
- API Key (required) and API Region
- Sender Name and Reply Address
- From Address (optional). It must be on a domain verified in Iterable; leave it blank to use the reply address. This lets the sender address differ from your reply address, for example a brand or no-reply address while replies go to a monitored inbox.
- Unsubscribe Tag, an extra field for deeper Iterable setups
Then, for each newsletter, choose its audience list and set a Subscription Channel, a Message Type ID, and any Data Feed IDs.
If a Message Type ID isn’t valid in Iterable
Section titled “If a Message Type ID isn’t valid in Iterable”The Message Type ID you give a newsletter has to match a message type that exists in the Iterable project the connection sends from. If it doesn’t, Iterable refuses to sync the newsletter, and because that only happens later, at preview or send time, a wrong ID would sit there looking perfectly fine in the meantime.
So the ID is checked against your Iterable project as you save. Enter one that isn’t there (a typo, or an ID copied from a different project) and the save is refused, with the field marked and a message naming the ID, so you can fix it while you’re still looking at the screen.
Two more things are worth knowing:
- Your saved IDs are re-checked every time you open these settings. A message type that was fine when you set it up can be deleted or renumbered in Iterable later, and nothing about your newsletter would look wrong until a send failed to sync. Instead, the ID is checked again each time the page loads, and one that no longer exists in the project is flagged right under the field you set it in, so you find out while you’re in the settings rather than after a send.
- If Letterhead can’t reach Iterable when you save, your settings still save. Checking an ID means asking Iterable which message types exist, and when that question can’t be answered we’d rather save your work than block it on a check we couldn’t finish. Everything on the page goes in exactly as you set it, and the re-check above picks up a bad ID the next time we can reach Iterable. An ID Iterable does tell us is invalid is still refused, as above.
Iterable data feeds
Section titled “Iterable data feeds”Data feeds let Iterable fill in content per reader when it sends. Set a newsletter’s Data Feed IDs once in its Iterable connection settings, and every issue of that newsletter can use the feed data, with no need to reconnect the feed for each send. Depending on your plan, adding new data feeds may need an upgrade; feeds you already have keep running and stay editable.
Next to the Data Feed IDs is Merge Data Feed & User Contexts. Turn it on if your newsletters refer to data-feed content and Iterable snippet variables with {{ }}, which snippet-driven dynamic images need. Leave it off if you use [[ ]] data-feed expressions.
When you schedule a newsletter, the schedule screen shows how many people are on the Iterable list you picked. The same count appears for newsletters that are already scheduled. Counts refresh about once an hour; if one hasn’t loaded yet, you’ll see the list name with a note that the count is updating.
To use feed data in an image or its link, see Personalize images and links per reader.
Put an Iterable snippet in a newsletter
Section titled “Put an Iterable snippet in a newsletter”The Iterable snippet block drops a snippet you maintain in Iterable straight into a Letterhead newsletter. The snippet’s own HTML never passes through Letterhead (Iterable fills it in at send time), so the content stays yours to change in Iterable without reopening the newsletter. That’s also why a snippet block can’t carry a device or audience condition.
Open the block’s settings and give it the name of the snippet you want.
Instead of typing that name from memory, you pick it from a list of the snippets that actually exist in the Iterable project the newsletter sends from. The list is searchable, so the exact spelling is one thing less to keep track of. And saving a name that isn’t in that list is refused on the spot with an error, rather than quietly going out as an empty block.
Three things worth knowing:
- If a snippet is renamed or deleted in Iterable, a newsletter that already used it keeps the name it was built with, and the settings tell you that name is no longer in the connected project. Nothing is rewritten behind your back: you decide what goes there instead, and you find out while you’re editing rather than after a send.
- If there’s no list to show you (usually because the newsletter’s channel has no connected Iterable project, or the project has no snippets yet), the block falls back to a name you type in, so you’re never left without a way to set one. There’s nothing to check it against in that case, so whatever you type is saved as it stands.
- If Letterhead can’t reach Iterable when you save, your newsletter still saves, with the name exactly as you set it.
Between them, those last two are how a snippet that isn’t there can still get through. If a block comes back empty in a test send and you’re confident the name is right, re-open the block’s settings, check the snippet is listed, and save again.
Mailchimp
Section titled “Mailchimp”All four fields are required, and you can’t save the connection until each one is filled in:
- Prefix: your Mailchimp server prefix, visible in the URL when you’re logged in to Mailchimp
- API Key
- List Id: the Mailchimp audience this connection works with. It’s the list Letterhead reads your contacts and engagement from, so choose the one your newsletter subscribers live in.
- Reply-to email address
For each newsletter, you then choose which parts of that audience it sends to. The options are the saved segments and interest groups inside the list you entered above, so set those up in Mailchimp first if you want to send to anything narrower than the whole audience. You can also apply the same selection to every newsletter at once.
When you come back to edit a saved Mailchimp connection, the API key is masked and can’t be changed in place; the other fields stay editable.
This is the only place Mailchimp is set up. The same connection is what pulls your Mailchimp contacts into Letterhead, so there’s nothing separate to configure for that. See Syncing contacts from HubSpot, Salesforce or Mailchimp for what that sync does once the connection exists.
Braze connects at the company level, like the other services. The connection takes five steps:
- Connect to Braze. Enter your API Key and API URL, and the sender details. From Email is required and must be an address Braze has sending configuration for (find it in Braze under Settings → Sending Configuration → Outbound Email Settings), because Braze won’t send from a newsletter’s own address. From Name is optional.
- Choose the newsletters that will use this connection.
- Choose the Braze campaign this connection sends through. Every newsletter on the connection uses it, and Letterhead fills in the campaign’s email variation for you. Pick an API-triggered campaign: Braze doesn’t report opens or clicks for newsletters sent through any other kind, so they would show 0%, though sending still works. You’ll also need the campaign’s App Identifier, from Braze → Settings → API Settings → App Identifiers.
- Choose each newsletter’s audience: the Braze Subscription Group it sends to. This is optional per newsletter. Leave it blank and pick a Braze segment when you schedule instead; without one or the other, Braze has no one to send to.
- Optionally, refine sends with segments, to send to part of a newsletter’s subscribers.
When a newsletter sends through Braze, the composer works with what Braze knows about your readers:
- Personalization. Insert reader details using the custom fields from your Braze workspace.
- Conditional content. Show or hide a block based on what Braze knows about each reader.
- Segments. When you schedule, the segments in your Braze workspace appear, so you can send an issue to one segment instead of your whole audience.
- Content Blocks. Add a Content Block from your Braze workspace, such as a legal disclaimer, footer or sponsor slot. Pick it by name from a list and preview it in the newsletter while you write. Braze inserts the block when it sends, so changes you make to it in Braze reach your readers without reopening the newsletter.
Other services
Section titled “Other services”SendGrid, Constant Contact, Sailthru and the other services on the Sending page connect the same way: pick the service, enter its credentials, choose the newsletters, then each newsletter’s audience. The fields each one asks for are on its setup screen, and the Compare all providers view shows what each supports. Not every service is available on every account.
Build newsletters as usual
Section titled “Build newsletters as usual”The full Letterhead editor still works: drag-and-drop blocks, custom templates, saved blocks, previews and test sends, all inside Letterhead, even though the email goes out through another service. If you have several services connected, you can choose which one a template sends through.
Personalize images and links per reader
Section titled “Personalize images and links per reader”You can set an image block to use an expression instead of a fixed image, so each reader sees a different image, and is sent to a different link, at send time.
- Add an image to the block as usual. It’s what you’ll see in the editor, for layout.
- In the block’s settings, turn on Use a dynamic URL from a data feed.
- Fill in Dynamic Image URL with an expression, for example an Iterable data-feed expression such as
[[trending.[0].image]]. You can also set Dynamic Alt Text, and Dynamic Link URL for where the image links. - Send. Your sending service fills in each expression per reader. The image you uploaded is only the editor preview; the dynamic values replace it in the sent email.
Letterhead passes these expressions to your sending service exactly as you write them, so use the syntax that service understands, and set up the data it reads (for Iterable, the newsletter’s data feeds) before you send. If you leave alt text blank, the block’s normal alt text is used.
Feed expressions insert values as plain text by default, so an ampersand or angle bracket in the value appears as that character. If a value is already written as HTML and you want it inserted exactly as is, write the tag in three braces instead of two: {{{ url }}}. Use this only for values you control, since everything in it reaches the reader as live HTML.
Some ideas: product recommendations, regional images that link to a local page, or an account-specific graphic that links to the reader’s own account page. These are audience data feeds, different from the RSS content feeds that fill your Curations library.
What works differently when another service sends
Section titled “What works differently when another service sends”Your audience
Section titled “Your audience”- The channel’s Audience area in Letterhead is hidden.
- Subscriber data stays in your email service, so make audience changes there.
- Each newsletter sends to the audience you assigned in the connection settings.
Letterhead still reads engagement from Mailchimp and Iterable to power its segment and cohort features at the company level.
Metrics
Section titled “Metrics”For newsletters sent through Iterable or Mailchimp, Letterhead captures per-send opens, clicks, bounces and unsubscribes, plus a per-link click breakdown, refreshed every hour. Delivered and accepted counts are only available when Letterhead sends. For anything deeper, such as audience-level analytics and deliverability reporting, use your email service’s own reports.
Features that need Letterhead’s own sending
Section titled “Features that need Letterhead’s own sending”- Managing a channel’s audience in Letterhead
- A/B testing subject lines
- Delivered and accepted metrics
Is sending through another service right for you?
Section titled “Is sending through another service right for you?”- Send with Letterhead for full access to audience tools, A/B testing and delivery metrics inside Letterhead.
- Send through your own service if you already rely on one and want to keep that setup while designing newsletters in Letterhead.
For everything the editor can do, see Working in Campaigns. If something here doesn’t behave as described, contact support.
Still can’t find what you need? Contact support.