How a change reaches real users, and the channels it reaches them through, one section per term.

Environments

Environment

One draft-and-published copy of the agent. Main, plus up to nine more. Each has an auto-saved draft version and the published version live traffic reaches, and its own short alias.

Also asked as:

  • a staging copy of the assistant
  • work on changes without touching what customers see
  • how many copies of the agent can a project have

Related: Draft version · Publishing · Merging · Alias · Environment protection

Documented in: Environments › Key concepts · Environments › Creating an environment · Environments › Best practices · Publishing (API)

Draft version

The auto-saved working version of an environment, updated as you edit. It becomes the published version when you publish; Discard changes throws it away after a diff review.

Also asked as:

  • my unsaved edits versus what is live
  • undo everything since the last publish
  • where do my changes sit before I ship them

Related: Environment · Publishing

Documented in: Environments › Key concepts · Environments › Discarding changes

Publishing

Promoting an environment’s draft to its published version, which is the copy live traffic reaches. The publish view shows a side-by-side diff first. Widget settings also take effect only after a publish.

Also asked as:

  • push my changes live
  • make the new version the one customers get
  • why isn’t my edit showing up on the website

Related: Draft version · Environment protection · Merging

Documented in: Publishing › Publishing a new version · Customize widget › Publishing changes

Merging

Folding work done in one environment back into another. A merge uses the source environment’s live version, not its draft, and replaces the content of Main.

Also asked as:

  • bring my staging changes into main
  • combine two copies of the agent
  • promote a branch

Related: Reverting a merge · Environment · Secrets across environments

Documented in: Merging › Things to know before you merge to Main · Merging › Merging to main · vf environment merge

Reverting a merge

Undoing a merge into Main by restoring the pre-merge version from Main’s version history, since a merge is just a new version.

Also asked as:

  • roll back a bad merge
  • restore main to how it was before
  • undo the release we just made

Related: Merging · Version history

Documented in: Merging › Reverting a merge

Version history

The list of published versions of an environment, from which any earlier version can be restored.

Also asked as:

  • go back to a previous published version
  • see what was live last week
  • roll back to an earlier version
  • see every version I published

Related: Publishing · Reverting a merge

Documented in: Environments › Key concepts · Merging › Reverting a merge · Version history

Cloning an environment

Creating a new environment from an existing one, either from Settings → Environments (New environment, pick what to clone from) or from the publish dropdown (Clone environment, which copies the current draft).

Also asked as:

  • make a copy of main to try something
  • duplicate an environment
  • copy the live agent into a sandbox
  • spin up a test copy from main

Related: Environment · Traffic split

Documented in: Environments › Creating an environment · Environments › Cloning to new environment

Environment protection

Protecting an environment restricts who can change what your users see: on a protected environment, only workspace admins and owners can publish or merge into it.

Also asked as:

  • lock main so nobody ships to it by mistake
  • require an admin to publish production
  • prevent accidental deploys to the live copy
  • prevent a careless publish to the live environment
  • only admins should be able to publish production
  • nobody can accidentally deploy to the live environment

Related: Publishing · Role · Environment

Documented in: Environments › Environment protection

Alias

Every environment’s short, URL-safe name used in API calls, the chat widget and any other programmatic reference. Main’s alias is main. Aliases don’t change when an environment is renamed.

Also asked as:

  • the environment name I put in the API URL
  • point the widget at a specific environment
  • what is main in the request path

Related: Environment · Chat widget API

Documented in: Environments › Aliases · Chat widget API › Choosing which environment the widget loads

Legacy projects

Projects created before environments launched, which use three fixed environments — Development, Staging and Production — with the aliases development, staging and production.

Also asked as:

  • my project still shows development, staging and production
  • old-style environments
  • my older project has development, staging and production
  • the three fixed environments

Related: Environment · Alias

Documented in: Environments › Legacy projects

Traffic split

Sending a share of live conversations to a different environment, to compare two versions against real traffic or roll a change out gradually. Users are routed automatically; you cannot pick which users land where.

Also asked as:

  • A/B test two versions of the assistant
  • send a percentage of customers to the new version
  • canary release for the agent
  • roll a new version out to a small percentage of users first
  • send some traffic to the new environment

Related: Environment · Cloning an environment · Analytics

Documented in: A/B testing › When to use a traffic split · A/B testing › Editing traffic split · A/B testing › Considerations

Chat widget

Chat widget

The embeddable chat surface. Always “chat widget”; older material says “Webchat”. It is added to a site with the snippet from the Widget tab once a version of the agent is published.

Also asked as:

  • get the chat launcher onto our homepage
  • embed the assistant on a page
  • the script tag for the chat window
  • show the chat launcher on every page of our site
  • install the widget on a web page
  • the chat bubble in the corner of the site

Related: Chat widget API · Widget customization · Publishing

Documented in: Install widget › Adding the widget to your website · Chat widget API › Understanding the default snippet

Widget customization

Matching the widget to your brand from the Widget settings page — colours, icons, launcher style, modality (chat or voice), file uploads, security settings — or, for developers, through the chat.load() configuration and custom CSS.

Also asked as:

  • change the chat window’s colours and logo
  • match the widget to our brand
  • style the launcher button

Related: Chat widget · Custom CSS · Chat widget API

Documented in: Customize widget › Customizing your widget · Customize widget › Using built-in styling options · Customize widget › Appearance

Custom CSS

CSS rules that override the widget’s default styles, targeting its supported vfrc- class names and loaded as a hosted stylesheet or inline.

Also asked as:

  • style the chat window beyond the built-in options
  • override the widget’s fonts and spacing
  • the CSS classes the widget exposes

Related: Widget customization

Documented in: Customize widget › Applying custom CSS · Customize widget › Supported CSS classes · Customize widget › Loading your stylesheet

Widget configuration

The assistant object in chat.load(): widget type and render mode, header image and title, the welcome banner, the agent avatar, the input placeholder, the launcher (icon or label), the footer link, the brand colour and full palette, the position and spacing, the AI disclaimer, streaming, and persistence — every visual and behavioural override, applied locally over the published settings.

Also asked as:

  • hide the AI disclaimer in the widget
  • move the chat launcher to the left side
  • change the header title and avatar with code
  • turn off the streaming animation

Related: Widget customization · Chat widget API · Custom CSS

Documented in: Customize widget › Visual & behavioural overrides · Customize widget › Launcher · Customize widget › AI disclaimer · Customize widget › Position · Customize widget › color · Customize widget › Behavior

Dangerous HTML

An opt-in that lets the widget render raw HTML elements in messages. Only for trusted code that you control, because of XSS risk.

Also asked as:

  • render HTML inside a chat message
  • the widget strips my tags

Related: Chat widget API · Chat widget extensions

Documented in: Chat widget API › Allowing dangerous HTML elements

Runtime URL

The url property in chat.load() that points the widget at a private runtime endpoint. Only for Enterprise customers hosted on a Private Cloud.

Also asked as:

  • point the widget at our private cloud
  • the widget must talk to a different runtime

Related: Chat widget API

Documented in: Chat widget API › Setting the runtime URL

Widget modality

Whether the widget runs in chat or voice mode, set in Widget → Modality & Interface. Voice mode brings voice output, voice input and audio cues to a chat project.

Also asked as:

  • let visitors talk to the assistant instead of typing
  • voice mode in the website widget
  • switch the website widget to voice
  • let visitors speak to the assistant in the browser

Related: Chat widget · Voice output

Documented in: Customize widget › Choosing a modality

File uploads

Letting users attach files (PDF, JPEG, PNG, WEBP, up to 5 MB each) to their messages so the agent can read and act on them; files are stored in Voiceflow’s private storage.

Also asked as:

  • let customers send a screenshot or a PDF
  • attach a document in the chat
  • where do uploaded files go

Related: Chat widget · Live agent handoff step

Documented in: Customize widget › Enabling file uploads · Customize widget › Supported files and limits · Customize widget › File storage and privacy

Approved domains

The widget’s security settings: approved domains restrict where the widget can load, alongside the other options at the bottom of the widget settings page.

Also asked as:

  • only allow the widget on our own domain
  • stop someone embedding our bot on their site
  • restrict which websites can load the widget
  • prevent the chat from being embedded elsewhere

Related: Chat widget

Documented in: Customize widget › Configuring security settings

Chat widget API

window.voiceflow.chat, the widget’s JavaScript API: the load configuration (environment, runtime URL, persistence, user ID, launch variables, transcript metadata), methods to open, close and send messages, proactive messages, and events you can listen for.

Also asked as:

  • open the chat window from my own button
  • send data from my site into the conversation
  • control the widget with JavaScript

Related: Chat widget · Proactive messages · Chat widget extensions · User ID

Documented in: Chat widget API › API methods · Chat widget API › Passing custom variables · Chat widget API › Listening for events · Chat widget API › Annotating transcripts with metadata · Chat widget API › Setting the runtime URL

Proactive messages

Messages the widget shows outside the chat window before the user opens it, pushed with window.voiceflow.chat.proactive.push() and cleared with proactive.clear(), often triggered by user behaviour on the page.

Also asked as:

  • show a message bubble before the visitor clicks the chat
  • nudge people on the pricing page
  • greet users proactively on the site

Related: Chat widget API

Documented in: Chat widget API › Sending proactive messages · Chat widget API › Triggering messages based on user behavior

Chat widget extensions

Custom code registered in chat.load() that renders interactive widgets inside the chat (response extensions) or runs side effects (effect extensions), triggered by a custom trace from a function.

Also asked as:

  • put a form or a date picker inside the chat
  • render my own component in a reply
  • custom UI in the widget

Related: Chat widget API · Function · Trace

Documented in: Chat widget extensions › Extension types · Chat widget extensions › How extensions work · Chat widget extensions › Registering extensions

Phone and SMS

Phone number

A number connected to a project — a Voiceflow number or one from your own provider — that routes incoming calls and texts to an environment, can be reused across projects, recorded, and removed again.

Also asked as:

  • get a number for the voice agent
  • hook the assistant up to our existing phone line
  • take a number off a project
  • unlink a number we no longer need
  • detach a phone number from a project

Related: Inbound calling · Outbound calling · Call recording · Add-on

Documented in: Connecting a phone number › Adding a phone number · Connecting a phone number › Routing calls to an environment · Connecting a phone number › Removing a phone number · Connecting a phone number › Assigning an existing number

Call recording

Recording calls for quality assurance from the phone number’s settings; complying with recording and consent laws in your region is your responsibility.

Also asked as:

  • keep audio of the calls the agent takes
  • listen back to a conversation
  • record phone conversations with the agent
  • play back a call afterwards

Related: Phone number · Transcript

Documented in: Connecting a phone number › Enabling call recording

Inbound calling

How a call to a connected number is handled: routed to an assigned environment or by the traffic split, with the caller’s number set as user_id. A non-production number can point at an environment’s draft to test changes by phone.

Also asked as:

  • test my changes by ringing the agent myself
  • call a draft version without affecting real callers
  • which environment picks up the phone
  • dial the draft version myself before customers get it

Related: Phone number · User ID · Traffic split

Documented in: Inbound calling › How it works · Inbound calling › Testing draft changes by phone · Inbound calling › Testing changes with real callers

Outbound calling

Programmatically making the agent call a number: a POST to the phone number’s outbound endpoint with the Dialog Manager API key, the destination, optional variables and answering-machine detection. Outbound and inbound calls share one concurrency pool.

Also asked as:

  • have the assistant dial a customer
  • start a call from our server
  • the limit on simultaneous dials
  • kick off a call to someone from our own system with data attached
  • how many outbound calls at the same time

Related: Phone number · Outbound SMS · Dialog Manager API key

Documented in: Outbound calling › Making an outbound call · Outbound calling › Request body · Outbound calling › Concurrency limits

SMS

The SMS channel for your agent. People text your Twilio number, or your agent texts them first with outbound SMS. SMS assignment to an environment is independent of voice assignment.

Also asked as:

  • let customers text the assistant
  • reply to messages sent to our number
  • SMS and voice on the same number

Related: Outbound SMS · Phone number

Documented in: Inbound SMS › How it works · Inbound SMS › Testing draft changes by SMS · Connecting a phone number › Routing SMS to an environment · Inbound SMS › Testing changes with real users

Outbound SMS

Starting a text conversation from your side: a POST to the number’s outbound SMS endpoint, which returns 202 with the new session ID and sends the first text once the agent has run its launch path.

Also asked as:

  • send the first text message to a customer
  • trigger an SMS conversation from our system
  • send the first text to a customer proactively
  • start a text conversation from our side

Related: SMS · Outbound calling

Documented in: Outbound SMS › Starting an outbound conversation · Outbound SMS › Response

Use the up and down arrow keys to select a result, Enter to open it, and Escape to close the search.