Xenioo
  • Welcome!
  • Basic Concepts
    • Your Account
      • The Free plan
      • Upgrading to a paid plan
      • Canceling your subscription
      • Deleting your account
      • Additional Packages
      • Support
      • Payment & Invoicing
      • Messages Count
    • Designing your Chatbot
      • Introduction
      • Behaviors
      • Interactions
      • Actions and Operations
    • Chatbot Details
      • Chatbot Settings
        • General Chatbot Settings
        • Chatbot Conversation Settings
        • Chatbot Integration Settings
      • Teams
        • Team Permissions
        • Team Message Templates
        • Team Member Access
      • Backup & Restore
      • Clone and Reference Clone
    • Publishing
      • Live & Draft Chatbots
      • Publish Your Bot
      • Channels
        • Web
          • Web Variables
          • WordPress
          • Widget Customization
            • Initialization
            • Scripting
        • WhatsApp
          • WhatsApp Variables
          • First Message Processing
          • Configuring Providers
            • Infobip
            • ZOKO
            • MessengerPeople
            • Twilio
            • Chat-API
            • Maytapi
            • Wassenger
            • Waboxapp
        • RCS
          • RCS Variables
          • Configuring Providers
            • LINK Mobility
        • Google Business Messages
          • Google Business Messages Variables
        • SMS
          • SMS Variables
          • Configuring Providers
            • LINK Mobility
        • Facebook
          • Facebook Ads Integration
          • Feed Integration
          • Messenger Referral
          • Facebook Variables
          • Moving users from an existing bot to Xenioo
        • Telegram
          • Telegram Deep Linking
          • Telegram Variables
        • Slack
          • Configuring Slack
          • Slack Variables
        • Microsoft Teams
          • Microsoft Teams Variables
        • Discord
          • Discord Variables
        • Alexa
          • Troubleshooting
          • Alexa Variables
        • Google Assistant
          • Google Assistant Variables
        • Phone
          • Phone Variables
          • Configuring Providers
            • Voximplant
        • Custom
          • REST Reference Guide
          • API Variables
    • Users and Conversation Persistance
  • Artificial Intelligence
    • Intents
    • Expressions
    • Entities
      • Creating Manually
      • Entity Types
      • Synonims
    • Training & Testing your Model
      • Using the NLP Parse Logs
      • Importing Intents From File
    • NLP Master
  • Database
    • Xenioo Database
    • Collections
      • Import And Export Collections Data
    • Database API Interface
      • Url Filtering Syntax
      • Save To Collection
      • Delete From Collection
      • Query Collection
      • CSV Direct Data
  • Broadcasts
    • Broadcasts
      • Settings
        • On Demand
          • HubSpot
        • On Date And Time
        • On Time
        • On Trigger
        • On Interval
    • Campaigns
    • Distribution Lists
    • Audiences
    • Distribution Logs
  • Conversations
    • Conversations
    • Contacts
    • Chat Commands
    • Contact Details
    • Data Retention
  • Actions And Operations
    • Execution
      • Execution Diagram
    • Actions Availability
    • Variables and Tags
    • Dynamic Parsing And Content
    • Content
      • Text Action
      • Random Text Action
      • Quick Reply Action
      • Database Quick Reply Buttons Action
      • Quick Reply Array Action
      • Chat Delay Action
      • Phone Quick Reply Action
      • Email Quick Reply Action
      • Location Quick Reply Action
      • Display Location
      • Image Action
      • Video Action
      • Audio Action
      • File Action
      • Url Action
      • NLP Topics Summary Action
      • Highly Structured Message
      • Custom Class
    • Input
      • Voice Recognition Action
      • Global Detection
        • Text Parse Action
        • NLP Processing Action
        • Dialogflow Detection Action
        • IBM Watson Assistant Intent Detection Action
      • Generic Input Action
      • NLP Input Action
      • Number Input Action
      • Email Input Action
      • Phone Number Action
      • Media Attachment Action
      • Voice Input Action
      • Global Detection Action
      • Dialogflow
        • Dialogflow Input Action
        • Dialogflow Detection Action
      • IBM Watson Assistant
        • IBM Watson Assistant Input Action
        • IBM Watson Assistant Detection Action
    • Flow
      • Go To Action
      • Include Interaction Action
      • Random Split Action
      • Flow Control Action
      • Set Chat Operator State Action
      • Schedule Behaviour Action
      • Variable Switch Action
      • Tag Switch Action
      • Set Context Action
      • Conversation Bookmark Action
      • Create Conversation URL Action
      • Reset Conversation Action
      • Control Conversation Transfer Action
        • Forward Variable Value Action
    • Forms
      • Form Container
      • Fields
        • Text Box
        • Password
        • Text Area
        • Dropdown
        • Checkbox
        • Number
        • Date Picker
        • Time Picker
        • Calendar
        • File Upload
      • Layout
        • Image
        • Literal
        • Divider
        • Html Content
        • Custom CSS
    • Database
      • Load Single Record
      • Delete Records
      • Save Record
      • Save Raw Model
      • Query Collection Data
      • Move To Next Record
      • Set Field Filter Value
      • Order By Field
      • Set Field Value
    • Cards
      • Carousel Template Action
      • List Card Template Action
      • Buttons Card Template Action
      • Card Container Action
      • Interactive Message Action
      • One-Time Notification Request Action
      • Database Carousel Action
      • Dynamic Carousel Action
      • Card And Menu Buttons
        • Postback Button Action
        • URL Button Action
        • Call Phone Button
        • Share Button Action
        • Nested Button Action
        • Interactive Button
    • Profile
      • Set Variable Action
      • Delete Variable Action
      • Set Tag Action
      • Delete Tag Action
      • Set Campaign Subscription Action
    • Privacy
      • Forget User
      • Privacy Opt-In
      • Privacy Flag Condition
    • IoT
      • Control Device State
      • Device State Switch
    • Integration
      • Call API Service Action
      • Execute Cloud Script Action
        • Base Conversation object methods
        • Firebase Connection methods
        • Xenioo Database Collection Methods
      • Execute Client Script Action
      • Send SMS Message
      • Dynamic Content Action
      • Post To Facebook Action
      • Firebase Database Action
      • ActiveCampaign Action
      • Zapier Webhook Action
      • MailChimp Contact Action
      • Wordpress Search Action
      • RSS & Podcast Feed Action
      • SendGrid Mail Action
      • Send Mail Action
      • Send Custom Mail Action
  • Xenioo API
    • Choosing your API
    • Global Platform API
      • Authorization
      • Platform SSO
      • Bots
        • Publish
        • Clone
        • Reference Clone
        • Teams
          • List
          • Add Or Update
          • Delete
      • Conversations
        • Exist
        • Data
        • Share Url
      • AI
      • Statistics
        • Runtime Data
        • Report Files
        • Download Report File
      • Broadcasts
        • Broadcasts List
        • Broadcast State
  • Service State
    • Scheduled Maintenance
    • Platform Changelog
Powered by GitBook
On this page
  • JSON Objects
  • Variables Text Editor
  • Recursive Parsing
  • Content Formatting
  • Italic
  • Bold
  • Strikethrough

Was this helpful?

  1. Actions And Operations

Dynamic Parsing And Content

Xenioo Dynamic Parsing let you specify any variable inside any action or operation text field. Each variable is then transformed at runtime to the current value.

Dynamic Parsing is activated by enclosing the variable name (or name + property tree) between double curly brackets. So, for example, to use a simple salutation specifying your contact user_name, you may do something like this:

Hello {{user_name}}, how are you?

Assuming that the variable user_name has "gian" as value, the text at runtime will automatically become:

Hello gian, how are you?

JSON Objects

Dynamic parsing fully supports real-time JSON parsing: object properties and indexes can be specified using standard property notation to access complex values. Let's assume that the variable user_data holds the following value:

{
    "code":"101021",
    "Name": "Super Customer",
    "Level":"Vip Customer",
    "Points": [
        {
            "Value":2500
        }
    ]
}

To access, for example, the value of points you can use Dynamic Parsing like this:

Hello {{user_data.Name}}! You currently have {{user_data.Points[0].Value}}!

The result, at runtime, will become like this:

Hello Super Customer! You currently have 2500!

When using JSON arrays, you can use the (Length) syntax to know the number of elements contained. So, as an example, using a syntax like this:

Hello {{user_data.Name}}! We have found {{user_data.Points.(Length)}} value(s)!

Will be translated to:

Hello Super Customer! We have found 1 value(s)!

If you need to avoid parsing of a specific content where, for some reason, you are using the same syntax as Xenioo variables, just make sure to escape each double curly bracket like this:

Hello \{\{user_name\}\}!

Variables Text Editor

Dynamic Parsing is supported in all text fields of every action or operation. To help you mix your text with variables, in every text control a small button will appear:

This button will open the Variables Text Editor Window. From this window you can freely write your text and dynamically pick any variable you need from your chatbot runtime.

Recursive Parsing

Xenioo Dynamic Parsing fully support reference recursiveness to up to 5 levels of recursion depth. What it means is that a variable can hold a variable reference and that both will be parsed at runtime with the actual value. So, for example the variable english_salutation can hold the following value:

Hello {{user_name}}, how are you?

You can reference english_salutation in any standard text like you normally would:

{{english_salutation}}

And the Xenioo runtime will recursively parse the reference. As a result, your final text at runtime will be:

Hello gian, how are you?

You can disable Recursive Parsing by escaping all curly braces with a backslash like in the following example:

Hello \{\{user_name\}\}, how are you?

Xenioo will ignore escaped variable names and leave the value as it is.

Content Formatting

Additionally, Xenioo supports the very same syntax also on Web Channel so that compatibility of layout is maintained on multiple platforms.

You can use the following simplified syntax to format any Web Channel text:

Italic

To italicize your message, place an underscore on both sides of the text, like so:

_text_

Bold

To bold your message, place an asterisk on both sides of the text, like so:

*text*

Strikethrough

To strikethrough your message, place a tilde on both sides of the text, like so:

~text~

Of course, the Web Channel fully supports standard HTML syntax but it may prove difficult later to migrate the chatbot to another channel.

PreviousVariables and TagsNextContent

Last updated 4 years ago

Was this helpful?

Recursive Parsing can be very helpful with complex, variable based flows where some text is stored in or in text dictionaries like you would do when creating multi-language bots.

Some channels like or natively support formatting using some basic or simplified Markdown syntax. This syntax can always be used anywhere in Xenioo and will be correctly translated to the target channel.

API Results
WhatsApp
Telegram