Skip to main content

Overview

This guide provides practical examples for common use cases when integrating with the BookingShake API.

Use Case 1: Simple Single Event

Create a basic event with minimal required information. Scenario: A visitor fills out a simple contact form on your website to request an event.

Use Case 2: Group Bookings (Multiple Events)

Create multiple related events in a single request. Perfect for multi-day conferences or workshops. Scenario: A client wants to book a conference room for a 3-day training session.
All events created in a single request are automatically grouped together in BookingShake, making it easy to manage multi-day bookings.
A single /events/create request can contain at most 20 bookings. To create more, split them across multiple requests (remember the 10 req/min rate limit on this endpoint).

Use Case 3: Event with Draft Quotation (Products)

Create an event and generate a draft quotation with products/services. Scenario: A corporate client requests a conference package with catering and AV equipment.
Important: Pricing FormatProduct prices and VAT must be provided in specific formats:
  • Prices (price_without_tax): In cents/centimes, not euros/dollars
    • Example: €1,500.00 = 150000 cents
    • Example: €35.00 = 3500 cents
  • VAT (vat): In basis points (1/100th of a percent), not percentages
    • Example: 20% VAT = 2000 basis points
    • Example: 10% VAT = 1000 basis points
    • Range: 0 to 10000 (0% to 100%)
Important: Prices are in cents (e.g., €150.00 = 15000) and VAT is multiplied by 100 (e.g., 20% = 2000).

Use Case 4: Dynamic Resource Selection

Retrieve available resources before creating an event to populate dropdowns or validate selections. Scenario: Build a booking form that shows available spaces and sources dynamically.

Use Case 5: Using Existing Contacts

Link events to existing contacts instead of creating new ones. Scenario: A returning customer makes a new booking.
When contact_id is provided, other contact fields (first_name, last_name, email) are ignored, and the existing contact is used.
Automatic deduplication: Even when creating a new contact (without contact_id), the API automatically checks if a contact with the same email already exists for your venue or venue group. If found, it reuses the existing contact instead of creating a duplicate.

Use Case 6: Event with Custom Fields

Create events with custom field values for contacts, companies, and bookings. Scenario: Your venue has configured custom fields to capture additional information like budget range, event theme, and company size. You need to pass these values when creating events.
Finding your custom fields: Use the GET /fields endpoint to retrieve all available custom fields for your venue. Custom fields have isCustom: true and are identified by their code property (format: custom_XXXXXXXXXXX). The collection property indicates where to use the field:
  • clients → use in contact.custom_fields
  • accounts → use in company.custom_fields
  • reservations → use in each booking.custom_fields
Required custom fields: If a custom field has isRequiredInBO: true, you must provide a value for it. The API will return an error like missing required custom field "Budget Range" for contact if a required field is missing.
Custom field values are stored at the root level of each entity (contact, company, or booking) in BookingShake, alongside standard fields. They can be viewed and edited in the back office.

Use Case 7: Complete Integration Workflow

A full example showing error handling, validation, and best practices.

Best Practices

Validate Before Sending

Always validate date/time formats and required fields before making API calls to provide better user feedback.

Handle Errors Gracefully

Implement proper error handling and provide clear error messages to users.

Use Environment Variables

Store API keys securely in environment variables, never in your source code.

Fetch Resources Dynamically

Retrieve sources, spaces, and statuses via API instead of hardcoding them.

Next Steps

API Reference

Explore detailed API endpoint documentation

Error Handling

Learn about error codes and troubleshooting