Goboko CSV format
What it is
Section titled “What it is”The Goboko CSV path is a specialised import flow for bookings exported from Goboko. When you upload a file, Syndik8 looks at the file’s bytes to decide whether it is a Goboko export or an arbitrary CSV — and if it is Goboko, the column mapping step is skipped entirely.
Goboko exports are UTF-16 encoded and have a fixed 16-column header. Both facts are used to detect the format automatically. You never choose “Goboko” from a menu; you upload the file you got from Goboko and Syndik8 recognises it.
Who can use it
Section titled “Who can use it”Admin and owner of a syndicate. The import wizard is hidden from regular members.
Where to find it
Section titled “Where to find it”- Syndicate settings → Import bookings.
- Route:
/syndicates/:syndicateId/settings/import-bookings.
Fields / options
Section titled “Fields / options”Detection
Section titled “Detection”| Check | Expected value |
|---|---|
| Byte-order mark | UTF-16LE (FF FE) or UTF-16BE (FE FF) at the start of the file. |
| Header row | Starts with #,Start Time,End Time,TimeZone. |
A file that does not meet both of those is classified as a generic CSV instead.
Columns read by the importer
Section titled “Columns read by the importer”The importer reads a subset of Goboko’s 16 columns:
| Column index | Column name | What Syndik8 uses it for |
|---|---|---|
| 1 | Start Time | Booking start (dd/MM/yyyy HH:mm:ss in the row’s timezone). |
| 2 | End Time | Booking end (same format). |
| 3 | TimeZone | IANA timezone name, used to convert the start/end times to UTC. |
| 4 | Booking Made For | Member display name. Also the maintenance marker — see below. |
| 5 | Booked By (email) | Member email for matching. |
| 6 | Aircraft | Aircraft registration. |
| 8 | Provisional | Y if the row is a waitlist / provisional booking. Mapped to pending on import. |
| 10 | Flight Time | Hours flown (kept as metadata; not used to populate usage logs). |
| 15 | Notes | Free-text notes. Copied onto the booking. |
Columns 0, 7, 9, 11, 12, 13, 14 are read past but not used.
Wizard steps for a Goboko import
Section titled “Wizard steps for a Goboko import”The wizard has six numbered steps across the top. For a detected Goboko file:
- Upload — choose the file.
- Columns — skipped automatically. Goboko’s columns are known.
- Members — confirm each unique member in the CSV maps to an existing syndicate member, an invite to send, or an aircraft-maintenance entry.
- Assets — confirm each unique aircraft registration in the CSV maps to an existing asset.
- Review — see the counts (created / skipped / warnings) before committing.
- Done — the import completes and the bookings appear on the calendar.
Behaviour rules
Section titled “Behaviour rules”- Detection is on the file, not on a menu choice. There is no “Is this a Goboko export?” toggle.
- UTF-16 decoding is mandatory. If Goboko ever ships a UTF-8 export, Syndik8 will route the file through the generic CSV path instead — the detection check requires the UTF-16 BOM.
- Times are converted to UTC. Each row carries its own timezone; Syndik8 converts
dd/MM/yyyy HH:mm:ssin that timezone to UTC before saving. - Unknown timezones fall back to UTC. If the timezone column holds a name the system’s tz database does not recognise, the time is saved as if the timestamp were already UTC rather than rejecting the row.
- Maintenance convention. A row whose “Booking Made For” is
Maintenance(case-insensitive) with no email is auto-classified as an aircraft maintenance booking, not a member’s booking. On the member matching step it is surfaced with the label “Will be imported as aircraft maintenance” and you can revert it to a member assignment if the detection was wrong. - Custom maintenance labels are preserved. If a Goboko row says “50 hr check” with no email, you can mark it as maintenance on the member matching step — the label “50 hr check” is carried onto the booking’s maintenance description. The generic word “Maintenance” is treated as redundant and left blank.
- Provisional rows are saved as
pending. Confirmed rows land asconfirmed. - Registration normalisation.
G-BBBNandGBBBNin the CSV are treated as the same aircraft when matching against asset registrations (Syndik8 strips non-alphanumeric characters and compares case-insensitively). - Single-asset inference. If the syndicate has only one asset, all rows match that asset regardless of the CSV’s registration column.
- Re-running an import is safe. Fingerprint-based deduplication skips rows already imported.
See also
Section titled “See also”- Generic CSV format — the fallback for other booking systems
- Deduplication — how Syndik8 avoids importing the same booking twice