Skip to main content


The InputFile action allows your bot to ask the user to upload a file (such as an item photo or a document with legal data) and save a link to it into a variable.


promptStringThe message prompting the user to upload a file.
If you intend to use HTML markup in the message, leave this parameter empty (prompt =) and fill out the html parameter instead.
varNameStringVariable name. The link to the file sent by the user will be stored in $session.<varName>.
Use the following characters: Aa–Zz, _, 0–9. The first character should be a letter. JavaScript reserved words are not allowed.
htmlStringThe message prompting the user to upload a file, with HTML markup.
If you don’t intend to use HTML markup, omit this parameter and use prompt only.
htmlEnabledBooleanIf set to true, the bot message will use the html parameter value, and the error message will use failureMessageHtml.
If omitted or set to false, the prompt and failureMessage values will be used instead.
thenStringThe state the dialog will switch to if the tag script completes without errors.No
errorStateStringThe state the dialog will switch to if the tag script fails: for example, if the user sends a regular request instead of a file.No
actionsArray of objectsButtons that will be displayed along with the request. Use the following format for the value:
actions =
"buttons": [{
"name": "Button text",
"transition": "/State path"
"type": "buttons"

How to use

state: AttachFile
prompt = Attach a file to the chat, and I’ll upload it to the storage and send you a link.
varName = fileUrl
then = /AttachFile/Save
errorState = /AttachFile/Error

state: Save
a: Success! You can access the file using this link: {{$session.fileUrl}}.

state: Error
a: Sorry, I couldn’t process the file.