How do I import and export my Comm100 Bot?

December 5th, 2018 | Chatbot Management

With Comm100’s Bot, you can import and export not only Intent and Entities but also the bot itself (along with its configured settings like intents, entities, quick replies etc). This helps when you want to back up your current Bot but also set up the same bot in a new Comm100 account. This article introduces the steps to export Bot and requirements needed to import Bot from an XML file.

Step by Step Instructions

  1. Log into your Comm100 Control Panel.
  2. Click the Bot module under the top navigation bar.
  3. Go to Bot > Bots menu, then navigate to the Export/Import icons under the Operation header.
  4. Click the Export button to export the bot data from your comm100 account then Save the file to your prefered location.
  5. bot export
  6. To import, click the Import button to upload bot data from an XML file. Please refer to the following section for detailed requirements.
  7. bot import

    Note: Importing new bot data will DELETE ALL existing data of your current Bot, including its intents, entities, quick replies, settings, etc. Please proceed with caution.

Requirements for Importing Bot Data

  1. Requirement specs
    • Format Supported: XML
    • Max File Size: 10MB
  2. Example XML Bot Data
  3. Please see the following .XML file for an example of bot data. Included are detailed descriptions beside each input for reference:

<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v5 rel. 2 U (http://www.xmlspy.com)-->
<BotImportData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Bot> 
		<Language>en</Language>  <!-- language of bot -->
		<BotName>String</BotName> <!-- bot name -->
		<GreetingMessage> <!-- this is bot greeting message -->
			<ChannelType>Default</ChannelType> <!-- channel like default channel or live chat -->
			<Type>text</Type> <!-- chat answer type -->
			<Content>String</Content> <!-- greeting message content -->
			<Buttons> <!-- this is button -->
				<Text>String</Text>  <!-- button description -->
				<Type>goToIntent</Type>  <!-- button type Go to Intent, Link or Webview -->
				<UrlOrIntentName>String</UrlOrIntentName> <!-- the text name of the url or intent -->
				<OpenIn>sideWindow</OpenIn> 
				<!-- the style where to open the Link - side window, a new window/tab or the current browser window -->
				<OpenStyle>compact</OpenStyle> <!-- webview style like full, tall, and compact -->
			</Buttons>
		</GreetingMessage> <!-- this is bot greeting message -->
		<NoResponseMessage>String</NoResponseMessage> <!-- the message shows when visitor question is not recognized -->
		<IsShowAgentLinkWhenNoResponse>1</IsShowAgentLinkWhenNoResponse> <!-- if need to include a chat with agent link -->
		<NotHelpfulMessage>String</NotHelpfulMessage> <!-- messesage content when visit rates 'not helpful' -->
		<IsShowAgentLinkWhenNotHelpful>1</IsShowAgentLinkWhenNotHelpful> <!-- if need to include a chat with agent link -->
		<PossibleResponsesMessage>String</PossibleResponsesMessage> <!-- the message shows when bot sends possible answers -->
		<PossibleResponsesThreshold>10</PossibleResponsesThreshold> how many times the bot gives possible answers
		<IsShowAgentLinkWhenPossibleResponsesThreshold>1</IsShowAgentLinkWhenPossibleResponsesThreshold> 
		<!-- if need to include a chat with agent link -->
		<PossibleResponsesExceedThresholdMessage>String</PossibleResponsesExceedThresholdMessage> 
		<!--message when bot has provided possible answers for serveral consecutive times -->
		<TextWhenAgentIsOnline>String</TextWhenAgentIsOnline> <!-- button text for contact online agent  -->
		<TextWhenAgentIsOffline>String</TextWhenAgentIsOffline> <!-- button text for contact offline agent  -->
		<TransferAgentMessage>String</TransferAgentMessage> <!-- message when bot transfers chat to agent  -->
		<LeaveAMessageClickedMessage>String</LeaveAMessageClickedMessage>  
		<!-- message when visitor clicks leave a message in social conversation -->
		<RequestVisitorLocationMessage>String</RequestVisitorLocationMessage> 
		<!-- message when bot requests visitor location -->
		<LocationButtonText>String</LocationButtonText> <!-- text on the send location button -->
		<SubmitButtonText>String</SubmitButtonText> <!-- text on the submit button in the form -->
		<CancelButtonText>String</CancelButtonText>   <!-- text on the cancel button in the form -->
		<ConfirmButtonText>String</ConfirmButtonText> <!--  text on the confirm button in the form -->
		<HighConfidenceScore>70</HighConfidenceScore> <!-- high confidence score -->
		<NoAnswerScore>30</NoAnswerScore> <!-- no answer score -->
		<Category> <!-- this is category -->
			<CatagoryName>String</CatagoryName> <!-- category name -->
			<Intent> <!-- this is intent  -->
				<IntentName>String</IntentName> <!-- intent name -->
				<IsNeedSingInBeforeBotRespond>1</IsNeedSingInBeforeBotRespond> 
				<!-- if the visitor needs to sign before bot responses -->
				<IsNotifyAgent>1</IsNotifyAgent> <!-- if need to nofigy agent -->
				<IfRequireConfirm>1</IfRequireConfirm> <!-- if require visitors to confirm -->
				<EntityCollectionType>String</EntityCollectionType> <!-- the ways to collect visitor information -->
				<FormMessage>String</FormMessage> <!-- the message when asking visitor to collect information -->
				<FormTitle>String</FormTitle> <!-- the collection form title -->
				<IfRequireDetailInfo>1</IfRequireDetailInfo> <!-- if require visitor to provide additional information -->
				<IfRequireLocation>1</IfRequireLocation> <!-- if require visitor to provide location -->
				<Question> <!-- this is start of questions -->
					<Content>String</Content> <!-- this is question -->
					<QuestionEntity> <!-- mark entity in a question -->
						<EntityName>String</EntityName> <!-- entity name -->
						<StartPos>0</StartPos> <!-- entity start position in a question -->
						<EndPos>0</EndPos> <!-- entity end position in a question -->
						<EntityLabel>String</EntityLabel> <!-- entity label -->
					</QuestionEntity> 
				</Question> 
				<AnswerSignInSettings> <!-- this is the answer setting -->
					<ChannelType>Default</ChannelType> <!-- channel like default channel or live chat -->
					<SignInMessage>String</SignInMessage> <!-- message when asking visitor to sign in -->
					<SignInLinkText>String</SignInLinkText> <!-- text for sign url -->
					<IsSSO>1</IsSSO> <!-- if enable sso -->
					<SignInURL>String</SignInURL> <!-- sign in url -->
					<CustomVariable>String</CustomVariable> <!-- custom varible -->
					<OpenIn>sideWindow</OpenIn>  
					<!-- the style where to open the Link - side window, a new window/tab or the current browser window -->
				</AnswerSignInSettings> 
				<EntityCollectionFormFields> <!-- require visitors to provide additional details via form --> 
					<EntityName>String</EntityName> <!-- entity name -->
					<FieldName>String</FieldName> <!-- field name -->
					<EntityLabel>String</EntityLabel> <!-- entity label -->
					<FieldType>text</FieldType> <!-- field type -->
					<IsRequired>1</IsRequired> <!-- if requied -->
					<IsMasked>1</IsMasked> <!-- if masked in chat transcript -->
					<Options>String</Options> <!-- filed options -->
				</EntityCollectionFormFields>   
				<EntityCollectionPrompts> <!-- require visitors to provide additional details via prompt --> 
					<EntityName>String</EntityName> <!-- entity name -->
					<EntityLabel>String</EntityLabel> <!-- entity label -->
					<Questions>String</Questions>  <!-- prompt questions -->
					<Options>String</Options> <!-- prompt options -->
				</EntityCollectionPrompts>
				<IntentAnswers> <!-- intent answers -->					
					<ChannelType>Default</ChannelType> <!-- channel like default channel or live chat -->
					<AnswerType>text</AnswerType> <!-- answer type like text, buttons, quick replies, etc. -->
					<Answer>String</Answer> <!-- answer that will display to visitor -->
					<IntentAnswerButtons> <!-- this is button -->
						<ButtonText>String</ButtonText> <!-- button description -->
						<ButtonType>goToIntent</ButtonType> <!-- button type Go to Intent, Link or Webview -->
						<UrlOrIntentName>String</UrlOrIntentName> <!-- the text name of the url or intent -->
						<OpenIn>sideWindow</OpenIn> 
						<!-- the style where to open the Link - side window, a new window/tab or the current browser window -->
						<OpenStyle>compact</OpenStyle> <!-- webview style like full, tall, and compact -->
					</IntentAnswerButtons>
				</IntentAnswers>
			</Intent>
		</Category>
		<Entity> <!-- this is entity -->
			<EntityType>None</EntityType> <!-- entity type --> 
			<EntityName>String</EntityName> <!-- entity name -->
			<DisplayName>String</DisplayName>  <!-- entity display name -->
			<EntityItem> entiry item
				<KeyWord>String</KeyWord>  <!-- keyword for the entity -->
				<SynonymsOfKeyWord>String</SynonymsOfKeyWord> <!-- synonyms of keyword  -->
			</EntityItem>
		</Entity>
		<SmartTriggers> <!-- this is smart triggers -->
			<Name>String</Name> <!-- name of triggers -->
			<IsEnabled>1</IsEnabled> <!-- if enable the triggers --> 
			<ConditionExpression>String</ConditionExpression> <!-- condition expression -->
			<ConditionExpressionType>all</ConditionExpressionType> <!-- condition expression type - all, any, logical express -->
			<SmartTriggerConditions> <!-- detailed smart trigger conditions -->
				<Variable>String</Variable> <!-- variable name -->
				<Expression>equal</Expression> <!-- expression -->
				<Value>String</Value> <!-- value -->
			</SmartTriggerConditions> 
			<SmartTriggerActions> <!-- smart trigger actions -->
				<ActionType>notification</ActionType> <!-- acition type like sending notification and transfer chat -->
				<IsEnabled>1</IsEnabled> <!-- if enable the action -->
				<VisitorSegmentId>0</VisitorSegmentId>  <!-- visitor segment id -->
				<AgentOfflineMessage>String</AgentOfflineMessage> <!-- message when agent is offline -->
				<TargetType>agent</TargetType> <!-- target type department or agent -->
				<Departments>String</Departments> <!-- the department that chat will be transferred to --> 
				<Agents>String</Agents> <!-- the agent that chat will be transferred to --> 
			</SmartTriggerActions> 
		</SmartTriggers>
		<QuickReplys> <!-- this is quick repley-->
			<Name>String</Name> <!-- name of quick reply -->
			<QuickReplyItems>
				<Type>goToIntent</Type> <!-- the purpose of the quick reply - go to intent or contact agent -->
				<Name>String</Name> <!-- quick reply -->
				<IntentName>String</IntentName> <!-- intent name -->
			</QuickReplyItems>
		</QuickReplys>
	</Bot>
</BotImportData>

Be the 1st to vote.