Events
Triggering Webhook Types
The following event types are associated with the Appointment event payload from Boulevard.Boulevard Appointment ActiveBoulevard Appointment ArrivedBoulevard Appointment CancelledBoulevard Appointment CompletedBoulevard Appointment ConfirmedBoulevard Appointment CreatedBoulevard Appointment RescheduledBoulevard Appointment Updated
Copy
Ask AI
{
"appointment_datetime": "2024-03-15T10:00:00Z",
"appointment_ends_at_datetime": "2024-03-15T11:00:00Z",
"appointment_id": "urn:blvd:Appointment:12345",
"appointment_location": {
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1 Acacia Ave.",
"line2": "Apt 3a.",
"province": "Alberta",
"state": "CA",
"zip_code": "94117"
},
"external_id": "LOC001",
"id": "urn:blvd:Location:loc123",
"is_remote": false,
"name": "Downtown Spa",
"timezone": "America/New_York"
},
"appointment_notes": "Client requested quiet room",
"appointment_services": [
{
"duration_minutes": 60,
"end_at": "2024-03-15T11:00:00Z",
"id": "urn:blvd:AppointmentService:abc123",
"price_cents": 15000,
"service": {
"category_name": "Massage Therapy",
"name": "Deep Tissue Massage"
},
"staff": {
"email_address": "sarah.johnson@spa.com",
"first_name": "Sarah",
"id": "urn:blvd:Staff:staff123",
"last_name": "Johnson",
"phone_number": "+15551234567",
"role_name": "Massage Therapist"
},
"staff_requested": true,
"start_at": "2024-03-15T10:00:00Z"
}
],
"appointment_status": "APPOINTMENT_STATE_BOOKED",
"calendar_links": {
"google_calendar": "https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=abc123",
"ics_download": "https://boulevard.com/calendar/appointment.ics",
"microsoft_office": "https://outlook.live.com/calendar/0/deeplink/compose?subject=Appointment",
"microsoft_outlook": "https://outlook.office.com/calendar/0/deeplink/compose?subject=Appointment",
"yahoo_calendar": "https://calendar.yahoo.com/?v=60&view=d&type=20&title=Appointment"
},
"client": {
"email_address": "jane.smith@email.com",
"first_name": "Jane",
"id": "urn:blvd:Client:client123",
"last_name": "Smith",
"phone_number": "+15551234567"
},
"client_message": "Looking forward to my appointment!",
"created_at": "2024-03-01T09:00:00Z",
"duration_minutes": 60,
"is_grouped_appointment": false,
"is_recurring": false,
"is_remote": false,
"manage_url": "https://book.boulevard.com/manage/abc123",
"order_id": "urn:blvd:Order:67890"
}
Copy
Ask AI
{
"appointment_datetime": "Start time for the appointment.",
"appointment_ends_at_datetime": "End time for the appointment.",
"appointment_id": "Unique identifier for the appointment in the Boulevard system.",
"appointment_location": {
"address": {
"city": "City of the Address",
"country": "Country for the Address.",
"line1": "Line 1 of the Address",
"line2": "Line 2 of the Address",
"province": "Province of the Address.",
"state": "State of the Address.",
"zip_code": "Zip (postal) code for the Address."
},
"external_id": "External identifier for the location.",
"id": "Unique identifier for the location.",
"is_remote": "Indicates that the location is a remote location, and that appointments for this location are carried out remotely.",
"name": "Name of the location.",
"timezone": "Timezone associated with the location."
},
"appointment_notes": "Internal notes on the appointment.",
"appointment_services": {
"duration_minutes": "Duration for the service in minutes (including options).",
"end_at": "The ISO time at which the appointment service is completely finished.",
"id": "Unique identifier for the appointment service.",
"price_cents": "Price of the service in cents, before any discounts or taxes are applied (including options).",
"service": {
"category_name": "Name of the Service Category",
"name": "Name of the service."
},
"staff": {
"email_address": "Email address of the staff member.",
"first_name": "First name of the staff member.",
"id": "Unique identifier for the staff member.",
"last_name": "Last name of the staff member.",
"phone_number": "Mobile phone number of the staff member.",
"role_name": "Name of the staff member's role."
},
"staff_requested": "A boolean indicating whether the staff was specifically requested by the client.",
"start_at": "The ISO time at which the appointment service begins."
},
"appointment_status": "The state of the appointment.",
"calendar_links": {
"google_calendar": "A deep link to add the appointment directly to Google Calendar.",
"ics_download": "A downloadable ICS file to use for native calendar applications.",
"microsoft_office": "A deep link to add the appointment directly to Microsoft Office 365.",
"microsoft_outlook": "A deep link to add the appointment directly to Microsoft Outlook Online.",
"yahoo_calendar": "A deep link to add the appointment directly to Yahoo Calendar."
},
"client": {
"email_address": "Client's email address.",
"first_name": "Client's first name.",
"id": "Unique identifier for the client in the Boulevard system.",
"last_name": "Client's last name.",
"phone_number": "Client's mobile phone number."
},
"client_message": "Message provided by the client.",
"created_at": "When the appointment was created (in Etc/UTC).",
"duration_minutes": "The duration of the appointment in minutes.",
"is_grouped_appointment": "Indicates whether the appointment is part of a group appointment.",
"is_recurring": "Indicates if the appointment belongs to a recurring series.",
"is_remote": "Indicates that the appointment is due to be carried out remotely.",
"manage_url": "The URL at which a client can manage their own booking.",
"order_id": "The id of the order that the appointment was checked out with."
}
Payload Field Details
Hide fields
Hide fields
ID Unique identifier for the appointment in the Boulevard system.CEL
Copy
Ask AI
appointment_id
Example
Copy
Ask AI
"urn:blvd:Appointment:12345"
HI Internal notes on the appointment.CEL
Copy
Ask AI
appointment_notes
Example
Copy
Ask AI
"Client requested quiet room"
Start time for the appointment.
CEL
Copy
Ask AI
appointment_datetime
Example
Copy
Ask AI
"2024-03-15T10:00:00Z"
End time for the appointment.
CEL
Copy
Ask AI
appointment_ends_at_datetime
Example
Copy
Ask AI
"2024-03-15T11:00:00Z"
The duration of the appointment in minutes.
CEL
Copy
Ask AI
duration_minutes
Example
Copy
Ask AI
60
The state of the appointment.
CEL
Copy
Ask AI
appointment_status
Example
Copy
Ask AI
boulevard.v1.AppointmentState.APPOINTMENT_STATE_ACTIVE
boulevard.v1.AppointmentState.APPOINTMENT_STATE_ARRIVED
boulevard.v1.AppointmentState.APPOINTMENT_STATE_BOOKED
boulevard.v1.AppointmentState.APPOINTMENT_STATE_CANCELLED
boulevard.v1.AppointmentState.APPOINTMENT_STATE_CONFIRMED
boulevard.v1.AppointmentState.APPOINTMENT_STATE_FINAL
PII Message provided by the client.CEL
Copy
Ask AI
client_message
Example
Copy
Ask AI
"Looking forward to my appointment!"
The client of the appointment.
CEL
Copy
Ask AI
client
Example
Copy
Ask AI
{
"email_address": "jane.smith@email.com",
"first_name": "Jane",
"id": "urn:blvd:Client:client123",
"last_name": "Smith",
"phone_number": "+15551234567"
}
ID Unique identifier for the client in the Boulevard system.CEL
Copy
Ask AI
client.id
Example
Copy
Ask AI
"urn:blvd:Client:client123"
PII Client’s first name.CEL
Copy
Ask AI
client.first_name
Example
Copy
Ask AI
"Jane"
PII Client’s last name.CEL
Copy
Ask AI
client.last_name
Example
Copy
Ask AI
"Smith"
PII Client’s email address.CEL
Copy
Ask AI
client.email_address
Example
Copy
Ask AI
"jane.smith@email.com"
PII Client’s mobile phone number.CEL
Copy
Ask AI
client.phone_number
Example
Copy
Ask AI
"+15551234567"
A collection of appointment services.
CEL
Copy
Ask AI
appointment_services
Example
Copy
Ask AI
[
{
"duration_minutes": 60,
"end_at": "2024-03-15T11:00:00Z",
"id": "urn:blvd:AppointmentService:abc123",
"price_cents": 15000,
"service": {
"category_name": "Massage Therapy",
"name": "Deep Tissue Massage"
},
"staff": {
"email_address": "sarah.johnson@spa.com",
"first_name": "Sarah",
"id": "urn:blvd:Staff:staff123",
"last_name": "Johnson",
"phone_number": "+15551234567",
"role_name": "Massage Therapist"
},
"staff_requested": true,
"start_at": "2024-03-15T10:00:00Z"
}
]
ID Mapped array of: Unique identifier for the appointment service.CEL
Copy
Ask AI
appointment_services.map(x, x.id)
Example
Copy
Ask AI
[
"urn:blvd:AppointmentService:abc123"
]
Mapped array of: The ISO time at which the appointment service begins.
CEL
Copy
Ask AI
appointment_services.map(x, x.start_at)
Example
Copy
Ask AI
[
"2024-03-15T10:00:00Z"
]
Mapped array of: The ISO time at which the appointment service is completely finished.
CEL
Copy
Ask AI
appointment_services.map(x, x.end_at)
Example
Copy
Ask AI
[
"2024-03-15T11:00:00Z"
]
Mapped array of: Price of the service in cents, before any discounts or taxes are applied (including options).
CEL
Copy
Ask AI
appointment_services.map(x, x.price_cents)
Example
Copy
Ask AI
[
15000
]
Mapped array of: Duration for the service in minutes (including options).
CEL
Copy
Ask AI
appointment_services.map(x, x.duration_minutes)
Example
Copy
Ask AI
[
60
]
Mapped array of: The service.
CEL
Copy
Ask AI
appointment_services.map(x, x.service)
Example
Copy
Ask AI
[
{
"category_name": "Massage Therapy",
"name": "Deep Tissue Massage"
}
]
Mapped array of: A boolean indicating whether the staff was specifically requested by the client.
CEL
Copy
Ask AI
appointment_services.map(x, x.staff_requested)
Example
Copy
Ask AI
[
true
]
Mapped array of: The staff performing this service.
CEL
Copy
Ask AI
appointment_services.map(x, x.staff)
Example
Copy
Ask AI
[
{
"email_address": "sarah.johnson@spa.com",
"first_name": "Sarah",
"id": "urn:blvd:Staff:staff123",
"last_name": "Johnson",
"phone_number": "+15551234567",
"role_name": "Massage Therapist"
}
]
Indicates whether the appointment is part of a group appointment.
CEL
Copy
Ask AI
is_grouped_appointment
Example
Copy
Ask AI
false
Indicates if the appointment belongs to a recurring series.
CEL
Copy
Ask AI
is_recurring
Example
Copy
Ask AI
false
Indicates that the appointment is due to be carried out remotely.
CEL
Copy
Ask AI
is_remote
Example
Copy
Ask AI
false
The Location where this appointment was booked.
CEL
Copy
Ask AI
appointment_location
Example
Copy
Ask AI
{
"address": {
"city": "San Francisco",
"country": "US",
"line1": "1 Acacia Ave.",
"line2": "Apt 3a.",
"province": "Alberta",
"state": "CA",
"zip_code": "94117"
},
"external_id": "LOC001",
"id": "urn:blvd:Location:loc123",
"is_remote": false,
"name": "Downtown Spa",
"timezone": "America/New_York"
}
ID Unique identifier for the location.CEL
Copy
Ask AI
appointment_location.id
Example
Copy
Ask AI
"urn:blvd:Location:loc123"
Name of the location.
CEL
Copy
Ask AI
appointment_location.name
Example
Copy
Ask AI
"Downtown Spa"
ID External identifier for the location.CEL
Copy
Ask AI
appointment_location.external_id
Example
Copy
Ask AI
"LOC001"
Timezone associated with the location.
CEL
Copy
Ask AI
appointment_location.timezone
Example
Copy
Ask AI
"America/New_York"
PII Address of the location.CEL
Copy
Ask AI
appointment_location.address
Example
Copy
Ask AI
{
"city": "San Francisco",
"country": "US",
"line1": "1 Acacia Ave.",
"line2": "Apt 3a.",
"province": "Alberta",
"state": "CA",
"zip_code": "94117"
}
PII Line 1 of the AddressCEL
Copy
Ask AI
appointment_location.address.line1
Example
Copy
Ask AI
"1 Acacia Ave."
PII Line 2 of the AddressCEL
Copy
Ask AI
appointment_location.address.line2
Example
Copy
Ask AI
"Apt 3a."
City of the Address
CEL
Copy
Ask AI
appointment_location.address.city
Example
Copy
Ask AI
"San Francisco"
Province of the Address.
CEL
Copy
Ask AI
appointment_location.address.province
Example
Copy
Ask AI
"Alberta"
State of the Address.
CEL
Copy
Ask AI
appointment_location.address.state
Example
Copy
Ask AI
"CA"
Zip (postal) code for the Address.
CEL
Copy
Ask AI
appointment_location.address.zip_code
Example
Copy
Ask AI
"94117"
Country for the Address.
CEL
Copy
Ask AI
appointment_location.address.country
Example
Copy
Ask AI
"US"
Indicates that the location is a remote location, and that appointments for this location are carried out remotely.
CEL
Copy
Ask AI
appointment_location.is_remote
Example
Copy
Ask AI
false
The URL at which a client can manage their own booking.
CEL
Copy
Ask AI
manage_url
Example
Copy
Ask AI
"https://book.boulevard.com/manage/abc123"
Links to allow direct addition of the appointment to different calendar platforms.
CEL
Copy
Ask AI
calendar_links
Example
Copy
Ask AI
{
"google_calendar": "https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=abc123",
"ics_download": "https://boulevard.com/calendar/appointment.ics",
"microsoft_office": "https://outlook.live.com/calendar/0/deeplink/compose?subject=Appointment",
"microsoft_outlook": "https://outlook.office.com/calendar/0/deeplink/compose?subject=Appointment",
"yahoo_calendar": "https://calendar.yahoo.com/?v=60&view=d&type=20&title=Appointment"
}
A deep link to add the appointment directly to Google Calendar.
CEL
Copy
Ask AI
calendar_links.google_calendar
Example
Copy
Ask AI
"https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=abc123"
A downloadable ICS file to use for native calendar applications.
CEL
Copy
Ask AI
calendar_links.ics_download
Example
Copy
Ask AI
"https://boulevard.com/calendar/appointment.ics"
A deep link to add the appointment directly to Microsoft Office 365.
CEL
Copy
Ask AI
calendar_links.microsoft_office
Example
Copy
Ask AI
"https://outlook.live.com/calendar/0/deeplink/compose?subject=Appointment"
A deep link to add the appointment directly to Microsoft Outlook Online.
CEL
Copy
Ask AI
calendar_links.microsoft_outlook
Example
Copy
Ask AI
"https://outlook.office.com/calendar/0/deeplink/compose?subject=Appointment"
A deep link to add the appointment directly to Yahoo Calendar.
CEL
Copy
Ask AI
calendar_links.yahoo_calendar
Example
Copy
Ask AI
"https://calendar.yahoo.com/?v=60&view=d&type=20&title=Appointment"
ID The id of the order that the appointment was checked out with.CEL
Copy
Ask AI
order_id
Example
Copy
Ask AI
"urn:blvd:Order:67890"
When the appointment was created (in Etc/UTC).
CEL
Copy
Ask AI
created_at
Example
Copy
Ask AI
"2024-03-01T09:00:00Z"
