Having trouble viewing this website?
Your welcome journey is probably skipping people. Hi.
Reply
From:Henry Wiygul · Lifecycle & email systems <henrywiygul@gmail.com> To:Someone whose email program deserves better Segment:unsegmented Goal:One reply

Hi %%first_name | default:"there"%%,

This website is built like an email, because that's what I do all day.

600 pixels wide. Web-safe fonts. Bulletproof buttons. I've been doing email for eight years. These days that's less about making templates survive Outlook (I still do that, don't worry) and more about figuring out why a program isn't doing what everyone thinks it's doing.

Pick whichever one sounds like you and I'll put the stuff you care about first.

Journeys quietly stop doing their job way more often than people think, and it can take months before anyone notices. Usually a segment is dropping people, or something changed upstream and nobody told the ESP.

I dig through your setup, find what's broken, and fix it. And I can set up reporting so you catch the next one early. After that, we can talk about making it better.

Hey, thanks for stopping by. Short version: eight years in email and CRM, and these days my focus is lifecycle. I design and build journeys, segmentation, and personalization, and I'm usually the one who figures out why a program isn't working.

Most of my recent work is with DTC, health, and fintech brands mostly on Iterable, plus 6+ years of SFMC. I moved the lifecycle work to the top for you.

You sell the design system, I make it real in your client's ESP. Send me an approved Figma (approved meaning I've looked at it and poked holes in it) and you'll have a full template system in two weeks. QA'd and documented well enough that the client's team can run it on their own.

I've been the agency's dev on plenty of client calls. I'm good at making you look good, and your client never has to learn what a ghost table is.

Your ESP is probably fine. Your templates are the problem. I build modular systems your team can put together without touching code. Dark-mode tested and pretty hard to break, on purpose.

The goal is you stop filing a ticket every time someone wants to move a button.

Fair enough. I build email design systems and lifecycle journeys, and I fix programs that aren't doing what they're supposed to. Scroll on. It's a short email, I promise.

Stuff I get hired to do

Lifecycle audits & repair. I go through your ESP and find what's broken or quietly leaking. Usually it's a segment, a trigger, or data that changed somewhere upstream. You get a plain-English writeup and a fix plan, and I'll do the fixes if you want. One of these turned into a 12-week roadmap and a whole new project, so fair warning.

Journeys & personalization. Onboarding, retention, winback, abandon cart. Built right, with logic the next person can actually follow and a way to tell if it's working. I also write the personalization logic nobody else wants to touch.

Email design systems. Modular templates from Figma to your ESP, built for whoever's actually going to use them, whether that's developers or a team that's never seen HTML. Two weeks from an approved Figma.

Consulting & enablement. Platform decisions, QA processes, team training. The stuff that keeps your program from turning into spaghetti six months from now.

Selected work

Eight projects. Different platforms, different problems. The kind of work I want more of.

<!-- module: persona_routing / Iterable + JustAI -->

Better Mortgage: Four personas, one control group

Better's refinance journeys needed to talk differently to investors, cash-out borrowers, and rate-and-term borrowers. JustAI (an AI content-testing tool) picks the right version for each lead at send time, and 20% of people get the default copy so we can actually measure whether the personalization is doing anything. If JustAI ever fails, Iterable sends the default. Nobody gets a broken email.

Against the 20% control group, the abandoned pre-approval journey is projected at +260% rate locks. (The other journey lost on rate locks. Good thing we had a control group.)
IterableJustAIPersonalizationTesting
<!-- module: silent_failure / Iterable + Salesforce -->

Health insurer: The journey that quietly stopped

Iterable instance, zero documentation: 35 journeys, 46 lists, and 156 profile fields. I audited all of it. The big find was that new members weren't getting their onboarding emails. One trigger compared a date to the current minute (it will never match), and a Salesforce field change was never backfilled, so people were silently falling out of segments. I fixed both, backfilled the members we'd missed, and added direct mail for people who didn't open.

Members back in their onboarding, plus monthly reporting that catches this kind of thing early.
IterableSalesforceDirect mailAudit
<!-- module: no_feed_needed / Iterable + Handlebars -->

Prose: Personalization without the data feed

Prose's welcome emails were all images. The plan was to tell each customer what's in their custom haircare or skincare formula and why it matters, powered by a new data feed. The feed wasn't going to be ready in time. So I wrote the personalization in Handlebars using the data we already had: ingredients, goals, hair or skin type, even local humidity and pollution. All of it lives behind drag-and-drop rows the team can still edit.

Unsubscribes down 58% for haircare and 76% for skincare vs. the old journeys.
IterableHandlebarsEmail + SMS
<!-- module: race_condition / Klaviyo + Shopify -->

Medical apparel brand: The discount code that showed up after checkout

I came in to rebuild their Klaviyo abandon cart flow, with new SMS split tests and separate paths for people who had and hadn't opted into texts. Then a customer got an abandon cart email, 15% off code included, one minute after placing a $96 order. I traced it: they'd added to cart 11 times in 27 minutes, the flow's delay ran out right as they started checkout, and Shopify's order data hadn't landed yet when Klaviyo checked whether they'd bought. The same digging turned up two add-to-cart trackers firing on the same people, which is how their sister brand ended up double-sending.

Both problems traced to a root cause, and a full platform audit and playbook underway so the next person in the account knows how it all fits together.
KlaviyoShopifySMSDiagnostics
<!-- module: self_serve / Cordial -->

Nanit: Built past the ask

Nanit's marketing team needed to build their own emails without a developer. I built them a 30+ module system with sections that hide when they're empty, mobile image swaps, repeatable blocks, and tokens for every color, link, and image.

A team with no HTML background builds and sends its own campaigns.
CordialDesign systemSelf-serve
<!-- module: cio_benchmark / Customer.io -->

Acely: 3.3x on the highest-volume flow

Customer.io's Design Studio has more range than most builders, so I built Acely's system around what it does well and only dipped into raw HTML where the editor gave up (like mixing two typefaces in one line). I delivered their marketing team a master template to keep emails on brand without ballooning timelines.

Higher click-to-open than their old Klaviyo templates in 6 of 9 flows.
Customer.ioDesign systemBenchmarking
<!-- module: brand_scale / SFMC -->

Purina: From 4 brands to 30+

Joined as the only developer on the account. First real test was a full email program for a smart litter box launch: only six weeks and the hardware was shipping whether we were ready or not. We were. Then the account kept growing, and so did the team.

4 to 30+ brands (50+ sub-accounts) in about 18 months.
SFMCLaunchTeam lead
<!-- module: ampscript_fractions / SFMC -->

Purina: Messy data in, correct email out

A feeding guide email built on pet and food data that couldn't be validated in time. So the cleanup went into the AMPscript itself: decimals turned into real fractions with matching images, grammar for names and quantities, and a layout that adapts to whatever fields actually showed up.

One build, used across almost every brand on the account. Three years and counting.
SFMCAMPscriptDynamic content

Platforms

Where I've built, and how honest I'm being about each.

IterableMy main one right now. Journeys, Handlebars personalization, drag-and-drop systems, third-party integrations.
SFMC6+ years. Content Builder systems, Journey Builder, AMPscript, CloudPages. Multi-brand at enterprise scale.
KlaviyoFlows, SMS split tests, Shopify triggers, template systems.
Customer.ioDesign Studio systems, with raw HTML wherever the editor taps out.
CordialSculpt systems with deep tokenization for teams that don't code.
Emarsys1 year. Implementation and automations.
BrazeCertified Practitioner. Built the base template for a planned SFMC-to-Braze migration.
HTML8 years, every inbox quirk. VML, ghost tables, conditional CSS, dark mode in Gmail, Apple Mail, Yahoo, and Outlook. Kinetic when the client can handle it.

Email is a craft of working inside ugly constraints.

By day I run email development at an agency. The rest of the time I do lifecycle and email work for brands and agencies that want it done right the first time.

Honestly, my favorite part isn't the build anymore. It's the detective work: finding the one filter that's been quietly breaking everything. I'm in Dallas and easy to work with. If I'm not the right person for your project, I'll tell you.

Tell me what you're working in and what's breaking.

Henry Wiygul
Henry Wiygul Lifecycle & email systems · Dallas, TX
You're receiving this website because you typed the URL, clicked a link,
or a marketer you trust forwarded it to you.
 ·   ·  LinkedIn
© 2026 Henry Wiygul · Dallas, TX
This footer is CAN-SPAM compliant out of habit.