Skip to navigation

Composer

Pre-release
Build and configure voice AI agents through natural conversation

Composer is currently in Alpha. Features and behavior may change as we iterate based on user feedback.

Overview

Composer is Vapi’s intelligent assistant that helps you build and configure voice AI agents through natural conversation. Instead of manually configuring settings and writing prompts, describe what you want to build and Composer handles the technical setup.

Composer understands voice agent architecture and Vapi’s capabilities. It can create agents, configure phone numbers, set up integrations, troubleshoot issues, and answer questions about Vapi features.

Why use Composer:

  • Faster development: Build agents in minutes instead of hours by describing your use case
  • Best practices built in: Composer applies Vapi best practices automatically
  • Lower barrier to entry: No need to learn every API parameter or configuration option
  • Troubleshooting support: Composer can diagnose issues and suggest fixes

Get started

1

Open Composer

Log into your Vapi dashboard and click the Composer option in the navigation, or use the chat widget.

2

Describe what you want to build

Tell Composer what you need in plain language. The more context you provide, the better the result.

Effective prompts:

  • “Help me build a restaurant reservation agent”
  • “I need to set up a phone number for my agent”
  • “Create an agent that can answer questions about my business”
  • “My agent isn’t transferring calls correctly, can you help?”
3

Answer clarifying questions

Composer asks follow-up questions to understand your requirements, then takes action to build and configure your agent.

4

Test and iterate

Test the agent Composer creates, then request adjustments as needed. Building the right agent is an iterative process.

What Composer can do

Capabilities

  • Create and configure assistants
  • Set up phone numbers
  • Configure integrations and webhooks
  • Update agent prompts and settings
  • Troubleshoot technical issues
  • Create and run simulations, and generate a test suite for an assistant
  • Answer questions about Vapi features
  • Recommend best practices for your use case

Limitations

  • Cannot delete resources: Composer cannot delete assistants, tools, phone numbers, or any other resources. This is an intentional safety measure. Use the dashboard sidebar to delete resources manually. Composer can discard your own unpublished assistant or tool draft, which never changes the live resource.
  • Cannot access external systems: Composer operates within Vapi and cannot reach your CRM, database, or other third-party systems directly.
  • Cannot make business logic decisions: You provide the domain knowledge; Composer handles the technical configuration.
  • Cannot test every behavior: Generated suites run in chat, so they can’t check voice-only behavior such as pronunciation. They also skip some handoffs and transfers. Test these with real calls.
  • Cannot deploy to production automatically: You control when and how changes go live.

Common use cases

What you say:

“I want to build an agent for my dental office that can schedule appointments and answer common questions about our services.”

What Composer does:

  1. Asks about your specific requirements (hours, services, appointment types)
  2. Creates an agent with an appropriate system prompt
  3. Configures necessary tools (calendar integration, knowledge base)
  4. Sets up phone number configuration
  5. Provides testing guidance

Your part:

  • Answer Composer’s questions about your business
  • Provide specific details (office hours, services offered, etc.)
  • Test the agent and provide feedback

Example conversation:

Sample conversation
You: "I want to build an agent for my dental office that can schedule
appointments and answer common questions."
Composer: "I'd be happy to help you build a dental office agent! Let me
ask a few questions:
1. What are your office hours?
2. What types of appointments do you offer?
3. Do you want the agent to book directly or collect information
for your staff to follow up?
4. What are the most common questions patients ask?"
You: "Office hours are Mon-Fri 9am-5pm. We do cleanings, exams, and
consultations. The agent should collect appointment requests and our
staff will confirm. Common questions are about insurance, parking,
and first-visit procedures."
Composer: "I've created your dental office agent. It's configured to:
- Collect appointment requests during business hours
- Answer questions about insurance, parking, and first visits
- Escalate to staff when needed
Would you like me to set up a phone number for testing?"

What you say:

“I need to connect a phone number to my agent.”

What Composer does:

  1. Asks if you want to purchase a new number or import an existing one
  2. Helps you select an area code or region
  3. Configures the number to work with your agent
  4. Provides the phone number for testing

If you need a specific area code for local presence, mention it upfront. If you’re porting an existing number, have your account details from your current provider ready.

What you say:

“My agent keeps dropping calls when trying to transfer.”

What Composer does:

  1. Asks diagnostic questions (when does it happen, what number, etc.)
  2. Checks your agent configuration
  3. Identifies the issue (incorrect transfer format, missing permissions, etc.)
  4. Fixes the configuration or guides you through the fix

Common issues Composer can help with:

  • Call transfers not working
  • Agent not responding correctly to specific inputs
  • Phone number routing problems
  • Integration failures (calendar, CRM, etc.)
  • Voice quality or latency issues
  • Prompt behavior not matching expectations

What you say:

“I want my agent to check availability in our calendar before booking appointments.”

What Composer does:

  1. Explains integration options (API webhooks, direct integrations)
  2. Helps configure the integration endpoint
  3. Sets up the agent to call your API with the right parameters
  4. Provides example requests/responses for testing

Your part:

  • Provide your API endpoint URL
  • Share authentication details (API keys, etc.)
  • Describe the expected request/response format
  • Test the integration with real scenarios

Popular integrations: Google Calendar, Calendly, Salesforce, HubSpot, booking systems, knowledge bases, and custom APIs.

Generate tests for an assistant

Ask Composer to generate tests for an assistant, for example “Generate a test suite for my dental office agent.” Composer reads the assistant’s prompt and tools and drafts a list of testable requirements. Once you agree on them, it builds a simulation suite that covers them.

1

Review the requirements

Composer drafts a numbered list of Test requirements. Each one is a behavior a simulated caller could trigger. Composer tags a requirement Assumption when the prompt implies it without stating it. It tags a requirement Can’t be simulated when a chat simulation can’t check it, such as pronunciation or the exact wording of the first message. It also asks up to three open questions when an answer would change a requirement.

2

Accept or change them

Select Generate coverage to accept the draft, or describe the changes you want in the chat. Composer revises the draft and asks you to review it again. It never generates a suite from requirements you haven’t agreed to.

3

Review the suite

Composer generates the suite and shows it on a card. The card shows:

  • Each simulation. A simulation covers one caller goal, and the requirements it covers become its success criteria.
  • How many requirements are covered, and why any aren’t.
  • Handoffs and transfers the suite doesn’t test, marked Not tested, with the reason.
  • The tools each simulation mocks.

Every tool in the assistant’s tool list that would reach an external system is mocked by default. Tools that only a hook calls aren’t mocked.

4

Run the suite

Select Run suite on the card, or ask Composer to run it. The suite runs once, in chat, against the assistant it was generated for. Composer doesn’t wait for the run. Follow progress and results on the runs page. When the run ends, ask Composer about the results.

After generating a suite, ask Composer to change it in the same conversation:

  • Remove simulations: Removed simulations are unlinked from the suite, not deleted.
  • Rewrite a simulation: Describe the change, for example “make the caller refuse to give a date of birth.”
  • Retry failed simulations: When some simulations couldn’t be generated, Composer offers to try them again.

Composer saves the agreed requirements with the suite, and every edit works from them. If you change the requirements later, Composer builds a new suite. The existing suite doesn’t change. It remains in your account until you delete it from the dashboard.

One passing run shows the assistant can succeed, not that it will every time. Run five or more iterations before you trust the pass rate. Ask Composer to run more, or rerun the suite with more Iterations. See testing best practices.

Safety features

Composer includes safeguards to prevent accidental or irreversible changes to your account. You control how much Composer can do on its own with per-conversation approval modes.

Approval modes

You choose when Composer pauses for your approval, and the setting persists for that conversation:

  • Ask before every change: Composer requests approval for all creates, updates, deletes, runs, and publishes.
  • Ask before updates, deletes, runs, and publishing: Composer creates new resources on its own, but asks before changing, deleting, running, or publishing anything that already exists.
  • Bypass approvals: Composer applies changes without pausing.
  • Custom: set permissions for each resource and action individually.

Approval enforcement always happens on the server, and read operations never require approval.

Deletion

Composer does not delete resources. Delete assistants, tools, phone numbers, squads, and files from the dashboard yourself. When Composer removes a simulation from a suite it generated, the simulation is unlinked from the suite, not deleted.

How the approval flow works

1

Composer proposes a change

Composer shows you a summary of the change it wants to make.

2

You review and respond

The chat interface displays Approve and Deny buttons. Click Approve to proceed or Deny to cancel.

3

Composer applies the change (if approved)

If approved, Composer makes the change and confirms. If denied, no changes are made.

Approval flow example
You: "Change my agent's voice to sound more energetic"
Composer: [Proposes update]
UI shows: "Update Resource, updating voice settings on assistant xyz"
[Approve] [Deny]
You: [Clicks Approve]
Composer: "Done! I've updated the voice settings. Test it out and let me
know if you'd like to adjust further."

Key details about approvals:

  • Tokens expire after 10 minutes: if you don’t respond in time, Composer re-proposes the change.
  • Each approval is specific: approval tokens are cryptographically bound to the exact change being made, so multiple changes each require individual approval.
  • Read operations don’t require approval: Composer can freely read and list your resources.

Tips for best results

Be specific about your use case

Provide context about your industry, audience, and requirements upfront.

Compare prompt quality
Less effective: "I need an agent"
More effective: "I need an agent for my e-commerce store that can track
orders, answer product questions, and handle returns"

Iterate in stages

Build a basic working agent first, then layer on advanced features:

  1. Phase 1: Basic conversation flow
  2. Phase 2: Add integrations (calendar, CRM, knowledge base)
  3. Phase 3: Add advanced features (custom voices, complex routing)

Handle one task at a time

Keep conversations focused on a single objective for best results.

Compare task scoping
Less effective: "Set up my phone number, fix the transfer issue, add
Spanish support, and integrate with my CRM"
More effective: "First, let's set up my phone number"
[Complete that task]
"Great! Now can you help me fix the transfer issue?"

Ask Composer to explain

If you’re unsure about Vapi features or want to learn the API, ask directly:

  • “What’s the best way to handle voicemail?”
  • “Should I use function calling or server URL for my integration?”
  • “Can you show me the API call you’re making to create this agent?”

Ask Composer for the full configuration of an agent it builds. Save it in version control to use as a template for similar agents.

Next steps

Now that you know how Composer works: