Getting Started

Welcome to the Meya SDK reference documentation!

This reference covers all the elements and entries that are exported by the Meya SDK, and details how each element works, which fields are available, and how to use the specific fields within your BFML flows.

Required reading

The reference is primarily meant to be a supporting resource when you are developing your BFML flows, but assumes that you are familiar with BFML and how elements, entries and ledgers work together to serve a conversation app.

  • BFML: overview of how flows work in Meya.
    • App structure: summary of an app's file structure.
    • Flows: the anatomy of a typical bot flow in BFML.
    • Triggers: how your bot reacts to external and internal events.
    • Components: the elements that allow your bot to display output and process user input.
    • Integrations: how integration elements work and process incoming/outgoing requests.
    • Template syntax: the advanced template system to evaluate and render data in BFML.
  • Data Scopes: the bot's database (or memory 🧠).


These are some of the most commonly used components in BFML.

  • text.say: sends a text message to the user.
  • text.ask: sends the user a text message asking the user for some input and captures the user's input.
  • user.set: saves data to the user data scope.
  • thread.set: saves data to the thread data scope.
  • flow.set: saves data to the flow data scope.
  • flow.if: branch the flow based on some evaluation criteria.
  • flow.jump: jump to a specific step label in the flow.
  • flow.end: end the flow explicitly.
  • image: sends an image to the user.
  • text.status: sends a status message to the user.
  • tile.ask: display row of tiles that contain a title, image, description and buttons to the user.
  • button.ask: display a set of buttons that they user can select from.
  • time.delay: pause the flow for a predetermined amount of time.


These are some of the most commonly used triggers in BFML.

  • text.catchall: match any text from the user.
  • text.keyword: match exact text from the user.
  • text.regex: match the user text against a regular expression.
  • button: match a statically defined button ID in a button click event.
  • google.dialogflow: match intents returned from Google Dialogflow NLU.
  • facebook.wit: match intents returned from Facebook Wit NLU.