Seventy percent of online checkouts end without a purchase. That number has held roughly steady for a decade, across industries, cart sizes, and store designs. The standard response from e-commerce platforms is a recovery email sent 30 to 60 minutes after the buyer leaves. By that point, the moment is gone. The buyer is on a competitor's site, or watching TV, or has simply forgotten why they wanted the thing in the first place.

The email-after-abandonment model treats checkout like a form that got submitted incorrectly. Fill it out again. Here's a discount code. But checkout is not a form problem. It's a conversation that stalled, and the question worth asking is: what if you could restart it before the buyer left?

That's the premise behind Freway, an AI checkout agent for Shopify stores. Instead of reacting to abandonment, Freway's agent detects hesitation signals in real time and intervenes while the buyer is still in the checkout flow.

What Hesitation Actually Looks Like

Before you can intervene, you need to know what you're looking for. Hesitation at checkout has measurable signatures. Time-on-page that exceeds the median for that cart value bracket. Scroll patterns that suggest re-reading the return policy or shipping terms. A buyer who has visited the store three times in the past week but never purchased. A cart that's been modified twice in the last five minutes.

None of these signals alone predicts abandonment with confidence. Combined, they produce a hesitation score that Freway updates continuously as the session progresses. The score feeds a classification engine with four outputs:

  • Engage (high intent): The buyer shows strong purchase signals but is stuck on something specific. Worth a direct, concierge-style intervention.
  • Engage (low intent): The buyer is browsing, not committed. A lighter touch, probably chat or SMS, is more appropriate than a phone call.
  • Wait: The session is progressing normally. Intervening now would be intrusive. Monitor and re-score.
  • Skip: The buyer is almost certainly not purchasing this session. No intervention. Don't waste the outreach budget on someone who opened the page by accident.

This classification matters more than most merchants realize. Blanket interventions annoy buyers who were going to convert anyway and waste resources on buyers who were never going to. The targeting layer is where the real leverage is.

Janine: The Agent Running the Intervention

Freway's agent is named Janine. When the classification engine returns "Engage," Janine decides which channel fits the situation and executes the outreach. The six channels available are in-checkout chat, email, SMS, WhatsApp, voice calls, and AI shopping assistant integrations.

Channel selection is not random. A $40 cart with a first-time visitor gets an in-checkout chat message. A $600 cart from a returning customer who has abandoned twice before might get a phone call. The logic is roughly: channel cost should be proportional to expected recovery value, and channel intimacy should match buyer relationship depth.

For the voice and email channels, Janine uses OneShot as the action layer. OneShot provides the infrastructure for agents to make phone calls, send emails, and fire SMS messages, with payments settled in USDC via the x402 protocol. Freway doesn't build or maintain its own telephony stack. It calls OneShot's tools and pays per use. This is what agent-to-agent commerce looks like in practice: one agent (Janine) purchasing capabilities from another agent infrastructure layer to complete a task.

How the Voice Channel Works Under the Hood

The high-value voice intervention is the most technically interesting path. When Janine decides a buyer warrants a call, here's what actually happens:

import { OneShotClient } from '@oneshot-agent/sdk';

const client = new OneShotClient({
  agentWallet: process.env.AGENT_WALLET_ADDRESS,
  privateKey: process.env.AGENT_PRIVATE_KEY,
});

async function initiateRecoveryCall(session) {
  const { buyerPhone, cartValue, cartItems, hesitationReason } = session;

  // Build context for the voice agent
  const callContext = {
    objective: 'checkout_recovery',
    buyerPhone,
    script: buildScript({
      cartValue,
      cartItems,
      hesitationReason,
      // e.g. "buyer re-read shipping policy 3 times"
    }),
    maxDuration: 180, // seconds
    fallbackSMS: true, // if call goes to voicemail, send SMS instead
  };

  const result = await client.voice.call(callContext);

  if (result.outcome === 'connected') {
    await logRecoveryAttempt(session.id, 'voice', result.transcript);
  } else if (result.outcome === 'voicemail') {
    await logRecoveryAttempt(session.id, 'sms_fallback', result.smsDelivered);
  }

  return result;
}

The OneShot SDK handles the telephony, the USDC payment for the call, and returns a structured result including a transcript. Freway's job is to build the right context going in and log the outcome coming out. The actual call infrastructure, number provisioning, carrier routing, and voice synthesis are all OneShot's problem.

A voice call through OneShot costs roughly $0.08 to $0.15 per minute depending on destination and call quality tier. A three-minute recovery call on a $600 cart costs under $0.50. If the call converts, the merchant pays Freway a commission on the recovered sale. If it doesn't convert, the call cost was Freway's to absorb. That's what commission-only pricing actually means at the infrastructure level: Freway is betting its tool costs on its own conversion rate.

The Email and SMS Paths

Results: merchants report 12% average conversion lift, 18x ROI. This is what agent commerce looks like applied to e-commerce.

For lower-value carts or buyers classified as low-intent, Janine routes to email or SMS instead. The email path is useful for buyers who hesitated on shipping costs or return policy details, where a slightly longer message with specifics can address the objection directly.

async function sendRecoveryEmail(session) {
  const emailPayload = {
    to: session.buyerEmail,
    subject: buildSubjectLine(session.hesitationSignals),
    body: buildEmailBody({
      firstName: session.buyerFirstName,
      cartItems: session.cartItems,
      specificConcern: session.hesitationReason,
      // e.g. "free returns on all orders over $50"
      returnPolicyHighlight: session.cartValue > 50,
    }),
    replyTracking: true,
  };

  const result = await client.email.send(emailPayload);
  return result;
}

SMS is faster and more direct. Freway uses it for time-sensitive situations, like when a flash sale is ending and the buyer is sitting on a full cart. A single well-timed SMS with a clear message recovers a meaningful percentage of those sessions.

The full OneShot API reference covers the request and response shapes for all three channels. The pattern is consistent across them: send context in, get a structured outcome back, pay per use.

What the Numbers Look Like

Merchants using Freway report an average 12% lift in checkout conversion rate. On a store doing $500,000 in annual revenue with a 70% abandonment rate, recovering an additional 12% of those abandoned checkouts adds roughly $42,000 in revenue per year. At an 18x ROI, that implies the commission costs are around $2,300 annually for that store, or about $190 per month.

These numbers are merchant-reported averages. Results vary by product category, average order value, and existing conversion rate. Stores with higher average order values see stronger absolute returns from voice interventions specifically. A furniture store with a $1,200 average cart recovers more per successful call than a supplements store with a $45 average cart, even if the conversion rate lift is similar.

The commission-only structure changes how merchants evaluate the tool. There's no monthly fee to justify, no minimum commitment. If Freway doesn't recover sales, it doesn't get paid. This is outcome-based pricing applied to e-commerce, and it shifts the risk calculation entirely. The merchant's downside is zero. Freway's downside is real: tool costs, infrastructure, and development all come out of commissions earned.

Why Real-Time Beats Delayed Recovery

The 30-minute post-abandonment email is not just slow. It's targeting a buyer who is already in a different mental state. Purchase intent decays fast. Research on cart abandonment timing consistently shows that intervention within the checkout session itself, before the buyer navigates away, converts at 3 to 5 times the rate of post-abandonment emails sent even minutes later.

This is why the classification engine runs during the session, not after it. By the time a buyer has left the page, Freway is already in recovery mode, not intervention mode. The in-checkout chat and real-time hesitation detection are doing the heavy lifting. The email and SMS channels handle the buyers who got away despite the in-session attempt.

Freway's documentation covers the integration process in detail, including how to configure the hesitation scoring thresholds and set channel preferences by cart value bracket.

What This Reveals About Agent Commerce

Freway is a useful proof of concept for something larger. An AI agent, running on its own, classifying buyer sessions, deciding which channel to use, purchasing voice and email capabilities from another agent infrastructure layer, and getting paid only when it succeeds. No human is approving individual outreach decisions. No human is on the phone. The agent is doing the commercial work end to end.

OneShot's role here is the actuation layer: the set of tools an agent can buy to take real-world action. Freway's role is the domain-specific intelligence layer: knowing when to act, on whom, and how. Neither is sufficient alone. A general-purpose actuation layer without domain targeting wastes money on low-probability interventions. A smart targeting system without reliable actuation tools can't execute. The two layers compose.

For developers building agents that need to take commercial action, this pattern is worth understanding. Your agent probably doesn't need to own its own telephony infrastructure or email delivery system. It needs to know when to call and what to say. The infrastructure can be purchased per-use from a layer like OneShot, paid for programmatically, and swapped out if something better comes along. That's a fundamentally different architecture than building monolithic agents that try to own every capability.

The Practical Takeaway

If you're building an e-commerce agent or evaluating checkout recovery tools, the classification engine is the part worth spending time on. Getting the channel selection right, matching intervention intensity to buyer value and intent, is what separates a useful agent from an annoying one. Blanket outreach to every abandoning buyer will hurt your sender reputation and train buyers to ignore you.

The specific thresholds Freway uses are calibrated to their merchant base and are not publicly documented in detail, but the logic is tractable: score sessions continuously, classify before exit, match channel to expected recovery value, and skip the sessions that don't justify the cost. If you're building something similar, start with cart value as your primary segmentation axis and add behavioral signals from there.

Commission-only pricing tells you Freway is confident in those thresholds. When your revenue depends on your precision, you get precise.