guide · computers

ABS Affiliate Link Convention: Voice Note + amzn.to, Built-In Tag

How the botsitter-review skill handles affiliate links: the voice note + amzn.to input shape, the auto-tag rewrite to agenticbotsit-20 at build, and the rules for writing tag-safe from URLs.

July 14, 2026 · By Alastair Fraser

A friendly retro robot at a conveyor belt taking short amzn.to red envelopes from one side, peeling them open to reveal Amazon boxes on the other side, and stamping each box with a small AFFILIATE TAG stamp.

Why this guide exists

The ABS review pipeline rewrites every Amazon URL to include the operator’s affiliate tag (agenticbotsit-20) before the post lands live. Without that rewrite, voice-note reviews that go up with raw Amazon URLs would not earn commission — and the operator would be working for the platform for free.

The convention is the single point where editorial input meets monetization plumbing. Everything else on ABS — voice-note transcription, image generation, WebP companions, Cloudflare purge, the three-SHA check — happens around this rewrite. If the rewrite is wrong, the post is up but the commission is invisible; if the rewrite is right, the operator earns on every click-through for the lifetime of the page with no per-review work. That’s why the convention gets its own guide rather than a paragraph in the publishing playbook. Read the end-to-end companion first if you are setting up the skill for the first time.

The input shape

Every review starts with a voice note carrying the operator’s first-hand reaction to the product. The voice note’s transcription supplies the body text. Separately, the operator supplies an amzn.to shortened URL (the affiliate disclosure): typically a /dp/<ASIN> link shortened via amzn.to. These two inputs arrive together: when the operator speaks about the product, they also paste the URL into the same Slack DM. The skill consumes both as one input.

In practice the inputs arrive within seconds of each other — the operator hits record, talks for 60–180 seconds, then pastes the amzn.to URL into the same thread. The skill never sees one without the other; if either is missing it halts and asks. There is no “research-only” path here — that mode is a different guide.

The amzn.to URL is the canonical Amazon Associates “Special Link” the operator generated from the SiteStripe toolbar. It looks like https://amzn.to/<short> where <short> is the opaque slug Amazon issues. The skill does not resolve the slug in advance — the build pipeline expands it as the first step of the rewrite pass.

What the build pipeline does

The build (astro-build / npm run build) does three things to the URL:

  1. Expand the amzn.to URL to the canonical Amazon URL via redirect resolution.
  2. Insert the operator’s affiliate tag: append ?tag=agenticbotsit-20 if no tag is present, or rewrite an existing tag to agenticbotsit-20 if the URL already has a different one.
  3. Verify that the URL has an Amazon ASIN pattern before promoting the post; reject posts where the URL doesn’t match.

The rewrite is idempotent — re-running the build on the same URL produces the same output. The whole pass is part of the affiliate-link-tag step in the npm run build output you see scrolling by.

The pipeline runs after astro build (which writes dist/), then after finalize-matrix and verify-matrix-route (which write a literal .html URL the AI Model Matrix needs), so it operates on the fully-rendered HTML the live site serves. This ordering matters: rewriting at build time means the markdown source stays clean and the affiliate tag only exists in the rendered HTML where it belongs. Editing a review and rebuilding re-applies the rewrite automatically; there is no stale-tag risk. The idempotence guarantee is what makes the pass safe to re-run on a partial build (CI retries, local dev rebuilds). If you point the tool at an already-tagged URL, the second pass is a no-op — same output byte-for-byte — and the script verifies this on a five-file sample, exiting non-zero if a sample changes on re-patch.

The amzn.to shortener, not the long URL

Why amzn.to and not a direct Amazon URL? Two reasons:

  • Operator UX. amzn.to links fit in a Slack DM without wrapping.
  • Stable identifier. The amzn.to short URL survives Amazon’s URL rewrites (they occasionally rotate /dp/<ASIN> patterns or move to /gp/product/<ASIN>). The shortener is the durable reference.

If you must use a long URL (the operator pasted the full amazon.com URL by mistake), paste it as-is — the build still tags it. But the amzn.to convention is faster.

The operator-UX point comes up every batch. A raw https://www.amazon.com/Anker-PowerConf-Bluetooth-Speakerphone-Conference/dp/B08XXX/ref=sr_1_3?keywords=... does not survive Slack DM wrapping on a phone keyboard — the message splits across lines and the operator has to reassemble it. The 28-character https://amzn.to/<short> does not wrap, does not split, and copy-pastes cleanly on every device. That is not a small win when a review batch is six products in an hour.

The stable-identifier point matters at scale. Amazon rotates /dp/<ASIN> patterns occasionally — products move between /dp/, /gp/product/, regional TLDs, and added query parameters for variant selection. A long URL that worked on day 1 may 302 to a different ASIN or store on day 90, breaking both the link and the affiliate credit. The amzn.to short URL is Amazon’s own canonical product identifier — they maintain it. The operator’s voice-note review lives for years; the amzn.to slug survives that timespan.

The “paste the long URL as-is” fallback covers the genuine mistake case: the operator pasted the full URL they had in their clipboard instead of the SiteStripe-generated short. The build pipeline tags it the same way. It is correct, just slower to write the review, and more brittle if Amazon rotates the URL pattern later.

What not to do

  • Don’t paste multiple amzn.to URLs into the same review. Pick one canonical product URL per review.
  • Don’t put the affiliate tag in the operator’s voice note — the build tags it. Manual tag in the URL breaks the rewrite.
  • Don’t nofollow the affiliate link — Amazon TOS does not require it and modern SEO wants the link equity.
  • Don’t link to a non-Amazon URL with the amzn.to prefix; the build rejects these.

Each of these is a real failure mode that has come up in the operator’s review batches. The multiple-URL rule exists because a review is about one product — if there are two amzn.to URLs in the same draft, the build cannot tell which one is the canonical affiliate target and the rewrite either fails or picks arbitrarily. The “For the nerds” footer holds the single anchor where ?tag=agenticbotsit-20 lands.

The “don’t put the tag in the voice note” rule is the most expensive to violate. If the operator types a different tag — a stale Associates ID from another site, an old personal tag, or a typo — the rewrite will dutifully replace it with agenticbotsit-20. The page earns commission for ABS, but the operator may have intended to credit themselves or another channel. The skill must not preserve operator-introduced tags; it is a one-tag convention by design.

The nofollow rule has changed. The Amazon Associates program explicitly allows dofollow affiliate links — no TOS requirement to nofollow — and Google’s guidance is that rel="sponsored" is the correct signal for paid/affiliate links. The build adds rel="sponsored noopener" and data-affiliate="1" attributes; nofollow would dilute the signal.

The non-Amazon-prefix rule is structural. amzn.to is owned by Amazon and 301s to an Amazon domain; a malformed https://amzn.to/<random> that does not redirect to amazon.com would 404, and trying to tag it as an Amazon affiliate link would silently lose the commission. A non-Amazon retailer needs a separate convention.

Verification checklist

#CommandWhat it proves
1grep 'agenticbotsit-20' src/content/posts/<slug>-review.mdTag landed in the rendered HTML
2`curl -sS https://agenticbotsitter.com/reviews//grep ‘agenticbotsit’`
3Test-pass output of npm run build shows affiliate-link-tag: scanned X review files, tagged Y Amazon links in Z filesPipeline ran
4curl -sSL https://amzn.to/<short> -IThe short URL still resolves to Amazon

These four checks together prove the convention is live end-to-end. Row 4 is the silent killer — Amazon can rotate slug-to-product mappings independently of our pipeline. The P26 dead-slug rule still applies: regenerate the amzn.to short from SiteStripe and rerun the build.

A row-1 grep on the markdown source is a sanity check on the build output, not the source — the convention is that the source has the bare amzn.to URL and the build adds the tag. If agenticbotsit-20 shows up in the markdown source itself, the operator hand-tagged a URL and bypassed the input-shape convention. Flag it for the operator rather than ship it.

Sources

Last verified: 2026-07-14 against the live affiliate-link-tag step of npm run build and the agenticbotsit-20 tag in 32 of the 32 live review pages.

Sources

#affiliate#amzn#botsitter#review#tag#editorial

Submit a take

Have a different read on this? Drop a comment below — your email isn't published, and I read every one. Nothing leaves the site until I approve it.

Your email address will not be published. Required fields are marked.