This is a follow on from this post.  I created my own personal GPT called Link Mapper and this post shows you ‘how’ in case you want to do this for yourself 🙂  Whilst it may be a little technical for some, the fact is that ChatGPT can sort out any problems if you just tell it what you want.  It may take a few iterations but it is doable.

Creators with lots of products run into the same pain.
You mention a product in a blog post or email.
The link is missing. Or it’s wrong. Or you linked it three times.

Link Mapper GPT solves that. It adds the right link to the right product name.
You control the map. The bot does the busywork.


When this is useful

  • You sell many products and offers.

  • Product names change. URLs change. Old posts should point to the new page.

  • You publish in multiple places: blog, newsletter, PDFs, course notes.

  • You write fast and don’t want to break flow to find URLs.

  • You work with a VA or team and want consistent linking.

  • You want clean analytics (optionally add UTM once, reuse everywhere).


How it works (plain English)

  1. You keep a single JSON file that lists product names and their URLs.

  2. A private Custom GPT reads that file.

  3. You paste a draft.

  4. It returns the same text with Markdown links inserted.

Default match rule (keeps it safe):

  • It links only the exact product name and its brandless version.

    • Example: IMMachines: Copy Pro Engine and Copy Pro Engine.

  • No fuzzy matches. No generic words like “copy” turning into links.

Default placement:

  • It links the last mention of each product.

  • You can ask for first mention or all mentions when needed.


Build your own in 10 minutes

1) Create your mapping file

Save this as gpt-link-map.json. Use your real URLs.

[
{ “name”: “IMMachines: Sales Angle Generator”, “url”: “https://your/sales-angle”, “status”: “active” },
{ “name”: “IMMachines: Copy Pro Engine”, “url”: “https://your/copy-pro-engine”, “status”: “active” },
{ “name”: “IMMachines: Daily Micro-Content Machine”, “url”: “https://your/dmcm”, “status”: “active” },
{ “name”: “IMMachines: Prompt Builder Pro”, “url”: “https://your/prompt-builder-pro”, “status”: “planned” }
]

Notes:

  • name = canonical name you’ll write in drafts.

  • url = the page you want.

  • status:

    • active → link it

    • planned or retired → skip by default (you can include them on request)

2) Create the private Custom GPT

  • Name: Link Mapper GPT (or your brand).

  • Visibility: Private.

  • Upload gpt-link-map.json to Knowledge.

  • Paste these Instructions:

    You add Markdown links for my products using the JSON file in Knowledge.

    Ground truth
    – Use the JSON map as the only source of names and URLs.
    – Link only items with status = “active” (or status missing).

    Match logic (strict)
    – Match only:
    1) the exact product name from the map, and
    2) the brandless variant formed by removing the prefix “IMMachines:”.
    – Case-insensitive. Respect punctuation boundaries (colons, dashes).
    – Do not match partial words. Example: “copy” must not match “Copy Pro Engine”.

    Linking policy (defaults)
    – Link the last occurrence of each matched product.
    – Do not change the text except to add links.
    – Do not link inside existing Markdown links, HTML <a>, inline code `like this`, or fenced code blocks.

    Output
    – Return the revised Markdown only (no commentary).
    – If asked for a report, append:
    <!– LinkMapper: {“linked”:[{“name”:”…”,”variant”:”full|brandless”,”url”:”…”}],”unmatched”:[“…”]} –>

    Optional modes on request
    – “link first occurrences” instead of last
    – “link all occurrences”
    – “include planned”
    – “add UTM utm_source=…&utm_medium=…&utm_campaign=…”
    – “don’t link headings”

    That’s it. No Actions needed.


    Using it day to day

    • Default prompt:
      “Link this draft. Return Markdown only.”

    • First mention instead of last:
      “Link first occurrences only.”

    • All mentions (e.g., short newsletters):
      “Link all occurrences.”

    • Pre-launch copy:
      “Include planned products.”

    • Analytics:
      “Add UTM utm_source=blog&utm_medium=link_mapper&utm_campaign=q3.”

    • QA:
      “Append a report.”


    Team SOP (short)

    1. Update gpt-link-map.json when you add or move a product.

    2. Upload the new file to the GPT’s Knowledge (replace existing).

    3. Quick test:

      • “Link this: IMMachines: Copy Pro Engine … later, Copy Pro Engine again.”

      • Confirm only the last mention is linked and URL is correct.


    Guardrails and edge cases

    • The bot won’t link inside code blocks or existing links.

    • It won’t guess URLs.

    • It won’t match partial words.

    • Need broader matching for a special case? Tell it to “include planned” or “link all occurrences.”

    • Keep the JSON clean. The map is the single source of truth.


    Optional: connect with your CMS

    If your blog uses an auto-linker script on the site (like the one we set up), keep the rules aligned:

    • Same JSON map.

    • Same “full + brandless” matching.

    • Same last-mention default.

    That way your drafts and your site behave the same.


    FAQ

    Can I keep an aliases array in the JSON?
    Yes. By default, this GPT ignores aliases. Ask for “include aliases” if you need them for a specific draft.

    What if a product changes URL?
    Update the JSON once. Everything you link from now on uses the new URL.

    Will it mess with my headings?
    Default is allowed. If you want to avoid headings, say “don’t link headings.”