# Campaign link builder that enforces your UTM taxonomy

> Your team builds every campaign link from approved dropdown values, so nobody types FB one week and facebook the next.

- Workflow type: app
- Services: Bitly, Slack Bot
- Categories: Marketing, Operations
- Published: 2026-08-14

## What it does

- A guided builder where you paste a destination link, pick the campaign, source, medium and region from approved lists, and get a finished short link with a clear preview of exactly what is being tracked
- Generates a matching QR code for print, events and packaging whenever you want one, ready to download
- Posts every finished link into that campaign's chat channel automatically, so the whole team shares the identical link instead of five slightly different ones
- An audit screen that flags links with no tracking or with values outside your approved list, and lets you tick a batch of them and fix or retire them in a single pass

## What you'll need

- A Bitly account, and the team workspace your campaign links live in
- A Slack workspace with the channels your campaigns are discussed in
- Your list of approved campaign, source, medium and region values, though you can start with a handful and add more later
- One person on marketing ops to own the approved list and run the audit periodically

## Prompt

Build me an app my marketing team opens every time they need a campaign link, so we stop inventing tracking values on the fly. It has three views: a guided link builder as the main surface, a governance audit, and a small admin screen where marketing ops edits the approved taxonomy.

The approved taxonomy lives in the app itself, not in Bitly. The admin view manages four lists of values: campaign, source, medium and region. Each value has a display label and the exact string that gets written into the tagged URL, so Facebook always emits facebook and never FB or Meta. Each campaign value also stores the Slack channel its links should be announced in, chosen from a channel list loaded with the Slack Bot List Channels operation. Marketing ops can add, rename and retire values. Retiring a value keeps it readable on existing links but removes it from the builder dropdowns.

The builder is the default view. The user pastes a destination URL, then picks campaign, source, medium and region from dropdowns that only offer approved values. There is no free text entry for those four fields, which is the entire point of the screen. The user types a link title and can tick a box to generate a matching QR code. As selections are made, show a live preview of the fully composed destination URL with utm_campaign, utm_source and utm_medium plus the region parameter appended, so the user can see exactly what is being tracked before committing.

Submitting composes the final tagged URL and calls the Bitly Create a Bitlink operation with the title and one tag per chosen taxonomy value, created inside the group the team works in. Resolve the available groups with Retrieve Groups and let marketing ops select the working group once in the admin view. If the QR box was ticked, call Create a QR Code for the new link and show the image with a download option. Then post the finished short link into that campaign's Slack channel using the Slack Bot Send a Message operation, including the title, the four chosen values and who created it, so the whole team pastes the identical link.

The builder screen also shows each signed in user the links they personally created most recently, newest first, with the short link, title, campaign and a copy button. Record every creation in the app along with the user who made it, so this list is per person rather than a shared feed.

The second view is a governance audit. Load the group's links with Retrieve Bitlinks by Group and the tags currently in use with Retrieve Tags by Group, then compare every link against the approved taxonomy. Flag three problems: links carrying no tags at all, links carrying a value that is not on the approved list, and links missing one of the four required dimensions. When a value is close to an approved one, show the offending value next to the approved value it most likely meant, so the correction is obvious. Put a small summary at the top of the view showing how many links are clean versus flagged, so the person who owns the taxonomy can tell whether things are improving over time.

From the audit the user ticks multiple rows and fixes them in a single pass. Selected rows can have tags added, tags removed, or be archived when the link is dead, all through Bulk Update Bitlinks. That operation handles up to 100 links per call, so split larger selections into chunks and report progress. After the update completes, refresh the list so corrected rows drop out of the flagged set.

Two audiences use this. The marketing team lives in the builder and should never need to think about conventions, because the dropdowns make the wrong answer impossible. Marketing ops owns the admin view and runs the audit periodically. Keep it an interactive builder and audit console for people creating links one at a time, not a bulk importer of rows from a spreadsheet.

## How to customize

- Change the four things people pick from. Region is easy to swap for audience, product line, or funnel stage if that matches how you report
- Decide who can edit the approved list. Most teams keep it to marketing ops and leave everyone else on the builder screen
- Choose whether a QR code is generated every time or only when someone ticks the box
- Set which channel each campaign announces into, or send everything to one shared marketing channel

## FAQ

### Where do the approved values actually live?

Inside the app itself, not in Bitly. That is deliberate. It means marketing ops can add a new campaign or retire an old source without touching anyone's link tool settings, and the audit screen always has something concrete to check every link against.

### What happens to all the messy links we already created?

The audit screen is built for exactly that. It loads the links already in your team workspace, compares each one against your approved list, and flags anything untagged or off-list. You can then select a batch and correct or archive them together rather than opening links one at a time.

### Can someone still create a link the old way and skip this?

Yes, nothing stops a person from creating a link directly in Bitly. The difference is that the audit screen will surface it as untagged or off-list the next time it runs, so it gets caught and fixed instead of quietly corrupting your channel reporting.

### How many links can we clean up at once?

Up to 100 per pass, which is a Bitly limit. If you select more than that, the app splits the work into batches automatically, so a large cleanup after months of drift still runs in one go.

### Do we need a paid Bitly plan?

The app relies on standard link creation, tagging, listing and bulk updating, which are available broadly. Branded short domains and custom back-halves are paid Bitly features, but this app does not depend on them.

Use this prompt in General Input: https://www.generalinput.com/prompts/campaign-link-builder-that-enforces-your-utm-taxonomy