Vapi · Arazzo Workflow

Vapi Build a Multi-Assistant Squad

Version 1.0.0

Create two specialized assistants and assemble them into a squad that can hand calls between them.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Artificial IntelligenceVoice AIVoice AgentsConversational AITelephonyReal-TimeTranscriptionText-to-SpeechLLMAgentsMCPArazzoWorkflows

Provider

vapi-ai

Workflows

build-squad
Create two assistants and group them into a routing squad.
Creates a greeter assistant and a specialist assistant, then creates a squad whose members reference both assistant ids.
3 steps inputs: apiToken, greeterPrompt, specialistPrompt, squadName outputs: greeterId, specialistId, squadId
1
createGreeter
Create the front-line greeter assistant that answers first.
2
createSpecialist
Create the specialist assistant the greeter can hand the call to.
3
createSquad
Assemble both assistants into a squad whose first member is the greeter and second member is the specialist.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Vapi Build a Multi-Assistant Squad
  summary: Create two specialized assistants and assemble them into a squad that can hand calls between them.
  description: >-
    The multi-agent orchestration flow. Vapi has no standalone "workflow"
    endpoint, so this flow adapts that theme onto squads, which are Vapi's
    mechanism for routing a single call across multiple assistants. It creates a
    front-line greeter assistant and a specialist assistant, then assembles both
    into a squad. Every step spells out its request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: assistantsApi
  url: ../openapi/vapi-ai-assistants-api-openapi.yml
  type: openapi
- name: squadsApi
  url: ../openapi/vapi-ai-squads-api-openapi.yml
  type: openapi
workflows:
- workflowId: build-squad
  summary: Create two assistants and group them into a routing squad.
  description: >-
    Creates a greeter assistant and a specialist assistant, then creates a squad
    whose members reference both assistant ids.
  inputs:
    type: object
    required:
    - apiToken
    - greeterPrompt
    - specialistPrompt
    properties:
      apiToken:
        type: string
        description: Vapi private API key used as a Bearer token.
      squadName:
        type: string
        description: A human-readable name for the squad.
        default: Support Squad
      greeterPrompt:
        type: string
        description: The system prompt for the front-line greeter assistant.
      specialistPrompt:
        type: string
        description: The system prompt for the specialist assistant.
  steps:
  - stepId: createGreeter
    description: Create the front-line greeter assistant that answers first.
    operationId: AssistantController_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        name: Greeter
        firstMessage: Hello, how can I help you today?
        model:
          provider: openai
          model: gpt-5.4
          messages:
          - role: system
            content: $inputs.greeterPrompt
        voice:
          provider: azure
          voiceId: andrew
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      greeterId: $response.body#/id
  - stepId: createSpecialist
    description: Create the specialist assistant the greeter can hand the call to.
    operationId: AssistantController_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        name: Specialist
        firstMessage: I can take it from here, let me dig into the details.
        model:
          provider: openai
          model: gpt-5.4
          messages:
          - role: system
            content: $inputs.specialistPrompt
        voice:
          provider: azure
          voiceId: andrew
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      specialistId: $response.body#/id
  - stepId: createSquad
    description: >-
      Assemble both assistants into a squad whose first member is the greeter
      and second member is the specialist.
    operationId: SquadController_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.squadName
        members:
        - assistantId: $steps.createGreeter.outputs.greeterId
        - assistantId: $steps.createSpecialist.outputs.specialistId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      squadId: $response.body#/id
  outputs:
    greeterId: $steps.createGreeter.outputs.greeterId
    specialistId: $steps.createSpecialist.outputs.specialistId
    squadId: $steps.createSquad.outputs.squadId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/vapi-ai-build-squad-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.