Autonnel v0.1.0

Funnel A/B test

Bind other funnels as variants; assign traffic; sticky assignment per tracking ID.


A/B testing in autonnel operates at the funnel level. You designate one funnel as the host and bind other complete funnels as variants. Incoming visitors are assigned to a variant (or the host) on their first visit and stay on that assignment for all subsequent visits.

How assignment works

When a visitor reaches the first landing page of the host funnel, autonnel checks for A/B test configuration. If variants are configured, it looks up the visitor’s tracking ID in the assignment table:

  • Existing assignment — the visitor is redirected to their previously assigned funnel’s landing page. The same funnel is always served to the same tracking ID (sticky).
  • New visitor — a funnel is selected by weighted random draw according to the configured traffic percentages. The assignment is stored and the visitor is redirected.

If the visitor is assigned to the host funnel, no redirect occurs.

Traffic distribution

Each variant has a percentage field (integer, 1–99). The host funnel receives the remainder: 100% minus the sum of all variant percentages. For example, with two variants at 30% and 20%, the host receives 50% of traffic.

Traffic percentages must not exceed 99% in total across all variants. The system validates this when you save.

Cache TTLs

  • A/B test configuration (variant list and percentages): 12-hour TTL.
  • Assignment records (trackingId → assignedFunnelId): 30-day TTL.

Configuration changes take effect within 12 hours for visitors who have not yet been assigned. Existing assignments are sticky for 30 days from the time of assignment.

Setup

  1. Open the funnel you want to use as the host.
  2. Go to the A/B Test tab in the funnel detail.
  3. Click Add variant and select a funnel from the dropdown.
  4. Set the traffic percentage for the variant.
  5. Repeat for additional variants.
  6. Save. The configuration becomes active within the cache TTL window.

To quickly create a variant funnel that mirrors the host structure, use the Duplicate button on the funnel list or call POST /api/funnel/{id}/duplicate. The duplicate contains the checkout, upsell, thank-you, and error steps of the original but has no landing pages — landing pages are unique to each funnel.

Caveats

  • Variants must be complete funnels. A variant that has no landing page causes the A/B test redirect to fall back to the host funnel silently. Ensure each variant funnel has at least one landing step configured before activating the test.
  • Traffic is not redistributed automatically when a variant is removed. If you delete or deactivate a variant, the remaining variants plus the host may not sum to 100%. You must update the percentages manually.
  • Assignments are sticky by trackingId. A visitor who clears cookies or uses a different device gets a new tracking ID and may be assigned to a different variant.
  • A/B test is funnel-level, not page-level. You cannot A/B test individual pages within a funnel. To test page variations, create separate funnels and use them as variants.