Layout Automation API

The Layout Automation API is a powerful new feature of the Social Tables API that allows you to set up your events without human intervention. By giving the API a few basic parameters, you can create a wide variety of events in your space in an instant. The following is a description of the JSON object you must post to our API.

POST http://api.socialtables.com/4.0/layout-automation/

Event fields

The object must provide some basic fields about your event. These fields control the creation of the event, and are at the top level of the object you post (see examples):

for a new event you must provide:

field type required description
name string yes* The name your event will be called.
category string yes* The category of the event. Examples: gala, reception, conference, wedding, party, other
start_time string (ISO-8601 Date) no The date and time your event starts
end_time string (ISO-8601 Date) no The date and time your event ends
user_email string no Optional email address of another user who should own this event. This user must be on the requestor's team.
uses_metric boolean no Optional flag indicating the event should display metric units, and interpret units of length in the request payload as centimeters instead of inches.

for updating an event provide this instead:

field type required description
event_id string yes* id of the event to update
  • Either event_id OR name and category are required

The Spaces Array

The object must contain a spaces array at the top level of the object, each space can contain:

for new spaces:

field type required description
name string yes* The name of the space, this will be shown in the UI
venue_id string yes* The Social Tables bookable room id, which can be found using other parts of our API, must be prepended with an S
wizard object yes* Object containing the parameters to lay out your space. See wizard object documentation below.

for existing spaces:

field type required description
space_id string yes* The name of the space, this will be shown in the UI
wizard object yes Object containing the parameters to lay out your space. See wizard object documentation below.
  • You must provide either the space_id OR name, venue_id, and wizard

The Wizard Object

field type required description
attendees number (integer) yes the number of attendees you want to seat at your event
setup string (enumerated) yes Setup Type. Allowed: aligned, staggered, classroom, conference, keynote, u-shape, reception, theatre, registration
table object yes (see Table Object documentation below)
chevronAngle number (integer) no angle for the theatre, aligned, and keynote setup type
rotation number (integer) no number of degrees to rotate the setup. Can be use to set the direction the setup faces. Applies to all setup types except for "reception" and "registration".

Table Object

field type required description
chairs number no Number of chairs to put at each table
size object no (see Size Object documentation below)
spacing object no (see Spacing Object documentation below)
type string (enumerated) no Table type. Allowed: circle, square, rectangle, theatre, crescent, oval, serpentine, high-boy, and chair
position string (enumerated) no Positions the setup in the room, where n means "north" or 0 degrees of a circle. Allowed: n, s, e, w, ne, nw, se, sw
cullAdditionalTables boolean no Specifies whether to remove tables from a template to exactly match the attendee count or leave them in to round out the layout (default is false)
removedChairs number no Specifies the number of chairs as empty spaces on a crescent table type.
rotateCrescent number no Specifies the angle of rotation for the crescent table.

Example for adding a table of type Crescent.

{
    "wizard": {
        "attendees": 30,
        "setup": "aligned",
        "chevronAngle": 0,
        "rotation": 0,
        "table": {
            "cullAdditionalTables": false,
            "chairs": 6,
            "removedChairs": 4,
            "rotateCrescent": 50,
            "size": {
                "radius": 50
            },
            "type": "crescent"
        }
    }
}

Size Object

field type required description
width number (integer) no* Width along the x axis (inches)
length number (integer) no* Length along the y axis (inches)
radius number (integer) no* Radius of the top of a table (inches)
  • You should either provide a radius or a width and length value. Not both.

Spacing Object

field type required description
x number (integer) no Spacing in inches along the x axis
y number (integer) no Spacing in inches along the y axis

Aisles Object

field type required description
horizontal object no Horizontal (runs along the x axis) aisle definition (see below)
vertical object no Vertical (runs along the y axis) aisle definition (see below)

horizontal and vertical params have the following definition

field type required description
floorElementsBetween number (integer) no Number of elements (tables) in between aisles
width number (integer) no Width of the aisle in inches

Full example:

{
    "wizard": {
        "attendees": 40,
        "setup": "aligned",
        "chevronAngle": 0,
        "rotation": -20,
        "table": {
            "chairs": 4,
            "size": {
                "width": 72,
                "length": 24
            },
            "spacing": {
                "x": 0,
                "y": 36
            },
            "type": "square"
        },
        "aisles": {
            "horizontal": {
                "floorElementsBetween": 0,
                "width": 0
            },
            "vertical": {
                "floorElementsBetween": 2,
                "width": 36
            }
        }
    }
}

Notes on Setups

There are currently 6 available setup types that the Layout Automation API can handle, specified by the setup property in the wizard object:

  • aligned
  • staggered
  • classroom
  • conference-table
  • keynote
  • u-shape
  • hollow-square
  • reception
  • theatre
  • registration

The setup type is very important as it controls the behavior of the API and which parameters are respected. Here is a rundown of the differences:

aligned

The aligned setup creates a set of tables aligned on both the x and y axes:

  • The spacing will be appied as normal with spacing.x controlling how much spacing is between tables on the x axis and spacing.y controlling spacing on the y axis.
  • The aisles parameter is respected.
  • ChevronAngle along with the aisles param can be used to create slanted table arrangements.
  • Spacing will default to { x: 72, y: 72 }.

Example:

{
  "wizard": {
    "attendees": 50,
    "setup": "aligned",
    "table": {
      "chairs": 4,
      "size": {
        "radius": 60
      },
      "spacing": {
        "x": 42,
        "y": 42
      },
      "type": "circle"
    }
  }
}

staggered

The staggered setup creates a set of tables in staggered rows that are aligned on the y axis but offset on the x:

  • The spacing will be appied as normal with spacing.x controlling how much spacing is between tables on the x axis and spacing.y controlling spacing on the y axis.
  • The aisles parameter is not respected.
  • ChevronAngle along with the aisles param can be used to create slanted table arrangements.
  • Spacing will default to { x: 72, y: 52 }.

Example:

{
  "wizard": {
    "attendees": 50,
    "setup": "staggered",
    "table": {
      "chairs": 4,
      "size": {
        "radius": 60
      },
      "spacing": {
        "x": 42,
        "y": 42
      },
      "type": "circle"
    }
  }
}

classroom

The classroom setup creates an aligned layout with the chairs all set up along one side of a table, as you might see in a classroom with students facing a professor.

  • The spacing will be appied as normal with spacing.x controlling how much spacing is between tables on the x axis and spacing.y controlling spacing on the y axis.
  • The aisles parameter is respected
  • The rotation param can be used to determine which direction the chairs face
  • Spacing will default to { x: 0, y: 36 }.

Example:

{
    "wizard": {
      "attendees": 50,
      "setup": "classroom",
      "table": {
        "chairs": 3,
        "size": {
          "width": 72,
          "length": 18
        },
        "spacing": {
          "x": 36,
          "y": 36
        },
        "type": "square"
      }
    }
}

theater

The theatre setup creates an rows of seats like you might want for a presentation or show.

  • Using the aisles paramater is key to getting a good result
  • The chevronAngle parameter controls the angle on the lefmost and rightmost columns
  • For classic theater layouts (without tables), the table type should be set to "chair", and table.chairs should be set to 1
  • The rotation param can be used to determine which direction the seats face, it only applies at 90 degree increments
  • Spacing will default to { x: 0, y: 16 }.

Example:

{
    "wizard": {
        "attendees": 200,
        "setup": "theatre",
        "chevronAngle": 35,
        "table": {
            "chairs": 1,
            "spacing": {
                "x": 5,
                "y": 5
            },
            "size": {
                "length": 16,
                "width": 16
            },
            "type": "theatre"
        },
        "aisles": {
            "horizontal": {
                "floorElementsBetween": 0,
                "width": 0
            },
            "vertical": {
                "floorElementsBetween": 5,
                "width": 36
            }
        }
    }
}

hollow-square

The hollow-square setup creates tables lined up to create a box shape. Chairs are placed facing inwards towards the center of the box.

  • The spacing and aisles parameters are not respected.
  • Choosing "rectangle" for the table type will produce the best result.
  • Spacing will default to { x: 0, y: 0 }.

Example:

{
    "wizard": {
        "attendees": 20,
        "setup": "hollow-square",
        "rotation": 0,
        "chevronAngle": 10,
        "table": {
          "chairs": 2,
          "size": {
            "width": 36,
            "length": 18
          },
          "type": "rectangle"
        }
    }
}

u-shape

The u-shape setup creates tables lined up to create a box that is open on one side, creating a u-shape or horseshoe. Chairs are placed facing inwards towards the center of the U.

  • The spacing and aisles parameters are not respected.
  • Choosing "rectangle" for the table type will produce the best result.
  • The rotation param can be used to determine which side is open. (multiple of 90 degrees)
  • Spacing will default to { x: 0, y: 0 }.

Example:

{
    "wizard": {
        "attendees": 20,
        "setup": "u-shape",
        "rotation": 0, 
        "chevronAngle": 10,
        "table": {
          "chairs": 2,
          "size": {
            "width": 36,
            "length": 18
          },
          "type": "rectangle"
        }
    }
}

conference-table

The conference table layout creates a group of tables with chairs facing each other as you might have in a conference room.

  • The spacing and aisles parameters are not respected.
  • Rotation and chevronAngle are not respected.
  • Choosing "rectangle" for the table type will produce the best result.
  • Spacing will default to { x: 0, y: 0 }.
{
  "wizard": {
    "attendees": 30,
    "setup": "conference-table",
    "rotation": 0,
    "chevronAngle": 0,
    "table": {
      "chairs": 2,
      "size": {
        "width": 36,
        "length": 18
      },
      "spacing": {
        "x": 0,
        "y": 0
      },
      "type": "rectangle"
    }
  }
}

N. B. The following setups follow their own schemas for the wizard object that are separate from the rest.

reception

The reception setup type behaves very differently from many of the previous setup types discussed.
When choosing this setup type, the API will attempt to fill the space by distributing cocktail tables "high boys" mixed with round tables to fill a room space.

The Wizard Object is different in this case:

field type required description
attendees number (integer) yes the number of attendees you want to seat at your event, this differs from the other setups in that there is no maximum number, the api will do it's best to seat as many guests as possible

As well as the Table Object:

field type required description
spacing number (integer) no* Minimum number of inches between tables.
standing_coefficient number (decimal) no* Coefficient* of guests who will be standing
seating_coefficient number (decimal) no* Coefficient* of guests who will be seated
  • These fields have the following defaults: spacing=96, standing_coefficient=0.3, seating_coefficient=0.3

Coefficient (between 0 and 1) of guests which will be [seated][standing] at any given time. Used to map attendee count to number of [low tables or 5 foot rounds][high-boys]

Another behavior to note is that 5-foot rounds replace low tables when available space runs out in order to seat more guests

Example:

{
  "wizard": {
    "attendees": 60,
    "setup": "reception",
    "table": {
        "spacing": 96,
        "standing_coefficient": 0.3
    }
  }
}

registration

The registration setup behaves very differently from many of the previous setup types discussed. When choosing this setup type, the API will attempt to fill the space by placing a registration table on one side of the room.

The Table Object

field type required description
count number (integer) no* Number of registration tables to place
position string (enumerated) no* Positions the tables in the room, where n means "north" or 0 degrees of a circle. Allowed: n, s, e, w, ne, nw, se, sw
  • The defaults for count and postion are count=2 and position="n"

Example:

{
  "wizard": {
      "setup": "registration",
      "table": {
          "count": 2,
          "position": "n"
      }
    }
}

results matching ""

    No results matching ""