Interaction
Object Shape
An interaction object will always have this shape when not embedded into other objects:
{
"id": "integer",
"_type": "string",
"firstDelegate": "object:delegate",
"secondDelegate": "object:delegate",
"thirdDelegate": "object:delegate",
"firstDevice": "object:device",
"secondDevice": "object:device",
"thirdDevice": "object:device",
"interactionType": "string",
"data": "object",
"recordedAt": "string",
"createdAt": "string",
"updatedAt": "string"
}
The data property inside the interaction object does not have a configurable structure and will depend on the type
of interaction. For example a lead interaction will have all answers loaded in this property.
Interaction Types
This list will be updated, it’s NOT UP TO DATE.
A non exhaustive list of the standard interactions is:
- check-in
Indicates someone has checked in into a session or interacted with any device. It’s the most common action you can use anywhere you don’t need to define custom behaviour or attach complex data to it.
- check-out
The opposite of a check-in, when someone leaves a session. Currently used to enable “single-entry” sessions.
- join
Usually referred to a session, it’s a broad term and generally means that delegate is supposed to show up at a particular session or that they are allowed into such session.
- booking, cancel-booking
These events allow you to book devices. The device you can book should be of a bookable type but this is not enforced. This has been used only for the meeting tables feature so far.
- invite, uninvite, notify-invitees
These actions are used to invite delegates to a session and/or to notify them. This most likely requires some custom logic that can be added to the AppBundle.
Some interaction types we’ve used so far are summarised below:
Interaction |
Description |
|
|---|---|---|
check-in |
R M S |
A delegate shows up (physically) to an event or session |
check-out |
M S |
A delegate leaves an event or session |
join |
R M S |
A delegate is allowed to, has booked or is assigned to an event, session, … |
seen |
U |
A delegate has been seen at an event or session (usually by a UHF reader) |
entered |
U |
A delegate has entered an area (usually based on where they’ve been seen) |
exited |
U |
A delegate has left an area (usually based on where they’ve been seen) |
connect |
S |
A delegate sends a connection request |
connected |
S |
A delegate has connected with someone (usually when both reciprocally connect) |
booking |
S |
A delegate has booked something like a meeting, session, … |
cancel-booking |
S |
A delegate has cancelled a booking |
invite |
S |
A delegate has invited someone to something |
uninvite |
S |
A delegate has uninvited someone he previously invited |
notify-invitee |
S |
A delegate asks to notify an invitee about something |
order |
M S |
A delegate orders something, usually a drink |
order-processing |
S |
A delegate’s order is being processed |
order-cleared |
S |
A delegate’s order has been completed (usually this fires a text message) |
download |
M S |
A delegate requests to download something |
downloaded |
M S |
A delegate has downloaded something |
upload |
M |
A delegate uploads something |
feedback |
S |
A delegate sends their feedback |
competition |
S |
A delegate enters a competition |
voucher |
S |
A delegate consumes a voucher |
question |
S |
A delegate asks a question |
lead |
M |
A delegate records a lead |
poll-vote |
S |
A delegate votes in a poll |
own |
M S |
A delegate owns a device (usually for sponsors, to identify staff members) |
R |
A delegate’s badge has been printed (usually from the registration app) |
GET /interaction/list
Get the list of interactions matching the specified query.
Note
This method supports pagination.
Use limit and offset to paginate returned results. The defaults if no limit or offset are provided are limit=5000 and offset=0.
GET /interaction/list?offset=0&limit=5000
The total result set count is returned in all responses in the meta property. Links to the next or previous page
are also provided in the same property.
POST /interaction/new/{interactionType}
Creates a new interaction.
See the list of Error Responses for more information, in particular error 1301, 1401, 1501, 1502, 1503.
Some examples for common interactions:
POST /interaction/new/check-in
POST /interaction/new/join
POST /interaction/new/lead
POST /interaction/new/print
Example request to check-in a delegate into a session:
POST /interaction/new/check-in
{
"firstDelegate": 789,
"firstDevice": 85,
"recordedAt": 1696185089
}
Or, because only one delegate and one device are involved:
{
"delegate": 789,
"device": 85,
"recordedAt": 1696185089
}
Example response:
{
"data": {
"id": 89027,
"_type": "interaction",
"firstDelegate": {
"id": 789,
"_type": "delegate"
},
"firstDevice": {
"id": 6,
"_type": "device"
},
"interactionType": "check-in",
"recordedAt": "2018-03-13T23:31:16+00:00",
"createdAt": "2018-03-13T23:31:32+00:00",
"updatedAt": "2018-03-13T23:31:32+00:00"
},
"meta": {}
}
POST /interaction/test/{interactionType}
Tests if creating an interaction with the given parameter would succeed or not. This can be used for example to validate tickets before using them.
See the list of Error Responses for more information, in particular error 1301, 1401, 1501, 1502, 1503.
Example request to check-in a delegate into a session:
POST /interaction/test/check-in
{
"firstDelegate": 789,
"firstDevice": 85,
"recordedAt": 1696185089
}
Or, because only one delegate and one device are involved:
{
"delegate": 789,
"device": 85,
"recordedAt": 1696185089
}
Example response:
{
"data": {
"id": null,
"_type": "interaction",
"firstDelegate": {
"id": 789,
"_type": "delegate"
},
"firstDevice": {
"id": 6,
"_type": "device"
},
"interactionType": "check-in",
"recordedAt": "2018-03-13T23:31:16+00:00",
"createdAt": "2018-03-13T23:31:32+00:00",
"updatedAt": "2018-03-13T23:31:32+00:00"
},
"meta": {}
}
Example of response in case of failure:
{
"data": {},
"meta": {
"error": {
"code": 412,
"message": "Too many interactions",
"internalCode": 740
}
}
}
DELETE /interaction/id:{id}
Delete the given interaction. Returns a no content response (status 204).
Example request to delete interaction 123:
POST /interaction/id:123
POST /interaction/batch
You can send a batch of interaction to this endpoint and they will be processed in order and a ordered collection of responses will be returned.
See the list of Error Responses for more information, in particular error 1301, 1401, 1501, 1502, 1503.
Example request:
POST /interaction/batch
{
"interactions": {
"a": {
"firstDelegate": 1,
"interactionType": "upload"
},
"b": {
"firstDelegate": 3,
"firstDevice": 123,
"interactionType": "check-in"
}
},
"sharedValues": {
"upload": "iVBORw0KGgoAA[ ... more base64 encoded stuff ... ]oI5NwAAAABJRU5ErkJggg=="
}
}