Skip to main content

Overview

The Revox n8n module provides two nodes for integrating AI voice calls into your n8n workflows: Revox - Action node for placing calls and retrieving call data Revox Trigger - Webhook trigger for receiving call completion events

Community Nodes Package

Install n8n-nodes-revox from npm

Installation

Step 1: Install the Community Node

  1. Open Settings → Community Nodes in your n8n instance
  2. Click Install and enter: n8n-nodes-revox
  3. Confirm the installation
  4. Restart n8n if prompted
Community nodes require n8n version 0.188.0 or higher. Make sure you’re running a recent version.

Setup

Step 2: Create API Credentials

  1. Get your API key from the Revox Dashboard
  2. In n8n, go to Credentials → Add Credential
  3. Search for “Revox API”
  4. Enter your API key
  5. Set the base URL (default: https://www.getrevox.com/api)
  6. Save the credential
Keep your API key secure. Never commit it to version control or share it publicly.

Basic Usage

Placing a Call

The simplest workflow places a call when manually triggered:
1

Add a Manual Trigger

Drag a Manual Trigger node onto your canvas
2

Add Revox Node

Add a Revox node and select “Place Call” operation
3

Configure the Call

Set the following parameters:
  • Phone Number: E.164 format (e.g., +15555555555)
  • Prompt: System prompt for the AI agent
  • Force Now: Enable to bypass time zone checks
  • Voice: Select from available voices (optional)
4

Connect and Test

Connect the nodes and click “Execute Workflow” to test

Receiving Webhooks

Set up a trigger to handle call completion events:
1

Add Revox Trigger

Add a Revox Trigger node to your workflow
2

Configure Filters

Optionally filter by result type:
  • All - Receive all call completions
  • Human - Only when a person answers
  • Voicemail - Only voicemail detections
  • IVR - Only automated system responses
3

Reference Webhook URL

In your Revox node, set the Webhook URL parameter using an n8n expression:{{ $('Revox Trigger').json.webhookUrl }}
4

Activate Workflow

Activate the workflow to register the webhook endpoint

Node Operations

Revox Node

The Revox node supports three operations:
Create a new AI-powered voice call with optional webhook notifications.Required Parameters:
  • phoneNumber - E.164 formatted phone number
  • prompt - System prompt for the AI agent
Optional Parameters:
  • forceNow - Bypass time zone checks (default: true)
  • webhookUrl - URL to receive completion events
  • voice - Voice selection from available options

Revox Trigger

Receives call completion webhooks from Revox. The trigger exposes: Webhook Data:
  • call_order_id - Unique identifier for the call order
  • call_id - Unique identifier for the specific call
  • status - Call status (queued, ringing, ongoing, completed)
  • result - Detection result (human, voicemail, IVR, or null)
  • annotation - Brief call summary
  • transcript - Full call transcript (if available)
  • recording_url - URL to call recording
  • started_at - ISO timestamp when call started
  • ended_at - ISO timestamp when call ended
  • calls_count - Number of calls in the call order
  • webhookUrl - The webhook URL to use in Revox nodes

Example Workflows

Simple Outbound Call

Place a call and log the result:
Manual Trigger → Revox (Place Call) → Set Node (extract call_id)

Call with Notification

Send a Slack notification when a call completes:
Revox Trigger (filter: human) → Slack (Send Message)

Post-Call Routing

Route calls based on result type:
Revox Trigger → Switch (by result) → [CRM Update | Email | Slack]

Automated Follow-up

Retry calls on voicemail detection:
Revox Trigger (filter: voicemail) → Wait (2 hours) → Revox (Place Call)

Advanced Examples

Using Webhook URL in Expressions

Reference the trigger’s webhook URL dynamically using n8n expressions:
{{ $('Revox Trigger').json.webhookUrl }}

Filtering by Result Type

Use conditional logic to handle different outcomes:
{{ $json.result === 'human' ? 'Follow up required' : 'No action needed' }}

Accessing Call Data

Extract specific fields from the webhook payload:
  • Call ID: {{ $json.call_id }}
  • Phone Number: Extract from call order ID
  • Transcript: {{ $json.transcript }}
  • Recording: {{ $json.recording_url }}

Troubleshooting

  • Verify the community node is installed
  • Check n8n version is 0.188.0 or higher
  • Restart n8n after installation
  • Verify your API key is correct - Check the base URL matches your environment
  • Ensure credentials are saved and selected in the node
  • Activate the workflow to register the webhook - Verify the webhook URL is correctly referenced - Check if result filters are excluding events
  • Verify phone number is in E.164 format
  • Check time zone restrictions (use forceNow if needed)
  • Review API error messages in node execution logs

Resources

Next Steps