The agent
Our inbound Flow Builder agent will act as a scheduling line for a fictional dental clinic called Shiny Smiles. It will take down names, check for insurance, and hit external APIs to get appointment availability, before scheduling with the patient.Creating a new agent
To create a new agent, navigate to the Agents tab on the left sidebar and click the New Agent button on the top right. For this quickstart, we’ll walk through the pre-built agent together. You can clone this agent to your workspace by following the instructions here.Configuring the agent
Once you click into your cloned agent, you’ll see the agent’s configuration page. This is mission control for your agent, where you can configure the agent’s behavior and settings, go through past dials and run evaluations, and more.
Building the agent’s conversational logic
Click on the Model tab to see the language model configuration for this agent. This specific agent is a Flow Builder agent on top of Vogent’s Base Survey model, which is a custom model from Vogent that interprets Flow Builder configurations. To view the full flow, click on the Edit button on the bottom right of the Flow window. To look through the different questions and transitions, try clicking on different nodes and edges. Diving through a few examples:Question node
A question node is used to ask a question to the respondent. You can indicate the question text, the answer type (e.g. Freeform, Multiple Choice, Multiple Select, etc.), and the answer options. Note that the provided answer does not have to verbatim match the answer choices; the model will match the provided answer to the closest choice.
Freeform node
A freeform node is a node in which the agent is prompted to engage in some sort of exchange with the respondent. It can be useful for inserting a remark, or having the agent offer some pleasantries at the end of a call. Note that a freeform node will only progress if it’s prompted to do so given some condition; otherwise, it is a terminal node.
Function node
A function node is used to call an external function. For more information on how to add tools (like functions) to your agent, check out the tools guide. In this particular agent, we’ve defined a function calledget_availability
that hits an external API to get appointment availability.

Retrieving details post-call
After the call is completed, you can retrieve the appointment details from the call using the Dial Extractor webhook. The webhook will return the extracted appointment details in the format defined within the agent’s Extractor tab. For this particular agent, we’ve defined a few relevant fields that could help a provider enter a patient’s appointment into their systems.
Making a call
Phone call
To make a phone call to an inbound agent, you’ll first need to create a phone number; see the getting started guide for more information. Once you’ve created a phone number, you can attach it to the agent by going to the agent’s Config tab, clicking Link Number, and selecting the chosen phone number. You can then make a call to the agent by dialing the phone number you’ve attached to the agent.Web call
To make a web call to the inbound agent, you can just click on the Make Call button on the top-right of the agent’s page, toggle to Web, then click Talk.Viewing past calls
To view past calls to the agent, you can go to the agent’s Dials tab. This will show you a list of all past calls to the agent as well as the extractor results. You can click into any dial to listen to the recording and see the full transcript of the call, among other things. You can also filter calls by date range, call type, and more, or view dials across agents in the Dial History tab on the left sidebar.Testing new version on past calls
If you’ve made changes to your agent, you can test the new version on past calls by clicking the Run Counterfactual button when you’ve clicked into a dial. This will run the new agent on the same call transcript and show you the results.Counterfactuals will feed call history up to the current line to generate each response, so they won’t be perfect reconstructions of how the conversation would have gone. LLM-as-judge functionality is coming soon to enable more dynamic agent testing. See the counterfactuals guide for more information.