
AI for DTC marketers. Selling online since 1999. Co-host of AI DTC WTF with @andrewfoxwell. Moen & Co, Oslo.
Oslo, Norway
Joined August 2007
- Tweets42.9K
- Following2.3K
- Followers11.2K
- Likes4.2K
Pinned Tweet
I've been selling online since 1999. Now I test AI on real DTC marketing every week.
3 things that actually work for me:
1. Let AI interview you before a big decision.
2. Give it your best emails first, then ask for plain language.
3. If your store converts below 1%, fix the store before buying traffic.
More on AI DTC WTF with @andrewfoxwell.
Thomas Moen retweeted
it might sound woo woo, but radiating positive energy is the closest thing to magic i've found. tip generously, compliment strangers, share your knowledge with no expectation of anything in return. give like you have more than enough, and eventually you’ll find that you do.
Thomas Moen retweeted
Weekend goal: get this over the line 👀
473.5K / 500K verified home timeline impressions.
Apparently, tinkering with Omarchy and publicly losing my mind over an iPad is something people want to watch 😅
26.5K to go. Plenty left to break.
Governance sounds like an enterprise word, but small teams need it more. With no compliance department, the guardrail is whatever you set up yourself: named agents, clear scopes and a log of who changed what.
Anthropic and India's HCLTech announced a partnership on October 12 focused on enterprise adoption of agentic AI.
the important question for businesses isn't only what AI agents can do.
it's how teams deploy them securely, govern their actions, and know when they fail.
enterprise AI needs trust as much as capability.
Good one. This is also the kind of check I'd hand to an agent every week: find everyone holding an unused code and flag the flows that never remind them.
I’ve worked with over 500 businesses on their email and SMS marketing.
These are the 3 Klaviyo fixes I’d make first in any account. Each one takes about 10 minutes.
They all come back to one idea:
Your non-buyers already have a discount code. They just haven’t used it yet.
So keep reminding them.
Split every campaign into buyers and non-buyers
Create two segments: 120-day engaged buyers and 120-day engaged non-buyers.
Send a different version of every campaign to each one. Non-buyers get the welcome discount. Buyers don’t.
You’ll usually see revenue split roughly 80/20. About 80% comes from buyers and about 20% from non-buyers.
That 20% is the number I watch. It tells you if your email marketing is actually turning subscribers into first-time customers.
Put a conditional split at the top of every flow
“Placed Order zero times over all time.”
Never ordered → every email includes the welcome discount.
Already ordered → no discount.
Bonus: in your abandoned cart, checkout and browse flows, split again based on the product they were looking at. Emails about the exact item they left behind convert better.
Build a sign-up form for people who’ve already signed up
Create a segment of people who are subscribed but haven’t purchased.
Then show them a flyout that reminds them of the discount they already have.
Bonus: make the button an auto-apply link, so the code is already applied at checkout.
Do all three this week. Then check how much revenue your non-buyer segment brings in next month.
Context is the real asset in an agent setup, not the model. Keep it in plain files every agent can read and write, and switching tools stops meaning starting over.
One thing that gets frustrating when using multiple AI tools is having to explain the same context over and over again
Your project notes, past conversations and decisions end up scattered across different apps, even when they’re all part of the same workflow
That’s what Ditto V2 is trying to solve with shared memory across AI tools. Connect Claude, Claude Code, Cursor, Codex, Grok and other MCP clients, then bring in previous conversations or notes from ChatGPT, Claude, Notion and Obsidian so useful context can carry over between tools
You can control what each message is allowed to access and export your memory through Memory Passport as a signed file that others can verify
Getting started requires no payment card, and new accounts receive $1 in credit. Connect GitHub or Google Workspace within the first 14 days to earn an additional $2 for each, with other eligible apps adding $1 each, up to $5 in total
Try it at heyditto.ai @heydittoai
Good test. Run it again from a few different angles: cheapest, fastest delivery, best for a gift. If you only show up on one of them, your product data is the problem, not your brand.
Cliffhangers buy you the scroll-stop, not the sale. If the drama doesn't land on the product and the offer within the first few seconds, you're paying for entertainment. Test the hook format, but judge it on cost per purchase, not watch time.
the hidden format behind +780% ROAS in 3 weeks for Meta Ads:
china as always figured it out first
95% of new short-dramas in China are already made with AI
in 6 months, every ad in your feed will be a short drama
nobody scrolls past cliffhanger, so stop running your UGC and put your product inside a story
the only thing that made this expensive was production: same actors every episode, real dialogue, dozens of versions to test
wan 3.0 solves that with 30-sec consistent characters.
it's unlimited on Higgsfield this week. I'd be shooting episodes rn
Drafts by default is the right call. In our setup the agent can build and pause, but budget increases and anything going ACTIVE still need a human to sign off. Let it do the grunt work, not spend the money.
Since April, Meta hosts an official MCP server for ads. OAuth, 29 tools, works from Claude or ChatGPT.
With the read/write scope, an agent can build your campaigns, flip an ad set to ACTIVE, and multiply a budget. Meta's guard is that new objects start as drafts.
The part nobody says: after the draft, it's the agent's judgment against your card. There's no brake on the two calls that move money. Activate and budget go through like any other tool call.
So I built handbrake. Hooks for Claude Code that sit between the agent and the account.
Reads pass. Pauses always pass. Creates are logged. The moment the agent tries to turn spend on or raise a budget, it stops at you, in plain words:
ACTIVATE ad set 120250187539250232: turns spend ON.
You allow or deny. Every call lands in a ledger. A final message that says "live" with no successful write behind it gets sent back.
I ran it against a real ad account this week. 16 gated calls, 8 denied, one activation I approved myself, spend 0.00.
Paste into your agent:
Install the handbrake skill from github.com/codegobrrrr9/meta…, refer to the repo's AGENTS.md.
MIT. Zero dependencies.
The agent can drive. You hold the brake.
Thomas Moen retweeted
The older I get, the more I realize that the single greatest challenge for any ambitious person is eliminating the guilt associated with free time and rest.
The last PO for Q4 is the biggest bet of the year, and most people still make it from a spreadsheet and gut feel. Forecasting from your own sell-through is one of the least glamorous and most useful jobs to give an agent.
The flip side for merchants: if agents don't care about the platform, they won't care about your brand story either. They'll compare price, stock and delivery, so get those fields right before anything else.
xitter.gq/JohnTinsmanAOT/status/…
Shopify +87% From 2026 Low $SHOP
What a incredible mid year reversal from Shopify.
Agentic AI is the bull story for Shopify, as agents will be platform agnostic (ei don't favor Amazon or Wallmart), meaning Shopify could see a meaningful amount more transactions.
Having the data was never the hard part. The hard part is acting on it with taste. That gap is exactly where a small brand with a sharp point of view can still beat the giants.
- Amazon has over 20 years of my shopping history, reviews, ratings, returns, views, everything. Yet, their landing page has zero idea about what I want. I find interesting products there only from somewhere else.
- Spotify has over decade of my music history, every songs I played, liked, skipped, put in playlist, everything. Yet, their landing page has dumbest generic unfathomably crappy recommendations.
- Netflix has over 20+ years of history of my movies and documentaries plays. I even religiously rated everything to help them out. They do have content that I would totally jump on. Yet, they completely fail at surfacing it. Every good thing on Netflix I discovered was accidentally from someone. I downgrade their sub once a year ritually after finding nothing interesting on landing page.
Moral of the story: Never underestimate big tech’s utter incompetence despite sitting on goldmine of data, army of engineers and mountain of cash.
Mostly agree, but the bottleneck just moved. When everyone can make the thing, distribution and trust are the scarce part, and AI doesn't hand you either.
Before AI:
"I want to create something, but I need capital, a good idea, writing skills, proper spelling, mathematical ability, research, fact-checking, feasibility studies, an illustrator, a video editor, a narrator, a public speaker, and a marketing team."
After AI:
"I have no money, no specialized skills, and no idea what to create. Find me a promising opportunity and help me make it happen."
And somehow, we're supposed to believe this technology exists to make the wealthy wealthier while keeping everyone else poor.
AI may be the greatest equalizer of entrepreneurial opportunity we've ever seen. Success still requires judgment, initiative, and execution, but the barriers to getting started have never been lower.
The agencies that survive will sell judgment, not hours. Shipping a landing page is cheap now. Knowing which one to ship, and when to kill it, isn't.
I'd love to know how Shopify development agencies are still in business
We've shipped more site updates, landing pages, design improvements and code optimizations in the last 3 months (with improved performance) with Claude Code than we did in our prior 5 years with a full on Shopify dev agency
Now you design something, QA it and ship it in 15-20 minutes, it used to take 5-7 business days
All you need is a banging designer
It is probably the #1 thing we've fully replaced with claude- replaced the labor and cost itself and massively improved our launch/testing abilities that let us grow faster
We can now invest more in design when needed too, or when it's a bigger project than we like doing with claude design
The part DTC brands should take from this: if agents create new buyers, your product data becomes your storefront. Clean catalog, honest specs and clear returns will matter more than another homepage redesign.
Ok, this was a goldmine of insights re: the future of commerce with agents, straight from @finkd + @alexandr_wang
24 key takeaways:
1/ Zuckerberg says agentic commerce is not a 20% conversion lift. It actually creates customers who never existed
-> He used Instacart ~2x a year on Priscilla’s account. Got his own account for Muse. Now orders 1-2x a week. "I am a new Instacart subscriber, and I just wouldn’t have done this before."
2/ Meta’s CEO just asked the scariest retail question of the decade: is the Instacart account for me, or for my Muse?
-> Over time agents effectively get accounts. TAM for commerce is no longer "number of people." Anyone who sits this out "is gonna end up feeling sad"
3/ Muse is one of the first products where people fully delegate purchases to an agent
-> Wang: agentic shopping left the slide deck. "It’s really happening." Teas, groceries, random products. Trust, not demos
4/ Zuckerberg’s Saturday baking loop is the agentic commerce demo nobody scheduled
-> Muse + daughter Aurelia invent recipes. Instacart ingredients land before bake time. Watermelon launch weekend: Muse threw a watermelon in the bag unprompted
5/ John Collison calls agentic commerce a discontinuous event for how all business pipes work
-> Demand shifts toward agents the way demand shifted from brick-and-mortar to ecommerce. Old channels stay. Their share of the pie shrinks
6/ The long-run board question for every brand: do you want a slice of agentic demand, or not?
-> Agentic commerce grows as a portion of the pie. Sitting it out is a strategy choice, not a wait-and-see default
7/ Collison told Patrick Collison in 2023 he was "way behind the eight ball" on agentic commerce
-> "Agents are gonna be buying things, and you’re not prepared for it." Directionally correct. Three years early. Stripe Sessions May announcements. Volume only went vertical as of September
8/ Stripe’s bet: agent-to-commerce is clearly how people will buy things
-> Buying-stage friction was always broken. Early AI product research already had PMF. Computer use was "the last big unlock." Ask Muse to buy almost anything and it figures it out
9/ Computer use is the ultimate backwards-compatibility layer for commerce
-> No need for every merchant to rebuild for agents first. The agent can operate the old web. Nat obsessed over this set of problems at Meta
10/ Muse’s commerce value prop is not "better ads." It is deleted research tabs
-> No clicking 12 sites. Criteria auto-apply: "I need it by Wednesday" and the agent only shops what can arrive by Wednesday. Keyword search was insane by comparison
11/ Wang’s Euler Muse already runs a weekly obscure-tea procurement desk
-> Farms in Taiwan and Japan. Sourced and delivered. Personal agent as buyer, not chatbot
12/ Zuck’s consumer thesis kills the search-box internet for a big share of demand
-> Most people don’t actually like reading that much. Text is tolerated. Glasses + vision + voice become the buy surface. Maybe no app store. Generate the purchase path in your field of view
13/ Meta rejected "coding is all that matters" because consumer agents live in multimodal reality
-> People film, watch, listen, talk. Commerce agents that only read docs lose the real world where buying happens
14/ Dedicated VM per agent is a commerce prerequisite, not a security nice-to-have
-> Nobody hands an agent a credit card on shared elastic compute. Privacy has to feel real before delegated checkout scales
15/ Meta AI still reaches "a ton of people" and Zuck still calls it retrieval, not delegation
-> Chat that answers is not commerce. Commerce starts when the agent gets stuff done and spends
16/ "Everyone is going to write tons of code. They’re just not going to know they’re writing code"
-> Same pattern for checkout flows, vendor research, returns, reorders. The user stays in the intent. The agent ships the pipeline
17/ Stripe × Muse integration already works well enough that Collison called it out on air
-> Coding agents + commerce rails. Developer path and consumer path converging on the same buy graph
18/ OpenRouter already routes 10T+ tokens a day across hundreds of models
-> Model gateway becomes part of the commerce stack: price route, outage route, experiment route. Stripe agreed to acquire it in the same arc
19/ After SFT, desired agent behaviors only fire ~10% of the time. RL is what makes a buyer reliable
-> A shopping agent that follows "by Wednesday / under $40 / organic only" 10% of the time is a toy. Elicitation is the product
20/ Product obsession math still applies at checkout: each nuance may be ~2% to the user
-> In aggregate that is why one agent becomes the default buyer and another gets uninstalled after one bad order
21/ Active memory is a commerce moat
-> Remember dietary rules, kid allergies, preferred farms, last bad SKU, standing Saturday bake. OpenClaw-style compaction that goes buggy AF cannot be your household buyer
22/ Brands that only optimize human conversion rate are solving last cycle’s problem
-> Zuck’s line: opportunity is not "20% more efficient on the conversion rate." Opportunity is net-new subscribers created by agent workflows
23/ The unit of demand is shifting from a person with a browser to a person with an agent that has accounts
-> TAM expands because agents shop while humans sleep, train, parent, and work. Frequency jumps (2x/year → 1-2x/week) before price sensitivity even moves
24/ Closing frame from the pint, applied to retail
-> Stay technical on agent checkout. Stay in the details of trust, memory, criteria, and delivery constraints. Stay at the frontier. Easy to fall behind while still running great human ecommerce
Same thing happens in business work, not just code. An agent saying "done" proves nothing. I only count work as done when the agent shows the proof.
Agent failures often pass every health check. A tool call hits the wrong database region, returns 200, and the user gets a slower, worse answer. Nothing alerts.
DigitalOcean’s new tools flag agent sessions that fail silently, then replay them against a fix before release.
Because, the clue behind an agent bug is often sitting in something nobody can search.
Signals watches every live session with cheap rules, not an AI model, that look for human trouble signs such as a user repeating themselves, asking for a human, or a tool being retried in a loop, then passes those sessions to Simulations, which replays them with a fake user against your fixed agent to check the whole conversation works before the fix ships.
Until now teams had to pay an LLM to grade every conversation, read transcripts by hand, or invent test cases from imagination, while here the real failures from production automatically become the test set.
Bonus on winning ads is the smart part. AI made making ads cheap. Knowing which one will win is still the scarce skill, so that's what's worth paying for.
"Less AI ads, more humans" is the one most brands will skip. I'm all in on AI, but customers can tell when nobody's home. Use AI for the work behind the ad, keep a real person in front of it.
New brand; no track record; ~$200 CAC.
10 marketing tactics to turn strangers into customers ↓
NEW OPERATORS BUILD
1️⃣ Focus on just one buyer
(Moms; not moms + kids)
2️⃣ Founder yapper creative
3️⃣ Less AI ads, more humans
4️⃣ Coaching Trybe creators
(Weekly calls + feedback)
5️⃣ Whitelisting creator content
6️⃣ Highlight ingredient studies
7️⃣ Partner with credible docs
(Cash + equity are on the table)
8️⃣ Test offers + landing pages
9️⃣ Verify Meta Business Mgr
🔟 Onboarding new customers
(How to use + what to expect)
@codyplof @mbertulli @FitCoachCurtis share what’s working, what they got wrong, and what they’d change if they launched again.
Good list. My test before any of these: would my mum understand it? Most emails don't fail on the subject line. They fail because nobody sounds like a person who cares.
Part 2 of my 30-day plan: the emails themselves.
13 fixes, in the order I'd make them, from the inbox to the button.
What people see in the inbox
1. Write the subject line and preview text (the short line people see after it) together, as one thought. Put the strongest words in the first 35 characters, since phones often cut off the rest.
2. Start a sender name test: "Brand Name" against "Sarah from Brand Name" over your next 3 campaigns.
3. Leave the Promotions tab alone. People expect marketing emails there, and tricks to get into Primary tend to backfire.
The copy
4. Copy 10 lines from your 5-star reviews and use 3 of them, word for word, in your next email.
5. Delete the first paragraph of your next email. If it still makes sense, that's where it should have started.
6. Swap "Shop now" for a button that finishes the offer, like "Get my 20% off."
The design
7. Use one column and big buttons, at least 44 pixels tall, so a thumb can hit them.
8. Open each email on your phone with images turned off. If it makes no sense, move the headline and offer out of the image and into real text.
9. Check dark mode on an iPhone, an Android phone, and desktop Gmail before you send. Logos and see-through images are the usual problems.
Testing
10. Judge tests by clicks and sales. Apple Mail opens a lot of emails automatically, so open rates run high.
11. Test one thing at a time, starting with the subject line or the offer. Leave button colors for later.
12. Run your tests on welcome email 1 or cart email 1. A winner there keeps working for every new subscriber and shopper who comes through.
13. Wait at least 24 hours before you pick a winner, because your most active readers open and click first and skew the early numbers.
Most of these take minutes. The tests take the longest, so start those early.
Telling a fresh AI to "pick up where we left off" only helps if you give it something to pick up.
When a long chat starts getting confused, I use a handoff. It saves the relevant context in a document and gives me a short prompt for a fresh chat.
The handoff should explain what we're working on and what happens next. Link to files we've already created rather than copying everything into it. Remove passwords, API keys and personal information before passing it on.
That lets me continue the discussion without rebuilding the context by hand. If you've finally worked out a useful plan with AI, save enough detail for the next conversation to continue it.























