Travelers & invites
Every traveler gets a personal six-character join code — no account, no password, no email verification. This page covers building the roster (by hand or from a spreadsheet), how the codes work, and the three ways to get a code into a traveler's hands: email, paper slip, or reading it out over the phone.
How join codes work
When you add a traveler, Cordelle generates them a unique 6-character code from an unambiguous alphabet — no 0/O or 1/I, so a code can be read aloud down a phone line without a spelling bee. The traveler installs the app, types the code on the Enter your trip code screen, taps Join my trip, and the whole trip downloads to their phone. Codes are case-insensitive; the app uppercases as they type.
The code is each traveler's identity for the trip, which is why removing a traveler (the Remove button on their row) also kills their code. The same code works again if they change phones — see the traveler-side page on new phones.
Adding travelers one at a time
On a departure's Travelers tab, the Add one traveler form takes a first and last name (required) and, optionally: email, phone, a party label for couples or families sharing a device (e.g. "Smith family"), dietary notes, mobility notes, and an emergency contact's name and phone.
The dietary, mobility and emergency-contact fields aren't paperwork — they're what the guide carries. Whatever you type here appears (behind a PIN) in the guide's offline roster on the road. See Guides.
Importing a list from a spreadsheet
Under Import a list from a spreadsheet, either save your spreadsheet as a CSV file and press Choose a CSV file, or paste the rows straight in from your booking system. The first line is the header row — and it is your column names, not ours. There is nothing to reformat first.
The import follows a few plain rules:
- Columns can be in any order, and they're matched by meaning rather than by spelling. Capitals, spaces and punctuation are ignored, so E-mail, Email Address and email are one and the same column. First name, Surname, Mobile, Dietary requirements, Accessibility needs, Next of kin and many other everyday names land where you'd expect.
- Only first name and last name are required. Everything else — email, phone, party, dietary notes, mobility notes, and the emergency contact's name and phone — is optional. A sheet of two name columns and nothing else imports fine.
- Columns we don't use are skipped, not refused — and named back to you in the result, so you can see what was left out. Your booking reference, deposit column and internal notes can come along for the ride.
- Rows don't need to be the same width as the header: missing trailing cells read as empty, and extra ones are ignored.
- Quoted fields are fine, including commas and line breaks inside quotes — exactly what Excel exports for multi-line notes.
- A row whose email already exists on this departure is skipped, not duplicated — so re-importing a corrected file is safe.
- A row with a problem — a missing name, an email without an @, a cell far too long to be a real one — is reported by its row number and doesn't block the rest.
- Up to 1,000 rows go in at a time. A longer season splits into a couple of pastes.
What stops a whole sheet is a header with no name columns in it at all — and then the message shows you the header row it read and lists the names it understands, so the fix is one rename away. If you're starting from a blank sheet instead of an existing one, the Copy header row button at the bottom of the card gives you a set of column names to paste at the top of it.
The result reads plainly — how many were created, how many skipped — with the error list underneath, and your pasted CSV is kept when rows failed so you can fix exactly those rows and run it again. Each created traveler gets a fresh join code in the table.
One thing to watch when you re-run a part-finished import: rows that were already added and have no email address would be added a second time, because an email is what tells Cordelle it has seen someone before. Take those rows out of the paste before importing again — the dashboard says so at the time too.
Emailing the join codes
The Send join codes by email card at the top of the Travelers tab does the whole roster at once. The button names its number — Email join codes to 12 travelers — and before sending it shows you exactly who will get mail, by name and address. Each row also has its own Email code button for inviting one person.
Each person's email contains:
- Their trip, named with the tour and dates ("Highlights of Portugal, September 14–21, 2026") — the subject line itself carries the code, so it survives even unopened.
- The six-character code, set large enough to read across a kitchen table.
- Two steps: tap the link, which walks them through getting the app on their phone, then type the code. No password, no account.
- A link of the form cordelle.io/j/ABC234 that works whether or not they have the app yet (more below), plus a QR code for anyone reading the email on a computer — point the phone at the screen instead of retyping.
- A note to keep the email — the code is theirs alone and works again on a new phone — and your office number for anything that looks wrong.
Skips are never silent
After a send, the dashboard reports what actually happened — who was emailed, and who was skipped, each with a reason you can act on:
| Skip reason | What it means |
|---|---|
| No email address on file | Add one to their row and send again — or copy their code and read it out over the phone. |
| Already using the app | They've joined, so there is nothing to send. |
Re-running is safe. Anyone who has already joined is left alone — re-inviting them is a skip, not a duplicate email. Send to everyone as often as you like while the stragglers trickle in; only people who still need a code and have an address on file get mail.
The cordelle.io/j link
The link in the invite lands on a plain page that shows the traveler's code in very large type with the install steps under it — it works with JavaScript off, and it's built for someone who has never installed the app. If they already have the app, the same link opens it with the code filled in, ready for Join my trip. Either way the code is printed right there, so nothing depends on the link working.
Paper: QR slips in the printed packet
Some travelers want paper, and the welcome meeting is a fine place to hand codes out. Print paper packet on the departure page ends with a cut-out sheet — one slip per traveler, each carrying your agency name, the traveler's name, their code in large type, and a QR their phone camera can scan to be walked through joining. Details on the packet itself are on the Printed packet page.
Who has actually joined?
The Travelers table answers it per person — Joined the app? shows "Yes" with how long ago, or "Not yet". Once the trip is under way, a chip beside the name shows what the traveler last said from the app — On my way, Running late or Sitting this one out — for 12 hours after they tapped it. For the fuller pre-departure picture (who has joined, whose phone has the current version, who needs a call), use the Who's ready tab, covered in Tours & departures.
Anything unclear? Write to [email protected].