Building a Content Ops Base in Airtable

If you've ever tried using an LLM to create a tutorial, you'll know firsthand that it would give the Grateful Dead a run for their money when it comes to hallucinations. To see if there was a way around that, I ran an experiment. I created a Loom video of myself doing something (setting up an Airtable base for ContentOps) and dispatched Chat Gippity in agent mode to create a blog post out of it.

What follows is the result of that experiment, starting with the next sentence, as evidenced by the fact that I'm not British, but Gippity, apparently, is. (Lightly edited for Webflow format)

Growing a content programme often means juggling many moving parts: writers and editors (your bench), the types of content you sell, invoices, drafts, refreshes and the credits each client buys. In the Loom video, Erik Dietrich demonstrates how to bring these pieces together in a single Airtable base. Below is a step‑by‑step guide to re‑create that Content‑Ops base for your own workflows.

1. Create the base and set up the Bench

  1. Create a new Airtable base and name it ContentOps. Airtable will start you off with a table called Table 1. Click its name and rename it Bench. This table will hold the people who work on your content.
  2. Rename the primary field to “Name.” Change the field type to Single line text, because names should be stored as text.
  3. Add a multi‑select “Roles” field. Choose Multiple select as the field type and define the roles your team might have—Account Manager, Author, Content Manager and any other roles you need. Once created, assign roles to each person on your bench. In the video, Erik populates his bench with Erik Dietrich (assigned the Author role) and Erin Baez (an Account Manager).

The Bench table provides a quick reference for who’s available to create posts or refresh existing content. As your team grows you can add more columns such as contact information or current workload.

2. Define your offerings and calculate credits

Clients purchase content in the form of offerings—for example, community posts or refreshes. To define these:

  1. Add a new table and name it Offerings. Rename the primary field to Name so each offering has a descriptive name.
  2. Add a “Dollar Value” column. Choose the Currency field type and set the desired currency symbol and number of decimal places. Enter the price for each offering.
  3. Add a “Credit Value” column using the Formula type. In the video, credits are calculated by dividing the price by $1,000.00. The formula looks like this:

{Dollar Value} / 1000

Format the result to two decimal places so fractional credits display neatly. With this formula, a $250 Touch‑Up Refresh becomes 0.25 credits while a $1,000 Community Post is worth 1.00 credit.

  1. Populate the table with your offerings. In Erik’s example the Offerings table contains entries such as Touch‑Up Refresh ($250.00, 0.25 credits) and Community Post ($1,000.00, 1.00 credit).

The Offerings table centralises pricing and ensures the number of credits consumed per deliverable is calculated automatically.

3. Track invoices and credit balances

Next you need a way to record invoices and the number of credits each client purchases. Create a table called Invoices and set up these fields:

  1. Invoice Number – a single‑line text primary field (e.g. INV-000000).
  2. Amount – a Currency field representing the invoice total.
  3. Credits – a Number field showing the credits purchased on that invoice.
  4. Invoice Date – a Date field.
  5. Quote – an Attachments field for storing PDF quotes or signed agreements.

Later you’ll link invoices to individual transactions. When you add those links, Airtable will automatically create a Transactions roll‑up field showing how many transactions are associated with each invoice. Erik also adds two additional calculated fields:

  • Credits Used – a Rollup that sums the Credits field from linked transactions to show how many credits have been consumed. To create it, choose Rollup as the field type, select the linked Transactions table as the source and roll up the Credits field using the formula SUM(values). This field updates automatically whenever transactions are added or removed.
  • Credits Remaining – a Formula field that subtracts used credits from the purchased amount:
  • {Credits} - {Credits Used}

These fields let you quickly see how many credits remain on each invoice. For example, if an invoice includes 13 credits and you’ve used 1.25 credits so far, the Credits Remaining field will show 11.75.

4. Capture post deliverables

Content pieces such as blog posts, guides or videos are created in their own table. Create a table called Posts with the following fields:

  1. Title – rename the primary field to hold the post’s title.
  2. Status – choose Single select and define statuses that match your workflow (e.g., Ready for Briefing, Brief Ready for Client Review, Draft Ready for Client Review and Final Published). Colour‑coding the options makes it easy to scan a list of posts.
  3. Delivery Date – a Date field for the due date.
  4. Link to Brief and Link to DraftURL fields that store links to the brief and draft documents.

You can extend this table by adding columns for assigned author (linked to the Bench table), editorial notes or content type.

5. Build a table for refreshes

Content refreshes (updating an existing article) use credits too, so Erik dedicates a table for them. Create a table named Refreshes and configure these fields:

  1. URL – rename the primary field to a Single line text field that stores the page’s URL.
  2. Status – a Single select field with statuses such as Proposed, Scheduled, In Progress and Completed.
  3. Planned Date – a Date field.
  4. Executed Date – another Date field for when the refresh is completed.
  5. CTAs – optional text or single select field for call‑to‑action details.
  6. Notes – long text for any remarks.

As you link refreshes to transactions in the next section, Airtable will automatically create a Transactions field in this table showing how many transactions are associated with each refresh.

6. Track how credits are spent with the Transactions table

The heart of the Content‑Ops base is a Transactions table. Each row represents a unit of work that consumes credits—either a new post or a refresh. Create it as follows:

  1. ID – change the primary field to Auto number and rename it “ID.” Auto numbers ensure each transaction has a unique key.
  2. Offerings – add a Link to another record field that links each transaction to an entry in the Offerings table. Disable “allow linking to multiple records” so a transaction references exactly one offering. When prompted, Airtable can automatically add lookup fields for the offering’s price and credit value; accept these to get Retail Dollar Value and Credits columns in the Transactions table.
  3. Posts – add a Link to another record field pointing to the Posts table. Each transaction that represents a new piece of content should link to its corresponding post.
  4. Refreshes – add another Link to another record field pointing to the Refreshes table. A transaction will link either to a post or a refresh, but not both. Enforcing that constraint programmatically would require an automation script, but you can impose it procedurally in your workflow.
  5. Invoices – add a Link to another record field that links each transaction to the invoice that pays for it. Again, restrict this link to a single invoice. When the link is created, Airtable may ask whether you’d like to add lookup fields; these aren’t strictly necessary because you will roll up the credit usage on the invoice side, but you can include them for convenience.

Your Transactions table now contains columns for ID, Offerings, Retail Dollar Value, Credits, Posts, Refreshes and Invoices. Add a row for each unit of work. In the video Erik enters two transactions:

These transactions roll up to the invoice so you can see how many credits have been consumed and how many remain.

7. Review credit usage

Once you have transactions linked to an invoice, the Credits Used and Credits Remaining fields you created earlier become invaluable. In the example above, the first invoice purchased 13 credits and the two transactions consume 1.25 credits (1.00 for the community post and 0.25 for a touch‑up refresh). The Credits Remaining field therefore shows 11.75 credits left. As you add more transactions, the rollup automatically updates.

8. Extend and automate

This basic structure gives you a functioning Content‑Ops base that tracks your team, offerings, invoices, posts, refreshes and credit consumption. From here you can:

  • Add Views to each table to filter by status (e.g., show only posts ready for briefing) or by assigned writer.
  • Build Interfaces to present a dashboard view for account managers or clients.
  • Create Automations to send notifications when credits drop below a threshold or when a post changes status.
  • Use Airtable’s Scripting block to enforce rules such as “each transaction must link to exactly one of Posts or Refreshes.”

By following the steps above and tailoring the fields to your needs, you’ll have a flexible base that ensures clients always know how many credits they have left and your team always knows what work needs to be done.