Skip to main content
POST
/
v1
/
typebots
/
{typebotId}
/
preview
/
startChat
Start preview chat
curl --request POST \
  --url https://zazubot.com/api/v1/typebots/{typebotId}/preview/startChat \
  --header 'Content-Type: application/json' \
  --data '{
  "isStreamEnabled": false,
  "message": {
    "type": "text",
    "text": "<string>",
    "attachedFileUrls": [
      "<string>"
    ]
  },
  "isOnlyRegistering": false,
  "typebot": {
    "version": "6",
    "id": "<string>",
    "groups": [
      {
        "id": "<string>",
        "title": "<string>",
        "graphCoordinates": {
          "x": 123,
          "y": 123
        },
        "blocks": [
          "<any>"
        ]
      }
    ],
    "events": [
      {
        "id": "<string>",
        "outgoingEdgeId": "<string>",
        "graphCoordinates": {
          "x": 123,
          "y": 123
        },
        "type": "start"
      }
    ],
    "edges": [
      {
        "id": "<string>",
        "from": {
          "blockId": "<string>",
          "itemId": "<string>",
          "pathId": "<string>"
        },
        "to": {
          "groupId": "<string>",
          "blockId": "<string>"
        }
      }
    ],
    "variables": [
      {
        "id": "<string>",
        "name": "<string>",
        "isSessionVariable": true,
        "value": "<string>"
      }
    ],
    "settings": {
      "general": {
        "isBrandingEnabled": true,
        "isTypingEmulationEnabled": true,
        "isInputPrefillEnabled": true,
        "isHideQueryParamsEnabled": true,
        "isNewResultOnRefreshEnabled": true,
        "rememberUser": {
          "isEnabled": true,
          "storage": "session"
        },
        "systemMessages": {
          "invalidMessage": "<string>",
          "botClosed": "<string>",
          "popupBlockedDescription": "<string>",
          "popupBlockedButtonLabel": "<string>",
          "fileUploadError": "<string>",
          "fileUploadSizeError": "<string>",
          "whatsAppPictureChoiceSelectLabel": "<string>"
        }
      },
      "typingEmulation": {
        "enabled": true,
        "speed": 123,
        "maxDelay": 123,
        "delayBetweenBubbles": 2.5,
        "isDisabledOnFirstMessage": true
      },
      "metadata": {
        "title": "<string>",
        "description": "<string>",
        "imageUrl": "<string>",
        "favIconUrl": "<string>",
        "customHeadCode": "<string>",
        "googleTagManagerId": "<string>"
      },
      "whatsApp": {
        "isEnabled": true,
        "startCondition": {
          "logicalOperator": "OR",
          "comparisons": [
            {}
          ]
        },
        "sessionExpiryTimeout": 24.005
      },
      "publicShare": {
        "isEnabled": true
      },
      "security": {
        "allowedOrigins": [
          "<string>"
        ]
      }
    },
    "theme": {
      "general": {
        "font": "<string>",
        "background": {
          "type": "Color",
          "content": "<string>"
        },
        "progressBar": {
          "isEnabled": true,
          "color": "<string>",
          "backgroundColor": "<string>",
          "placement": "Top",
          "thickness": 123,
          "position": "fixed"
        }
      },
      "chat": {
        "container": {
          "maxWidth": "<string>",
          "maxHeight": "<string>",
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "hostAvatar": {
          "isEnabled": true,
          "url": "<string>"
        },
        "guestAvatar": {
          "isEnabled": true,
          "url": "<string>"
        },
        "hostBubbles": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "guestBubbles": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "buttons": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "inputs": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          },
          "placeholderColor": "<string>"
        },
        "roundness": "none",
        "buttonsInput": {
          "layout": "wrap"
        }
      },
      "customCss": "<string>"
    },
    "updatedAt": "<string>",
    "workspaceId": "<string>"
  },
  "startFrom": {
    "type": "group",
    "groupId": "<string>"
  },
  "prefilledVariables": {
    "First name": "John",
    "Email": "john@gmail.com"
  },
  "sessionId": "<string>",
  "textBubbleContentFormat": "richText"
}'
{
  "sessionId": "<string>",
  "typebot": {
    "id": "<string>",
    "version": "3",
    "theme": {
      "general": {
        "font": "<string>",
        "background": {
          "type": "Color",
          "content": "<string>"
        },
        "progressBar": {
          "isEnabled": true,
          "color": "<string>",
          "backgroundColor": "<string>",
          "placement": "Top",
          "thickness": 123,
          "position": "fixed"
        }
      },
      "chat": {
        "container": {
          "maxWidth": "<string>",
          "maxHeight": "<string>",
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "hostAvatar": {
          "isEnabled": true,
          "url": "<string>"
        },
        "guestAvatar": {
          "isEnabled": true,
          "url": "<string>"
        },
        "hostBubbles": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "guestBubbles": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "buttons": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          }
        },
        "inputs": {
          "backgroundColor": "<string>",
          "color": "<string>",
          "blur": 123,
          "opacity": 0.5,
          "shadow": "none",
          "border": {
            "thickness": 123,
            "color": "<string>",
            "roundeness": "none",
            "customRoundeness": 123,
            "opacity": 0.5
          },
          "placeholderColor": "<string>"
        },
        "roundness": "none",
        "buttonsInput": {
          "layout": "wrap"
        }
      },
      "customCss": "<string>"
    },
    "settings": {
      "general": {
        "isBrandingEnabled": true,
        "isTypingEmulationEnabled": true,
        "isInputPrefillEnabled": true,
        "isHideQueryParamsEnabled": true,
        "isNewResultOnRefreshEnabled": true,
        "rememberUser": {
          "isEnabled": true,
          "storage": "session"
        },
        "systemMessages": {
          "invalidMessage": "<string>",
          "botClosed": "<string>",
          "popupBlockedDescription": "<string>",
          "popupBlockedButtonLabel": "<string>",
          "fileUploadError": "<string>",
          "fileUploadSizeError": "<string>",
          "whatsAppPictureChoiceSelectLabel": "<string>"
        }
      },
      "typingEmulation": {
        "enabled": true,
        "speed": 123,
        "maxDelay": 123,
        "delayBetweenBubbles": 2.5,
        "isDisabledOnFirstMessage": true
      },
      "metadata": {
        "title": "<string>",
        "description": "<string>",
        "imageUrl": "<string>",
        "favIconUrl": "<string>",
        "customHeadCode": "<string>",
        "googleTagManagerId": "<string>"
      },
      "whatsApp": {
        "isEnabled": true,
        "startCondition": {
          "logicalOperator": "OR",
          "comparisons": [
            {
              "id": "<string>",
              "comparisonOperator": "Equal to",
              "value": "<string>"
            }
          ]
        },
        "sessionExpiryTimeout": 24.005
      },
      "publicShare": {
        "isEnabled": true
      },
      "security": {
        "allowedOrigins": [
          "<string>"
        ]
      }
    },
    "publishedAt": "<string>"
  },
  "lastMessageNewFormat": "<string>",
  "messages": [
    {
      "id": "<string>",
      "type": "text",
      "content": {
        "type": "richText",
        "richText": "<any>"
      }
    }
  ],
  "input": {
    "id": "<string>",
    "outgoingEdgeId": "<string>",
    "type": "text input",
    "options": {
      "labels": {
        "placeholder": "<string>",
        "button": "<string>"
      },
      "variableId": "<string>",
      "isLong": true,
      "audioClip": {
        "isEnabled": true,
        "saveVariableId": "<string>",
        "visibility": "Auto"
      },
      "attachments": {
        "isEnabled": true,
        "saveVariableId": "<string>",
        "visibility": "Auto"
      }
    },
    "prefilledValue": "<string>",
    "runtimeOptions": {
      "paymentIntentSecret": "<string>",
      "amountLabel": "<string>",
      "publicKey": "<string>"
    }
  },
  "clientSideActions": [
    {
      "type": "scriptToExecute",
      "scriptToExecute": {
        "content": "<string>",
        "isCode": true,
        "args": [
          {
            "id": "<string>",
            "value": "<string>"
          }
        ]
      },
      "lastBubbleBlockId": "<string>",
      "expectsDedicatedReply": true
    }
  ],
  "logs": [
    {
      "status": "<string>",
      "description": "<string>",
      "details": "<string>",
      "context": "<string>"
    }
  ],
  "dynamicTheme": {
    "hostAvatarUrl": "<string>",
    "guestAvatarUrl": "<string>",
    "backgroundUrl": "<string>"
  },
  "progress": 123
}

Path Parameters

typebotId
string
required

Body

application/json
isStreamEnabled
boolean
default:false
message
object
  • Text
  • Audio
  • Command
isOnlyRegistering
boolean
default:false

If set to true, it will only register the session and not start the bot. This is used for 3rd party chat platforms as it can require a session to be registered before sending the first message.

typebot
object

If set, it will override the zazubot that is used to start the chat.

  • zazubot V6
  • zazubot V5
startFrom
object
  • Option 1
  • Option 2
prefilledVariables
object
Example:
{
"First name": "John",
"Email": "john@gmail.com"
}
sessionId
string

If provided, will be used as the session ID and will overwrite any existing session with the same ID.

textBubbleContentFormat
enum<string>
default:richText
Available options:
richText,
markdown

Response

Successful response

sessionId
string
required

To save and use for /continueChat requests.

typebot
object
required
messages
(Text · object | Image · object | Video · object | Audio · object | Embed · object | Custom embed · object)[]
required
  • Text
  • Image
  • Video
  • Audio
  • Embed
  • Custom embed
lastMessageNewFormat
string

The sent message is validated and formatted on the backend. For example, if for a date input you replied something like tomorrow, the backend will convert it to a date string. This field returns the formatted message.

input
object
  • Text
  • Buttons
  • Email
  • Number
  • URL
  • Phone number
  • Date
  • Time
  • Payment
  • Rating
  • File
  • Picture choice
  • Option 13
  • Buttons v5
  • File input v5
  • Picture choice v5
clientSideActions
(Script to execute · object | Redirect · object | Chatwoot · object | Google Analytics · object | Wait · object | Set variable · object | Stream OpenAI · object | Execute HTTP request · object | Inject start props · object | Init Pixel · object | Exec stream · object | Execute code · object | Listen to webhook · object)[]

Actions to execute on the client side

  • Script to execute
  • Redirect
  • Chatwoot
  • Google Analytics
  • Wait
  • Set variable
  • Stream OpenAI
  • Execute HTTP request
  • Inject start props
  • Init Pixel
  • Exec stream
  • Execute code
  • Listen to webhook
logs
object[]

Logs that were saved during the last execution

dynamicTheme
object

If the zazubot contains dynamic avatars, dynamicTheme returns the new avatar URLs whenever their variables are updated.

progress
number

If progress bar is enabled, this field will return a number between 0 and 100 indicating the current progress based on the longest remaining path of the flow.