AI customer journeys require structural metrics, not tone

Nearly every project I picked up this year had an LLM wired somewhere into the customer lifecycle, usually under the heading of automating engagement. The emails read fine, but the logic underneath them is usually a wreck. Most of the advice going around is about making the copy sound fluent, which is the wrong thing to tune, because AI customer journeys require structural metrics before tone counts for anything.

After 14 years of debugging checkout flows and race conditions, I have stopped caring how empathetic a message sounds. A “first-time buyer” coupon that lands two days after someone’s third order is broken no matter how warm the wording is. That is a structural failure, and if nothing in your stack measures how the AI moves a user through a defined taxonomy, you are shipping noise.

Why standard LLM metrics fail your business

Developers reach for benchmarks first, and for customer journeys the usual ones do not help. Perplexity tells you how surprised a model was by a token. BLEU compares output against a reference text. A real customer journey has no single correct reference to compare against, because the next message depends on what the customer just did.

Hand the job to an LLM-as-a-judge and you get the same blind spot back: it grades the prose, not the progression. What I want is a deterministic score that answers whether the journey went anywhere. That is what the CDP framework is for.

The CDP framework: continuity, deepening, and progression

The fix starts by mapping journey messages onto a taxonomic tree, with stages like motivation, purchase, delivery, and loyalty. Once that structure exists, you can calculate three things:

  • Continuity: Does message B follow from the context of message A, or does it jump from a how-to-use-your-product note straight back into a sales pitch?
  • Deepening: Does the content get more specific as the customer goes further in? Someone at the ownership stage should be getting real maintenance detail rather than a second “thanks for buying” note.
  • Progression: Is the customer moving forward? Once the paperwork is signed, the sequence should be talking about delivery logistics instead of booking another test drive.

None of this stays theoretical for long. In my recent WordPress AI dev updates I have been working through how semantic embeddings let you calculate these scores deterministically.

The technical gotcha: mapping the taxonomy

There is no clever prompt involved. You embed your journey stages (the anchors) and your generated messages into the same vector space, then use cosine similarity to find the closest node for each message. Plot the sequence. If the path zigzags across the taxonomy tree, the model is inventing the journey logic instead of following it.

<?php
/**
 * A simple conceptual check for journey progression in WordPress.
 * This is how you might store taxonomy-mapped stages as metadata.
 */
function bbioon_check_journey_progression( $user_id, $new_message_stage_id ) {
    $current_stage = get_user_meta( $user_id, 'bbioon_current_journey_stage', true );
    
    // Progression check: Stage IDs should generally increment
    if ( (int) $new_message_stage_id < (int) $current_stage ) {
        // We are backtracking. This might be a structural failure.
        error_log( 'Potential journey regression for User: ' . $user_id );
        return false;
    }
    
    update_user_meta( $user_id, 'bbioon_current_journey_stage', $new_message_stage_id );
    return true;
}

Plenty of legacy codebases already encode these rules, buried in long if/else chains. Switching to an LLM does not mean deleting them. It means the LLM writes the content and a structural metric validates it before anything reaches production.

If wiring structural metrics into your journey automation is eating your dev hours, I can take it off your plate. I have been working with WordPress since the 4.x days.

Where to start

Tone is the last thing to worry about. If the structure underneath is a mess, no amount of polish in the copy will move your conversion rate. Build the taxonomic reference for your content first, then score against it, either with something like OpenAI Evals or with your own deterministic CDP scoring. It is boring pipeline work, and it is a lot cheaper than apologizing to customers who got the wrong message at the wrong time.

author avatar
Ahmad Wael
I'm a WordPress and WooCommerce developer with 15+ years of experience building custom e-commerce solutions and plugins. I specialize in PHP development, following WordPress coding standards to deliver clean, maintainable code. Currently, I'm exploring AI and e-commerce by building multi-agent systems and SaaS products that integrate technologies like Google Gemini API with WordPress platforms, approaching every project with a commitment to performance, security, and exceptional user experience.