Select the intent programatically during initialisation of the bot

I want to select differently intents based on the user selection from the iOS app. How can this be possible programmatically? As of now, I see we can select only one intent in the bot builder configuration that is auto selected always on launch.

@chandrahasan1 Could you please provide more details on your requirement?

If the use case here is present the end user a menu with a list of tasks and invoke the task based on user selection, then have a Menu dialog with Message node presenting all tasks in form of templates. (Say Carousel or button template for instance). On tap of elements at the presented template, you could configure to payload as the intent name to the bot.

@Subrahmanyam Yes, this is exactly my requirement. Can that menu be outside of the Chatbot, as we have some pre-intent (preparation) steps one the intent is selected manually by user.

@chandrahasan1 If you say “outside of chatbot”, does it mean outside of a dialog? If Yes, please use the show message option at the event onconnect and use a template for presenting the menu. The rest of the configuration would be the same on how developer would want to send the payload back to bot when user clicks on the template options.

@Subrahmanyam thank you for your reply. By “outside of chatbot”, I mean before the chat bot is initiated. I want the intent to be selected automatically as soon as the bot is connected. e.g Currently only single intent can be selected(always) in onConnect event. How can we select different intents based on users selection at onConnect event.

Thank you.

Please check if below configuration at invoked dialog (using onconnect) could serve the requirement,

  1. Invoke a dialog which has script node after intent node
  2. Validate the context information in the script node
  3. Add linked dialogs to the script node
  4. Apply conditional transitions using connection to the linked dialogs based on the data present in context.
1 Like

I also think that at the function rtmConnectionDidOpen() (Please refer to https://github.com/Koredotcom/iOS-kore-sdk/blob/5e37e0c3597b270df1e5c06bb31d0880e2740f4f/KoreBotSDK/Library/RTM/RTMPersistentConnection.swift), the developer could send the task name as a message to the bot which could invoke the intended dialog.

A similar use case has been quoted at below topic while configuring webSDK and it could help you as a reference.

1 Like

Hi @Subrahmanyam.

This solution is more apt for me. Thank you.

The earlier solution doesn’t work in iOS, because in iOS I am unable to send contextual information to the bot using customData option.