As Product Manager at a B2B supplier to critical infrastructure, I owned the roadmap for a team of 5 and single-handedly led the customer automation program across conversion and retention, which lifted customer engagement and retention by 26%.
Role
UX Engineer / Product Manager
Team
1 designer, 1 developer, 1 content creator
Timeline
Oct 2024 to Sep 2026
Tools
NetSuite (Oracle), SuiteScript (User Event & Scheduled Scripts), Monday.com, Figma, OpenAI Codex
customer engagement and retention
to design and code a campaign's templates, using AI
audience interaction (open, click, and response rates)
Dollar amounts and figures on this page have been altered for non-disclosure purposes. Percentages reflect actual results.
This case study goes deep on the reorder reminder series. The rest of the system it belongs to is listed below it. The customer journeys (trade-show and event, lead-to-customer, and ISD school budget) have their own page.
Also part of the system
Competitive Choice is a B2B distributor of facility maintenance and construction supplies for critical infrastructure. Customers bought, and then heard little from us until they needed to buy again.
Sales reps had reached capacity and couldn't follow up with every customer, so keeping that communication going fell to marketing. The goal was to digitize that follow-up in each sales rep's own pitch and tone, so we could reach more customers and leads.
Post-purchase communication had gaps, messaging across web and other channels was inconsistent, and the team had no shared picture of who our customers actually were.
Before
Marketing had no formal process for following up with customers after a purchase. Open quotes and quote requests were handled manually, so the wording, timing, and frequency of follow-up varied from account to account.
How do we stay relevant to a customer between purchases, at scale, without adding headcount?
Reorders first. I audited our customer communications and found gaps at several stages. I prioritized reorder reminders first because the company's goal for the year was to grow revenue.
Ship, learn, then version. Version 1 launched with limited requirements, so the series ran with no end date. Before it shipped, I had already planned version 2: after about 2 months live, the campaign data would give me its requirements. The series has 4 emails that cover the 4 components of the journey map: touchpoints > customer sentiment > pain point > call to action.
Trade-off: ship now, measure later
Stakeholders wanted campaign stats built into version 1, but that would have put the ship date at risk. I explained that stats could wait for version 2: adding those requirements would cost about a month, and we had already gone too long without talking to our customers. By shipping first, the automation was reaching customers during that month, and version 2 would have real data to build on.
Version 1 · Shipped
Version 2 · Live
Version 3 · Planned
What version 2 showed · reorder series for one major customer, weekly sends from Aug 18 to Oct 6, 2026
The largest reminder cycle reached 142 customers on Sep 8. A month later only 6 still needed a reminder, so 136 of 142 had reordered and dropped out of the series automatically.
When this happened: I skipped persona research for versions 1 and 2 so the automation could start reaching customers quickly. Those versions targeted customers by purchase behavior. Persona work started with version 3.
I partnered with customer enablement, sales, and executive stakeholders to plan and run quantitative research. We built data-driven personas segmented by level of government (which determines the budget cycle and opportunities), entity, sector, department, and sub-department. This mirrors our marketing audience segments.
For version 3, a teammate helped me collect data on individual contacts into a spreadsheet: 30+ data points per person, including title, decision-making role, tech-savviness, industry, and career background. From that spreadsheet, I grouped the contacts into personas. That level of detail is what lets version 3 tailor content: a facilities or custodial buyer and a program director get different messages at different moments.
That depth also shaped the content itself. Each persona had its own verbiage, images, and offers, so an email read as if it were written for that reader.
In addition to the audience segments, I created a structure for subscription types and their subcategories.
General
Segmented
Operation & transaction
Decision maker Influencer End user
By the time I left, every campaign and communication used these 3 personas. I met with sales reps and the customer enablement team to verify purchase behavior and communication channels: who places the order, who decides to place it, and who requests it.
After mapping the journey from qualified lead to repeat buyer, I found gaps at every stage: leads and open quotes depended on timely follow-up, and customers went quiet after buying because nothing reached them at the right moment. I designed a set of behavior-triggered automations in NetSuite (Oracle) that react to each customer's stage and behavior, as part of our omni-channel acquisition, conversion, and retention strategy.
My role: sole owner, end to end
I met with stakeholders to define the requirements, wrote the NetSuite scripts, and designed and coded the email templates myself.
Safe releases
Before any script went to production, I ran QA and a code review with a developer and stakeholders in a Sandbox environment, to make sure it would not trigger unwanted communication to customers.
Built on the data model: NetSuite saved searches over transaction, customer, and contact records, plus workflows and custom scripts, select customers by stage and purchase behavior. Persona segments are added in version 3.
AI-accelerated delivery, 3 days to 6 hours: I used OpenAI Codex to design and code responsive templates that render correctly in Outlook, which research showed most of our customers use. AI cut the design and build time for each campaign from 3 business days to 6 hours.
AI-assisted build: I used OpenAI Codex to script functions and workflows, so I could build and ship the automation myself without waiting on engineering.
Measured and tuned: I defined engagement KPIs (open rate, click rate, response rate) and iterated on content and messaging, lifting audience interaction 25 to 34%.
One voice across channels: messaging was aligned between email, customer enablement, and sales reps, so customers had a consistent experience wherever they met the brand.
Reorder reminders: in the largest cycle, 136 of 142 customers (96%) reordered within a month and dropped out of the series. The first send opened at 60% with a 20% reply rate.
AI-assisted templates: design and coding time per campaign dropped from 3 business days to 6 hours.
These 3 accounts are large companies, and each one splits the purchase across different people: those who make the decision, those who influence it, those who place the order, and the end users. One generic series could not speak to all of those roles, so I built a dedicated version for each account, branched from the main logic. That was what it took for those customer journeys to meet their KPIs.
Sales reps track how many leads convert to prospects and then to customers, how long it takes to reach closed-won, and how many sales orders each account places per purchasing cycle. I measured the automation against those same numbers: 96% of customers in the largest reorder cycle placed a new order within a month. That way the automation was judged on their goals, not just engagement metrics.
I led the definition and rollout of a centralized design system and treated it as a product, not a style guide. It cut design inconsistencies by 30% and shortened delivery timelines.
+26% customer engagement and retention, driven by prioritized research insights
3 business days to 6 hours to design and code a campaign's templates, using AI (OpenAI Codex)
+25 to 34% audience interaction, measured on open, click, and response rates
30% fewer design inconsistencies, with faster delivery
A team that runs itself: Scrum cadence, code reviews, and stakeholder training on UX best practices. I also hired designers and ran monthly 1:1 coaching and design reviews.
The biggest lesson was that automation is only as good as the structure and data behind it. I shipped versions 1 and 2 on purchase behavior alone so the automation could start reaching customers quickly, and version 2's numbers, including a 14% bounce rate, showed me that clean contact data and personas had to come next. Next, I would use the subscription and segmentation structure to make every journey more personalized.
See also
Customer Journeys: the trade-show and event journey, lead-to-customer journeys, and the ISD school budget journey.