I’ve had a request to investigate integrating AI into a client’s site, to bolster its own chances of being referenced in AI searches by customers (“GEO”). Their site content is heavily based on block lists, so a product page might contain a Text Block describing the product, an Image Block, and FAQ Block about the product etc. Since the blocks can be fairly generic (e.g. a “Text Block” could contain information about a product or general article information or quotes etc) there isn’t a great way of being able to create a JSON-LD structure from that block’s data automatically in code, as the content could represent one of several types of schema. Ideally there’d be a block for each type of JSON-LD schema and it would then be much simpler, but this is a historical site with a huge amount of content so that’s not an option.
I’m investigating whether it would be feasible to add a property to each page called ‘JSON-LD’ or something, and potentially have AI read through all of the block content on that page and create suitable JSON-LD data from it.
Question 1. Is this viable? If so, how, in simple terms would this be achieved? I’ve not yet used Umbraco AI so it’s a little abstract at the moment.
Question 2. Is there a way the client can use their own AI tooling, outside of Umbraco, to update content inside Umbraco. I’m thinking for example, the client opens their desktop AI agent and says “create JSON-LD schema data for all pages in the product section”, or “on the ‘Widget’ page, modify the JSON-LD schema to be a Product rather than an Article”, or even, “add an FAQ block to the ‘Widget’ page, with this content (…) and summarise that information in a JSON-LD snippet using the FAQPage schema”. This should be gate-kept so changes needed manual save + publishing in the back-office. Again, if this is doable, what would be the overall approach? Would it require custom code etc?
I imagine there’s a lot of ways to achieve this. It’d be good to understand the type of content on the site, as that’s where you start with JSON-LD. If you need to define data outside of the typical options (recipes, articles, organisations e.t.c.) then you can define your own schemas. That’s a great job to give AI.
Umbraco AI has access to your content and would be a good tool to generate the JSON-LD data, so creating a read-only property sounds like a good idea. I’m not entirely sure how you’d achieve that though, I’ll let someone more knowledgeable than me to advise.
In terms of outside tooling, that might be possible with Webhooks, but I’d generally stay away from this approach, as it might make things more confusing for editors, and require a great deal of work. Ideally, you’d be able to ask Umbraco AI the same question (see this video for an example).
The final piece would be regenerating the JSON-LD after content change. You might be able to do this with Webhooks or a saved AI process, but that’s for someone who knows more than me!
This looks really interesting, thanks! Since the block types on this site are mostly very generic there isn’t necessarily a particular field which maps neatly into a JSON-LD property, it’s something I’m hoping can be inferred from the overall page content via AI, with the ability to edit if needs be. Similarly a single page might contain data which maps to potentially multiple JSON-LD schemas, and I’m not clear whether it can do that or not. Will certainly dig in and have a better look, thanks!