Build an AI-Ready Content Library with Umbraco, Webhooks and Zapier
What if you could ask your website content questions with AI?
This is the second article in my series about building automation setups in Umbraco using webhooks and no-code tools like Zapier.
If you have not read part one yet, start there first: Automate your lead flow in Umbraco with webhooks and Zapier. It covers the webhook basics and makes this setup much easier to follow.
My goal with this series is to show editors and marketers how to connect their website to other tools, clean and structure content, and make it useful for AI without writing code.
Everything here is built on real workflows we use in the Growth team, so you can follow along, adapt it, and make it your own.
Let’s be honest: most tools say they “have AI” now, but the value depends entirely on what you put into them. If the system does not know your content, it cannot help you.
That is why this setup matters. We will pull website content into Airtable, structure it, and use Airtable’s AI features to ask practical questions, spot outdated content, improve internal linking, and keep the site in shape.
And yes, this setup may or may not have helped me find a few mentions of old software versions hiding deep in the site.
In short: this tutorial shows how to publish content from Umbraco into Airtable through Zapier, keep records updated automatically, and create a searchable content library that AI can use for QA, content gap analysis, and internal linking support.
What we are building
We will build a simple workflow:
When a new blog post is published in Umbraco -> Send content to a Zapier webhook -> Create or update an Airtable record.
The result is a living content library you can use for:
- content QA
- internal linking work
- metadata checks
- AI-assisted content analysis (for example with an AI Answer Readiness Checker)
- future automation workflows
Before you start, make sure you have access to this area in Umbraco:
Settings -> Advanced -> Webhooks
If you do not see it, ask your Umbraco admin to grant access or configure the webhook for you.
A note on tools
For this setup I use:
Umbraco + Zapier + Airtable (with Omni AI)
You can swap parts of this stack if needed. Anything with webhook support can work (for example Make, n8n, Notion, or Smartsheet).
If you use Airtable, make sure AI features are enabled for your workspace/base. You typically need admin access to do this. Airtable documents it here: How to turn Airtable AI on or off.
Step 1: Set up your webhook in Zapier
We start in Zapier so we can generate the webhook URL.
- Create a new Zap.
- Choose the trigger: Webhooks by Zapier -> Catch Hook.
- Skip the optional configuration and go to Test Trigger.
- Copy the generated Webhook URL.
You will use this URL in Umbraco.

Step 2: Configure the webhook in Umbraco
- Go to Settings -> Advanced -> Webhooks.
- Click Create.
- Add a name and description.
- Set event to Content Published.
- Pick the relevant content type (for example Blog Post).
- Paste the Zapier webhook URL.
- Enable the webhook and save.
Done. Now we can test it.

Step 3: Test the webhook
- Open a blog post in Umbraco.
- Click Save and Publish.
- Return to Zapier and test the trigger again.
- You should now see your content fields in the webhook payload.
If you can see fields from Umbraco in Zapier, the trigger is working.

Step 4: Prepare your Airtable table
Create a table with the fields you want to store.
For this example:
- Backoffice ID
- Title
- URL
- Author
- Content
- Publish date
- Update date
- Title tag
- Meta description
- Other metadata you care about (tags, categories, schema-related values, etc.)
You can inspect the webhook test payload in Zapier to see which fields are available from Umbraco.
Step 5: Check if the page already exists
In Zapier:
- Add Airtable -> Find Record.
- Select your base and table.
- Set Search by field to Backoffice ID.
- Map Search value to the Umbraco page ID from the webhook.
- Test the step.
This prevents duplicate rows and gives you a clean way to handle updates.

Step 6: Split between new and existing content
Use Paths in Zapier as the next step.
Path 1 -> New content
- Condition: Backoffice ID does not exist
- Action: Create record
Path 2 -> Existing content
- Condition: Backoffice ID exists
- Action: Update record
This makes the workflow safe to run on every publish event.

Step 7: Clean the input
Webhook content often includes HTML. For AI workflows, I prefer storing clean Markdown because it is easier to read, easier to process, and usually cheaper to work with.
Add this Zapier step:
Formatter -> Text -> Convert HTML to Markdown
Map the content fields you want to transform.
Repeat the same formatter step in the update path.
Tip: copy/paste steps between paths to save time.

Step 8: Create and update records in Airtable
For new content
- Use Airtable -> Create Record
- Map fields from the webhook + cleaned Markdown fields
- For the URL field, use the route path from Umbraco and prepend your site domain so the record contains a full URL
For existing content
- Use Airtable -> Update Record
- Use the Record ID returned by Find Record
- Map the same fields as in the create path
At this point you have a content archive in Airtable that stays updated when editors publish changes.

Backfill your existing content
The webhook flow gives you a strong foundation for new content, but the library becomes much more useful when you include older, high-value content too.
I recommend republishing key pages from the past 6-12 months first, then adding older evergreen pages that matter for your content strategy.
You can repeat this setup for:
- product pages
- documentation
- landing pages
- case studies
- campaign pages

Use AI on top of your content library
Once the content is in Airtable, you can start using Airtable AI features immediately.
1) Field Agents (classification and automation)
Airtable Field Agents are useful for tagging, classification, and structured enrichment. They can also help automate repetitive tasks if you set them up with clear instructions.
For example, you can use them to:
- classify blog post type
- assign categories/tags
- flag pages for manual review
- generate first-pass social copy from approved content
Airtable has documentation here if you want to explore the feature in more detail: Using Airtable AI in fields.

2) Omni AI (querying your website content)
Before you can query your content in Airtable, you need to enable Omni for the base.
Basic setup:
- Open the base you created
- Click the Omni icon
- Enable Omni and configure access/settings
- Add context about your business so responses are grounded in the right terminology and priorities

Once this is in place, you can ask questions like:
- “Which pages mention outdated versions of our software?”
- “List pages that should link to our new blog post.”
- “Show content gaps based on this FAQ list.”
- “Find inconsistencies in our meta descriptions.”

Go beyond website content: query your content against other intelligence sources
This is where the setup becomes more valuable than a simple content archive.
Once your website content is in Airtable, you can start combining it with other datasets you already have (or can automate in) and ask better questions across the whole system.
Examples of useful inputs:
- G2 reviews for your company (what customers actually say)
- G2 reviews for competitors (how the market frames alternatives)
- Sales call transcripts (pain points, objections, buying triggers)
- Support conversations (common friction after purchase)
- Marketing materials like webinar transcripts or YouTube video transcripts
- Market intelligence captured through your own workflows (for example, a Slack workflow powered by agentic AI — I will write a separate post on that setup)
With that in place, you can query your website content against real market signals, not just against itself.
Examples:
- “Which recurring objections from sales calls are not clearly addressed on product pages?”
- “Where does competitor messaging show up in reviews, and do we answer it on our site?”
- “Which G2 themes appear often, but are underused in our content?”
- “Which webinar topics should become supporting pages or FAQ sections?”
This is a much better use of AI than generic content generation. You are using it to compare structured knowledge sources and find gaps worth fixing.
A few practical tips when using Omni
It is credit-based
Omni uses AI credits. Check your plan so you understand your limits. Credits reset each billing cycle, and even free plans include a limited number of credits per user.
Be specific with prompts
Avoid asking AI to scan everything across many tables at once.
Be explicit about:
- which table to look at
- what question you want answered
- what output format you want back
Specific prompts reduce noise and reduce hallucinations.
You can upload files
If you want Omni to work with additional material (presentations, quotes, references, transcripts), you can upload files to the base and expand the context it can use.
Omni cannot query across separate Airtable bases
Omni works within a single base. It cannot cross-reference two different Airtable bases directly.
If you need cross-base work, keep the connected datasets in one base (or move summaries between bases manually).
Final thoughts
That is the full setup.
You now have a practical workflow to pull Umbraco content into Airtable, keep it updated automatically, and build a content library you can actually use with AI.
If you are new to this, start small:
- Build the webhook connection
- Sync a few pages
- Ask one real question about your content
Once you see the value, you can expand into:
- internal linking suggestions
- metadata QA checks
- content classification
- content gap analysis
- workflow-specific AI assistants
Start with the library. The AI part gets much better once the foundation is solid.
FAQ
Do I need Airtable to build this workflow?
No. Airtable is the stack used in this example, but the pattern works with any tool that can receive structured content from Zapier (or another automation tool) and store it in a searchable format.
Can I do this without Zapier?
Yes. The core idea is webhook -> transform -> store. Zapier is just one implementation. You can build the same pattern in Make, n8n, or another automation platform that supports webhooks and field mapping.
What is the main benefit of moving website content into a content library?
It gives you a structured, queryable version of your content that can be used for QA, internal linking, metadata checks, and AI-assisted analysis. You can combine it with tools like an AI Answer Readiness Checker to review structure before publishing. The practical win is not “AI for AI’s sake” — it is faster content operations with better context.
Recommended next
More writing connected to this topic, based on shared tags.