Why is my custom entity not working?


i just started working with voiceflow and what a shame I’m already stuck.

I want to ask for a user’s name and then welcome him (screenshot attached).
For that, I have added a custom entity called “name”. After I put my name in it when testing it just tells me “session ended”. If I do the exact same thing but use the e-mail entity, it’s working fine and the output is as intended.

I already tried to find the answer myself why my custom entity is not working but I could not find anything that helped me.

I know this also can be done with the “capture” block, but i want to know what I’m doing wrong here.

Thanks in advance!


Hey Chris, are you able to share a screenshot in how you set up the entity and the block in question?

1 Like

Hi tahsim,

thank you for your reply :slight_smile:

Here you go the screenshot is attached.

Here is the second screenshot as I only can post one in a post as a new user.

custom entity type requires some values as a sample for NLU to understand what user said/input as person name. In that case, choice block might not fill slot and go to “No Match”.

e-mail entity is a built-in, that means it has already enough numbers of samples to understand what user said/input as e-mail.

This is the difference between built-in and custom entitity.

seems there is a built-in entity for Name, but for only en-US and zh-CH, not for other locales. I guess you need to add more sample values as much as possible.

1 Like

Thank you for your reply. But will there be any downsides if I youse the email entity? Or is the better way to do it with the capture block?

Or is it possible to connect a sheet with a few thousand names to train the entity?

IMO, built-in entity types’ recognition is generally better than custom. If you can use suitable entity type in your conversational context, you should use it.

Also, choice block and capture block is same basically. The differences are:

  • choice block supports variations of utterances with slot, capture block always expects only entity itself.
  • chocie block supports “no match” route as fallback which what user said/input does not match any intents. capture block does not support “no match” and you need to check if entity value is filled correctly with if block in that case.

In both cases, the most important thing is that NLU recognize the keyword user said/input (“name” in your case) “as an entity value”. The more sample, the higher recognition.

Or is it possible to connect a sheet with a few thousand names to train the entity?

seems not support connection with external data sources such as google spreadsheets, but you can use bulk-import from copy/paste or csv.