Advice- creating class/ schema please

I’m looking for some advice please

I want to ingest all the Knowledgebase articles from my Helpdesk into Weaviate and train an AI agent to answer questions about them.

The articles are in Zoho Desk and available via API.

Finally here’s my question-
What are the key criteria I need to consider for getting this stuff into Weaviate?
Maybe I should be looking at ingesting helpdesk tickets and their resolutions?
Category will be important because some users don’t get access to all categories

Happy to be guided to any resources, I’ve watched a lot of videos and haunted a lot of docs without finding much - could be looking in the wrong places!

Thanks in advance


Hi @amc !

Welcome to our community :hugs:

I believe you can ingest both the ticket, resolution and the category in order to filter by the tickets your user has access to.

As you are bringing data from another system, that probably already have it’s own id, you can also store this ID as a property, and generate Weaviate UUID based on this information.

This will grant will make your life easier if you want to update it later on, as you generate Weaviate ID based on a field data you already have.

So for example, in python:

with client.batch as batch:
    for o in data:
        obj_body = {
            "question": o["Question"],
            "answer": o["Answer"],
            "zoho_desk_id": o["ID"],

One thing you should consider: if you texts are very large, a good practice is to chunk it into smaller, more manageable pieces, otherwise you endup with a text that has too much meaning into it, making it hard to get only the pieces that is similar to what you are looking for.

Check out how we do it in Verba, as it might give you a clue on how to create your classes to receive your content:

Let me know if this helps :slight_smile:

Thanks for the comprehensive answer @DudaNogueira

The reference material we want clients to see is in the Knowledgebase, but the final answers to their queries are in the Ticket system.

I had not considered this before, but it does infer that we should be using KB articles to cover ticket issues (ok that is obvious now I’ve said it!). I think the optimal answer here is to use the KB articles for Weaviate, but use the tickets as primary source material.

None of the articles are long, if they are then I have failed!