n8nvapivoice-aiautomationopen-sourcecommunity-node

    I Built a Vapi Community Node for n8n—Now Officially Verified

    Ajit Kihor
    8 min read

    I built n8n-nodes-vapiai because I was tired of rebuilding the same Vapi API requests and webhook handling in every n8n workflow. What began as a solution to my own problem is now an open-source community node that has passed n8n's automated and manual review process.

    Update — July 2026: n8n-nodes-vapiai is now a verified n8n community node. It can be discovered and installed from the n8n nodes panel on supported n8n instances, including n8n Cloud workspaces that allow verified community nodes.

    What Is the Vapi Community Node for n8n?

    n8n-nodes-vapiai connects Vapi with n8n through native, structured node operations. Instead of manually configuring an HTTP Request node for every call to the Vapi API, you can select a resource and operation, fill in the relevant fields, and keep your Vapi credentials in n8n's credential system.

    The package contains two nodes:

    • Vapi: Performs operations against the Vapi REST API.
    • Vapi Trigger: Receives Vapi server and client message events through an n8n webhook.

    The package is MIT licensed, published on npm, and actively maintained in public on GitHub.

    From an Open-Source Project to a Verified n8n Node

    When I first published this article, verification was the next milestone. Since then, the package has completed both the automated checks and manual review required by n8n.

    For users, the important result is trust and accessibility: n8n has reviewed and approved the community package, and the node can be installed directly from the editor where verified community nodes are supported. The verified label does not mean that Vapi or n8n maintains the package; I remain its independent maintainer. It means the package has been accepted into n8n's verified community-node ecosystem.

    Getting there required more than implementing API endpoints. The package needed clear metadata and documentation, an MIT license, safe credential handling, reproducible builds, automated publishing, npm provenance, and code that met n8n's community-node requirements.

    Seeing the verified indicator inside n8n made that work worthwhile. More importantly, it removed friction for people who want to use Vapi in their workflows without maintaining a collection of custom HTTP requests.

    What the Node Supports Today

    The current package exposes six Vapi resource groups.

    Calls

    Create outbound or batch calls, retrieve and filter calls, update supported fields, end active calls, and request call-data deletion for retention or compliance workflows.

    Assistants

    Create, retrieve, list, update, and delete assistants. Common settings are available as structured fields, while advanced model, voice, server, monitoring, analysis, hook, and artifact configuration can be supplied as JSON.

    Phone Numbers

    Provision or import phone numbers, retrieve and list them, update routing and webhook settings, and delete or release them. The node supports Vapi, Twilio, Telnyx, Vonage, and bring-your-own-number provider shapes, with JSON available for provider-specific configuration.

    Squads

    Create and manage squads for multi-assistant call routing. This is useful when a call must move between specialized assistants, such as front desk, sales, support, and billing agents.

    Tools

    Create, retrieve, list, update, and delete tools. The node includes support for common function, API request, code, call-control, query, MCP, Slack, SMS, Google, and GoHighLevel tool types. New or less common Vapi tool shapes can be passed through the raw JSON field.

    Files

    Upload files from n8n binary data, text content, or a URL, then retrieve, list, update, or delete them. These files can be referenced by assistants, tools, knowledge bases, and other Vapi resources.

    Why I Added an Advanced Raw Body Field

    Vapi evolves quickly, and a community node should not block users whenever the API introduces a new field. For that reason, create and update operations include an Advanced Raw Body (JSON) option.

    The node builds the request from the structured UI fields first and merges the raw JSON last. A top-level value in the raw body therefore overrides the corresponding structured value. This gives beginners a guided interface while allowing advanced users to access newer or more specialized Vapi configuration without waiting for a package update.

    For example, an outbound call can be created with fields in the UI or with a payload such as:

    {
      "assistantId": "your-assistant-id",
      "phoneNumberId": "your-phone-number-id",
      "customer": {
        "number": "+91XXXXXXXXXX"
      }
    }
    

    Using Vapi Events as n8n Triggers

    The Vapi Trigger node exposes an n8n webhook URL that you add as a server URL in Vapi. It can listen for selected event types or forward all events with a normalized json.type value for routing through an IF or Switch node.

    Common events include:

    • end-of-call-report
    • status-update
    • transcript
    • conversation-update
    • tool-calls
    • tool-calls-result
    • transfer-destination-request
    • assistant-request
    • knowledge-base-request
    • voice-request

    The trigger can also validate a shared secret header. I strongly recommend enabling this for production workflows so that unknown requests cannot activate a public webhook simply because they know its URL.

    Webhook registration is intentionally manual: n8n generates the webhook URL, and you decide where to configure it in Vapi—at the organization, assistant, phone-number, or tool level.

    A Practical Post-Call Automation

    One of the most useful patterns begins with an end-of-call-report event:

    1. Vapi finishes a call and sends the report to the Vapi Trigger.
    2. n8n extracts the transcript and call metadata.
    3. An AI step summarizes the conversation or produces structured fields.
    4. n8n updates a CRM, spreadsheet, database, or help desk.
    5. The workflow sends a follow-up email, SMS, or internal notification.

    The same workflow can branch by assistant ID, phone-number ID, call status, or custom metadata. This turns a phone conversation into structured business automation without polling Vapi or manually exporting data.

    How to Install It

    On an n8n instance that supports verified community nodes:

    1. Open a workflow and search for Vapi in the nodes panel.
    2. Open the Vapi node details.
    3. Select Install node.
    4. Create a Vapi API credential using an API key from the Vapi dashboard.

    For a self-hosted instance, you can also install the package through Settings → Community Nodes using:

    n8n-nodes-vapiai
    

    Or install it directly with npm:

    npm install n8n-nodes-vapiai
    

    Only install community packages that you trust, and test workflows with non-production credentials and phone numbers before using them with real customers.

    Community Node or HTTP Request Node?

    n8n's HTTP Request node is excellent, and it remains the fastest option for an endpoint that the package does not yet support. A dedicated node becomes valuable when the integration is used repeatedly or shared with a team.

    The community node provides:

    • A reusable Vapi credential type instead of repeated authorization headers.
    • Discoverable resources and operations.
    • Guided input fields for common configuration.
    • Consistent request and response handling.
    • A dedicated trigger for Vapi webhook events.
    • Raw JSON access when the guided fields are not enough.

    For a one-off request, HTTP Request may be all you need. For a workflow that other people must understand, maintain, and reuse, the native node offers a cleaner interface and reduces configuration mistakes.

    What I Learned

    Building the API calls was only part of the work

    A usable integration also needs naming, descriptions, sensible defaults, error handling, credentials, documentation, release automation, and a strategy for API changes. These details are what separate a working prototype from a package other people can rely on.

    A guided UI and raw JSON work better together

    Trying to expose every possible API field creates an overwhelming interface. Supporting only a few fields makes the node too restrictive. Structured inputs for common cases plus raw JSON for advanced configuration turned out to be the right balance.

    Verification is a milestone, not the finish line

    The verified status makes the node easier to trust and install, but maintenance continues. Vapi will add and change API capabilities, n8n will evolve its node framework, and users will find edge cases I did not anticipate. Issues and pull requests remain an important part of the project.

    What Comes Next

    My next priorities are to keep the node aligned with Vapi's API, improve the guided fields for common voice-agent configurations, expand examples, and make production patterns such as webhook security, call-data retention, and error handling easier to follow.

    If you use the node, I would genuinely appreciate feedback. Tell me what you are building, report problems, or open a pull request:

    This started as a way to avoid repeating HTTP and webhook setup. Becoming a verified n8n community node is a meaningful milestone, but the best outcome is seeing other builders use it to create voice AI automations of their own.

    Ajit Kihor - AI Automation Engineer

    Ajit Kihor

    AI Agent Developer & Automation Engineer

    I build high-performance AI agents and business automations using n8n, Zapier, and custom LLM workflows.