rv-rental-api

Package Information

Released: 7/17/2025
Downloads: 0 weekly / 0 monthly
Latest Version: 1.0.0
Author: davidstillson

Documentation

n8n-nodes-rv-rental-api

This is an n8n community node for the RV Rental Management System API. It provides easy access to reservation data and management features directly within your n8n workflows.

Features

  • Get All Reservations: Retrieve reservations with optional filtering by status, source, date range, and limit
  • Get Reservation by ID: Fetch detailed information for a specific reservation
  • Built-in Authentication: Secure API token authentication
  • Error Handling: Comprehensive error handling with meaningful messages
  • Type Safety: Full TypeScript support with proper typing

Installation

Community Nodes (Recommended)

  1. Go to Settings > Community Nodes in your n8n instance
  2. Click Install a community node
  3. Enter n8n-nodes-rv-rental-api
  4. Click Install

Manual Installation

  1. Navigate to your n8n installation directory
  2. Run: npm install n8n-nodes-rv-rental-api
  3. Restart n8n

Self-Hosted Installation

  1. Clone this repository
  2. Run npm run build
  3. Copy the dist folder to your n8n custom nodes directory
  4. Restart n8n

Configuration

1. Generate API Token

First, generate an API token for an admin user in your RV Rental system:

# Using Laravel Artisan
php artisan api:generate-token [email protected]

# Using Laravel Sail
./vendor/bin/sail artisan api:generate-token [email protected]

2. Set Up Credentials

  1. In n8n, go to Credentials
  2. Click Create New Credential
  3. Search for "RV Rental API"
  4. Fill in:
    • Base URL: Your RV Rental system URL (e.g., https://bestillrvrentals.com)
    • API Token: The token generated in step 1

3. Test Connection

Click Test to verify your credentials work correctly.

Usage

Get All Reservations

Use this operation to retrieve reservations with optional filtering:

Available Filters:

  • Status: pending, confirmed, blocked, cancelled
  • Source: direct, rv_share, outdoorsy, manual
  • Start Date: Filter reservations starting from this date
  • End Date: Filter reservations ending before this date
  • Limit: Maximum results (1-500, default: 100)

Example Output:

{
  "id": 14,
  "reference_number": "BRV-000014",
  "listing_name": "2025 Jayco Jayflight SLX 260BH",
  "start_date": "2025-08-01",
  "end_date": "2025-08-05",
  "nights": 4,
  "status": "pending",
  "customer_email": "[email protected]",
  "total_amount": "850.00"
}

Get Reservation by ID

Retrieve detailed information for a specific reservation:

Input:

  • Reservation ID: The numeric ID of the reservation

Example Output:

{
  "id": 14,
  "reference_number": "BRV-000014",
  "listing": {
    "name": "2025 Jayco Jayflight SLX 260BH",
    "pricing": {...},
    "add_ons": [...]
  },
  "customer_name": "John Doe",
  "selected_add_ons": [...],
  "pricing_details": {...}
}

Workflow Examples

1. Daily Pending Reservations Report

Schedule Trigger (daily) 
→ RV Rental API (Get All, Status: pending) 
→ Email (send report)

2. New Reservation Processing

Webhook Trigger 
→ RV Rental API (Get by ID) 
→ Condition (check status) 
→ Send confirmation email

3. External Platform Sync

Schedule Trigger (hourly) 
→ RV Rental API (Get All, Source: rv_share) 
→ Process reservations 
→ Update external systems

Error Handling

The node includes comprehensive error handling:

  • 401 Unauthorized: Invalid or missing API token
  • 403 Forbidden: Non-admin user attempting access
  • 404 Not Found: Reservation doesn't exist
  • 500 Server Error: API server issues

Enable Continue on Fail to handle errors gracefully in your workflows.

Development

Building

npm install
npm run build

Linting

npm run lint
npm run lintfix

Testing

npm test

Support

License

MIT License - see LICENSE file for details.

Discussion