N8N Integration
N8N is an open-source, self-hostable workflow automation tool. This guide shows you how to connect Reservly to N8N so you can trigger workflows from booking events and call Reservly's API from any workflow.
What You'll Build
Automated workflows that respond to Reservly booking events in real time or pull booking data on a schedule. Two connection types:
- Webhook node— receives push events from Reservly when bookings are created, updated, or cancelled.
- HTTP Request node— calls Reservly's API to fetch services, check slots, or create bookings.
Prerequisites
- A Reservly account with an API key (write scope for booking, read scope for fetching data).
- An N8N instance (cloud or self-hosted).
Step 1: Set Up a Webhook Trigger Node
Create a new workflow in N8N. Add a Webhook node as the trigger.
- Add a Webhook node and set the HTTP method to POST.
- Switch to the Production tab and copy the production URL. It looks like:
https://your-n8n.example.com/webhook/abc-123-deftext
- In your Reservly dashboard, go to Settings → Integrations → Webhooks.
- Click Add Webhook, paste the N8N URL, and select the events you want (e.g.,
booking.created,booking.cancelled). - Save and click Send Test. Back in N8N, you should see the test payload arrive. Click Save & Activate to enable the workflow.
Step 2: Set Up an HTTP Request Node
To pull data from Reservly (services, slots, bookings), add an HTTP Request node.
Fetching Services
Method: GET URL: https://reservly.io/api/public/luxe-salon/servicestext
Checking Availability
Method: GET URL: https://reservly.io/api/public/luxe-salon/slots?date=2026-04-15&service_id=SERVICE_IDtext
Creating a Booking
For write operations, add your API key in the Authentication section or as a header.
Method: POST URL: https://reservly.io/api/public/luxe-salon/book Headers: Content-Type: application/json Authorization: Bearer rsvly_YOUR_API_KEYtext
{
"service_ids": ["SERVICE_ID"],
"date": "2026-04-15",
"time": "10:00",
"customer_name": "Jane Smith",
"customer_email": "jane@example.com"
}jsonStep 3: Example Workflows
Workflow 1: Booking Created → WhatsApp Message via Twilio
Trigger: Webhook (booking.created) → Action: Twilio node → Send WhatsApp message. Map the customer phone and booking details into the message.
Hi {{$json.booking.customer_name}}, your {{$json.booking.service_name}} is confirmed for {{$json.booking.date}} at {{$json.booking.time}}. See you then!textWorkflow 2: Daily Booking Digest Email
Trigger: Cron node (daily at 7 AM) → HTTP Request (fetch today's slots/bookings) → Send Email node. Use the cron trigger to run the workflow every morning, pull the day's bookings via the API, and email a summary to the business owner.
curl "https://reservly.io/api/public/luxe-salon/slots?date=2026-04-15" \ -H "Authorization: Bearer rsvly_YOUR_API_KEY"bash
Workflow 3: New Customer → Add to CRM
Trigger: Webhook (booking.created) → IF node (check if customer is new) → HTTP Request to HubSpot or Salesforce API to create a new contact. Map customer_name and customer_email from the webhook payload.
Tips
- Use the IF node to filter events. For example, only process
booking.createdevents and ignore updates. - For self-hosted N8N, make sure your instance is publicly accessible (or use a tunnel like ngrok) so Reservly can reach the webhook URL.
- Set up error handling with the Error Trigger node to catch failed API calls.
Next Steps
- Webhooks Reference— full list of events and payload formats
- REST API Reference— all available endpoints
- All Integration Guides— connect with other platforms