Understanding a user intent can depend on the ability to classify the important elements of the conversation. This could apply to the everyday elements that end-users may employ (location, days, time etc.) but also industry, sector or brand specific ones. These are stored as entities.
You can use entities to store information to be used later in the conversation, in Flows, or to pass to Integrations that reference external services.
Entities are prefixed with the @ symbol.
One or more variables can be assigned to an entity, and will inherit that entity's properties. These can be used in a Flow, for instance, to capture multiple instances of the same entity.
Humley Studio allows you to build your own Custom Entities, and to create them from a list of pre-configured System Entities.
You must give a Custom Entity a number of values and/or patterns in order to recognise and group key inputs.
Text values can enforce exact matches to acceptable inputs, e.g. you may want to restrict values for the entity @PhoneOS to either “iOS” or “Android”.
You can also give each text value a number of acceptable alternative inputs.
e.g. the @SalesCountry custom entity has a number of text values, one of which is “US”. This value can have alternatives of “USA”,“United States of America”, "America" etc. If any of those alternatives are given, the input will recognised as belonging to this entity. However, it will be normalised and stored as the base value name “US”.
All user utterances are interrogated at the point of entry for the existence of values and/or patterns that match your entity library, and the latest entry is stored against that entity.
If the entity is used in a Gather module in a Flow, any user input that doesn't conform to these values will be 'rejected', triggering the module's Fail Response.
Pattern values are used when you want to allow a wider range of inputs, but still restrict them to a pattern. This is achieved using regular expressions (regex).
e.g. you could assign an entity @PositiveInteger a regex of
If the entity was used in a Gather module in a Flow, any user input that didn't conform to this regex pattern would be 'rejected', triggering the module's Fail Response.