Vapi · Arazzo Workflow

Vapi Create and Verify Assistant

Version 1.0.0

Create a voice AI assistant and read it back to confirm it was provisioned.

1 workflow 1 source API 1 provider
View Spec View on GitHub AIVoice AIVoice AgentsConversational AITelephonyReal-TimeTranscriptionText-to-SpeechLLMAgentsMCPArazzoWorkflows

Provider

vapi-ai

Workflows

create-assistant
Create a Vapi assistant and verify it by reading it back.
Provisions a new voice AI assistant from a model, voice, and first message, then retrieves the same assistant by id to confirm it exists.
2 steps inputs: apiToken, firstMessage, model, name, systemPrompt, voiceId outputs: assistantId, assistantName
1
createAssistant
AssistantController_create
Create a new voice AI assistant with an OpenAI model, an Azure voice, and an opening message.
2
getAssistant
AssistantController_findOne
Read the assistant back by its id to confirm it was created and persisted.

Source API Descriptions

Arazzo Workflow Specification

vapi-ai-create-assistant-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Vapi Create and Verify Assistant
  summary: Create a voice AI assistant and read it back to confirm it was provisioned.
  description: >-
    The foundational Vapi flow. It creates a voice AI assistant with a model,
    voice, and first message, then immediately fetches the assistant by its
    returned id to confirm the configuration persisted. 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-assistants-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-assistant
  summary: Create a Vapi assistant and verify it by reading it back.
  description: >-
    Provisions a new voice AI assistant from a model, voice, and first message,
    then retrieves the same assistant by id to confirm it exists.
  inputs:
    type: object
    required:
    - apiToken
    - name
    - firstMessage
    - systemPrompt
    properties:
      apiToken:
        type: string
        description: Vapi private API key used as a Bearer token.
      name:
        type: string
        description: A human-readable name for the assistant.
      firstMessage:
        type: string
        description: The first message the assistant speaks when a call connects.
      systemPrompt:
        type: string
        description: The system prompt that shapes the assistant's behavior.
      model:
        type: string
        description: The OpenAI model id to drive the assistant.
        default: gpt-5.4
      voiceId:
        type: string
        description: The Azure voice id the assistant speaks with.
        default: andrew
  steps:
  - stepId: createAssistant
    description: >-
      Create a new voice AI assistant with an OpenAI model, an Azure voice,
      and an opening message.
    operationId: AssistantController_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        firstMessage: $inputs.firstMessage
        model:
          provider: openai
          model: $inputs.model
          messages:
          - role: system
            content: $inputs.systemPrompt
        voice:
          provider: azure
          voiceId: $inputs.voiceId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assistantId: $response.body#/id
  - stepId: getAssistant
    description: >-
      Read the assistant back by its id to confirm it was created and persisted.
    operationId: AssistantController_findOne
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    - name: id
      in: path
      value: $steps.createAssistant.outputs.assistantId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      assistantId: $response.body#/id
      assistantName: $response.body#/name
  outputs:
    assistantId: $steps.getAssistant.outputs.assistantId
    assistantName: $steps.getAssistant.outputs.assistantName