Affiliate Marketing Dashboard in Notion

I Stopped Guessing Which Affiliate Links Pay: The Notion Dashboard That Fixed It

Think about where your affiliate information currently lives. A login sits in a password manager, a commission rate in an email from the program, a link in a blog post you wrote months ago, a different link in a YouTube description, and last month’s earnings in a screenshot on your phone. Each piece is easy to find on its own. Put together, they can’t answer the question you care about: which of these links earns money?

This guide builds an affiliate marketing dashboard in Notion that answers it. It uses three linked databases and a single dashboard page, and everything runs on free Notion features. You will set up the structure once, then spend a few minutes a month keeping it up to date.

The spreadsheet graveyard: why affiliate numbers end up scattered everywhere

Affiliate data scatters because every program reports it differently. One network shows clicks and conversions by day. Another shows only a monthly total. A third emails a payout notice and nothing else. Each dashboard is built for the program’s purposes, not for your content.

The second cause is that you add links one at a time, in different places, over months. A link goes into a blog post today, a video description next week, and an email the week after. Nobody records where each link went, so the only way to find it later is to search your own content.

Most creators respond by starting a spreadsheet. It works for a few weeks, then a new program arrives that doesn’t fit the columns, and the sheet stops being updated. The fix is to separate the three kinds of information (the program, the placement, and the money) and connect them. That is what relations and rollups do in Notion.

Decide what you actually want to know before you build anything

Write your questions on paper before you create a single database. The questions decide which fields you need, and they keep you from building a tracker that records everything and answers nothing.

For most creators, the list looks like this:

  • Which programs have paid me, and which have not?
  • Which posts, videos, emails, or pins carry links that earn?
  • Which live links have produced nothing for a long time?
  • When is the next payout due from each program?
  • Does one type of placement (reviews, tutorials, email, video descriptions) earn more than the others?

If you can answer all five from one page, the build is done. If you add a sixth question, check that you’ll actually act on the answer. A field you never read is a field you will stop filling in.

Database one: your affiliate programs

Create a new full-page database called Programs. This is the simplest of the three, and it holds facts about each affiliate program that rarely change.

Add these properties:

  • Name (the default title property): the program or product name.
  • Status (select): Active, Applied, Paused, Closed.
  • Login URL (URL): the page where you check your stats.
  • Commission terms (text): a short note such as “percentage of first sale” or “recurring monthly,” copied from the program’s own terms.
  • Cookie window (number, in days): how long after a click the program credits you for a sale. Find it in the program’s terms and never assume it.
  • Payout threshold (number): the minimum balance before the program pays you, if there is one.
  • Next payout date (date): update it whenever you see a payout notice or confirm the schedule.
  • Notes (text): anything unusual, like a required disclosure wording or a restriction on where links may appear.

Do not store passwords in Notion. Put a note in the Notes field naming where the credentials live, such as “in my password manager,” and keep the secrets there.

Copy the commission terms and cookie window exactly as the program states them, and add the date you checked. Programs change their terms, and a dated note tells you when a row needs a second look.

Database two: every link and where it lives

The second database is the one most trackers leave out, and it is where the dashboard gets its value. Create a database called Links with one row for every affiliate link you have placed, in each location where you placed it. The same affiliate URL used in a blog post and in a pin description is two rows, because those two placements may perform very differently.

Add these properties:

affiliate marketing dashboard in Notion Four small paper tags in different colours (blog post, video, email, pin) attached by strands of string to a single central card, laid out on a pale desk in soft daylight, showing one affiliate link spreading into several placements.
  • Name: a plain label such as “Email tool review, comparison table.”
  • Program (relation to Programs): this connects each link to its program. When Notion asks, turn on the option that shows the relation on both databases, so the Programs page can list its links.
  • Placement type (select): Blog post, Video description, Email, Pin, Podcast show notes, Social bio.
  • Location URL (URL): the page, video, or post where the link sits.
  • Link URL (URL): the affiliate link itself.
  • Date added (date).
  • Status (select): Live, Replaced, Removed.
  • Last checked (date): the last time you confirmed the link still works.

Spend an afternoon on the backfill. Go through your existing posts and videos and add a row for each affiliate link. It is tedious once, and after that you only add a row at the moment you publish something new.

If you repurpose one piece of content across channels, this database makes the overlap visible. The same recommendation might appear in a post, a pin, and an email, and each of those gets a row. My guide on how to repurpose blog content for social media covers the repurposing side, and every new format it produces is another placement to log here.

Database three: monthly earnings, and the relations and rollups that connect it all

Create a third database called Earnings. Each row is one month of earnings for one program, or for one link when the program reports that detail.

Add these properties:

  • Name: a label like “2026-10 Program name.” Using the year and month first keeps rows sortable.
  • Month (date): the first day of the month the earnings belong to.
  • Program (relation to Programs).
  • Link (relation to Links): optional, filled in only when the earnings can be traced to one placement.
  • Amount (number): what the program reports for that month.
  • Clicks (number): optional, if the program shows it.
  • Payment status (select): Pending, Paid.

Some programs let you add a tracking ID or campaign name to each link, and their reports then break earnings down by that ID. Where yours does, give each placement its own ID and log earnings at the link level. Where the program shows only one monthly total, log it against the program and leave the Link field empty. The dashboard still works, with less detail for that program.

Add the rollups

A rollup pulls a value from related rows and summarizes it. This is where the three databases start working as one system.

Three stacked trays of index cards in blue, green and amber, with thin threads running from cards in the two lower trays up to one summary card in the top tray, in clean overhead light on a white table.
  1. In Programs, add a relation to Earnings (it may already exist from the step above). Then add a rollup property called Total earned: choose the Earnings relation, the Amount property, and calculate Sum.
  2. In Links, add a relation to Earnings through the Link field. Add a rollup called Link earnings: relation Earnings, property Amount, calculate Sum.
  3. In Links, add a second rollup called Link clicks using the Clicks property, also with Sum, if you record clicks.
  4. In Programs, add a rollup called Live links: relation Links, property Name, calculate Count all (or count by value, if you filter by status later).

Now a Programs row shows total earnings and how many links point to it. A Links row shows what that single placement has brought in. You entered each fact once, and Notion computes the totals.

Build the dashboard view: top earners, dead links, and payouts coming due

Create a normal Notion page called Affiliate Dashboard. Type /linked view of database and choose each database in turn. A linked view shows the same data as the original database, with its own filters and sorting, so you can build several views of one database on one page.

Add three views:

Top earners. Link to Links, use a table or gallery layout, and sort by Link earnings from high to low. Show Name, Program, Placement type, and Link earnings. Limit the view to the top five or ten rows. This view tells you which pieces of content to update, promote, or imitate.

Dead links. Link to Links again. Filter for Status is Live, Link earnings is 0 (or empty), and Date added is before one month ago. You may prefer a longer wait for programs with long cookie windows or slow reporting, so check the Cookie window field in Programs before you judge a link. A row in this view is a candidate for a better placement, a clearer call to action, or removal. It is not an automatic verdict.

Payouts coming due. Link to Programs, filter for Status is Active, and sort by Next payout date from earliest to latest. Show Name, Next payout date, Payout threshold, and Total earned. This keeps you from missing a payout window or forgetting that a balance sits under a threshold.

If you want a fourth view, group Links by Placement type and show the sum of Link earnings. It answers the last question on your list, about which kinds of content earn.

A 10-minute weekly review habit that turns the data into decisions

A dashboard only changes your results if you open it on a schedule. Pick one fixed time each week, and spend ten minutes like this.

A mug of coffee, an open laptop angled away from the viewer and a small analog kitchen timer set near ten minutes on a tidy desk by a window, in calm early-morning light with muted greens and warm wood tones.

Minutes 1 to 3: update. Log any new links you placed this week, and add the latest earnings from each program’s dashboard. If you only get monthly figures, do this step once a month and skip it in the other weeks.

Minutes 4 to 6: Read the top earners. Look at the top view and pick one item to improve. That could mean adding an internal link to the best-performing post, checking that its affiliate link still works, or making a short video on the same topic.

Minutes 7 to 9: Read the dead links. Choose one row. Decide whether to move the link to a more relevant spot, rewrite the sentence around it, or remove it. Set Last checked to today’s date on anything you verified.

Minute 10: check payouts. Scan the payouts view. Update any Next payout date you have new information about.

The rule that makes this work is one decision per list per week. Ten minutes does not allow a full audit, and a small change each week adds up over a quarter.

Where automation fits in once the manual version works

Run the manual version for at least a couple of months before you automate any of it. By then you know which fields you read and which you ignore, and that tells you what is worth automating.

The most useful candidate is the monthly earnings entry. Many affiliate networks let you export a report as a CSV file, and Notion can import CSV files into a database, which is a quick way to load a month of data without retyping it. Whether a program offers an export or a connection that an automation tool can read depends on that program, so check its help pages before you plan around it.

Reminders are another natural fit. You could have a tool message you before a payout date or prompt you when a link’s Last checked date is older than a set number of days. Both rely on fields you have already built, so the automation adds convenience without changing the structure.

Keep the three-database layout intact when you automate, and have any tool write into the same fields you fill by hand. That way the dashboard views and rollups keep working, and you can still fix a wrong number yourself.

Get the template walkthrough and compare setups in the Skool community

If you want to skip the setup and see the whole build on screen, join the Skool community. You will get the free Notion dashboard template walkthrough there, and you can share your own tracking setups with other creators who are working on the same question of which links earn.

Leave a Comment