Skip to main content

LunaCal Integration

Connect LunaCal to Heffl to automatically create contacts and meeting tasks when someone books a meeting through your LunaCal scheduling page.
LunaCal currently requires a manual webhook paste step in LunaCal. Heffl shows the webhook URL and setup instructions in a guided modal during connection.

Overview

LunaCal is a scheduling tool that lets clients and prospects book meetings with you. With this integration, Heffl automatically:
  • Creates contacts from new booking attendees (or matches existing ones)
  • Creates meeting tasks linked to the right contact or deal
  • Updates meetings when bookings are rescheduled
  • Removes meetings when bookings are cancelled

Prerequisites

  1. A LunaCal account with at least one event type
  2. A Heffl account

Setup Instructions

Step 1: Connect LunaCal in Heffl

  1. In Heffl, go to Settings → Integrations
  2. Find LunaCal and click Connect
  3. A setup modal opens and shows a Connecting state while Heffl creates your integration
  4. When connected, the same modal shows your unique Webhook URL and setup instructions
  5. Copy the Webhook URL — you’ll need it in the next step
The webhook URL is unique to your integration and looks like: https://api.heffl.com/api/webhooks/lunacal/your-unique-id

Step 2: Add the Webhook in LunaCal

You need to add the webhook URL to each LunaCal event type you want to sync with Heffl.
  1. Log into LunaCal
  2. Open the event type you want to connect (e.g., “30 Min Meeting”)
  3. Go to the Advanced tab
  4. Click New Webhook
  5. Paste the Webhook URL you copied from Heffl
  6. Select the following events:
    • Booking Created
    • Booking Cancelled
    • Booking Rescheduled
  7. Save the webhook
Repeat Step 2 for each LunaCal event type you want to sync. You can use the same webhook URL for all event types.

Step 3: Test the Connection

  1. In LunaCal’s webhook settings, click the Ping Test button
  2. You should see a successful response: { "ok": true, "status": 200, "message": "Webhook received" }
  3. To fully test, create a test booking through your LunaCal scheduling page
  4. Check Heffl — a new contact and meeting task should appear

How It Works

New Bookings

When someone books a meeting through LunaCal:
  1. Webhook received — LunaCal sends the booking details to Heffl
  2. Contact matching — Heffl searches for an existing contact by email
  3. Contact creation — If no match is found, a new contact is created automatically
  4. Deal detection — If the contact has an active deal, the meeting is linked to that deal
  5. Task created — A meeting task is created with the booking details (time, event name, location, form responses)

Rescheduled Bookings

When a booking is rescheduled:
  • The existing meeting task is updated with the new date and time
  • No duplicate tasks are created

Cancelled Bookings

When a booking is cancelled:
  • The corresponding meeting task is deleted from Heffl

Contact & Deal Assignment

ScenarioWhere the task is created
New contact (no prior record)Contact record
Existing contact with an active dealDeal record
Existing contact, parent company has a dealParent company’s deal
Existing contact, no dealContact record

Supported Events

LunaCal EventHeffl Action
Booking CreatedCreates contact + meeting task
Booking CancelledDeletes the meeting task
Booking RescheduledUpdates the meeting time
Other LunaCal events (Booking Requested, Booking Rejected, Booking Payment Initiated, Booking Paid) are not processed by Heffl at this time.

Troubleshooting

Possible causes:
  • Webhook URL not configured in LunaCal
  • Wrong event types selected in the webhook settings
  • Integration disconnected in Heffl
Solutions:
  • Verify the webhook URL is correctly pasted in LunaCal’s Advanced tab
  • Ensure Booking Created, Booking Cancelled, and Booking Rescheduled are selected
  • Check that the LunaCal integration is connected in Settings → Integrations
  • Use the Ping Test button in LunaCal to verify the webhook is reachable
Possible causes:
  • The attendee is using a different email than what’s in Heffl
Solutions:
  • Heffl matches contacts by email (case-insensitive). Ensure the email in LunaCal matches the contact’s email in Heffl
Possible causes:
  • Booking Cancelled event not selected in LunaCal webhook settings
Solutions:
  • Edit the webhook in LunaCal and ensure the Booking Cancelled event is selected

Disconnecting

To disconnect LunaCal:
  1. Go to Settings → Integrations
  2. Find LunaCal and click the Disconnect button
After disconnecting, webhooks from LunaCal will no longer be processed. You should also remove the webhook URL from your LunaCal event type settings. Existing contacts and meeting tasks in Heffl are preserved.

FAQ

Yes. You can paste the same webhook URL into every LunaCal event type. All bookings will be synced to the same Heffl account.
The integration is connected per-user. Each team member who wants their LunaCal bookings synced should connect their own LunaCal integration in Heffl.
LunaCal sends: attendee name and email, event title, start/end time, location, and form responses. Heffl uses this to create the contact and meeting task.
Each integration gets a unique, randomly generated webhook URL that acts as an authentication token. Only requests sent to your specific URL will be processed.