History records are created when an event is scheduled and for each booking that's made. They follow our standard History Conventions and also write labelc "reporting" histories which don't contain any personal information, so can be saved for longer term storage and reporting.
For an overview of all of the data collected by our standard products, see Core Product Data Storage
Event Occurrence Histories
When an event is scheduled, the following history is written for each occurrence (ie each date/time the event takes place).
This history isn't designed to provide data for reporting or dashboards.
{
"labela": "ThingInstance v1",
"labelb": "7774-4686-5534-8743",
"labelc": null,
"labeld": null,
"labele": null,
"created": 1665135169610,
"lastupdated": 1665135169610,
"sealed": false,
"subject": {
"processDefinitionId": "thinginstancev1:21:29635117",
"description": "Tim's event : 11/11/2022 12:00 - 14:00",
"proxyUserId": null,
"userId": "TIMG",
"processDefinitionKey": "thinginstancev1"
},
"events": [{
"pos": [1, 1],
"event": {
"private": false,
"description": "Process Started",
"proxyUserId": null,
"formData": {
"data": {
"LOCATIONID": "1798",
"LOCATION": "Use Default Address",
"MAXPURCHASE": "",
"CANCELLATIONVARIATION": "",
"GOVPAYCODE": "",
"MINCAPACITY": "1",
"BOOKINGEMAILVARIATION": "Not Default",
"CIVICAFUNDCODE": "",
"FUNDCODE": "",
"PAYMENTCONFIRMATIONVARIATION": "Also Not Default",
"CONTACTVALIDATION": "email",
"NOTESNOTIFYEMAIL": "",
"CIVICACATALOGUECODE": "",
"NOTIFY": "N",
"NOTIFYEMAIL": "",
"ALLOWNOTES": "",
"BASKET": "",
"STARTDATETIME": "2022-11-11T12:00:00.000Z",
"ALLOWCANCELLING": "",
"FUNDCODEFS": "",
"BOOKINGTEXT": "Default",
"GLCODE": "1",
"TERMS": "",
"CAPTURETEL": "",
"REQUIREOFFLINEREF": "Yes",
"PLUGIN": "",
"CANCELLATIONCONFIRMATIONVARIATION": "",
"MAXCAPACITY": "10",
"BOOKABLEID": "1798",
"DATA": "{\"ContactValidation\":\"email\",\"Packages\":[{\"id\":1,\"description\":\"Ticket\",\"realDescription\":\"\",\"minavailable\":1,\"maxpurchase\":null,\"maxavailable\":10,\"mandatory\":false,\"price\":0,\"availablefromnumber\":null,\"availablefromtype\":\"Always\",\"availablefromdate\":\"\",\"availabletonumber\":null,\"availabletotype\":\"Always\",\"availabletodate\":\"\",\"active\":true,\"Tickets\":[{\"id\":1,\"description\":\"Ticket\",\"quantity\":1}],\"availableto\":\"2022-11-11T14:00:00.000Z\",\"availablefrom\":\"2016-01-01T00:00:00Z\"}],\"Tickets\":[{\"id\":1,\"description\":\"Ticket\",\"maxavailable\":10,\"size\":1}]}",
"PLACESLEFT": "",
"ENDDATETIME": "2022-11-11T14:00:00.000Z"
},
"formName": "CREATENEWTHINGINSTANCEV1",
"typeName": "FORM_INSTANCEMASTERV1",
"formDefinitionType": "FORMDEFINITIONEX"
},
"event": "STARTWORKFLOW",
"userRole": "user",
"userId": 9
}
}]
}
The history is not updated as bookings are made, but will include additional entries when the management form is used to update an event occurrence.
Booking Histories
Two history records are written each time a booking is made. Note that these history records are per booking, not per ticket, so purchasing five tickets in one transaction creates the same history records as purchasing a single ticket.
Primary History
The main history created by a booking has the following labels, where
{
"labela": "Booking v1",
"labelb": "8180-2073-8216-0251",
"labelc": null,
"labeld": null,
"labele": null
}
It records the background data needed for the booking, including article IDs, business key of the event instance, text for the various tokens, plus ticket and package information. It includes the booker's details in the following fields (note that many more events and fields are stored and that events are added each time someone interacts with the booking eg updating their email address):
{
"formData": {
"data": {
"EMAIL": "support@gossinteractive.com",
"NOTES": "",
"USERID": "9",
"EMAIL2": "support@gossinteractive.com",
"NAME": "Tim's User",
"DATA": "This is a stringified version of all of the booking data"
}
}
}
These fields will be repeated multiple times throughout the history as new summaries are added.
Reporting History
A reporting history is written for each booking which contains no personal data:
{
"labela": "Booking v1",
"labelb": "8180-2073-8216-0251",
"labelc": "reporting",
"labeld": null,
"labele": null,
"created": 1667209527097,
"lastupdated": 1667209527097,
"sealed": false,
"subject": {
"description": "Reporting Data"
},
"events": [{
"pos": [1, 1],
"event": {
"eventId": "1798",
"locationName": "Tim's house",
"discount": 0,
"description": "Reporting Data",
"instanceReference": "3073-9164-1528-7795",
"grossPrice": 0,
"packages": [{
"amount": 0,
"quantity": 1,
"tickets": [{
"quantity": 1,
"discountPercent": 0,
"vatRate": 0,
"netPrice": 0,
"discountAmount": 0,
"grossPrice": 0,
"costCentre": null,
"expenseCode": null,
"vatAmount": 0,
"expenseCodeDescription": null,
"costCentreDescription": null,
"vatCode": null,
"ticketId": 35966
}],
"netAmount": 0,
"name": "Adult Ticket",
"mandatory": false,
"vatAmount": 0
}],
"eventTimeISO": "2022-11-04T12:00:00Z",
"paymentRef": "N/A",
"discountCode": "",
"locationId": "1798",
"price": "0",
"eventTime": "Friday 4 November 2022 12:00",
"eventName": "Tim's event",
"paymentMethod": "Online",
"userRole": "customer",
"event": "Reporting Data",
"status": "AUTHORISED"
},
"fpos": [1, 1],
"timestamp": 1667209527097
}]
}
It records:
Key | Description |
---|---|
labela | Will always be "Booking v1" |
labelb | The booking reference number for this booking |
labelc | Will always be "reporting" |
created | This will be the time the booking was made |
eventId | The article ID of the event |
instanceReference | The business key of the event instance |
packages | Information about the packages that were purchased |
tickets | The ticket's that were purchased including the quantity and price |
eventTimeISO | The date and time the event is scheduled to take place |
locationId | The article ID of the event's location. This may match the eventId |
paymentMethod | Either "Online" or "Cash" |