You're browsing the legacy version of the API documentation. Switch to the latest stable version →
Object definitions
Available responses
- Text response
- Image response
- Quick replies
- Card response
- Carousel (cards) response
- Button response
- End response
- Reset response
- Webhook response
- Go to response
- Ask a question (attributes) response
- Set Attributes response
- Backtracking response
Text response
Returns a normal text response
| Property | Type | Description | 
|---|---|---|
| type | String | text | 
| elements | Array.<String> | The array of objects. The maximum size of the response array is 99 objects. Array (1, 20).String(1, 1024) | 
| filters | Array.<Object> | Optional. Filters for response. Array (1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "text",
            "elements": ["Hi, how are you", "Hello!"],
            "filters": []
        }
    ]
}
Image response
Returns an image response
| Property | Type | Description | 
|---|---|---|
| type | String | image | 
| imageUrl | String | Image url, must be valid URL. String(1, 1024) | 
| filters | Array.<Object> | Optional. Filters for response. Array (1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "image",
            "imageUrl": "your-image-url",
            "filters": []
        }
    ]
}
Quick replies
Returns a quick replies response
| Property | Type | Description | 
|---|---|---|
| type | String | quickReplies | 
| title | String | Title for quick reply response. String(1, 640) | 
| buttons | Array.<Object> | An array of element objects that suggests possible responses. Type(postback, goto)Array(1, 11) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "quickReplies",
            "title": "Lorem ipsum dolor sit amet.",
            "filters": [],
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
Card response
Returns single card response
| Property | Type | Description | 
|---|---|---|
| type | String | card | 
| title | String | Title for card response. String(1, 80) | 
| subtitle | String | Optional. Title for card response. String(0, 80) | 
| imageUrl | String | Optional. Image for card response. String(0, 2048) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "card",
            "filters": [],
            "title": "Lorem ipsum dolor sit amet.",
            "subtitle": "qui dolorem ipsum quia dolor sit amet,",
            "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
Carousel (cards) response
Returns multiple cards response
| Property | Type | Description | 
|---|---|---|
| type | String | Card | 
| elements | String | Array of Card elements. Array(1, 10) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Card
| Property | Type | Description | 
|---|---|---|
| title | String | Title for card response. String(1, 80) | 
| subtitle | String | Optional. Title for card response. String(0, 80) | 
| imageUrl | String | Optional. Image for card response. String(0, 2048) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "cards",
            "filters": [],
            "elements": [
                {
                    "title": "Lorem ipsum dolor sit amet.",
                    "subtitle": "qui dolorem ipsum quia dolor sit amet,",
                    "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
                    "buttons": [
                        {
                            "type": "postback",
                            "title": "Lorem ipsum dolor sit.",
                            "value": "first_message"
                        }
                    ]
                },
                {
                    "title": "Qui dolorem ipsum quia dolor sit amet.",
                    "subtitle": "lorem ipsum dolor sit amet.",
                    "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
                    "buttons": [
                        {
                            "type": "postback",
                            "title": "Ipsum quia dolor.",
                            "value": "second_message"
                        }
                    ]
                }
            ]
        }
    ]
}
Button response
Returns button response
| Property | Type | Description | 
|---|---|---|
| type | String | button | 
| title | String | Title for button response. String(1, 640) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "button",
            "title": "Lorem ipsum dolor sit amet.",
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
End response
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | end | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "end",
            "filters": []
        }
    ]
}
Reset response
Triggers the “reset context” action as a response
| Property | Type | Description | 
|---|---|---|
| type | String | reset | 
| filters | Filter[0,10] | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
  "responses": [
    {
      "type": "reset",
      "filters": []
    }
  ]
}
Webhook response
Triggers a webhook as a response
| Property | Type | Description | 
|---|---|---|
| type | String | webhook | 
| webhookId | String | Must be valid webhook id. String(24) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "webhook",
            "webhookId": "507f1f77bcf86cd799439011",
            "filters": []
        }
    ]
}
Go to response
Redirects the customer to the target interaction
| Property | Type | Description | 
|---|---|---|
| type | String | goto | 
| interactionId | String | Must be valid interaction id. String(24) | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
    "responses": [
        {
            "type": "goto",
            "interactionId": "507f191e810c19729de860ea",
            "filters": []
        }
    ]
}
Ask a question (attributes) response
Triggers “Ask a question” action
| Property | Type | Description | 
|---|---|---|
| type | String | attributes | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
| delay | Number(100,5000) | Delay in milliseconds | 
| elements | <Attribute>(1,10) | Array(1,10) | 
Example JSON
{
  "responses": [
    {
      "type": "attributes",
      "filters": [],
      "delay": 2000,
      "elements": [
        {
          "entity": "foo",
          "alias": "bar",
          "lifespan": 2,
          "required": true,
          "actionOnFailure": "fallback",
          "askWhenFilled": true,
          "prompts": [
            "what is foo?"
          ]
        }
      ]
    }
  ]
}
Set Attributes response
Set a new value to the attribute
| Property | Type | Description | 
|---|---|---|
| type | String | setAttributes | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
| elements | <Parameter>(1,10)\ | Array(1,10) | 
Example JSON
{
  "responses": [
    {
      "type": "setAttributes",
      "filters": [],
      "elements": [
        {
          "name": "foo",
          "action": "set",
          "value": "bar"
        },
        {
          "name": "empty",
          "action": "set",
          "value": ""
        },
        {
          "name": "name-with-dash",
          "action": "set",
          "value": "value"
        },
        {
          "name": "bar",
          "action": "remove"
        }
      ]
    }
  ]
}
Backtracking response
Enables/disables backtracking as a response
| Property | Type | Description | 
|---|---|---|
| type | String | backtracking | 
| filters | Array.<Object> | Optional. Filters for response. Array(1, 10) | 
Example JSON
{
  "responses": [
    {
      "type": "backtracking",
      "filters": []
    }
  ]
}
Buttons
Postback button
Returns a postback when clicked
| Property | Type | Description | 
|---|---|---|
| type | String | postback | 
| title | String | Button title. String(1, 20) | 
| value | String | Postback value. String(1, 1000) | 
Hint: If you want all buttons to have the same name, use the postback field to give each of them a unique name. It will help ChatBot to distinguish which button has been clicked.
GoTo button
Triggers “Go to…” interaction when clicked
| Property | Type | Description | 
|---|---|---|
| type | String | goto | 
| title | String | Button title. String(1, 20) | 
| value | String | Interaction ID. String(1, 24) | 
URL button
Opens up the URL when clicked
| Property | Type | Description | 
|---|---|---|
| type | String | url | 
| title | String | Button title. String(1, 20) | 
| value | String | Valid URL. String(1, 2048) | 
Phone button
Dials a number when clicked
| Property | Type | Description | 
|---|---|---|
| type | String | phone | 
| title | String | Button title. String(1, 20) | 
| value | String | Valid phone number. Remember to put +at the beginning of the phone number.String(3, 16) | 
Fulfillment
- Text fulfillment
- Image fulfillment
- Quick replies fulfillment
- Card fulfillment
- Carousel (cards) fulfillment
- Button fulfillment
- End fulfillment
- Reset fulfillment
- Webhook fulfillment
- Go to fulfillment
- Set attributes fulfillment
- Backtracking fulfillment
Text fulfillment
Returns text fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | text | 
| message | String | Response String(1, 1024) | 
Example JSON
{
    "fulfillment": [
        {
            "type": "text",
            "message": "Hi, how are you"
        }
    ]
}
Image fulfillment
Returns image fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | image | 
| imageUrl | String | Image url String(1, 1024) | 
Example JSON
{
    "fulfillment": [
        {
            "type": "image",
            "imageUrl": "https://i.imgur.com/3yPwOLC.jpg"
        }
    ]
}
Quick replies fulfillment
Returns Quick Replies fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | quickReplies | 
| title | String | Title for quick reply. String(1, 640) | 
| buttons | Array.<Object> | Quick replies buttons. | 
Example JSON
{
    "fulfillment": [
        {
            "type": "quickReplies",
            "title": "Lorem ipsum dolor sit amet.",
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
Card fulfillment
Returns a single card fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | card | 
| title | String | Title for card response. String(1, 80) | 
| subtitle | String | Optional. Title for card response. String(0, 80) | 
| imageUrl | String | Optional. Image for card response. String(0, 2048) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
Example JSON
{
    "fulfillment": [
        {
            "type": "card",
            "title": "Lorem ipsum dolor sit amet.",
            "subtitle": "qui dolorem ipsum quia dolor sit amet,",
            "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
Carousel (cards) fulfillment
Returns multiple cards fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | Card | 
| elements | String | Array of Card elements. Array(1, 10) | 
Card
| Property | Type | Description | 
|---|---|---|
| title | String | Title for card response. String(1, 80) | 
| subtitle | String | Optional. Title for card response. String(0, 80) | 
| imageUrl | String | Optional. Image for card response. String(0, 2048) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
Example JSON
{
    "fulfillment": [
        {
            "type": "cards",
            "filters": [],
            "elements": [
                {
                    "title": "Lorem ipsum dolor sit amet.",
                    "subtitle": "qui dolorem ipsum quia dolor sit amet,",
                    "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
                    "buttons": [
                        {
                            "type": "postback",
                            "title": "Lorem ipsum dolor sit.",
                            "value": "first_message"
                        }
                    ]
                },
                {
                    "title": "Qui dolorem ipsum quia dolor sit amet.",
                    "subtitle": "lorem ipsum dolor sit amet.",
                    "imageUrl": "https://i.imgur.com/3yPwOLC.jpg",
                    "buttons": [
                        {
                            "type": "postback",
                            "title": "Ipsum quia dolor.",
                            "value": "second_message"
                        }
                    ]
                }
            ]
        }
    ]
}
Button fulfillment
Returns a single button fulfillment
| Property | Type | Description | 
|---|---|---|
| type | String | button | 
| title | String | Title for button response. String(1, 640) | 
| buttons | Array.<Object> | An array of element objects. Array(1, 3) | 
Example JSON
{
    "fulfillment": [
        {
            "type": "button",
            "title": "Lorem ipsum dolor sit amet.",
            "buttons": [
                {
                    "type": "postback",
                    "title": "Lorem ipsum dolor sit.",
                    "value": "developer_message"
                }
            ]
        }
    ]
}
End fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | end | 
| used | Boolean | Set to true if the response was used | 
Example JSON
{
    "fulfillment": [
        {
            "type": "end",
            "used": true
        }
    ]
}
Reset fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | reset | 
| debug | Boolean | Set to true if debug mode is on | 
| used | Boolean | Set to true if the response was used | 
Example JSON
{
    "fulfillment": [
        {
        "reset": "end",
        "used": true,
        "debug": true
        }
    ]
}
Webhook fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | webhook | 
| webhookId | String | Webhook id. String(24) | 
| error | String | Error message | 
| used | Boolean | Set to true if the webhook was triggered correctly | 
Example JSON
{
    "fulfillment": [
        {
            "type": "webhook",
            "webhookId": "507f1f77bcf86cd799439011",
            "used": false,
            "error": "foo.example.com’s server DNS address could not be found."
        }
    ]
}
Go to fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | goto | 
| interactionId | String | Interaction id. String(24) | 
| used | Boolean | Set to true if response was used | 
Example JSON
{
  "fulfillment": [
    {
      "type": "goto",
      "interactionId": "507f191e810c19729de860ea",
      "used": true,
      "debug": true
    }
  ]
}
Set Attributes fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | setAttributes | 
| debug | Boolean | Set to true if debug mode is on | 
| elements | <Parameter>(1,10) | Array(1,10) | 
Example JSON
{
  "fulfillment": [
    {
      "type": "setAttributes",
      "debug": true,
      "elements": [
        {
          "name": "foo",
          "action": "set",
          "value": "bar"
        },
        {
          "name": "empty",
          "action": "set",
          "value": ""
        },
        {
          "name": "name-with-dash",
          "action": "set",
          "value": "value"
        },
        {
          "name": "bar",
          "action": "remove"
        }
      ]
    }
  ]
}
Backtracking fulfillment
This response is visible only in debug mode
| Property | Type | Description | 
|---|---|---|
| type | String | backtracking | 
| searchInRoot | Boolean | True/False | 
| debug | Boolean | Set to true if debug mode is on | 
Example JSON
{
  "fulfillment": [
    {
      "type": "backtracking",
      "debug": true
    }
  ]
}
Filters
Attribute filter
| parameter | type | 
|---|---|
| type | String( attribute) | 
| alias | String(1, 128) | 
| rule | StringRule, NumericRule | 
| value | String(1,1024), Number, Boolean | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "is",
          "value": "my-value"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Lifespan filter
| parameter | type | 
|---|---|
| type | String( lifespan) | 
| rule | NumericRule | 
| value | Number(0,10) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "lifespan",
          "rule": "is",
          "value": 0
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Score filter
| parameter | type | 
|---|---|
| type | String( score) | 
| rule | NumericRule | 
| value | Float(0,1) (up to 2 precision) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "score",
          "rule": "is",
          "value": 0.2
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Incomplete filter
| parameter | type | 
|---|---|
| type | String( incomplete) | 
| rule | IsRule | 
| value | Boolean | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "incomplete",
          "rule": "is",
          "value": false
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Resolved Query filter
| parameter | type | 
|---|---|
| type | String( resolvedQuery) | 
| rule | StringRule | 
| value | String(1,1024), Boolean | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "resolvedQuery",
          "rule": "is",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Trigger filter
| parameter | type | 
|---|---|
| type | String( trigger) | 
| rule | StringRule | 
| value | String(1,1024), Boolean | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "is",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Rules
Numeric rules
String rules
Is rule
| parameter | type | 
|---|---|
| rule | String( is) | 
| value | String(1,1024) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "is",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Is not rule
| parameter | type | 
|---|---|
| rule | String( isNot) | 
| value | String(1,1024) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "isNot",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Empty rule
| parameter | type | 
|---|---|
| rule | String( empty) | 
| value | Boolean | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "empty",
          "value": false
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Contains rule
| parameter | type | 
|---|---|
| rule | String( contains) | 
| value | String(1,1024) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "contains",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Not contains rule
| parameter | type | 
|---|---|
| rule | String( notContains) | 
| value | String(1,1024) | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "trigger",
          "rule": "notContains",
          "value": "welcome"
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Greater rule
| parameter | type | 
|---|---|
| rule | String( greater) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "greater",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Less rule
| parameter | type | 
|---|---|
| rule | String( less) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "less",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Greater or equal rule
| parameter | type | 
|---|---|
| rule | String( greaterOrEqual) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "greaterOrEqual",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Less or equal rule
| parameter | type | 
|---|---|
| rule | String( lessOrEqual) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "lessOrEqual",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Longer rule
| parameter | type | 
|---|---|
| rule | String( longer) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "longer",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Shorter rule
| parameter | type | 
|---|---|
| rule | String( shorter) | 
| value | Number | 
Example JSON
{
  "responses": [
    {
      "type": "text",
      "filters": [
        {
          "type": "attribute",
          "alias": "my-param",
          "rule": "shorter",
          "value": 1337
        }
      ],
      "elements": ["hi", "hello"]
    }
  ]
}
Result
| Property | Type | Description | 
|---|---|---|
| source | String | Source of your conversation. Possible values: custom,livechat,slack,messenger | 
| resolvedQuery | String | Your message. | 
| trigger | String | Name of executed trigger. | 
| status | String | Status object for your request. | 
| confidence | Number | Current confidence for your conversation session. | 
| lifespan | Number | Current lifespan for your conversation session. | 
| score | Number | Accuracy of matching. | 
| incomplete | Boolean | It is true if any of the required parameters are not filled. | 
| storyId | String | Your bot story id. | 
| interaction | Object | The interaction object that was called. | 
| parameters | Object | Parameters object which showing all the attributes collected in the current conversation. | 
| contexts | Array.<Object> | Array of objects which contains the entire conversation path in the form of successively triggered interactions. | 
| fulfillment | Array.<Object> | Array of objects which includes all of bot responses. |