Dialogflow CX: optional parameter capture

Sometimes user input is

1: I want to order a new project

and sometimes it is

2: I want to order a new project called SalesPitch

and sometimes it is

3: I want to order a new project called SalesPitch for delivery by tomorrow

Input 1 above is easy to recognise. The chatbot has to go on to ask what the project name should be, and when delivery is wanted.

Input 2 can detect the intent and pick out the projectName in one go. But in the Dialogflow CX console, I cannot mix Input 2 phrases and input 1 phrases, so that projectName is optionally extracted from input. Once I start with an annotated training phrase, the intent editor seems to demand that every subsequent training phrase includes the same entity to be extracted. It automatically annotates every phrase with the entity, and I cannot delete the annotation from the training phrase.

It seems I cannot mix annotated and unannotated training phrases in one intent. Is that true? Anyway, I can try and work around this by creating two intents, one that requires the parameter to be defined in the input, and one that does not.

But then we come to input 3. The user can specify delivery date too. So now I have two optional parameters, either of which might be present in the input. That means I now have to have four different intents with training phrases for the four options of zero, one or two parameters in the input. And then if I have another optional parameter, I need eight different intents…

Is that the way to do it?