ROASFormDocs
WebhooksEvents

booked_call

View as Markdown

An appointment was booked through a connected calendar.

Fires when a visitor books an appointment through a Calendly or GoHighLevel calendar connected to the form.

data

appointmentobject

The booked appointment.

+Show child attributes
iduuid
ROASForm appointment id.
statusstring

Booking state, read fresh when the delivery is sent. Almost always new, meaning the appointment was confirmed with the calendar provider. pending means we recorded it but the provider never confirmed it — typically a dropped calendar connection. cancelled only shows up on a retry: a failed delivery is rebuilt with current data, so if the invitee cancels in the meantime, the retry carries the newer state.

Possible values
newpendingcancelled
scheduledAtUtctimestamp
Meeting start.
endAtUtctimestamp

Meeting end. Derived from the start plus the provider's confirmed duration, so it always agrees with durationMinutes.

durationMinutesnumber
timezonenullable string

The IANA timezone the invitee booked in, e.g. America/Chicago — taken from their browser when they picked the slot, not from the calendar provider. Useful for showing the meeting time the way they saw it. Falls back to UTC when the browser reported nothing, so treat a plain UTC as "unknown" rather than a confirmed location.

locationnullable string

Where the meeting happens: a video link, a phone number, or a physical address. Calendly returns its join URL for conferencing event types (Google Meet links are generated asynchronously, so this can be null right after booking), otherwise the location text. GoHighLevel returns the calendar's configured address or meeting link. null when the provider gave none.

providerCalendarIdstring

Which calendar the booking landed on, in the provider's system: the GoHighLevel calendar id, or the Calendly event type id. Configured on the form, so it's the same for every booking on that calendar. Matches what you see in your own GoHighLevel/Calendly account.

providerBookingIdnullable string

The provider's id for this one appointment, returned when the booking was created. Use it with the Calendly/GoHighLevel API to fetch, reschedule, or cancel the booking. null when the provider did not return a booking id.

cancelUrlnullable string

Invitee-facing link to cancel the booking, safe to put in your own emails. Points at the ROASForm appointment page for both providers.

rescheduleUrlnullable string

Invitee-facing link to reschedule, same as above.

bookingTagsstring[]
createdAtUtctimestamp
calendarProviderstring
Possible values
calendlygohighlevel
assignedUsernullable string

The host's name. Calendly fills it; GoHighLevel usually returns none, so expect null there.

eventNamenullable string

The booked event type's name, e.g. Intro Call - 30 min.

leadobject

The lead who booked. See shared objects.

submissionobject

The submission that led to the booking. Carries its own ending, answers, lastSeenElement, utmData, ipAddress, userAgent, and appliedTags. See the submission object.

splitTestVariantnullable object

{ id, name } of the variant served, or null when the form has no running split test.

booked_call
{
  "id": "1f6a9d34-7c2e-4b8f-a5d1-9e3b7c0f4a68",
  "event": "booked_call",
  "webhookVersion": "2026-07-01",
  "createdAtUtc": "2026-07-28T14:35:02.771Z",
  "agency": {
    "id": "c1a2b3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
    "name": "Acme Marketing"
  },
  "subaccount": {
    "id": "7f3e9d21-4b8a-4c5e-9f60-2d8b1a7c3e54",
    "name": "Acme Fitness Client"
  },
  "form": {
    "id": "e8b4c672-9a1d-4f3b-b7c8-5d2e9f0a1b3c",
    "name": "Fitness Coaching Application",
    "url": "https://forms.roasform.com/fitness-coaching"
  },
  "data": {
    "appointment": {
      "id": "f2a6d9c4-7b1e-4d8a-9c3f-0e5b8d2a6f49",
      "status": "new",
      "scheduledAtUtc": "2026-07-30T16:00:00.000Z",
      "endAtUtc": "2026-07-30T16:30:00.000Z",
      "durationMinutes": 30,
      "timezone": "America/Chicago",
      "location": "https://meet.google.com/abc-defg-hij",
      "providerCalendarId": "CVokAlI8fgw4WYWoCtQz",
      "providerBookingId": "sV3xPqT9uHkLmA2cRfGe",
      "cancelUrl": "https://my.roasform.com/appt/f2a6d9c4-7b1e-4d8a-9c3f-0e5b8d2a6f49/cancel",
      "rescheduleUrl": "https://my.roasform.com/appt/f2a6d9c4-7b1e-4d8a-9c3f-0e5b8d2a6f49/reschedule",
      "bookingTags": [
        "booked"
      ],
      "createdAtUtc": "2026-07-28T14:35:02.771Z"
    },
    "calendarProvider": "calendly",
    "assignedUser": "Sam Closer",
    "eventName": "Intro Call - 30 min",
    "lead": {
      "id": "3d9f7a25-6c1b-4e8d-a2f4-8b0c5d7e9f13",
      "name": "Jane Doe",
      "email": "jane@example.com",
      "phone": "+15555550100",
      "company": "Doe Fitness LLC",
      "location": "Austin, TX",
      "tags": [
        "hot-lead"
      ],
      "timezone": "America/Chicago",
      "country": "US",
      "createdAtUtc": "2026-07-28T14:29:03.114Z"
    },
    "submission": {
      "id": "5a2c8e94-1f7d-4b3a-9e6c-4d8f0b2a6c71",
      "status": "complete",
      "qualification": "qualified",
      "score": 40,
      "startedAtUtc": "2026-07-28T14:26:40.207Z",
      "completedAtUtc": "2026-07-28T14:32:11.482Z",
      "ending": {
        "id": "9c4b7d13-8e2a-4f6c-b1d9-7a3e5c8f2d46",
        "name": "Qualified - Book a call",
        "type": "calendar"
      },
      "lastSeenElement": {
        "elementId": "a1d4c7f2-9b3e-4c6a-8d2f-5e9b1c4a7d30",
        "label": "What is your email?",
        "type": "email",
        "value": "jane@example.com",
        "values": null,
        "score": null
      },
      "answers": [
        {
          "elementId": "b7e2f9a4-3c8d-4a1e-9f5b-6d0c2e8a4f17",
          "label": "What is your monthly budget?",
          "type": "single_choice",
          "value": "$2,000 - $5,000",
          "values": null,
          "score": 30
        },
        {
          "elementId": "d2c8f5b1-7e4a-4d9c-a6f3-9b0e5d8c2a64",
          "label": "What are your goals?",
          "type": "multiple_choice",
          "value": null,
          "values": [
            "Lose weight",
            "Build muscle"
          ],
          "score": 10
        },
        {
          "elementId": "a1d4c7f2-9b3e-4c6a-8d2f-5e9b1c4a7d30",
          "label": "What is your email?",
          "type": "email",
          "value": "jane@example.com",
          "values": null,
          "score": null
        }
      ],
      "appliedTags": [
        "hot-lead"
      ],
      "utmData": {
        "utm_source": "facebook",
        "utm_medium": "cpc",
        "utm_campaign": "summer-2026"
      },
      "ipAddress": "203.0.113.42",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15"
    },
    "splitTestVariant": {
      "id": "d6f1a8c3-2e9b-4a5d-8f7c-1b4e6a9d3c82",
      "name": "Variant B"
    }
  }
}