Vapi · Arazzo Workflow

Vapi Import Twilio Number and Bind Assistant

Version 1.0.0

Create an assistant and import an existing Twilio number that routes inbound calls to it.

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

Provider

vapi-ai

Workflows

import-twilio-number
Create an assistant and import a Twilio number bound to it.
Provisions an assistant, then imports an existing Twilio phone number into Vapi and routes its inbound calls to that assistant.
2 steps inputs: apiToken, firstMessage, name, systemPrompt, twilioAccountSid, twilioAuthToken, twilioNumber outputs: assistantId, phoneNumberId
1
createAssistant
Create the assistant that will answer inbound calls on the imported number.
2
importTwilioNumber
Import the existing Twilio number into Vapi and bind it to the assistant so inbound calls are routed to it.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Vapi Import Twilio Number and Bind Assistant
  summary: Create an assistant and import an existing Twilio number that routes inbound calls to it.
  description: >-
    The bring-your-own-carrier inbound flow. It creates a voice AI assistant and
    then imports an existing Twilio phone number into Vapi, binding that number
    to the assistant so inbound calls are answered by it. 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: phoneNumbersApi
  url: ../openapi/vapi-ai-phone-numbers-api-openapi.yml
  type: openapi
workflows:
- workflowId: import-twilio-number
  summary: Create an assistant and import a Twilio number bound to it.
  description: >-
    Provisions an assistant, then imports an existing Twilio phone number into
    Vapi and routes its inbound calls to that assistant.
  inputs:
    type: object
    required:
    - apiToken
    - name
    - firstMessage
    - systemPrompt
    - twilioNumber
    - twilioAccountSid
    - twilioAuthToken
    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 and number.
      firstMessage:
        type: string
        description: The opening message the assistant speaks on inbound calls.
      systemPrompt:
        type: string
        description: The system prompt that shapes the assistant's behavior.
      twilioNumber:
        type: string
        description: The Twilio phone number to import in E.164 format.
      twilioAccountSid:
        type: string
        description: The Twilio account SID that owns the number.
      twilioAuthToken:
        type: string
        description: The Twilio auth token used to verify number ownership.
  steps:
  - stepId: createAssistant
    description: Create the assistant that will answer inbound calls on the imported number.
    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: gpt-5.4
          messages:
          - role: system
            content: $inputs.systemPrompt
        voice:
          provider: azure
          voiceId: andrew
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assistantId: $response.body#/id
  - stepId: importTwilioNumber
    description: >-
      Import the existing Twilio number into Vapi and bind it to the assistant
      so inbound calls are routed to it.
    operationId: PhoneNumberController_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        provider: twilio
        number: $inputs.twilioNumber
        twilioAccountSid: $inputs.twilioAccountSid
        twilioAuthToken: $inputs.twilioAuthToken
        assistantId: $steps.createAssistant.outputs.assistantId
        name: $inputs.name
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      phoneNumberId: $response.body#/id
  outputs:
    assistantId: $steps.createAssistant.outputs.assistantId
    phoneNumberId: $steps.importTwilioNumber.outputs.phoneNumberId

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-import-twilio-number-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.