Making the most of Metadata and Entities

Hello devs,

I got a simple yet tricky question, how to make the most of Metadata / Entities to make more of your chatbot? How do you work with metadata / entities in your company, how is it set up, what information are you extracting and what do you get out of that? All tips and trics are welcome!

I feel like both are powerful tools but I am unsure of practical usages, specially for metadata.


Hi Stasysha,

Entities are used to capture specific certain parts of inputs. E.g. if you’re creating a travel bot, you’d like to capture the city name if the user asks “Can I book a flight to Barcelona?”. You can read more about them here Entities | Teneo Developers .

Metadata has historically been used to extract more in statistics, but now it’s mostly easier to write TQL queries to extract the data you need. So instead of marking the city name as metadata, you instead write a TQL query to find the value of the city entity when it’s mentioned.

You can read more about TQL in Teneo Query Language | Teneo Developers .

You could also have a look at Plan your bot | Teneo Developers . It might be a bit too high level, but give you some insights into how we approach bot design.

Does this somewhat answer this simply tricky question? :slight_smile:

Thank you Eaili,

No, unfortunately that is not what I am looking for. I am looking for tips / practical examples of how to make the most of those two features, to take our Teneo Solution to even higher edge. I’ve been to every corner of the website so I got the ‘basic’ understanding of the concepts and both are implemented.

What is advantage of having an entity over for example just appending a variable to a .LIST object? image To me seems like the same functionality.

Metadata is not much more useful than just to query things ‘smooth’? :frowning:

Looking forward if someone can share (if there is) a more high end usage of those two :smiley:

when it comes to metadata, it allows you to inject the logs with metadata which

  • has no purpose for the bot at runtime
  • is useful for querying in the future
  • is not available after the fact
    so it does have it uses for certain use-cases. However, that feature doesn’t provide much for the conversational design.

As for Entities, yes, you can achieve much of the same with LIST language objects, and working directly with the condition does give you some more flexibility than with the condition field in the Entity UI.
However, the biggest advantages with using Entities are maintainability, both when handling larger lists of entities and especially with multiple values (such as the CITIES_NL example in Entities | Teneo Developers , which could quickly become a hassle to maintain). And that it’s much easier for someone else to look at who isn’t as fluent in the condition language as others.

I personally think it’s awesome that you’ve mastered these concepts!
To get you bots to the next stage - without knowing the details of your use-case - I would now focus on conversational design and making your bot more human-like.
One way of accomplishing this is to publish the bot, ask a few friends or colleagues to test it, and then get feedback from them and look through the sessions and see how the bot behaves. And work iteratively to polish and improve the experience.

1 Like

Cool stuff, thank you!

We have our bot running in production for two years now with real customers :smiley: I joined dev team almost one year ago so I am interested in techniques we did not use a lot.


1 Like