Hold your own details about a person — their tutor, venue or appointment time — and drop them into a message so every recipient gets their own version.
A contact field is something you know about a person that whoot. does not: their tutor, the building they report to, the time of their appointment, the cohort they belong to. You declare the field once, fill it in per person, and from then on you can drop it into a message and each recipient gets their own version.
A field belongs to the person, not to a list. If somebody is on your All Staff list and your First Aiders list, they have one tutor, one venue, one of everything — and changing it in one place changes it everywhere they appear.
Give the field a name and pick a type. whoot. turns the name into the token you will type into messages, and shows it to you as you type:
Field name: Tutor name
Token: {{tutor_name}}The name is yours to change later — tidy it, translate it, correct a typo. The token never changes, because your saved messages already refer to it. If the token moved every time somebody edited a label, a rename would quietly empty that part of every message using it, and nobody would notice until a recipient asked.
The type decides what can be stored and what you can filter on:
A default is what a message says when a particular person has no value of their own. It is the difference between a sentence that reads properly and one with a hole in the middle of it.
Message: Your appointment is with {{tutor_name}} at {{venue}}.
Default: venue → "the main reception"
With a venue: Your appointment is with Dr Patel at Building 42.
Without a venue: Your appointment is with Dr Patel at the main reception.Before you send, the composer tells you how many recipients are relying on a default and how many have nothing at all, so you can fix the data or exclude those people rather than sending them a half-finished sentence.
Open any recipient list, find the person, and use the person icon on their row. The editor shows the number, their name, an email address and delivery preference, and every field you have declared — as a dropdown for a choice field, a date picker for a date, and so on.
The dialog names the lists that person is on, because editing them there changes what they receive everywhere, not just on the list you happened to open.
Type the token where you want the value to appear:
Hi {{first_name}}, your session with {{tutor_name}} is at {{appointment_time}} in {{venue}}.The composer counts characters against the longest version any recipient will receive, not the template, so a message that fits in one segment for most people and spills into two for somebody with a long name is flagged before you send it rather than after you are billed for it.
{{firstname}} against a stored {{first_name}}.Some of what you hold about a person should not be on a screen just because a table happened to load. Mark a field sensitive — when you declare it, or later from the pencil beside it — and its values stop appearing anywhere in bulk. The Contacts table shows a placeholder with an eye instead of the value; the contact editor shows a Reveal control; a CSV export leaves the column out altogether; segment samples and message previews show the same-length placeholder rather than what the field holds. The values themselves are unchanged and a message still merges them: what changes is how many of them any one page can carry.
To see a value, click the eye on that one cell, or Reveal in the editor. The value is fetched for that one person and that one field, and every reveal is recorded in the audit trail against the name of whoever asked. Revealed values are put away again the moment the table reloads or moves to another page, so working through a list means revealing what you need as you go rather than everything at once. The phone apps behave the same way.
Removing a field stops it being offered and stops any group built on it from matching. The values already stored on your contacts are kept, so if you remove one by mistake, adding a field with the same name brings the data back.